SWERB Data (Group-level Geolocation Data)

This section contains timestamped geolocation data on groups, observers, and significant landscape features (groves, waterholes[124], and possibly other temporary or permanent landmarks), either recorded in a quad coordinate system or collected from GPS units. SWERB stands for Sleeping grove, Waterhole, End time, Ranging, and Begin time. Typically SWERB data are collected at hourly or half hourly intervals. Supporting information includes the locations of tree groves and waterholes. For more information see the Protocol for Data Management: Amboseli Baboon Project.

The quad coordinate system was devised prior to the incorporation of GPS technology into the data collection protocols. It is based on regular sub-divisions of the landscape into a grid of squares, 170 m per side. There is no altitude information associated with quad coordinate points. The IDs and coordinates of these quads are recorded in QUAD_DATA.

The GPS X and Y coordinates are in the WGS 1984 UTM Zone 37South coordinate system. The units of these coordinates are meters, as is the recorded altitude. The recorded precision of the X and Y values include at most 1 non-zero digit to the right of the decimal place, but when the coordinates were recorded using another system the transformation to UTM may yield values with more digits to the right of the decimal. X and Y coordinates must be on or within the bounding rectangle having X coordinates between 42300.0 and 651000.0, inclusive, and Y coordinates between 9497000.0 and 9894500.0, inclusive. The system will generate a warning when the location falls outside the bounding rectangle having X coordinates between 277000.0 and 311100.0, inclusive, and Y coordinates between 9689200.0 and 9709500.0, inclusive. The accuracy may vary; see the Protocol for Data Management: Amboseli Baboon Project for further information on accuracy at various times. Altitude is in meters. Altitude values must be between 0 and 10000, inclusive. There must be no (non-zero) digits to the right of the decimal place for altitude measurements taken before 2004-01-01. After 2004-01-01 one digit may appear to the right of the decimal place. The system will generate a warning when altitude values are NULL but X and Y coordinates are non-NULL.

Some devices and data-exporting applications favor longitude and latitude coordinates via the WGS 1984 2D CRS. Because of this, Babase can read coordinates in that system and transform them to WGS 1984 UTM Zone 37South. Regardless of the coordinate system used when the data are inserted, the coordinates are recorded using UTM. That is, "XYLoc" columns in all Babase tables have the PostGIS "geometry" datatype with SRID 32737, that of WGS 1984 UTM Zone 37South.

All PDOP columns must have values between 0 and 50, inclusive, and have one digit of precision to the right of the decimal. PDOP values are unit-less and should be multiplied by the specified accuracy in meters of the GPS unit to produce a 3 dimensional vector, in meters, representing the possible distance from the true location.[125]

All accuracy columns are in meters[126] with one digit of precision to the right of the decimal and must have values between 0 and 15, inclusive.

The kind of reported error is partially determined by characteristics of the the GPS unit used for data collection. GPS units which report error as a PDOP reading, those with GPS_UNITS.Errortype values of PDOP, cannot be related to rows with non-NULL Accuracy values. GPS units which report error as an accuracy reading, those with GPS_UNITS.Errortype values of accuracy, cannot be related to rows with non-NULL PDOP values. PDOP values must be NULL for data collected before 1993-09-01 or after 2001-01-31. Accuracy values must be NULL for data collected before 2001-02-01.[127] The system will report a warning when data collected with a GPS unit supporting PDOP or accuracy does not include, respectively, PDOP or accuracy values.

Warning

On 2000-05-02, the United States government ended its use of Selective Availability, a national security measure which intentionally lowered the accuracy of GPS signals. For more information about this, see Selective Availability on GPS.gov. The GPS accuracy indices in Babase (Accuracy and PDOP) do not and cannot account for this inaccuracy, so users should be aware that any GPS data collected through 2000-05-02 are likely less accurate than indicated.

Warning

GPS data between May and August 2019 are unreliable, apparently thanks to some issues with the European Union's Galileo satellites. See the SWERB Notebook for more information and documentation of this issue.

Starting 2004-01-01, GPS data began to be downloaded directly from the GPS units instead of being transcribed by hand. One consequence is that starting 2004-01-01 operators entered up to 10 characters of descriptive codes with each GPS waypoint taken. This information is processed and distributed throughout the SWERB data but the various Garmincode columns retain the raw data as entered by the operator.[128] Before 2004-01-01 the Garmincode columns must contain a NULL. On or after this date the Garmincode columns must not be NULL, but may be a string 0 characters long.[129] SWERB_DATA are the exception to this rule and may always be NULL. Begin and end rows, rows with a SWERB_DATA.Event values of B or E, may have NULL Garmincode columns regardless of date so that the data entry staff may supply begin and end rows without X and Y coordinates should the field team forget to record a begin or end row. Other SWERB_DATA rows are except from the Garmincode requirement to handle situations, notably those which involve lone animals, where data was written manually for some reason.

Before 2004-01-01 the GPS_Datetime columns must be NULL. The date portion of the GPS_Datetime columns must correspond to the date related to containing row. The time portion of the GPS_Datetime column is not validated, although the time portion of the GPS_Datetime value occasionally serves as data against which other columns are validated.

Caution

The Garmincode and GPS_Datetime columns may be NULL, without warning, no matter the date. This is to accommodate the manual recording of data taken using GPS units.[130]

Note

Data is validated per-observation team, per-group, per-day. Data upload and maintenance must be done within transactions that produce valid per-observation team, per-group, per-day data sets.

Note that it may be more convenient to use the views that support the SWERB data than to access the raw data.

AERIALS (Aerial photos)

This table contains one row for every aerial photo used in the specification of map quadrant system used in the early SWERB data.

Aerial (Aerial Identifier)

A unique identifier of the aerial photo. This is an integer greater than or equal to 1. It is used to refer to a particular aerial photo.

This column may not be NULL.

Date

The date the aerial photo was taken. 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.

GPS_UNITS (Individual GPS Devices)

This table contains one row for each GPS unit which has been used in the field.

Note

In actual fact early records of unit identification may have been lost. In such cases a row in GPS_UNITS represents a number of units having the same capabilities (i.e. of the same make and model).

The date the unit was first used (Start) must be on or before the date the unit was last used (Finish).

The label on the GPS unit, the Label value must be unique within the time period in during which the GPS unit was in use, between the Start and Finish dates, inclusive.

GPS (GPS unit identifier)

A 2 digit non-negative numeric value that identifies the GPS unit as a distinct object throughout all time.

This column may not be NULL.

Descr (Description)

A short textual description of the GPS unit. If necessary this may include additional notes on such details as when the unit was used, its purpose, and so forth.

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

Make (Manufacturer)

The manufacturer of the GPS unit.

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

