Argos Data Model

From Eecology

Jump to: navigation, search

Contents

Argos GPS Data Model

Last updated January 5, 2010 Bart Heupers - UvAGPS moved to special page

Updated January 22, 2008 Judy Shamoun-Baranes

NOTE: On July 2014 we moved all argos-related tables, views, functions and types to a new schema called argos.

e-ECOLOGY ARGOS TRACKING DATABASE

The tracking database will include data from several species. Some species are trapped and then monitored during the breeding season while others are trapped during the winter season. Information is collected on each tracked bird, including biometric measurements. These measurements may be collected more than once. During the breeding season information is also collected about the gull breeding colony itself, location of nests, state of breeding (number of eggs and juveniles) and then juveniles themselves are marked and measured (although not tracked).

In addition, PTTs are often tested before they are actually placed on the birds. This information is also important during analysis and particularly to establish accuracy of data. This data should also be stored in the database. Therefore it is important that this information is stored properly in the database

Units and descriptions should be filled in for all measurements

One way of looking at this structure is considering 3 categories of tables:

  1. lookup tables (information stored once)
  2. session tables (stored occasionally)
  3. observations – highest frequency of information.

Primary keys are noted by bold italic text. Foreign keys are noted by italic text in the Field column.

Microwave will under no circumstances provide information about their checksum calculations. If feasible, SARA will duplicate the procedure and include a flag representing the microwave filtered data.

TECHNICAL INFORMATION FROM TAGS

DEVICE_INFO

Table including technical information about tag hardware.

FieldTypeKeyConstraintsComments
ptt_idint4PKNOT NULLserial number of PTT provided by Argos and used for communication with Argos satellite
serial int4NOT NULLserial number of tag from manufacturer
weight int4NOT NULLUnit = grams
type textNOT NULL
manufacturer textDevice manufacturer
hexadecimal_idtextHexadecimal address, unique for each tag
PAN_idTextPersonal area network ground based tags communicates with
Base_station_idInt4base station ground based tag communicates with
Remarkstext

TRACK_SESSION

This table includes information about each measurement session and enables inclusion of data from new species and also from the test phase of different tags

FieldTypeKeyConstraintsComments
id int4 PKNOT NULLunique ID for each usage of a PTT so test and bird with same ptt_id are two separate IDs/indexes
pttidint4 FKNOT NULLLink to DEVICE_INFO table
ring_numbertext FKlink to individual table – tests do not have a ring_number
start_date timestamptzDate/time (Local) when tracking begins
start_latitude float8NOT NULLlatitude where tracking begins, unit = dec degress
start_longitude float8NOT NULLlongitude where tracking begins, unit = dec degrees
start_altitudeFloat8Unit = m, include when known, important for testing
end_datetimestamptzEnd of session if known
time_window text
time_steps text
remarkstext
location geometrypostgreSQL geometry

GPS_TRACKING_DATA

Tracking data from GPS sensors on PTT/GPS tags

FieldTypeKeyConstraintsComments
ptt_idint4PKNOT NULL
date_timetimestampPKNOT NULLGMT
latitudefloat8Decimal degrees
longitudefloat8Decimal degrees
speed float8m/s
coursefloat8degrees
altitude float8m
alt_statustext
qualitytextQuality information from sensor
user_QCtextData flagged as unacceptable by user
parser_QCtextData flagged as unacceptable by Microwave parser
locationgeometrypostgreSQL geometry


Note :

The parser_QC value can be 1, 2, 3, 4, 99, or 100. If it is 1 the data is OK. If it is 2 or 3 or 4, some form of error correction has been performed by the Microwave parser. And if it is 100, no error correction was possible. For reliable results it is advised only to use records with parser_QC values of 1.

ARGOS_TRACKING_DATA

Tracking data from Argos sensors

FieldType KeyConstraintsComments
ptt_idint4 PKNOT NULL
date_timetimestampPKNOT NULLGMT
fix text
latitude1 float8
longitude1 float8
latitude2 float8
longitude2 float8
msgcount int4
frequency float8
average_ti float8
satellite text
max_str text
location1 geometrypostgreSQL geometry
location2 geometrypostgreSQL geometry

PTT_ENGINEERING_DATA

FieldTypeKeyConstraintsComments
ptt_idint4PKNOT NULL
tx_date_timetimestampPKNOT NULLGMT
satellite_idtext PKNOT NULL
ptt_date_time timestampGMT
activityint4
tx_countint4
temperaturefloat8
battery_voltagefloat8
gps_fix_timeint4
satellite_countint4
hours_resetint4
hours_since_gps_fixint4
mortality_gtint4
seasonal_gtint4
shuntint4


