Weather Data

The data in this section are collected from manually read instruments, with the exception of the data in the WEATHERHAWK table, which are automatically collected by the WeatherHawk instruments.

Tip

The MIN_MAXS view provides a way to view all the tables containing manually collected weather data at once, with each weather data collection event appearing as a single row.

Note

The weather-related tables contain weather-related information and so do not directly relate to any of the baboon information contained in Babase.

RAINGAUGES (Rain Measurements)

This table contains one row for every time a rain gauge reading is recorded. There can be at most one RAINGAUGES row per WREADINGS row.

WRid

The identifier of the meteorological collection event during which the rain gauge was read. Must be a value contained in the WRid column of a row on the WREADINGS table, and the associated row may not be associated with any other row in RAINGAUGES.

This column cannot be changed; and must not be NULL.

RGspan

The interval, in an integral number of seconds, since the previous rain gauge collection event.

This column is automatically maintained by the database and cannot be changed. This column must not be NULL.

Caution

When the WREADINGS.WRdaytime values used to compute RGspan are not integral, the resulting RGspan value is rounded to the nearest second. Values of .5 seconds are rounded to the nearest even number of seconds.

Warning

When a new row is inserted the value of this column is silently ignored and an automatically computed value is used in its place. It is best to omit this column from the inserted data (or specify the NULL value).

EstRGspan

Whether or not any estimated WREADINGS.WRdaytime values were used in the computation of the RGspan column. TRUE if any of the relevant WREADINGS.Estdaytime values are true, FALSE otherwise.

This column is automatically maintained by the database and cannot be changed. This column must not be NULL.

Warning

When a new row is inserted the value of this column is silently ignored and an automatically computed value is used in its place. It is best to omit this column from the inserted data (or specify the NULL value).

Rain

The measurement of rain accumulated since the last time the rain gauge was read. In millimeters stored using a data type having a precision of 0.1 millimeter. For the precision and accuracy of the data itself see the Amboseli Baboon Research Project Monitoring Guide.

This column must be non-negative and may not be more than 200.0. This column may not be NULL.

Sys_Period

The timestamp range during which this row's data are considered valid. See The Sys_Period Column for more information.

RGSETUPS (Rain Gauge Setups)

This table contains one row for every time a rain gauge is installed. There can be no RAINGAUGES rows recording rain gauge measurements at any given weather station (WSTATIONS) unless there is a prior record of a rain gauge installation in RGSETUPS.

Rain gauge measurements are only meaningful when it is known how long the rain has been collected. In the event that, e.g., an elephant steps on the rainguage, there will be a period of time until the rain gauge is replaced. The first reading of the replacement rain gauge is not a measurement of rain since the last rainguage reading, but is instead a measurement of the rain collected since the replacement rain gauge was installed. The RGSETUPS table allows the system to compute RAINGAUGES.RGspan intervals when rain gauges are replaced, first installed, or after an interval of corrupted measurements.[166]

There cannot be a RGSETUPS row and a RAINGAUGES row for the same location at the same time.

The combination of RGSdaytime and Wstation must be unique.

RGSid

A unique positive integer representing the rain gauge setup event.

This column is automatically maintained by the database, cannot be changed, and must not be NULL.

Wstation

Code indicating the station at which the rain gauge was installed. Must be a value on the WSTATIONS table.

This column cannot be changed and must not be NULL.

RGSdaytime

The day and time the rain gauge was installed. The time zone is Nairobi local time.

RGSestdaytime

TRUE when the RGSdaytime column contains an estimated time. FALSE when the RGSdaytime column is an accurate record of the time the rain gauge was installed.

RGSPerson

Initials of the person who collected the data. Must be a value contained in the Initials column of a row on the OBSERVERS table.

Sys_Period

The timestamp range during which this row's data are considered valid. See The Sys_Period Column for more information.

TEMPMINS (Minimum Temperature Measurements)

This table contains one row for every time a minimum temperature reading was recorded. There can be at most one TEMPMINS row for every WREADINGS row.

The Tempmin column has one decimal point of precision, but thanks to limitations of the thermometers the temperature is normally collected with a half decimal point of precision; the digit to the right of the decimal point should be either a 0 or a 5. This may not always be so, however. The system will return a warning when the Tempmin is not a multiple of 0.5.

Beginning 01 July 2022, a new thermometer with higher accuracy and precision was deployed, allowing for reliable recording of temperature to the nearest tenth of a degree. For this reason, the above warning only applies to data collected before that date[167].

WRid

The identifier of the meteorological collection event during which the minimum temperature was read. Must be a value contained in the WRid column of a row on the WREADINGS table, and the associated row may not be associated with any other row in TEMPMINS.

This column cannot be changed; and must not be NULL.

Tempmin

The minimum temperature recorded since the last minimum temperature reading.