Model

The model of the GPS unit. This should be sufficiently detailed that the technical specifications of the unit can be found given this information.[131]

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

Errortype (Type of Error reporting)

The type of error the unit reports. This must be one of:

PDOP

The error is supplied as positional dilution of position.

accuracy

The error is in meters.

See the SWERB Data overview for more information.

This column may not be NULL.

Label (Identifying letter marked on the unit)

The letter code marked on the unit. Note that this information is not enough to uniquely identify the unit because the same letter codes have been used on different units at different times.

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

Start (Date of first use)

The date the GPS device entered service. This date cannot be before 1993-09-01, the date GPS units were first used. This column may not be NULL.

Finish (Date of last use)

The date the GPS unit was taken out of service. This column may be NULL when the unit is still in service.

Sys_Period

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

QUAD_DATA (map Quadrants)

The QUAD_DATA table contains one row for every map quadrant. For more information, see above in the introduction to the SWERB data.

Note

Before these quads were delineated on 1981-11-01, large scale aerial photographs were used to signify location in SWERB data.

Note

The QUADS view can be used to maintain the QUAD_DATA table. This view may also be more useful than the table when querying.

Quad (map Quadrant identifier)

The unique identifier code used to refer to a particular map quadrant.[132] This column may not be NULL.

XYLoc (X and Y WGS 1984 UTM Zone 37South coordinates)

The X and Y WGS 1984 UTM Zone 37South coordinates of the centroid of the map quadrant. This column may be NULL.

See the SWERB Data overview for more information.

Aerial (Aerial photo Identifier)

Code indicating the aerial photo in which the map quadrant is located, if any. Must be a value on the AERIALS table.

This column may be NULL when there is no aerial photo for the map quadrant.

Sys_Period

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

SWERB_BES (Begin/Ends: Uninterrupted bouts of group-level observation)

This table contains one row for every uninterrupted bout of group-level observation for which there is SWERB data.

Start and Stop values are automatically assigned the SWERB_DATA.Time value from the related SWERB_DATA row with an Event value of B and E rows, respectively. The begin and end of the bout of observation is determined by the begin and end rows entered in the field (or determined by the data manager).

Start must be NULL or be after the related SWERB_DEPARTS_DATA.Time, if any.

The Start value records the start of the day's observation of the group when there exists a related SWERB_DATA.Event value of B and that value is the first for that group/day and there is no earlier SWERB_DATA.Event E value. Likewise the Stop value records the end of the day's observation of the group when there exists a related SWERB_DATA.Event value of E and that value is the last for that group/day and there is no later SWERB_DATA.Event B value. The Start time cannot be after the Stop time.

The Btimeest value is only meaningful when either there is a begin time value or when investigation of existing records indicates that no record of a begin time on file -- when either the Start time value is non-NULL or the Bsource value is NR. The Etimeest value is only meaningful when either there is an end time value or when investigation of existing records indicates that no record of an end time on file -- when the Stop time value is not NULL or the Esource value is NR. When the values in these columns are meaningful they must contain a non-NULL value, otherwise they must contain a NULL value.[133] When the source of the start or stop time is NR then the estimated time flag must be FALSE and the time must be NULL.[134][135] It is required that there be a record of whether the start and stop times are estimated when there are start and stop times -- the Start and Stop columns cannot be non-NULL when the Btimeest and Etimeest columns, respectively, are NULL.[136] It is required that there be a record of the source of the start and stop times when there are start and stop times -- the Bsource and Esource values must be NULL unless, respectively, the Btimeest and Etimeest values are non-NULL.

SWERB_BES rows are automatically sequenced when no Seq is specified[137]by Start value, unless the Start value is NULL in which case they are sequenced last of all existing SWERB_BES rows for the group/day when initially inserted and otherwise not automatically sequenced.[138] In the case of a tie the automatic sequencing places the newly inserted row[139] last among the rows that are tied. Seq values may be manually assigned so long as the manual sequencing does not result in out-of-order Start values, or in those cases where Start is NULL, so long as the manually assigned sequence number is less than or equal to that which would be automatically assigned.[140]

As expected, changing the Start value (via a SWERB_DATA row with an Event value which indicates the start of observation) will automatically change the Seq value. Should there be other SWERB_BES rows for that group/day with the same SWERB_BEs-Start value the newly changed row will be be sequenced after the existing rows.[141]

Every bout of observation must have exactly one beginning -- there must be exactly one related row on SWERB_DATA with an Event of B. Every bout of observation must have exactly one end -- there must be exactly one related row on SWERB_DATA with an Event of E. These requirements are enforced on transaction commit, so the SWERB_BE row and the begin and end SWERB_DATA rows must all be created within a single transaction. The system will generate a warning when there are no observations in a bout of observation -- when there are no related SWERB_DATA rows with Event values other than B and E.

The focal group, Focal_grp, must be in existence, based on GROUPS.Start and GROUPS.Cease_To_Exist, on the date of the observation.

BEId (Begin/End Identifier)

A unique identifier. This is an automatically generated sequential number that uniquely identifies the row and may be used to refer to a particular bout of uninterrupted observation.

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

DId (Departure Identifier)

The id of the SWERB_DEPARTS_DATA row representing the departure from camp of the observation team. This column cannot be changed.[143] This column must not be NULL.

Focal_grp

The group under observation. The legal values for this column are from the Gid column of the GROUPS table. This column cannot be changed.[144]This column may not be NULL.

Start (observation Starting time)

The time the bout of observation started. The time may not be before 05:00 and may not be after 20:00. The time must be on the minute mark; the seconds must be zero. This column may be NULL when the start of observation is unknown.

Btimeest (Begin Time is Estimated)

TRUE when the Start value is an estimation of the time the daily observation of the group began. FALSE otherwise. This column should be NULL when the Start time is the start of a uninterrupted bout of observation but is not the start of the day's observation of a group.

Bsource (Begin time estimation Source)

The source of the data used to estimate the Start value when that value is estimated and represents the start of the day's observation of the group -- how the start of the daily observation of the group was estimated. The legal values of this column are defined by the SWERB_TIME_SOURCES table. This column must be NULL when the Start time is the start of a uninterrupted bout of observation but is not the start of the day's observation of a group.

Stop (observation ending time)

The time the bout of observation ended. The time may not be before 05:00 and may not be after 20:00. The time must be on the minute mark; the seconds must be zero. This column may be NULL when the end of observation is unknown.

Etimeest (End Time is Estimated)

TRUE when the Stop value is an estimation of the time the daily observation of the group began. FALSE otherwise. This column should be NULL when the Stop time is the end of a uninterrupted bout of observation but is not the end of the day's observation of a group.

Esource (End time estimation Source)