In addition the views GPS_TRACKING_SESSION, ARGOS_TRACKING_SESSION, PTT_ENGINEERING_SESSION are which adds the correct track_session.id to the GPS_TRACKING_DATA, ARGOS_TRACKING_DATA and PTT_ENGINEERING_DATA table data.


BIOLOGICAL INFORMATION

INDIVIDUAL

Table includes information used to identify an individual

Field TypeKeyConstraintsComments
ring_numbertextPKNOT NULLmetal ring number
Idint4PKNOT NULL auto-insert, unique ID for each individual organism
NEST_INFO_idint4FKlink to NEST_INFO, not all specimens are linked to a nest
nest_certaintyint41 = certain, 0 = not completely certain
species_certaintyint41 = certain, 0 = not completely certain
ring_numbertextNOT NULLmetal ring number
color_codetextcode for color ring without punctuation
speciestextNOT NULLScientific name (at least genus)
sextextupdate if or when known
FATE_CODEE_idtextInt4FKLink to FATE_CODE
Remarkstext

FATE_code

Field TypeKeyConstraintsComments
IdInt4PKauto-insert
code int4PKNOT NULL
descriptiontext


MEASUREMENT

Metadata Provided by Sovon is needed to describe how these measurements are taken.

Field TypeKeyConstraintsComments
id int4PKNOT NULLauto-insert, unique ID for each observation
ring_numbertextFKlink to individual
catch_datetime timestampLocal time
release_datetimetimestampLocal time
mass float8grams
age textAD = adult, JUV = juvenile
wing_length float8
bill_length1 float8
bill_length2 float8
bill_height1 float8
bill_height2 float8
tarsus_length float8
total_headfloat8
observer text
remarkstext

Catch_datetime & release_datetime

During ringing of juveniles only the date was recorded and not the time. Birds were all released the same day. Ringing and measuring small chicks in the nest took about 2-5 minutes. Colour ringing and sampling of the larger chicks (from 4 July onwards) took about half an hour (rounding up several chicks and banding, sampling and releasing them together). To avoid leaving fields blank, a standard catch time was noted at 12:00 and a release time of 12:15 before July 4 and 12:30 from July 4 and onwards. 'comments by Kees Oosterbeek'

NEST_INFO

FieldTypeKeyConstraintsComments
idint4PK NOT NULL
Speciestext
latitudefloat8NOT NULLDecimal degrees
longitudefloat8NOT NULLDecimal degrees
yearInt4Year of breeding season
"location"geometrypostgreSQL geometry
Remarkstext

NEST_OBSERVATION

FieldTypeKeyConstraints'Comments'
idint4PKNOT NULL Auto-insert, unique ID for each observation
NEST_INFO_idint4FKNOT NULL
datetimestamptz NOT NULL
number_eggint4
number_youngint4
pippingtextActivity in egg (peeping or signs of hatching)
attendedtextActivity on nest
observertext
remarkstext

Comments:

Graphical Data Model

Gps datamodel.png


Argos GPS functions

get_argosgps_track_speed

Compute distance (meters), time-interval, speed (meter/second) and heading (degrees) for a series of subsequent tracking entries with specific device_info_serial. For the first entry in the sequence these values will always be missing because they are computed as the difference between subsequent rows.

Usage examples :

select * from argos.get_argosgps_track_speed(41745, '2008-01-01 00:00:00', '2010-01-01 00:00:00');

select * from argos.get_argosgps_track_speed(41745);

Distances and heading are calculated with spherical correction with the Haversine formula as described here. The heading is the initial heading. Because PostGIS does not calculate the heading we don't use PostGIS here.

get_argosgps_track_distance

Compute distance (meters) for Argos GPS tracks to arbitrary point in lat/long or geometry location

Example usage :


select * from argos.get_argosgps_track_distance(41745, 53.23348333,4.91656)

-- Get distances from nest

select * from argos.get_argosgps_track_distance(41745, (
  select n.location from argos.nest_info n, argos.track_session s, argos.individual i 
    where i.nest_info_id = n.id 
      and i.ring_number = s.ring_number 
      and s.ptt_id = 41745 limit 1 ))

Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.

get_argosgps_track_distance_direction

Compute distance (meters) and direction (degrees) for Argos GPS tracks from arbitrary point in lat/long or geometry location

Example usage :


select * from argos.get_argosgps_track_distance_direction(41745, 53.23348333,4.91656)


-- Get distances from nest
create temporary table nest as
(   select  n.latitude, n.longitude from argos.nest_info n, argos.track_session s, argos.individual i 
    where i.nest_info_id = n.id 
      and i.ring_number = s.ring_number 
      and s.ptt_id = 41745 limit 1 );
      
select * from argos.get_argosgps_track_distance_direction(41745, (select latitude from nest), (select longitude from nest));


Distances and direction are calculated with spherical correction with the Haversine formula as described here. The direction is the direction from the given point.

Personal tools