This table must contain a value between -5 and 35, inclusive of endpoints, and must not be NULL.

Sys_Period

The timestamp range during which this row's data are considered valid. See The Sys_Period Column for more information.

TEMPMAXS (Maximum Temperature Measurements)

This table contains one row for every time a maximum temperature reading was recorded. There can be at most one TEMPMAXS row for every WREADINGS row.

In extreme circumstances where a temperature reading is known to be spurious in some way, it may be desirable to record a correction or adjustment from the original temperature. When this is done, the adjusted temperature should be recorded in the Tempmax column, and the unadjusted temperature in the Unadjusted_Tempmax column. If no adjustment has been made, the Unadjusted_Tempmax should be NULL.

Because a non-NULL Unadjusted_Tempmax indicates that an adjustment has occurred, the Unadjusted_Tempmax cannot be equal to the Tempmax.

Both temperature columns have one decimal point of precision, but thanks to limitations of the thermometers the temperatures are normally collected with a half decimal point of precision; the digit to the right of the decimal point should be either a 0 or a 5. This may not always be so, however. Newer thermometers may be more precise, and temperature adjustments may not conveniently be to the nearest 0.5°. The system will return a warning when either Tempmax or Unadjusted_Tempmax is not a multiple of 0.5.

Beginning 01 July 2022, a new thermometer with higher accuracy and precision was deployed, allowing for reliable recording of temperature to the nearest tenth of a degree. For this reason, the above warning only applies to data collected before that date[168].

Values in both of the temperature columns in this table must be between 10 and 50, inclusive.

Historical Note

Weather station BC1 was positioned too close to the kitchen, resulting in spuriously high Tempmax readings. To correct for this, all Tempmax readings from that weather station have been adjusted by -4.2°C (rounded from -4.245). This adjustment was calculated as the residual + fixed effect from a model of Tempmax as a function of day of the year + random intercept of weather station with only BC1 and BC2, BC3, BC4 combined in the dataset (i.e., Tempmax ∼ day of the year + (1 | Wstation)). Day of the year was included in the model to correct for the fact that BC1 had an overrepresentation of January to June dates compared to the other three BC weather stations. BC5 was not used in the calculation because at the time of calculation there was less than one year of weather data from this station. We also calculated adjustment factors in two alternative ways which yielded extremely similar values: (1) taking the difference between the mean Tempmax of BC1 and mean Tempmax of BC2, BC3, BC4 combined (adjustment factor = -4.29°C) and (2) taking a residual + fixed effect from a model of Tempmax as a function of a fixed intercept + random intercept of weather station with only BC1 and BC2, BC3, BC4 combined in the dataset (i.e., Tempmax ∼ 1 + (1 | Wstation); adjustment factor = -4.28°C).

Column Descriptions

WRid

The WREADINGS.WRid of the meteorological collection event during which this maximum temperature was read.

This column is unique, cannot be changed, and must not be NULL.

Tempmax

The maximum temperature recorded since the last maximum temperature reading.

This column may not be NULL.

Unadjusted_Tempmax

The original, unadjusted maximum temperature, when the value in the Tempmax column has been adjusted in some way.

This column may be NULL, when the Tempmax has not been adjusted.

Sys_Period

The timestamp range during which this row's data are considered valid. See The Sys_Period Column for more information.

WEATHERHAWK (WeatherHawk Data)

This table records the weather data automatically collected each hour by the WeatherHawk instrument.

The combination of TimeStamp and WStation must be unique.

Instrument accuracy may not, and probably does not, correspond with the recorded degree of precision. The instrument collects its data in engineering units, which are interpreted and converted to standardized units (degrees, kPa, etc.) by PC software when the data are retrieved from the instrument. Different PC software programs may vary in terms of units used, the number of significant figures employed, or other ways that are not yet apparent. There are even some values that are simply not recorded by some programs.

Despite differences in software, most measurements saved in this table use a single column and a specified unit. Data management should ensure that data are converted to the appropriate units, if needed. The allowed precision in these columns—usually a single digit to the right of the decimal—is based on a private message from WeatherHawk's technical support[169], who asserted that this is the maximum plausible precision that the WeatherHawk is capable of measuring. This may be more precise than the value originally reported by the software.

Note

The units and decimal precision used in this table's columns are not necessarily the same as what was exported from the WeatherHawk instrument.

Tip

Use the WEATHERHAWK_SOFTWARES table to see what is known about differences in these programs, including precision of measurements, units used, etc.

The WSoftware column is used to indicate which software was used to generate the data in each row, but the system does not treat data any differently based on this value. Users should be aware of the possibility of differences between programs, and decide for themselves how to handle any possible discrepancies.

Information about the voltage of the WeatherHawk's battery is provided in the BatVolt and BatVolt_Min columns. These values are not directly relevant to weather but can be useful if technical support is needed.