The source of the data used to estimate the Stop value when that value is estimated and represents the end of the day's observation of the group -- how the end of the daily observation of the group was estimated. The legal values of this column are defined by the SWERB_TIME_SOURCES table. This column must be NULL when the Stop time is the end of a uninterrupted bout of observation but is not the end of the day's observation of a group.

Seq (daily per-group Sequence number)

A sequence number indicating the ordering of the bouts of uninterrupted observation of each group each day. The first bout of observation for the group for the day has a Seq value of 1, the second a value of 2, etc.

The system automatically re-computes Seq values to ensure that they are contiguous and begin with 1. See the overview of the SWERB_BES table and the Automatic Sequencing section for further information.

Is_Effort (does the bout count toward observer Effort)

A boolean value. TRUE means that the bout of observation counts toward total observer effort. FALSE means that the bout is concurrent with another bout of observation by the same team and should not count toward observer effort.

This column cannot be NULL.

Notes (Notes on the bout of observation)

Notes, if any, on the bout of observation. This column may not be empty, it must contain characters, and it must contain at least one non-whitespace character.

This column may be NULL.

Sys_Period

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

SWERB_DATA (Group Level GPS Point Samples)

This table contains one row for every event related to group-level geolocation.[145]Such events geolocate a group upon the occurrence of a significant activity, including but not limited to ascent, descent, and drinking. Other events include geolocation at regular intervals and the begin and end of each bout of uninterrupted observation.

Note

The typical Babase user may find the SWERB view to be easier to query than SWERB_DATA and its related tables. It may be easier to use the SWERB_DATA_XY view to maintain SWERB_DATA than it is to modify the table content directly.

Rows with an Event value of O or P are not part of an observation bout of the focal group and so, unless the observed group is a Subgroup[146] or is the unknown group[147], must have a Seen_grp value which differs from that of the group under observation -- the SWERB_BES.Focal_grp value of the related SWERB_BES row. Likewise, rows which do not have an Event value of O or P must have a Seen_grp value of the group under observation -- a value which equals the SWERB_BES.Focal_grp value in the related SWERB_BES row.[148]The system will generate a warning when the SWERB_DATA row is for a non-focal group and the observed group is a subgroup and the observed group is the same as the focal group -- when Event is O and Subgroup is TRUE and SWERB_DATA.Seen_grp is the same as the related SWERB_BES.Focal_grp.

Per bout of observation, per BEId, there must be exactly one SWERB_DATA row recording the start and exactly one recording the finish of the bout -- exactly one SWERB_DATA row having an Event value of B and exactly one having a E value, respectively.

The time of the observation must be between the start and stop times of the bout of observation -- the Time value must be between (inclusive) the related SWERB_BES.Start and SWERB_BES.Stop values. Because SWERB_BES.Start may be NULL the Time value is also checked to be sure that it's not before the time the observation team departed from camp, before SWERB_DEPARTS_DATA.Time. Because SWERB_DEPARTS_DATA.Time may also be NULL the Time value is checked to be sure that it is not before 05:00. Because SWERB_BES.Stop may be NULL the Time value is checked to be sure that it is not after 20:00.

The date portion of the GPS_Datetime value must be the date of the observation team's departure from camp -- must equal the related SWERB_DEPARTS_DATA.Date value. The waypoint time recorded by the operator cannot be more than 15 minutes before the actual time the observation was taken -- the Time value cannot be more than 15 minutes before the time portion of the GPS_Datetime value. The exception to this rule is when a group drinks from a water hole; for these water hole events, the waypoint time cannot be more than 30 minutes minutes before the actual time the observation was taken. The waypoint time recorded by the operator cannot be more than 5 minutes after the actual time the observation was taken -- the Time value cannot be more than 5 minutes after the time portion of the GPS_Datetime value.

The Quad column records group location based on map quadrants and is used only in older data. Data recorded after 1994-09-30, rows associated with SWERB_DEPARTS_DATA rows with Date values after 1994-09-30, must have NULL Quad values. GPS units were used in later SWERB data collection so data recorded before 1993-09-01, rows associated with SWERB_DEPARTS_DATA rows having Date values before 1993-09-01, must have NULL XYLoc values.

Only data collected using GPS units have altitude, PDOP, accuracy, a GPS timestamp, or Garmincode values -- when the XYLoc column is NULL then the Altitude, PDOP, Accuracy GPS_Datetime, and Garmincode values must also be NULL.

The observed lone animal must be NULL unless the waypoint is an observation of a lone animal/non-focal group — Lone_Animal must be NULL unless Event is O.

Note

An other group observation of an unknown lone animal is recorded in a SWERB_DATA row having a NULL Lone_Animal value and a Seen_grp value of 10.0 (the group denoting a lone animal).

The observed predator must be NULL unless the waypoint is an observation of a predator — the Predator must be NULL unless the Event is P, in which case the Predator must not be NULL.

The observer's distance from the observed lone animal, predator, or non-focal group must be NULL unless the waypoint is an observation of a lone animal, predator, or non-focal group -- Ogdistance must be NULL unless Event is O or P.

Note

Through the end of 2022, the observers' protocol for recording this distance was either been poorly defined or poorly adhered-to. (It is unclear which.) Distances were occasionally recorded but usually not. It is unclear what decisions were made at the time that might decide whether or not to record this distance. To avoid fallacious assumptions about the nature of the data, all distances recorded before 01 Jan 2023 have been manually set to NULL.

In case someone wants to use the SWERB_DATA_HISTORY table to retrieve the once-present distances, they were set to NULL at 2023-03-22 00:20:44.206126+03 (Nairobi time).

The observed group, Seen_grp, must be in existence, based on GROUPS.Start and GROUPS.Cease_To_Exist, on the date of the observation.

An observed lone animal, Lone_Animal, must have already entered the study population and must be alive on the date of observation -- the SWERB_DEPARTS_DATA.Date related to the SWERB_DATA row must be between individual's related Entrydate and Statdate, inclusive. The system will return a warning if the related Date is before the individual's LatestBirth.

The system will generate a warning if a lone animal is a male and is observed more than 60 days before his assigned dispersal date -- before DISPERSEDATES.Dispersed.

When a lone individual is observed, the observed group must be the group reserved for lone animals -- when SWERB_DATA.Lone_Animal is non-NULL then SWERB_DATA.Seen_grp must be 10.0.

Caution

Interpolation does not reference SWERB data when making its computations. Consequently the MEMBERS table does not reflect SWERB sightings of lone individuals -- unless those sightings are otherwise recorded in the DEMOG table.

When a predator is observed, the observed group must be the group reserved for predator sightings -- when SWERB_DATA.Predator is non-NULL then SWERB_DATA.Seen_grp must be 99.0.

Note

It is not possible from these data to determine the number (quantity) of predators observed. Information like this is recorded, but not in the GPS units[149]. See the Amboseli Baboon Research Project Monitoring Guide for more information.

SWId (SWerb event Identifier)

A unique identifier. This is an automatically generated sequential number that uniquely identifies the row and may be used to refer to a particular GPS event.

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

BEId (Begin/End Identifier)

The id of the SWERB_BES row representing the bout of uninterrupted observation of which the SWERB_DATA row is a part. This column cannot be changed and must not be NULL.

Seen_grp

The group under observation. Note that this is not always the focal group which the observation team set out to observe. For further details see the Protocol for Data Management: Amboseli Baboon Project. The legal values for this column are from the Gid column of the GROUPS table.

This column may not be NULL.

Lone_Animal

The BIOGRAPH.Sname of the observed lone animal.

This column may be NULL to indicate either that a lone animal was not observed or that an unknown lone animal was observed.

Event (half hourly/hourly, watering, begin, end, other group)

A code indicating what sort of event the row represents. The following codes are defined:

B

The row represents the beginning of a bout of uninterrupted observation of the focal group.

E

The row represents the end of a bout of uninterrupted observation of the focal group.

H

The row represents an observation of the focal group. These occur on half hourly or hourly intervals, depending on the protocol used to record the data.

W

The row records the focal group's drinking.

O

The row represents the observation of a non-focal group or lone animal.

P

The row represents a sighting of a predator.

This column may not be NULL.

Time

The time of the observation. This is usually the time manually entered by the observer but in those cases where the observer does not enter a time (such as begin and end rows) the SWERB_UPLOAD view may use GPS supplied information to calculate a time. See the section on the SWERB_UPLOAD.Description column. The time must be on the minute mark; the seconds must be zero. This column may be NULL when the time is not known.

Quad (map Quadrant)

The map quadrant of the seen group's location, when recorded in the field. The legal values for this column are from the Quad column of the QUAD_DATA table.

This column may be NULL.

XYLoc (X and Y WGS 1984 UTM Zone 37South coordinates)

The X and Y WGS 1984 UTM Zone 37South coordinates of the seen group. This column may be NULL.

See the SWERB Data overview for more information.

Altitude

The altitude, in meters, of the landscape on which the seen group is located. This column may be NULL.

See the SWERB Data overview for more information.

PDOP (error in Positional Dilution Of Precision)

The amount of error reported as positional dilution of precision. This column may be NULL when there is no PDOP information.

See the SWERB Data overview for more information.

Accuracy (in meters)

The accuracy of the GPS reading, in meters. This column may be NULL when there is no accuracy information in meters.

See the SWERB Data overview for more information.

Subgroup

TRUE when the observation is of a subgroup, FALSE when not.

Note that the field team cannot always record subgroup information and the value in this column is therefore sometimes determined heuristically[150] when the data is uploaded by the SWERB_UPLOAD view.

This column must not be NULL.

Ogdistance (Distance to Other Group)

The distance, in meters, between the observer and the observed non-focal group or the observer and the observed lone animal. This value must be a 3 digit non-negative integer that is also a mulitple of 0.

This column may be NULL when the observers did not record an Ogdistance (i.e. NULL values are not to be confused with zero distance).

GPS_Datetime (GPS supplied Date and Time)

The date and time automatically supplied by the GPS unit at the time the waypoint was recorded. For further information on when this column is NULL and when non-NULL see the SWERB Data overview.

This column may be NULL.

Garmincode (operator supplied waypoint value)

The information manually entered by the observer into the GPS unit as a coded waypoint that describe the SWERB data being recorded. This column may be empty, it need not contain characters, but it may not contain only whitespace characters. For further information on when this column is NULL and when non-NULL see the SWERB Data overview.

This column may be NULL. See the SWERB Data overview for more information.

Predator (code for observed predator)

The PREDATORS.Predator code of the observed predator.

This column may be NULL, when this row is not for a predator sighting.

Sys_Period

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

SWERB_DEPARTS_DATA (Observation team departures from camp)

This table contains one row for every departure from camp of every observation team, for those observation teams which have collected SWERB data.

The Time value may not be NULL when there is a related SWERB_DEPARTS_GPS row -- data collected using the GPS units must have a non-NULL time.

One observer may not depart camp on the same day at the same time with two different observation teams -- the combination of SWERB_DEPARTS_DATA.Date, SWERB_DEPARTS_DATA.Time, and SWERB_OBSERVERS.Observer, when all are non-NULL, must be unique.

The system will generate a warning for SWERB_DEPARTS_DATA rows having a Date after 1994-09-30 that do not also have a related SWERB_DEPARTS_GPS row.

The system will generate a warning for SWERB_DEPARTS_DATA rows for which no SWERB data was collected; that do not have a related SWERB_BES row.

Note

The SWERB_DEPARTS view can be used to maintain the SWERB_DEPARTS_DATA table. This view may also be more useful than the table when querying.

Warning

At the time of this writing departure data prior to about March of 2011 is not in the database. The process involved in loading historical data fabricates (departure date excepted, the actual departure date is used) the minimal required departure information. The early process used by the Data Manager involving loading data from the GPS units sometimes involved removing departure information. For further information and exact dates see the Data Manager's [Process for Uploading SWERB] document.

DId (Departure Identifier)

A unique identifier. This is an automatically generated sequential number that uniquely identifies the row and may be used to refer to a particular departure from camp of a particular observation team.

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

Date

The date of departure. This date must be on or after 1981-11-01 This column must not be NULL.

Time

The time of departure. The time may not be before 04:00 and may not be after 20:00. The system will generate a warning if the time is before 05:00 or after 14:30. The time must be on the minute mark; the seconds must be zero. This column may be NULL.

Sys_Period

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

SWERB_DEPARTS_GPS (SWERB GPS Departure data)

This table contains one row for every departure from camp of every observation team, for those observation teams which have collected SWERB data using GPS units. This table is an extension of the SWERB_DEPARTS_DATA that contains the additional information collected when a GPS unit is used to record the departure. There is at most one row in this table for every row in SWERB_DEPARTS_DATA. When a row exists it contains the information involving the GPS unit used by the observation team on that day. All SWERB_DEPARTS_DATA rows having associated SWERB_DEPARTS_GPS rows must have SWERB_DEPARTS_DATA.Date values on or after 1993-09-01.

The date of departure (SWERB_DEPARTS_DATA.Date) must be between the SWERB_DEPARTS_GPS' Start and Finish dates, inclusive.

Note

The SWERB_DEPARTS view can be used to maintain the SWERB_DEPARTS_GPS table. This view may also be more useful than the table when querying.