Average wind speed may be recorded in km/hr as an integer or m/s with 1 decimal point of precision, depending on the software used. The precision difference between these two measures is large enough that they are divided into separate columns, not unified into a single "wind speed" column. Each row must have a non-NULL WindSpeed_Avg_Km_Hr or WindSpeed_Avg_M_S, but cannot have both. Similarly, if maximum wind speed is recorded, it can be in the WindSpeed_Max_Km_Hr or WindSpeed_Max_M_S column, but not both.

Each row must only use a single unit for wind speed; when WindSpeed_Avg_Km_Hr is NULL, WindSpeed_Max_Km_Hr must also be NULL, and when WindSpeed_Avg_M_S is NULL, WindSpeed_Max_M_S must also be NULL.

The WeatherHawk measures rain using a 1-millimeter tip bucket and only records rain when the bucket fills (see the WeatherHawk Signature Series User's Manual for more information). If there is less than 1 mm of rainfall over the course of a given hour, the bucket may not fill up at that time and the rain will not be measured until later, or may even evaporate before the bucket fills. When there is a gap in the hourly measurements (due to changing out sensors, battery malfunctions, etc.) rainfall data during the down period might not be recorded.

Although it measures every hour, the WeatherHawk does not report rainfall on an hourly basis. Instead, it reports the cumulative rainfall since the beginning of the year (the YearlyRain column). Because rainfall for each hour will usually be more useful, the calculated column TimeStampRain is included in this table. For each row, the YearlyRain of the most recent row from the same calendar year and the same WStation is subtracted from this row's YearlyRain, resulting in the amount of rainfall that was measured since the previous TimeStamp.

Warning

Do not assume that TimeStampRain values always describe a single hour's worth of rain. When one or more hours is absent from the data, the TimeStampRain value is the amount of rainfall measured since the previous row in the same year. Also do not assume that these values describe all of the rain that occurred in the intervening hours. If the WeatherHawk was off or malfunctioning at the time[170], then actual rainfall may have occurred and/or evaporated without being measured.

Column Descriptions

Wid (WeatherHawk Identifier)

A unique positive integer representing the WeatherHawk's meteorological data collection event.

This column is automatically maintained by the database, cannot be changed, and must not be NULL.

WStation (Weather Station Identifier)

The WSTATIONS.Wstation of the WeatherHawk instrument used to collect the data.

This column may not be NULL.

TimeStamp

Date and time of the measurement. Measurements must be taken on the hour. Minutes, seconds, microseconds etc must be 0.

Warning

As indicated by the name, this value is a time stamp. It indicates the end of the period described in each row, not the beginning. This means that the last hour of a day will have a TimeStamp from the next day, e.g. the data from 23:00-23:59 on 31 Dec 1999 will have a TimeStamp of 2000-01-01 00:00.

This column may not be NULL.

WSoftware (WeatherHawk Software Identifier)

The WEATHERHAWK_SOFTWARES.WSoftware value indicating which software was used to generate the data.

This column may not be NULL.

RecordNum (Record Number)

The record number for this line, exported in the software. This appears to be a unique ID number used either by the WeatherHawk or the software, or both.

This column may be NULL, when the software did not report this value.

BatVolt (Battery Voltage)

The voltage of the battery at the TimeStamp. Values must be between 10.00 and 14.00, inclusive.

This column may not be NULL.

BatVolt_Min (Minimum Battery Voltage)

The minimum voltage of the battery in this hour. Values must be between 10.00 and 14.00, inclusive.

This column may be NULL, when the software did not report this value.

AirTemp_Avg

Average air temperature for this hour, in degrees Celsius. Values must be between -10.0 and 50.0, inclusive.

This column may not be NULL.

RelativeHumidity_Avg

Average relative humidity for this hour in percent humidity. Values must be between 0.0 and 100.0, inclusive.

This column may not be NULL.

WindSpeed_Avg_Km_Hr (Average Wind Speed, in km/hr)

Average wind speed for this hour, in km/hr. Values must be between 0 and 30, inclusive.

This column may be NULL.

WindSpeed_Avg_M_S (Average Wind Speed, in m/s)

Average wind speed for this hour, in m/s. Values must be between 0.0 and 15.0, inclusive.

This column may be NULL.

Solar (Solar radiation)

Solar radiation in Watts per square meter. Values must be between 0.0 and 2000.0, inclusive.

This column may be NULL[171].

AirTemp_Min (Minimum Air Temperature)

Minimum air temperature for this hour, in degrees Celsius. Values must be between -10.0 and 50.0, inclusive.

This column may be NULL, when the software did not report this value.

AirTemp_Min_Time (Time of Minimum Air Temperature)

A time stamp indicating the minute in which the AirTemp_Min occurred.

This column may be NULL, when the software did not report this value.

AirTemp_Max (Maximum Air Temperature)

Maximum air temperature for this hour, in degrees Celsius. Values must be between -10.0 and 50.0, inclusive.

This column may be NULL, when the software did not report this value.

AirTemp_Max_Time (Time of Maximum Air Temperature)

A time stamp indicating the minute in which the AirTemp_Max occurred.

This column may be NULL, when the software did not report this value.

Wind_Dir (Wind Direction)

Wind direction in degrees from North. Values must be between 0.0 and 360.0, inclusive.

Caution

The values of 0.0 and 360.0 represent the same direction. There's no telling if one or the other of them means something special, like no measurement. If they really do represent the same direction then we should probably change the rules and adjust the data values so that legal values are between 0 and 359.

This column may not be NULL.

WindSpeed_Max_Km_Hr (Maximum Wind Speed, in km/hr)

Maximum wind speed for this hour, in km/hr. Values must be between 0 and 30, inclusive.

This column may be NULL, when the software did not report the value.

WindSpeed_Max_M_S (Maximum Wind Speed, in m/s)

Maximum wind speed for this hour, in m/s. Values must be between 0.0 and 15.0, inclusive.

This column may be NULL, when the software did not report the value.

WindSpeed_Max_Time (Time of Maximum Wind Speed)

A time stamp indicating the minute in which the maximum wind speed[172] was recorded.

This column may be NULL, when the software did not report the value.

Barometer (Barometric pressure)

Atmospheric pressure at the TimeStamp, in kPa. Values must be between 85.0 and 95.0, inclusive.

This column may be NULL, when the value is unknown.

YearlyRain (Yearly Rainfall)

The amount of rain measured since the beginning of the year, in millimeters. Values must be integers greater than or equal to 0.

This column may not be NULL.

TimeStampRain (Rainfall for this TimeStamp)

The amount of rain that was measured at this WStation since the previous TimeStamp in the same calendar year.

This column is calculated by the system automatically. Attempts to insert, update, or delete data in this column will be silently ignored.

This column may not be NULL.

Sys_Period

The timestamp range during which this row's data are considered valid. See The Sys_Period Column for more information.

WREADINGS (Weather Readings)

The WREADINGS table contains one row for each time a person has collected data from the meteorological instruments. So, each WREADINGS row should have at least one associated RAINGAUGES, TEMPMINS, or TEMPMAXS row, but no more than one associated row from any one of these tables.

Note

Automated weather readings are not recorded in WREADINGS .

For any one weather reading the minimum recorded temperature cannot exceed the maximum recorded temperature -- the TEMPMINS.Tempmin value related to the WREADINGS row cannot exceed the related TEMPMAXS.Tempmax value.

The combination of WRdaytime and Wstation must be unique.

The Wstation column cannot be changed when there is a related RAINGAUGES row.

WRid

A unique positive integer representing the meteorological data collection event.

This column is automatically maintained by the database, cannot be changed, and must not be NULL.

Wstation

Code indicating the station from which the data were collected. Must be a value on the WSTATIONS table.

WRdaytime

The day and time the meteorological data were collected. The time zone is Nairobi local time.

Estdaytime

TRUE when the WRdaytime column contains an estimated time. FALSE when the WRdaytime column is an accurate record of the time the measurement was taken.

WRperson

Initials of the person who collected the data. Must be a value contained in the Initials column of a row on the OBSERVERS table.

WRnotes

Textual notes on the weather reading.

This column may be NULL when there are no notes.

This column may not be empty, it must contain characters, and it must contain at least one non-whitespace character.

Sys_Period

The timestamp range during which this row's data are considered valid. See The Sys_Period Column for more information.



[166] One would think that the TEMPMINS and TEMPMAXS tables would need a "span" column similar to RAINGAUGES.RGspan, and a table to correspond to RGSETUPS. As it happens the extraordinary diligence of the field staff in taking regular temperature measurements, in conjunction with the keen analytical skills of the Babase user population, make such an enhancement a flagrant extravagance. Or, to put it another way, it mostly works the way it is so we're leaving well enough alone.

[167] This is ugly, not enforcing a rule simply because of the date. Ideally, someday we'll add something to RGSETUPS (or something) where we can just specify the thermometer's accuracy/precision. But not now. There are squeakier wheels needing grease.

[168] See the footnote from TEMPMINS about how this is not an ideal way to do this and why we're doing it anyway.

[169] 9 Sep 2010 14:08 EDT, from Dion Almond, Yes all sensors should be good to 1 decimal place.

[170] Usually these are the only reasons these gaps occur.

[171] The WeatherHawk always reports a value for this column. However, the instrument was reporting faulty values for a period of time. An improved validation rule would force the values to NULL for the time interval(s) during which the instrument was broken, and require non-NULL values otherwise.


Page generated: 2023-08-29T12:20:17-04:00.