The system will generate a warning when there is more than one departure per GPS unit per day.

DId (Departure Identifier)

The id of the SWERB_DEPARTS_DATA row representing the departure from camp of the observation team. This column cannot be changed and must not be NULL.

XYLoc (X and Y WGS 1984 UTM Zone 37South coordinates)

The X and Y WGS 1984 UTM Zone 37South coordinates at departure. This column must not be NULL.

See the SWERB Data overview for more information.

Altitude

The altitude in meters of the GPS unit. This column may be NULL.

See the SWERB Data overview for more information.

PDOP (error in Positional Dilution Of Precision)

The error reported as positional dilution of precision. This column may be NULL.

See the SWERB Data overview for more information.

Accuracy (in meters)

The error reported in meters. This column may be NULL.

See the SWERB Data overview for more information.

GPS (GPS used by the team)

The identifier of the GPS device (the GPS_UNITS.GPS) used by the observation team. The legal values of this column are defined by the GPS_UNITS support table.

This column must not be NULL.

Garmincode (operator supplied waypoint value)

The information manually entered into the waypoint by the observer. This is a set of, mostly, single character codes that describe the SWERB data being recorded. This column may be empty, it need not contain characters, but it may not contain only whitespace characters. For further information on when this column is NULL and when non-NULL see the SWERB Data overview.

This column may be NULL. See the SWERB Data overview for more information.

Sys_Period

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

SWERB_GWS (SWERB Grove and Waterholes)

This table contains one row for every geolocated physical object, that is, for every grove and waterhole.[151]

Caution

This table may contain one row with special meaning. The SWERB_GWS row with a Loc value of UNK represents the unknown grove -- a grove with special properties. When a SWERB_GWS row exists with a SWERB_GWs-Loc value of UNK then the Type value must be G (grove). No trees may be located in the unknown grove -- TREES.Loc may not be UNK. The unknown grove may not be located anywhere -- SWERB_GW_LOC_DATA.Loc may not be UNK. And when it is not known where a group slept there can be no uncertainty regarding the sleeping grove -- when SWERB_LOC_DATA.Loc is UNK then SWERB_LOC_DATA.Loc_Status must be C (certain).

SWERB_GWS rows that represent groves, those with a SWERB_GWs-Type of G, have restrictions on the allowed Loc values due to the data structure supplied the SWERB_UPLOAD view (the Name column sometimes contains a grove code prefaced with the letter P). There cannot be two codes for groves, one which begins with the letter P and another which consists entirely of the same characters as the first but with the initial P omitted.[152] Because of this restriction the Babase administrator is the only user allowed to create Loc values which begin with the letter P.

With the exception of the unknown grove, the system will report a warning when the grove or waterhole has not been geolocated -- when there is no related SWERB_GW_LOC_DATA row.

Loc (Location)

A unique identifier. Up to 4 alphanumeric non-lowercase characters that uniquely identifies the row and may be used to refer to the grove or waterhole.

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

Type (Type of place)

The type of place; whether grove, waterhole, or some other landmark. The legal values for this column are from the Place column of the PLACE_TYPES (codes for various landscape features) table.

This column must not be NULL.

Altname (Alternative Name)

Up to 20 characters of alternative name for the grove or waterhole.

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

Start (Starting date)

The date when the grove or waterhole was named. This date cannot be before 1981-11-01.

This column must not be NULL.

Finish (Finish date)

The date of last known use after which the resource became permanently unavailable.

This column may be NULL when observations are ongoing or the row represents an object that cannot become unavailable.

Notes

Textual notes on the grove or waterhole, if any.

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

Sys_Period

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

SWERB_GW_LOC_DATA (SWERB Grove/Waterhole Location Data)

This table contains one row for each time a location of a place, a grove or waterhole is recorded. Any given grove or waterhole may have its location recorded more than once.

Note

The typical Babase user may find the SWERB_GW_LOCS view to be easier to query than SWERB_GW_LOC_DATA and its related tables. It may be easier to use the SWERB_GW_LOC_DATA_XY view to maintain SWERB_GW_LOC_DATA than it is to modify the table content directly.

The date related to the location (SWERB_GW_LOC_DATA.Date) may not be before the grove or waterhole was first observed, may not be before the related SWERB_GWS.Start value. The date related to the location (SWERB_GW_LOC_DATA.Date) may not be after the grove or waterhole ceases existance, may not be after the related SWERB_GWS.Finish value.

The Quad column records group location based on map quadrants and is used only in older data. Data recorded after 1994-09-30, rows with Date values after 1994-09-30, must have NULL Quad values. GPS units were used in later SWERB data collection so data recorded before 1993-09-01, rows having Date values before 1993-09-01, must have NULL XYLoc values, unless the UTM XY coordinates were obtained through other means (XYSource is non-NULL).

There can only be a source for the recorded X and Y coordinates when there are recorded UTM coordinates -- the XYSource value may be non-NULL only when XYLoc is non-NULL. There must be X and Y UTM coordinates when there is a recorded source for the X and Y coodinates -- XYLoc must be non-NULL when XYSource is non-NULL.

Only data collected using GPS units have altitude, PDOP, accuracy, and GPS values -- when the XYLoc column is NULL then the Altitude, PDOP, Accuracy, GPS values must also be NULL.

The GPS unit used to make the observation must be in service on the date of the observation -- the date of the observation (Date) must be between the SWERB_DEPARTS_GPS' Start and Finish dates, inclusive, of the related GPS_UNITS row.

SGWLId (SWERB Grove/Waterhole Location Identifier)

A unique identifier. This is an automatically generated sequential number that uniquely identifies the row and may be used to refer to an observation which recorded the location of a particular grove or waterhole.

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

Loc (Location)

The SWERB_GWS.Loc of the grove or waterhole associated with the recorded location.

This column must not be NULL.

Date

The date related to the location. This is either the date the location was caculated or an observation date. See the Protocol for Data Management: Amboseli Baboon Project for further information. This column must not be NULL.

Time

The time of the observation. When the data are taken with a GPS unit this is the time recorded by the GPS unit. The time cannot be before 05:00 and cannot be after 20:00. The time must be on the minute mark; the seconds must be zero. This column may be NULL when the time is not known.

Quad (map Quadrant)

The map quadrant of the grove or waterhole's location, when recorded. The legal values for this column are from the Quad column of the QUAD_DATA table.

This column may be NULL.

XYSource (Source of X/Y coordinates data)

The source of the UTM coodinate data. The legal values for this column are from the XYSource column of the SWERB_XYSOURCES (SWERB Time Sources) table.

This column may be NULL.

XYLoc (X and Y WGS 1984 UTM Zone 37South coordinates)

The X and Y WGS 1984 UTM Zone 37South coordinates of the grove or waterhole. This column may be NULL.

See the SWERB Data overview for more information.

Altitude

The altitude, in meters, of the grove or waterhole. This column may be NULL.

See the SWERB Data overview for more information.

PDOP (error in Positional Dilution Of Precision)

The error reported as positional dilution of precision. This column may be NULL when there is no PDOP information.

See the SWERB Data overview for more information.

Accuracy (in meters)

The error reported in meters. This column may be NULL when there is no accuracy information in meters.

See the SWERB Data overview for more information.

GPS (GPS used by the team)

The identifier of the GPS device (the GPS_UNITS.GPS) used in the observation. The legal values of this column are defined by the GPS_UNITS support table.

This column may be NULL.

See the SWERB Data overview for more information.

Notes

Textual notes regarding the record of the grove or waterhole's location, if any.

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

Sys_Period

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

SWERB_LOC_DATA (LOCation-Specific DATA from GPS Points)

This table contains one row every time a group is observed at a geolocated physical object, i.e. at a grove or a waterhole or, possibly, some other physical landmark.[153]

SWERB_LOC_DATA rows must place a group at a single location -- each SWERB_DATA row has at most one related SWERB_LOC_DATA row. In effect, SWERB_LOC_DATA extends SWERB_DATA with additional columns.

Descent from, or ascent into, groves is indicated in the ADcode column. To indicate a descent, the ADCode value must relate to an ADCODES row a ADN value of D. To indicate an ascent, the ADCode value must relate to an ADCODES row a ADN value of A.

The observations recording descent from or ascent into sleeping groves must be related to groves (the related SWERB_GWS rows must have a Type of G).

The SWERB_DATA row representing the "begin" of the team's first bout of observation (the bout with the smallest SWERB_BES.Seq value) of any group (except the unknown group, group 9.0)[154] in a day must be related to a SWERB_LOC_DATA row recording descent from a sleeping grove. This enforces the requirement that a day's observations of a group must include the group's descent from exactly one grove (possibly the unknown grove). A group can be recorded as descending from more than one grove, but only when all of the descents are by subgroups (the related SWERB_DATA.Subgroup is TRUE), or all but one of the descents are by subgroups and those subgroup descents are from the unknown grove.

Similarly, the SWERB_DATA row representing the "end" of the team's final bout of observation (the bout with the greatest SWERB_BES.Seq value) of any group (except the unknown group, group 9.0)[155] in a day must be related to a SWERB_LOC_DATA row recording ascent into a sleeping grove. This enforces the requirement that a day's observations of a group must include the group's ascent into exactly one grove (possibly the unknown grove). A group can be recorded as ascending into more than one grove, but only when all of the ascents are by subgroups (the related SWERB_DATA.Subgroup is TRUE), or all but one of the ascents are by subgroups and those subgroup ascents are into the unknown grove. The database rules that enforce these "ascent into sleeping grove" rules are checked at transaction commit.[156]

Tip

When a group splits into subgroups and descends from or ascends into multiple groves there must be a separate bout of observation, another SWERB_BES row, to record the location of each subgroup.

Whether a SWERB_LOC_DATA row must have a NULL ADtime value or must have a non-NULL ADtime value is determined by the related ADCODES.Time flag.[157] Ascent and descent times related to a bout of observation cannot be before the beginning of the bout of observation -- SWERB_LOC_DATA.ADtime cannot be before the related SWERB_BES.Start time.[158] The database rules that enforce ADtime values are checked at transaction commit.[159]

Note

Descent and ascent times are recorded manually; they are not taken from the timestamps supplied by the GPS units. This necessitates additional columns for descent and ascent information. For further information see the Amboseli Baboon Research Project Monitoring Guide.

When the location is the unknown grove, status of that location must be 'certain'. That is, when the Loc value is UNK then the Loc_Status value must be C.

Babase allows SWERB data to record group presence at arbitrary landmarks, but some possibilities are rare and result in a warning. The system will issue a warning when a group is located at a waterhole but the recorded activity is not water (when the SWERB_GWS row's Type is W but the related SWERB_DATA row's Event value is not W).

SWERB_DATA rows representing observation of a group drinking at a waterhole must be related to waterholes. That is, when SWERB_DATA.Event is W there must be a related SWERB_GWS row, even if it is the generic and non-specific row which represents all rainpools, and the related SWERB_GWS row must have a Type value of W. In some cases this check is at transaction commit time and in other cases not.

Rows that record a drinking event -- those related to SWERB_DATA rows which have W Event values -- must have SWERB_LOC_DATA.ADcode values that indicate no involvement with a sleeping grove; the related ADCODES row must have a ADN value of N.

Groups may not be located at a place before observations began at the place or after observations ended at the place. That is, the SWERB_DEPARTS_DATA.Date related to the SWERB_DATA row referenced by the SWERB_LOC_DATA.SWId value must not be before the related SWERB_GWS.Start value and must not be after the related SWERB_GWS.Finish value.

SWId (SWERB Identifier)

The number that uniquely identifies the row and may be used to refer to an observation of a group at a particular time at a particular grove or waterhole. This is also the SWERB_DATA.SWId identifying the group, place, and time of the observation.

This column must not be NULL and cannot be changed.

Loc (Location)

The SWERB_GWS.Loc of the object (grove, waterhole, or landmark) where the group was observed.

This column must not be NULL.

ADcode (Ascent/Descent Code)

A code representing the nature of the relationship between the baboon group and the landscape feature at which the SWERB_LOC_DATA row places the group. The legal values of this column are defined by the ADCODES support table.[160]

This column must not be NULL.

Loc_Status (Location Observation Status)

The SWERB_LOC_STATUSES.Loc_Status value indicating the status of this observation of the location on record (this row's Loc). Usually, this will indicate whether the observers actually saw the group at the location or inferred that the group was there. For instance, if the group is still in a sleeping grove when the observers arrive then they will be "certain" about that grove (Loc_Status = C), but if the group is walking away from the grove when the observers arrive then they may indicate the grove as 'probable'(Loc_Status = P).

Note

Although the database supports degrees of certainty with respect to any group location, in practical terms the only time that there will be any degree of uncertainty will involve sleeping groves. This is for two reasons. First, at present the only provision in the Amboseli Baboon Research Project Monitoring Guide involving uncertainty is with respect to sleeping groves. Second, the SWERB_UPLOAD will only ever enter an indication of uncertainty into the database when the location is a sleeping grove.[161]

This column may not be NULL.

ADtime (Ascent/Descent Time)

The median time of group decent from or ascent into a sleeping grove. See the Amboseli Baboon Research Project Monitoring Guide for information regarding how median descent and ascent times are determined. The time may not be before 05:00 and may not be after 20:00. The time must be on the minute mark; the seconds must be zero. This column may be NULL.

Sys_Period

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

SWERB_LOC_GPS (Secondary Data for LOCations in GPS points)

The SWERB data collection protocol sometimes requires 2 GPS waypoint entries to record a group's presence at a physical landscape feature. (At the time of this writing descent from and ascent into sleeping groves requires 2 GPS waypoint entries.) This table contains one row every time a group is observed at a geolocated landscape feature and 2 GPS waypoints are required to record the data. The rows of this table contain the information stored in the second GPS waypoint, information automatically generated by the GPS unit or manually entered into the GPS unit, that otherwise have no place in the database.

Note

It may be easier to use the SWERB_LOC_GPS_XY view to maintain SWERB_LOC_GPS table than it is to modify the table content directly.

The SWERB_LOC_GPS table extends the SWERB_LOC_DATA table[162] with additional columns; SWERB_LOC_GPS contains at most one row for every row in SWERB_LOC_DATA.

As described in the SWERB Data overview above, data was first obtained directly from the GPS units on 2004-01-01. Consequently, this table cannot contain rows dated earlier than 2004-01-01.

SWId (SWerb event Identifier)

The number that uniquely identifies the row and may be used to refer to the GPS information involving an observation of a group at a particular time at a particular grove or waterhole. This is also the SWERB_DATA.SWId value, identifying the group, place, and time of the observation, and the SWERB_LOC_DATA.SWId value, identifying the placement of the group at a landscape feature.

This column must not be NULL and cannot be changed.

XYLoc (X and Y WGS 1984 UTM Zone 37South coordinates)

The X and Y WGS 1984 UTM Zone 37South coordinates of the SWERB_DATA.seen group. This column may not be NULL.

See the SWERB Data overview for more information.

Altitude

The altitude, in meters, of the landscape on which the seen group is located. This column may be NULL.

See the SWERB Data overview for more information.

PDOP (error in Positional Dilution Of Precision)

The amount of error reported as positional dilution of precision. This column may be NULL when there is no PDOP information.

See the SWERB Data overview for more information.

Accuracy (in meters)

The accuracy of the GPS reading, in meters. This column may be NULL when there is no accuracy information in meters.

See the SWERB Data overview for more information.

GPS_Datetime (GPS supplied Date and Time)

The date and time automatically supplied by the GPS unit at the time the waypoint was recorded. This column may not be NULL.

This column may be NULL.

Garmincode (operator supplied waypoint value)

The information manually entered by the observer into the GPS unit as a coded waypoint that describe the SWERB data being recorded. This column may be empty, it need not contain characters, but it may not contain only whitespace characters. This column may not be NULL, although it may be a string 0 characters long. See the SWERB Data overview for more information.

Sys_Period

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

SWERB_OBSERVERS

For teams collecting SWERB data this table contains one row for every departure from camp of every member of the departing observation team for those team members who drive or record data.

The system will generate a warning for those SWERB_DEPARTS_DATA rows without at least one related row in SWERB_OBSERVERS.

SWERBOId (SWERB Observers Identifier)

A unique identifier. This is an automatically generated sequential number that uniquely identifies the row and may be used to refer to a particular observer's departure from camp as part of a particular observation team.

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

DId (Departure Identifier)

The id of the SWERB_DEPARTS_DATA row representing the departure from camp of the observer's observation team. This column must not be NULL.

Observer (Observer code)

Initials of the observer. The legal values of this column are defined by the OBSERVERS support table.

This column must not be NULL.

Role

The role assumed by the member of the SWERB observation team. The legal values of this column are defined by the OBSERVER_ROLES support table.

This column 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.

TREES

This table contains one row for every tree in the tree monitoring project.

Trees can only be located in groves -- the value of the TREES.Loc column must reference a SWERB_GWS row which has a SWERB_GWS.Type of G (Grove).

Tree numbers are unique within each grove. The combination of Loc and Tree must be unique.

TId (Tree Identifier)

A unique identifier. This is an automatically generated sequential number that uniquely identifies the row and may be used to refer to a particular tree.

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

Loc (Tree Location)

The identifier of the grove, a SWERB_GWS.Loc value, in which the tree is located.

This column must not be NULL.

Tree (Tree number)

The integer used to uniquely identify a tree within a particular grove.

This column 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.



[124] Waterholes may be more or less permanent features of the landscape, or only temporary rain pools. This is no surprise to those familiar to the SWERB dataset, but whenever waterholes are mentioned in relation to SWERB data the waterhole may be either a waterhole or a rainpool.

[125] It is believed but not certain that this is the way PDOP is used.

[126] It is not clear whether the accuracy is 2 or 3 dimensional vector; whether the reported distance includes error in altitude.

[127] Because database rules which enforce when PDOP and Accuracy values must be NULL are hardcoded into the database it will take programmatic changes to change these limits. Normally this would be avoided by adding a column to the GPS_UNITS table to indicate whether or not the particular GPS unit records a PDOP or accuracy reading, thus allowing new units to be introduced which record such data. However because records have been lost as to which specific GPS units were used when and, as of the time of this writing, no one wishes to reconstruct the categories of GPS units in use based on a PDOP/Accuracy capability criteria the system design uses hardcoded dates to validate. Note further that given the existing set of validation criteria for PDOP and Accuracy there is never a circumstance which requires a PDOP or accuracy to be present. Normally the values of GPS_UNITS.Errortype would force the presence of PDOP or Accuracy values. Instead they merely enforce their absence. This is partly for reasons similar to the preceding and partly because, particularly during periods when GPS data was hand-transcribed, sometimes data is missing.

[128] And, possibly, subsequently corrected by the data specialists after consultation with the field teams.

Because the data manager expands the observer codes in the departure rows from 1 to 3 characters the SWERB_DEPARTS_GPS.Garmincode column can hold more than 10 characters.

[129] From a database design perspective it would make sense to control whether or not a Garmincode must be present based on a column in the GPS_UNITS table. In practice because all future GPS units will very likely allow the entry of data when waypoints are taken the matter is moot.

[130] While it may be desirable to have a cutoff date after which all data obtained using GPS units must come from the GPS units themselves, no such cutoff date has been established.

[131] Electronic manufacturers have taken to silently changing the specifications of a device without changing the model, a situation which is quite annoying when the specifications matter. When no other sort of identifying information is available sometimes the serial number can be used to determine device capabilities.

[132] The Amboseli Baboon project data protocols require these codes have a particular structure. Babase does not enforce these requirements, primarily because the QUAD_DATA table is essentially a support table and, once created, is static so enforcing specific rules in the database is not worth the time.

[133] Note that rows that violate this rule are not instantly rejected; the error is caught at the time of transaction commit. This is so that during data entry Btimeest and Etimeest values may be entered without Start and Stop values in the expectation that by the time the transaction is committed the insertion of SWERB_DATA rows will have automatically filled in the missing Start and Stop values.

[134] This last check is also performed at transaction commit time, for the same reason.

[135] Ideally, a begin or end time should not be NULL unless the records have been perused and no time found, in which case the time source would always be bb_norecord when there was no time. In practice this has not been done.

[136] Note that this rule is tested for immediately, not at the time of transaction commit. This means that the Btimeest and Etimeest columns must be non-NULL before inserting SWERB begin and end rows that have non-NULL times.

[137] More precisely, when the SWERB_BES.Seq is NULL. This typically amounts to the automatic sequencing of newly inserted rows because those are the rows which typically have no Seq value.

[138] At first glance it would seem appropriate to sequence those SWERB_BES rows with NULL Start times based on the first related SWERB_DATA.Time value but this presents a number of problems. Such a design would not allow for any flexibility in manually re-sequencing such rows unless automatic sequencing took place only upon insert of SWERB_DATA rows, in which case inserting and then deleting the inserted row could change the sequencing of the SWERB_BES rows. Such un-reversible changes can be confusing.

[139] Or whatever row has has a NULL SWERB_BES.Seq value.

[140] Manual sequencing is therefore only useful when the SWERB_BES.Start is NULL or when there are ties. Sequencing is normally manipulated by changing SWERB_BES.Start values, which are themselves automatically picked up from SWERB_DATA rows with B Event values.

When testing for correct sequencing of a SWERB_BES row other bouts of observation (other SWERB_BES rows) related to the same group on the same day cannot have a smaller Seq and also have a Start value greater than the smallest related SWERB_DATA.Time related to the given row. In those cases where other bouts of observations related to the same group on the same day have a NULL Start value the comparison is instead against the other bout's earliest related SWERB_DATA.Time value. SWERB_DATA rows with NULL Time values are ignored by the automatic sequencing process.

[141] This can cause indeterminate results when more than one row is changed in a single update statement.

[142] It generally makes sense to use the last created SWERB_BES.BEId. If a BEId has been created during the current PostgreSQL session this can be referenced using the PostgreSQL expression currval('swerb_bes_beid_seq').

[143] Allowing changes to the SWERB_BES.DId column would make it difficult to maintain the automatic sequencing of the Seq values.

[144] Allowing changes to the SWERB_BES.Focal_grp column would make it difficult to maintain the automatic sequencing of the Seq values.

[145] All the lines of data dumped from the GPS units are represented as rows in the SWERB_DATA table with the exception of the departure records.

[146] When a group has fragmented a fragment of the group other than the focal fragment may be observed at some distance.

[147] For the occasional unknown other group sighting.

[148] These rules imply that when a group is in the process of undergoing fission that the data collection team taking SWERB observations will not flag one of the semi-permanent fission group having it's own code in the groups table a subgroup -- unless that semi-permanent group has itself temporarily split.

[149] As of this writing, it isn't recorded in Babase at all. This may change in the future.

[150] I.e. guessed.

[151] Although the system design allows SWERB_GWS rows to represent places other than groves and waterholes, at the time of this writing these are the only places recorded -- with the possible exception of rain pools, which count as waterholes.

[152] Otherwise the SWERB_UPLOAD view would not be able to distinguish between the two grove codes, one of them certain, the other a probable sleeping location.

[153] At the time of this writing the only physical landmarks recorded are groves and waterholes/rainpools.

[154] The exception of the unknown group allows for easy creation of bouts of observation of the unknown group. This is useful because all observations, including those of a non-focal group made on an ad-hoc basis, must be made as part of a bout of observation. But such ad-hoc observations of non-focal groups are made, wait for it, on an ad-hoc basis. A bout of observation may not be in progress. The creation of bouts of observation of the unknown group provide a convenient way to ensure such non-focal group observations are part of an observational bout, and hence are related to an observation team's daily effort -- to a SWERB_DEPARTS_DATA row.

[155] See the preceeding footnote for further detail.

[156] Checking ascent into sleeping grove rules at the time of transaction commit allows end-of-observation rows that record ascent into a sleeping grove to be inserted into the database after all other SWERB rows for that bout of observation. Because sequence numbering is not related to end of observation and because of subgroups and because of the possibility of missing end of observation times (SWERB_BES.Stop may be NULL) it is not always possible to distinguish the bout of observation which represents the last observation of the group by the team for the day without having a bout that is related to ascent into a sleeping grove. This means that tests related to end-of-observation cannot be done as rows are inserted.

[157] At the time of this writing the ADCODES values are structured such that SWERB_LOC_DATA rows that represent the first or last observation of each group by each observation team on each day, the rows that record the group's descent from or ascent into a grove, must have non-NULL ADtime values. The obverse is also true; SWERB_LOC_DATA rows that are not the first or last for the team for the group for the day, that are not associated with the group's descent from or ascent into a sleeping grove, must have NULL ADtime values.

[158] A similar rule for the end of observation is not feasible. There are time when, after the last bout of observation of the day has ended, the observation team remains in the field and happens to notice and record ascent into a sleeping grove.

[159] This allows the data that is entered in the field as two separate GPS waypoints but which comprises a single SWERB_LOC_DATA row to be inserted into the database piecemeal.

[160] The decision to create the ADCODES table instead of hardcoding values in the SWERB_LOC_DATA.ADcode column is somewhat arbitrary. At the time of this writing the SWERB_LOC_DATA table is only used to relate baboon groups with sleeping groves at the time of ascent or descent, or to relate the groups with waterholes when drinking. Baboons are never related to groves or waterholes for any other reason, nor are baboons ever related to any other landscape feature. Consequently the expectation is that there will be 3 rows created in the ADCODES table, one for ascent, one for decent, and one for neither that is used when groups drink at waterholes -- and that the ADCODES table will subsequently be forgotten.

Never the less, there is little if any extra technical work involved in having an ADCODES table and its presence opens up future opportunities for recording additional relationships between baboon groups and landscape features, opportunities that do not require any additional programming or other technical involvement. It is for these reasons that the choice was made to have an ADCODES table.

[161] Although the Amboseli Baboon Research Project Monitoring Guide has no provision for uncertainty with respect to any location other than sleeping groves the database contains no rules prohibiting such use. Because the SWERB_UPLOAD will not indicate uncertainty unless a sleeping grove is involved having such a rule seems unnecessary.

[162] SWERB_LOC_DATA is itself an extension of SWERB_DATA


Page generated: 2024-04-18T15:21:55-04:00.