<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.e-ecology.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Judy</id>
		<title>ecology - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.e-ecology.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Judy"/>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php/Special:Contributions/Judy"/>
		<updated>2026-05-06T16:44:15Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=ECMWF&amp;diff=1273</id>
		<title>ECMWF</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=ECMWF&amp;diff=1273"/>
				<updated>2016-03-02T16:04:50Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Helpful Functions &amp;amp; Queries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ECMWF == &lt;br /&gt;
&lt;br /&gt;
Datamodel for the tables in the ECMWF schema. &lt;br /&gt;
&lt;br /&gt;
Data is created by the ECMWF and retrieved from the KNMI ftp site as GRIB files. The original GRIB files can also be  retrieved from the flysafe server from :&lt;br /&gt;
&lt;br /&gt;
[https://flysafe-pps.grid.sara.nl/archive/knmi/ecmwf/ ECMWF Data Archive]&lt;br /&gt;
&lt;br /&gt;
More information about the parameters in these GRIB files can be retrieved from the [http://www.ecmwf.int/services/dissemination/3.1/Products_in_GRIB_code.html ECMWF website].&lt;br /&gt;
&lt;br /&gt;
== INVARIABLE == &lt;br /&gt;
&lt;br /&gt;
The INVARIABLE table contains data that is invariant over time. &lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|'''LATITUDE''' || degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE''' || degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|Z || 129 Z Geopotential surface/model orography 				&lt;br /&gt;
|-&lt;br /&gt;
|LSM || 172 LSM	Land sea mask				&lt;br /&gt;
|-&lt;br /&gt;
|LOCATION || Latitude/longitude as GIS location  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The GIS LOCATION is only added to this table. This is because always the same values for latitude and  longitude are used and then if the GIS location is required for the ANALYSIS or FORECAST tables it can be retrieved by joining to this table on the LATITUDE, LONGUTUDE fields.&lt;br /&gt;
&lt;br /&gt;
== FORECAST and UVA_FORECAST == &lt;br /&gt;
&lt;br /&gt;
The FORECAST table contains predicted values in steps of 3 hours till 72 hours ahead. The MODELTS is the timestamp for which this prediction applies. Two times a day new Forecast GRIB files will arrive. The newer FORECAST data that arrives for the same timestamp will overwrite the older data.&lt;br /&gt;
&lt;br /&gt;
The FORECAST (and UVA_FORECAST) table itself is a master table that does not contain any data. The inherited tables &lt;br /&gt;
FORECAST&amp;lt;YEAR&amp;gt;&amp;lt;MONTH&amp;gt; contain the data, but the master FORECAST or UVA_FORECAST table can be used to SELECT the data. &lt;br /&gt;
&lt;br /&gt;
Data till 2009-09 is owned by the UvA and can be accessed by anybody with ECMWF_READ rights by using the FORECAST_UVA table. The FORECAST table itself also references data after 2009-09 that is owned by RNLAF for which special access rights ECMWF_RNLAF_READ are required. &lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|'''MODELTS'''||Time for which this forecast applies = model run + step hours&lt;br /&gt;
|-&lt;br /&gt;
|'''LATITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|STEP||model step (smaller is more recent forecast)&lt;br /&gt;
|-&lt;br /&gt;
|SSRD||169 SSRD	surface solar radiation downwards accumulated			&lt;br /&gt;
|-&lt;br /&gt;
|TP||228 TP	total precipitation accumulated			&lt;br /&gt;
|-&lt;br /&gt;
|SP||134 SP	surface pressure		&lt;br /&gt;
|-&lt;br /&gt;
|BLH||159 BLH	boundary layer height		&lt;br /&gt;
|-&lt;br /&gt;
|TCC||164 TCC	total cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|U10||165 10U	10 meters wind U-component m/s		&lt;br /&gt;
|-&lt;br /&gt;
|V10||166 10V	10 meters wind V-component	 m/s	&lt;br /&gt;
|-&lt;br /&gt;
|T2||167 2T	2 metres air temperature		&lt;br /&gt;
|-&lt;br /&gt;
|D2||168 2D	2 metres dew point temperature		&lt;br /&gt;
|-&lt;br /&gt;
|LCC||186 LCC	low cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 1000''||&lt;br /&gt;
|-&lt;br /&gt;
|T_1000||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_1000||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_1000||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_1000||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_1000||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 925''||&lt;br /&gt;
|-&lt;br /&gt;
|T_925 real||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_925 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_925 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_925 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_925 real||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 850''||&lt;br /&gt;
|-&lt;br /&gt;
|T_850||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_850 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_850 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_850 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_850 real||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 700''||&lt;br /&gt;
|-&lt;br /&gt;
|T_700 real||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_700 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_700 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_700 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_700 real||157 R	relative humidity	&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ANALYSIS and UVA_ANALYSIS ==&lt;br /&gt;
&lt;br /&gt;
The ANALYSIS and UVA_ANALYSIS table contains values from the Analysis GRIB files at 18, 00, 06 and 12 UTC&lt;br /&gt;
&lt;br /&gt;
Data till 2009-09 is owned by the UvA and can be accessed by anybody with ECMWF_READ rights by using the ANALYSIS_UVA table. The ANALYSIS table itself also references data after 2009-09 that is owned by RNLAF for which special access rights ECMWF_RNLAF_READ are required. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{|border=1&lt;br /&gt;
|'''MODELTS'''||Time for which this forecast applies = model run&lt;br /&gt;
|-&lt;br /&gt;
|'''LATITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|SP||134 SP	surface pressure		&lt;br /&gt;
|-&lt;br /&gt;
|TCC||164 TCC	total cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|U10||165 10U	10 meters wind U-component		&lt;br /&gt;
|-&lt;br /&gt;
|V10||166 10V	10 meters wind V-component		&lt;br /&gt;
|-&lt;br /&gt;
|T2||167 2T	2 metres air temperature		&lt;br /&gt;
|-&lt;br /&gt;
|D2||168 2D	2 metres dew point temperature		&lt;br /&gt;
|-&lt;br /&gt;
|LCC||186 LCC	low cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 1000''||&lt;br /&gt;
|-&lt;br /&gt;
|T_1000||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_1000||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_1000||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_1000||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_1000||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 925||&lt;br /&gt;
|-&lt;br /&gt;
|T_925||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_925||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_925||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_925||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_925||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 850||&lt;br /&gt;
|-&lt;br /&gt;
|T_850||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_850||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_850||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_850||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_850||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 700||&lt;br /&gt;
|-&lt;br /&gt;
|T_700||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_700||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_700||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_700||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_700||157 R	relative humidity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== COMBINED == &lt;br /&gt;
&lt;br /&gt;
If you want to use Analysis data if available for a timestimp but otherwise Forecast, the COMBINED VIEW can be used. If a ANALYSIS value is available for a timestamp and latitude/longitude the ANALYSIS value will be used, otherwise the FORECAST value is given.&lt;br /&gt;
&lt;br /&gt;
== Historical data == &lt;br /&gt;
&lt;br /&gt;
In addition ongoing process of adding ECMWF data since November 11 2007, a historical data set has been loaded.  That historical dataset is stored in additional inherited tables FORECASTHISTORY and&lt;br /&gt;
ANALYSISHISTORY which inherit from FORECAST and ANALYSIS respectively. &lt;br /&gt;
&lt;br /&gt;
The FORECASTHISTORY does not always contain TP (228 TP total precipitation accumulated).  Instead of this it contains the following values :&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|LSP||142 LSP Large scale precipitation&lt;br /&gt;
|-&lt;br /&gt;
|CP||143 CP Convective precipitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The historical dat sets span the following periods and locations &lt;br /&gt;
&lt;br /&gt;
{|border=1 &lt;br /&gt;
|'''Start'''||'''End'''||'''Area'''||'''Grid'''&lt;br /&gt;
|-&lt;br /&gt;
|2007-01-01||2007-11-15||62degN 10degW 335degN 20degE||0.25x0.25deg&lt;br /&gt;
|-&lt;br /&gt;
|2003-02-15||2003-06-15||62degN 10degW 335degN 20degE||0.5x0.5deg&lt;br /&gt;
|-&lt;br /&gt;
|2005-01-01||2006-12-31||62degN 10degW 335degN 20degE||0.5x0.5deg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Helpful Functions &amp;amp; Queries == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following functions have been defined in Postgres to select the nearest gridpoint in spacetime for the ECMWF analysis and forecast tables. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are '''ecmwf.forecast_nearest''' and '''ecmwf.analysis_nearest''' and they take a latitude, longitude and timestamp as parameter. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They can be used in the following way, which will return all the fields in the relevant ECMWF data:&lt;br /&gt;
&lt;br /&gt;
  SELECT * FROM ecmwf.forecast_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
   &lt;br /&gt;
  SELECT * FROM ecmwf.analysis_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
&lt;br /&gt;
Note that the model latitude and model longitude are returned as integers and multiples of 100.  To return latititude and longitude as a decimal (for example to compare to the latitude and longitude of your GPS data) you need to first convert these fields to decimals:&lt;br /&gt;
&lt;br /&gt;
  SELECT f.latitude/100::decimal, f.longitude/100::decimal&lt;br /&gt;
  FROM ecmwf.forecast_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00') f;&lt;br /&gt;
&lt;br /&gt;
These function can for example be used in a join as follows :&lt;br /&gt;
&lt;br /&gt;
  SELECT g.device_info_serial&lt;br /&gt;
       , g.date_time&lt;br /&gt;
       , g.latitude&lt;br /&gt;
       , g.longitude&lt;br /&gt;
       , g.speed_2d&lt;br /&gt;
       , g.altitude&lt;br /&gt;
       , (ecmwf.forecast_nearest( g.latitude, g.longitude,g.date_time)).*&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited g&lt;br /&gt;
  WHERE g.device_info_serial = 1 &lt;br /&gt;
    AND g.latitude &amp;lt;&amp;gt; 0&lt;br /&gt;
    AND g.userflag = 0&lt;br /&gt;
  ORDER BY g.date_time;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although these functions were converted to PLPgSQL to speed them up, a faster ways to retrieve the same data is with (thanks to Floris Sluiters): &lt;br /&gt;
&lt;br /&gt;
  SELECT device_info_serial, date_time, latitude, longitude, speed_2d, altitude, (x::ecmwf.forecast).*&lt;br /&gt;
  FROM (SELECT &lt;br /&gt;
       g.*&lt;br /&gt;
       ,((SELECT f &lt;br /&gt;
            FROM ecmwf.forecast f&lt;br /&gt;
           WHERE f.latitude = round(g.latitude * 100 / 25)::integer * 25&lt;br /&gt;
             AND f.longitude =  round(g.longitude * 100 / 25)::integer * 25&lt;br /&gt;
             AND f.modelts = TIMESTAMP 'epoch' + round(EXTRACT(EPOCH FROM g.date_time) &lt;br /&gt;
                 / (60*60*3))::integer * INTERVAL '3 hours' limit 1)::ecmwf.forecast) as x &lt;br /&gt;
        FROM   gps.ee_tracking_speed_limited g&lt;br /&gt;
        WHERE g.device_info_serial = 1 &lt;br /&gt;
             AND g.latitude &amp;lt;&amp;gt; 0&lt;br /&gt;
             AND g.userflag = 0&lt;br /&gt;
          ORDER BY g.date_time) t&lt;br /&gt;
&lt;br /&gt;
Below is example query that retrieves data for a model grid point closest to user provided coordinates and for one model time stamp (eg. 12:00) for a series of consecutive days&lt;br /&gt;
&lt;br /&gt;
  SELECT f.modelts, f.latitude, f.longitude, f.blh&lt;br /&gt;
  FROM ecmwf.forecast as f&lt;br /&gt;
  WHERE f.latitude = round(42.718104*100/25)::integer*25 AND f.longitude = round(11.517727*100/25)::integer*25 and &lt;br /&gt;
    f.modelts &amp;gt;= '2007-08-01 12:00' and f.modelts &amp;lt;= '2008-08-01 12:00' and date_part('hour', f.modelts) = 12&lt;br /&gt;
  ORDER BY f.modelts   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Interpolation ===&lt;br /&gt;
&lt;br /&gt;
The following functions are added so that simple linear interpolation for a specific point in space and time can be done in Postgres. &lt;br /&gt;
&lt;br /&gt;
These are '''ecmwf.forecast_interpolate''' and '''ecmwf.analysis_interpolate''' and they take a latitude, longitude and timestamp as parameter. &lt;br /&gt;
&lt;br /&gt;
They can be used in the same way:&lt;br /&gt;
&lt;br /&gt;
  select * from ecmwf.forecast_interpolate( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
   &lt;br /&gt;
  select * from ecmwf.analysis_interpolate( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
&lt;br /&gt;
And they can also be used in joins as above. These functions select the 8 surrounding points in latitude, longitude and date_time and interpolate linear in latitude, longitude and date_time successively. The '''interpolate''' functions are much slower then the '''nearest''' functions.&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Elevation&amp;diff=1272</id>
		<title>Elevation</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Elevation&amp;diff=1272"/>
				<updated>2015-12-14T15:34:48Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= ELEVATION = &lt;br /&gt;
&lt;br /&gt;
The database includes a global digital elevation model (DEM) developed from the Shutter Radar Topography Mission(SRTM) data (for more information on the data source, see [[links]]).  There is a high resolution (srtm3) and low resolution (srtm30) dataset available in the database. The function elevation.srtm_getvalue extracts the land surface elevation (m) stored in the database for a given set of coordinates (longitude and latitude) which is parsed as text in the function. The elevation.srtm_getvalue function will first try the high-resolution dataset for the specific location and the low-resolution if the first did not give a result. &lt;br /&gt;
&lt;br /&gt;
  The function can be used in different ways, shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage == &lt;br /&gt;
&lt;br /&gt;
  select elevation.srtm_getvalue(ST_pointfromtext('POINT(&amp;lt;longitude&amp;gt; &amp;lt;latitude&amp;gt;)',4326))&lt;br /&gt;
&lt;br /&gt;
i.e.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  select elevation.srtm_getvalue(ST_pointfromtext('POINT(6.99666 49.504)',4326))&lt;br /&gt;
   &lt;br /&gt;
  or&lt;br /&gt;
   &lt;br /&gt;
  select elevation.srtm_getvalue (ST_pointfromtext('POINT(86.93333 27.983333)',4326));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use only high- or low resolution the following can be used resp. &lt;br /&gt;
&lt;br /&gt;
  select elevation.srtm3_getvalue(ST_pointfromtext('POINT(6.99666 49.504)',4326)) -- high res&lt;br /&gt;
  select elevation.srtm30_getvalue(ST_pointfromtext('POINT(6.99666 49.504)',4326)) -- low res&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a user would like to access the elevation data for a series of locations, than the location field can be used, which is a composite, text field including longitude and latitude of each GPS point, do not run this query for very large datasets without testing first on a subset of data.&lt;br /&gt;
&lt;br /&gt;
  SELECT device_info_serial, date_time, latitude, longitude, elevation.srtm_getvalue(&amp;quot;location&amp;quot;) AS DEM&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited &lt;br /&gt;
  WHERE device_info_serial = &amp;lt;device_info_serial&amp;gt; &lt;br /&gt;
&lt;br /&gt;
i.e.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  SELECT device_info_serial, date_time, latitude, longitude, elevation.srtm_getvalue(&amp;quot;location&amp;quot;) AS DEM&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  WHERE device_info_serial = 60&lt;br /&gt;
   &lt;br /&gt;
  &lt;br /&gt;
On borders between cells the south and/or east  cell is selected, also between tiles!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notes :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 27 tiles for srtm30 are placed in one table. &lt;br /&gt;
The 900 tiles from srtm3 are classified according to the srtm30 classification and distributed to &lt;br /&gt;
27 tables.&lt;br /&gt;
&lt;br /&gt;
All tiles have been redistributed into rasters of 60 * 60&lt;br /&gt;
&lt;br /&gt;
== Usage within R == &lt;br /&gt;
&lt;br /&gt;
If a user would like to access the elevation data for a series of locations, than the location field can be used, which is a composite, text field including longitude and latitude of each GPS point, do not run this query for very large datasets without testing first on a subset of data. This function can also be used from with R but needs a slightly different notation (namely removing quotations around the field location). In the following query elevation.srtm_getvalue(location) AS DEM returns the surface elevation (m) and altitude - elevation.srtm_getvalue(location) AS ALT_AGL returns the GPS altitude above the surface (m) for one specific bird and within a range of dates:&lt;br /&gt;
&lt;br /&gt;
  SELECT device_info_serial, date_time, latitude, longitude, elevation.srtm_getvalue(location) AS DEM, altitude - elevation.srtm_getvalue(location) AS ALT_AGL&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited &lt;br /&gt;
  WHERE device_info_serial = &amp;lt;device_info_serial&amp;gt; and date_time &amp;gt;= 'yyyy-mm-dd hh:mm:ss' and date_time &amp;lt;= 'yyyy-mm-dd hh:mm:ss'&lt;br /&gt;
&lt;br /&gt;
i.e.&lt;br /&gt;
  SELECT device_info_serial, date_time, latitude, longitude, elevation.srtm_getvalue(location) AS DEM, altitude - elevation.srtm_getvalue(location) AS ALT_AGL&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited &lt;br /&gt;
  WHERE device_info_serial = 6015 and date_time &amp;gt;= '2014-06-27 00:00:00' and date_time &amp;lt;= '2014-06-28 00:00:00'&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://srtm.csi.cgiar.org/SRTMdataProcessingMethodology.asp srtm3 download site]&lt;br /&gt;
* [http://www.dgadv.com/srtm30/ Images from tiles of srtm30]&lt;br /&gt;
* [http://www.weblakes.com/lakesdem.html#SRTM3 Images of coverage of srtm3]&lt;br /&gt;
&lt;br /&gt;
== Credits == &lt;br /&gt;
&lt;br /&gt;
This postgresql adaptation of the SRTM3 v3 is made by  F.P. Sluiter. The original 6000*6000 tiles are retiled to 60*60. New tiles containing only no_data values were removed. Dataset is subdivided in 27 tables that cover the globe.&lt;br /&gt;
&lt;br /&gt;
april 2008, University  of Amsterdam&lt;br /&gt;
&lt;br /&gt;
Please put the following reference in publications:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;F.P. Sluiter, University of Amsterdam, april 2008, SRTM3 postgresql adaptation ; based on Jarvis A., H.I. Reuter, A. Nelson, E. Guevara, 2006, Hole-filled seamless SRTM data V3, International Centre for Tropical Agriculture (CIAT), available from http://srtm.csi.cgiar.org.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Original documentation:&lt;br /&gt;
PROCESSED SRTM DATA VERSION 3&lt;br /&gt;
&lt;br /&gt;
The data distributed here are in ARC GRID, ARC ASCII and Geotiff format, in decimal degrees and datum WGS84.  They are derived from the USGS/NASA SRTM data.  CIAT have processed this data to provide seamless continuous topography surfaces.  Areas with regions of no data in the original SRTM data have been filled in using interpolation methods.  A full technical report on this method is in preparation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DISTRIBUTION&lt;br /&gt;
&lt;br /&gt;
Users are prohibited from any commercial, non-free resale, or redistribution without explicit written permission from CIAT. Users should acknowledge CIAT as the source used in the creation of any reports, publications, new data sets, derived products, or services resulting from the use of this data set. CIAT also request reprints of any publications and notification of any redistributing efforts.&lt;br /&gt;
&lt;br /&gt;
NO WARRANTY OR LIABILITY&lt;br /&gt;
&lt;br /&gt;
CIAT provides these data without any warranty of any kind whatsoever, either express or implied, including warranties of merchantability and fitness for a particular purpose. CIAT shall not be liable for incidental, consequential, or special damages arising out of the use of any data.&lt;br /&gt;
&lt;br /&gt;
ACKNOWLEDGMENT AND CITATION&lt;br /&gt;
&lt;br /&gt;
We kindly ask any users to cite this data in any published material produced using this data, and if possible link web pages to the CIAT SRTM website (http://srtm.csi.cgiar.org).&lt;br /&gt;
&lt;br /&gt;
Citations should be made as follows:&lt;br /&gt;
&lt;br /&gt;
Jarvis A., H.I. Reuter, A. Nelson, E. Guevara, 2006, Hole-filled seamless SRTM data V3, International Centre for Tropical Agriculture (CIAT), available from http://srtm.csi.cgiar.org.&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=ECMWF&amp;diff=1267</id>
		<title>ECMWF</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=ECMWF&amp;diff=1267"/>
				<updated>2015-10-06T12:46:16Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* FORECAST and UVA_FORECAST */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ECMWF == &lt;br /&gt;
&lt;br /&gt;
Datamodel for the tables in the ECMWF schema. &lt;br /&gt;
&lt;br /&gt;
Data is created by the ECMWF and retrieved from the KNMI ftp site as GRIB files. The original GRIB files can also be  retrieved from the flysafe server from :&lt;br /&gt;
&lt;br /&gt;
[https://flysafe-pps.grid.sara.nl/archive/knmi/ecmwf/ ECMWF Data Archive]&lt;br /&gt;
&lt;br /&gt;
More information about the parameters in these GRIB files can be retrieved from the [http://www.ecmwf.int/services/dissemination/3.1/Products_in_GRIB_code.html ECMWF website].&lt;br /&gt;
&lt;br /&gt;
== INVARIABLE == &lt;br /&gt;
&lt;br /&gt;
The INVARIABLE table contains data that is invariant over time. &lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|'''LATITUDE''' || degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE''' || degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|Z || 129 Z Geopotential surface/model orography 				&lt;br /&gt;
|-&lt;br /&gt;
|LSM || 172 LSM	Land sea mask				&lt;br /&gt;
|-&lt;br /&gt;
|LOCATION || Latitude/longitude as GIS location  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The GIS LOCATION is only added to this table. This is because always the same values for latitude and  longitude are used and then if the GIS location is required for the ANALYSIS or FORECAST tables it can be retrieved by joining to this table on the LATITUDE, LONGUTUDE fields.&lt;br /&gt;
&lt;br /&gt;
== FORECAST and UVA_FORECAST == &lt;br /&gt;
&lt;br /&gt;
The FORECAST table contains predicted values in steps of 3 hours till 72 hours ahead. The MODELTS is the timestamp for which this prediction applies. Two times a day new Forecast GRIB files will arrive. The newer FORECAST data that arrives for the same timestamp will overwrite the older data.&lt;br /&gt;
&lt;br /&gt;
The FORECAST (and UVA_FORECAST) table itself is a master table that does not contain any data. The inherited tables &lt;br /&gt;
FORECAST&amp;lt;YEAR&amp;gt;&amp;lt;MONTH&amp;gt; contain the data, but the master FORECAST or UVA_FORECAST table can be used to SELECT the data. &lt;br /&gt;
&lt;br /&gt;
Data till 2009-09 is owned by the UvA and can be accessed by anybody with ECMWF_READ rights by using the FORECAST_UVA table. The FORECAST table itself also references data after 2009-09 that is owned by RNLAF for which special access rights ECMWF_RNLAF_READ are required. &lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|'''MODELTS'''||Time for which this forecast applies = model run + step hours&lt;br /&gt;
|-&lt;br /&gt;
|'''LATITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|STEP||model step (smaller is more recent forecast)&lt;br /&gt;
|-&lt;br /&gt;
|SSRD||169 SSRD	surface solar radiation downwards accumulated			&lt;br /&gt;
|-&lt;br /&gt;
|TP||228 TP	total precipitation accumulated			&lt;br /&gt;
|-&lt;br /&gt;
|SP||134 SP	surface pressure		&lt;br /&gt;
|-&lt;br /&gt;
|BLH||159 BLH	boundary layer height		&lt;br /&gt;
|-&lt;br /&gt;
|TCC||164 TCC	total cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|U10||165 10U	10 meters wind U-component m/s		&lt;br /&gt;
|-&lt;br /&gt;
|V10||166 10V	10 meters wind V-component		&lt;br /&gt;
|-&lt;br /&gt;
|T2||167 2T	2 metres air temperature		&lt;br /&gt;
|-&lt;br /&gt;
|D2||168 2D	2 metres dew point temperature		&lt;br /&gt;
|-&lt;br /&gt;
|LCC||186 LCC	low cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 1000''||&lt;br /&gt;
|-&lt;br /&gt;
|T_1000||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_1000||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_1000||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_1000||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_1000||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 925''||&lt;br /&gt;
|-&lt;br /&gt;
|T_925 real||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_925 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_925 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_925 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_925 real||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 850''||&lt;br /&gt;
|-&lt;br /&gt;
|T_850||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_850 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_850 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_850 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_850 real||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 700''||&lt;br /&gt;
|-&lt;br /&gt;
|T_700 real||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_700 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_700 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_700 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_700 real||157 R	relative humidity	&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ANALYSIS and UVA_ANALYSIS ==&lt;br /&gt;
&lt;br /&gt;
The ANALYSIS and UVA_ANALYSIS table contains values from the Analysis GRIB files at 18, 00, 06 and 12 UTC&lt;br /&gt;
&lt;br /&gt;
Data till 2009-09 is owned by the UvA and can be accessed by anybody with ECMWF_READ rights by using the ANALYSIS_UVA table. The ANALYSIS table itself also references data after 2009-09 that is owned by RNLAF for which special access rights ECMWF_RNLAF_READ are required. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{|border=1&lt;br /&gt;
|'''MODELTS'''||Time for which this forecast applies = model run&lt;br /&gt;
|-&lt;br /&gt;
|'''LATITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|SP||134 SP	surface pressure		&lt;br /&gt;
|-&lt;br /&gt;
|TCC||164 TCC	total cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|U10||165 10U	10 meters wind U-component		&lt;br /&gt;
|-&lt;br /&gt;
|V10||166 10V	10 meters wind V-component		&lt;br /&gt;
|-&lt;br /&gt;
|T2||167 2T	2 metres air temperature		&lt;br /&gt;
|-&lt;br /&gt;
|D2||168 2D	2 metres dew point temperature		&lt;br /&gt;
|-&lt;br /&gt;
|LCC||186 LCC	low cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 1000''||&lt;br /&gt;
|-&lt;br /&gt;
|T_1000||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_1000||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_1000||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_1000||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_1000||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 925||&lt;br /&gt;
|-&lt;br /&gt;
|T_925||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_925||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_925||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_925||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_925||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 850||&lt;br /&gt;
|-&lt;br /&gt;
|T_850||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_850||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_850||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_850||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_850||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 700||&lt;br /&gt;
|-&lt;br /&gt;
|T_700||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_700||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_700||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_700||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_700||157 R	relative humidity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== COMBINED == &lt;br /&gt;
&lt;br /&gt;
If you want to use Analysis data if available for a timestimp but otherwise Forecast, the COMBINED VIEW can be used. If a ANALYSIS value is available for a timestamp and latitude/longitude the ANALYSIS value will be used, otherwise the FORECAST value is given.&lt;br /&gt;
&lt;br /&gt;
== Historical data == &lt;br /&gt;
&lt;br /&gt;
In addition ongoing process of adding ECMWF data since November 11 2007, a historical data set has been loaded.  That historical dataset is stored in additional inherited tables FORECASTHISTORY and&lt;br /&gt;
ANALYSISHISTORY which inherit from FORECAST and ANALYSIS respectively. &lt;br /&gt;
&lt;br /&gt;
The FORECASTHISTORY does not always contain TP (228 TP total precipitation accumulated).  Instead of this it contains the following values :&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|LSP||142 LSP Large scale precipitation&lt;br /&gt;
|-&lt;br /&gt;
|CP||143 CP Convective precipitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The historical dat sets span the following periods and locations &lt;br /&gt;
&lt;br /&gt;
{|border=1 &lt;br /&gt;
|'''Start'''||'''End'''||'''Area'''||'''Grid'''&lt;br /&gt;
|-&lt;br /&gt;
|2007-01-01||2007-11-15||62degN 10degW 335degN 20degE||0.25x0.25deg&lt;br /&gt;
|-&lt;br /&gt;
|2003-02-15||2003-06-15||62degN 10degW 335degN 20degE||0.5x0.5deg&lt;br /&gt;
|-&lt;br /&gt;
|2005-01-01||2006-12-31||62degN 10degW 335degN 20degE||0.5x0.5deg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Helpful Functions &amp;amp; Queries == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following functions have been defined in Postgres to select the nearest gridpoint in spacetime for the ECMWF analysis and forecast tables. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are '''ecmwf.forecast_nearest''' and '''ecmwf.analysis_nearest''' and they take a latitude, longitude and timestamp as parameter. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They can be used in the following way, which will return all the fields in the relevant ECMWF data:&lt;br /&gt;
&lt;br /&gt;
  SELECT * FROM ecmwf.forecast_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
   &lt;br /&gt;
  SELECT * FROM ecmwf.analysis_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
&lt;br /&gt;
Note that the model latitude and model longitude are returned as integers and multiples of 100.  To return latititude and longitude as a decimal (for example to compare to the latitude and longitude of your GPS data) you need to first convert these fields to decimals:&lt;br /&gt;
&lt;br /&gt;
  SELECT f.latitude/100::decimal, f.longitude/100::decimal&lt;br /&gt;
  FROM ecmwf.forecast_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00') f;&lt;br /&gt;
&lt;br /&gt;
These function can for example be used in a join as follows :&lt;br /&gt;
&lt;br /&gt;
  SELECT g.ptt_id&lt;br /&gt;
       , g.date_time&lt;br /&gt;
       , g.latitude&lt;br /&gt;
       , g.longitude&lt;br /&gt;
       , g.speed&lt;br /&gt;
       , g.course&lt;br /&gt;
       , g.altitude&lt;br /&gt;
       , (ecmwf.forecast_nearest( g.latitude, g.longitude,g.date_time)).*&lt;br /&gt;
  FROM gps.gps_tracking_data g&lt;br /&gt;
     , gps.individual i&lt;br /&gt;
     , gps.track_session t&lt;br /&gt;
  WHERE g.ptt_id = t.ptt_id &lt;br /&gt;
    AND g.date_time &amp;gt;= t.start_date &lt;br /&gt;
    AND i.ring_number = t.ring_number &lt;br /&gt;
    AND g.parser_qc = 1 &lt;br /&gt;
    AND g.ptt_id = 41745 &lt;br /&gt;
    AND g.latitude &amp;lt;&amp;gt; 0&lt;br /&gt;
  ORDER BY g.date_time;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although these functions were converted to PLPgSQL to speed them up, a faster ways to retrieve the same data is with (thanks to Floris Sluiters): &lt;br /&gt;
&lt;br /&gt;
  SELECT ptt_id, date_time, latitude, longitude, speed, course, altitude, (x::ecmwf.forecast).*&lt;br /&gt;
  FROM (SELECT &lt;br /&gt;
       g.*&lt;br /&gt;
       ,((SELECT f &lt;br /&gt;
            FROM ecmwf.forecast f&lt;br /&gt;
           WHERE f.latitude = round(g.latitude * 100 / 25)::integer * 25&lt;br /&gt;
             AND f.longitude =  round(g.longitude * 100 / 25)::integer * 25&lt;br /&gt;
             AND f.modelts = TIMESTAMP 'epoch' + round(EXTRACT(EPOCH FROM g.date_time) &lt;br /&gt;
                 / (60*60*3))::integer * INTERVAL '3 hours' limit 1)::ecmwf.forecast) as x &lt;br /&gt;
        FROM   gps.gps_tracking_data g&lt;br /&gt;
             , gps.individual i&lt;br /&gt;
             , gps.track_session t&lt;br /&gt;
        WHERE g.ptt_id = t.ptt_id &lt;br /&gt;
          AND g.date_time &amp;gt;= t.start_date &lt;br /&gt;
          AND i.ring_number = t.ring_number &lt;br /&gt;
          AND g.parser_qc = 1 &lt;br /&gt;
          AND g.ptt_id = 41745&lt;br /&gt;
          AND g.latitude &amp;lt;&amp;gt; 0&lt;br /&gt;
          ORDER BY g.date_time) t&lt;br /&gt;
&lt;br /&gt;
Below is example query that retrieves data for a model grid point closest to user provided coordinates and for one model time stamp (eg. 12:00) for a series of consecutive days&lt;br /&gt;
&lt;br /&gt;
  SELECT f.modelts, f.latitude, f.longitude, f.blh&lt;br /&gt;
  FROM ecmwf.forecast as f&lt;br /&gt;
  WHERE f.latitude = round(42.718104*100/25)::integer*25 AND f.longitude = round(11.517727*100/25)::integer*25 and &lt;br /&gt;
    f.modelts &amp;gt;= '2007-08-01 12:00' and f.modelts &amp;lt;= '2008-08-01 12:00' and date_part('hour', f.modelts) = 12&lt;br /&gt;
  ORDER BY f.modelts   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Interpolation ===&lt;br /&gt;
&lt;br /&gt;
The following functions are added so that simple linear interpolation for a specific point in space and time can be done in Postgres. &lt;br /&gt;
&lt;br /&gt;
These are '''ecmwf.forecast_interpolate''' and '''ecmwf.analysis_interpolate''' and they take a latitude, longitude and timestamp as parameter. &lt;br /&gt;
&lt;br /&gt;
They can be used in the same way:&lt;br /&gt;
&lt;br /&gt;
  select * from ecmwf.forecast_interpolate( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
   &lt;br /&gt;
  select * from ecmwf.analysis_interpolate( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
&lt;br /&gt;
And they can also be used in joins as above. These functions select the 8 surrounding points in latitude, longitude and date_time and interpolate linear in latitude, longitude and date_time successively. The '''interpolate''' functions are much slower then the '''nearest''' functions.&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1245</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1245"/>
				<updated>2015-04-09T12:12:36Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* gps.ee_nest_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Acceleration is measured in blocks of 1-200 measurements (records). The date_time  mentioned in this block is the date and time of the first acceleration measurement. Sequential measurements within a block are numbered with an index 1... (max 200). Every row represents one measurement in 3 directions (X,Y,Z). The order is important within each block, so you should always sort the acceleration measurements by block and index. If you need the exact time for each row, you can calculate it from the index, the sample frequency (which is almost always 20 Hz) and the date_time of the first row in the block.&lt;br /&gt;
&lt;br /&gt;
The date_time of the first block is the time of the GPS measurement preceding the accelerometer measurement. If there is no valid GPS measurement, this time is calculated from the last GPS measurement and the time of the internal clock of the tracker.&lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time in gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to (time in UTC, no time zone).&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time. &lt;br /&gt;
&lt;br /&gt;
If there is no valid GPS measurement, this time is calculated from the last GPS measurement and the time of the internal clock of the tracker.&lt;br /&gt;
 &lt;br /&gt;
To know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bird data ==&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_species_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a species that you can assign to your birds to include them in your project. No bird in the system can exist without being linked to one of the species from this list. If you are tagging a bird whose species does not exist in the list, please [http://www.uva-bits.nl/contact/ contact] us.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|abbr||varchar||NO||Unique abbreviation for this species.&lt;br /&gt;
|-&lt;br /&gt;
|english_name||varchar||YES||Name of the species in English. &lt;br /&gt;
|-&lt;br /&gt;
|latin_name||varchar||NO||Name of the species in Latin. It is always filled in.&lt;br /&gt;
|-&lt;br /&gt;
|species_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins to nest_inhabitant_limited.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
== Tracker and project data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* ''Meta'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;br /&gt;
&lt;br /&gt;
== Accelerometer calibration ==&lt;br /&gt;
&lt;br /&gt;
The accelerometer measures the acceleration in 3D (20 times per second). Acceleration is caused by gravity (static component) and by a change in speed (dynamic component). &lt;br /&gt;
When the logger is static in horizontal position (solar cells up), gravity (green arrow) shows a  heave (vertical acceleration, z) of +1 g (1 g = 9.81 m.s&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;) while surge and heave are both 0. When the front of the logger is vertically pointing down (forward acceleration, x), surge is +1g and when it is rolled to the right (sidewards acceleration, y) sway is +1g. Due to gravity, the pitch of a logger is thus translated into the values of heave, surge and sway (or z, x, y).&lt;br /&gt;
&lt;br /&gt;
However, the values are measured in mV instead of g. Before delivering the GPS-loggers, they have been calibrated at UvA. The acceleration (A) expressed in g is calculated from the measured value (M) and the calibration factors offset (''O'') and sensitivity (''S'').&lt;br /&gt;
&lt;br /&gt;
Thus acceleration for heave (z), surge (x) and sway (y) is calculated as:&lt;br /&gt;
A&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; ;      A&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;;      A&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; ; &lt;br /&gt;
&lt;br /&gt;
The values of ''O'' (in general ranging from 0-60, sometimes even 300) and ''S'' (ranging from 1300-1450) are available in the device table of the data base. If not available, use the factory defaults ''O'' = 0 and ''S'' = 1365.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[File:accelero1.png|300px]]||[[File:accelero2.png|300px]]|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the figure above heave (z) is shown in green, surge(x) in red and sway (y) in blue, all values are expressed in g (on the y-axis).&lt;br /&gt;
&lt;br /&gt;
== Data processing and filtering ==&lt;br /&gt;
The raw log files are processed before being entered into the database. Each firmware version has a dedicated parser for the task. In certain cases data that is found in the log files is not stored in the database.  This can occur for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. The data did not pass the CRC8 checksum (cyclic redundancy check). This is a standard procedure designed to detect accidental changes to raw computer data.&lt;br /&gt;
&lt;br /&gt;
2. If the data has an invalid signature. For example, if a certain data format (eg numeric) or number of values (eg 4 digits) is expected but not returned, this record is not stored in the database.&lt;br /&gt;
&lt;br /&gt;
When a line is deleted, the log file name, line number and the type of error is stored in the table gps.uva_warning102&lt;br /&gt;
&lt;br /&gt;
== Information about GPS receivers ==&lt;br /&gt;
The first series of tags used the UBlox LEAS4S chip (~up to tag 541), newer tags use UBlox LEAS6S. The series developed in 2012 will use the Max6G receivers. From 2012 receiver versions will be stored in the database.&lt;br /&gt;
The UBX protocol is used for programming firmware, packaging and processing data.&lt;br /&gt;
For more information about the receivers themselves see the ublox documentation.&lt;br /&gt;
Ublox 4 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/ANTARIS_Protocol_Specification%28GPS.G3-X-03002%29.zip]&lt;br /&gt;
Ublox 6 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/u-blox6_ReceiverDescriptionProtocolSpec_%28GPS.G6-SW-10018%29.pdf]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1244</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1244"/>
				<updated>2015-03-13T07:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Calculating summary statistics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== Select tracking data and distinguish between distinct GPS deployments ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger or each time an individual bird was tracked. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make a distinction between these tracking events by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = ''''&amp;lt;Project name&amp;gt;'''' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;br /&gt;
&lt;br /&gt;
== Re-sample tracking data to select data with a predefined interval between fixes ==&lt;br /&gt;
&lt;br /&gt;
The following query provides an example of how to select data points with a predefined interval between each point and not lower. In the following example, a 5 minute interval is selected.  In this example all measurements that are taken between each 5 minute interval are left out of the resampled data. &lt;br /&gt;
&lt;br /&gt;
Commented query with examples.  Statements followed by -- are comments and are not parsed by SQL.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               -- return oldest date_time for each interval&lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               -- each 5 minutes has a unique identifier&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = 355 AND date_time BETWEEN '2010-06-27' AND '2010-06-29'&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
Uncommented query, date_time and device_info_serial need to be filled in. Interval is 5 minutes and can be changed.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = '''&amp;lt;ID&amp;gt;''' AND date_time BETWEEN ''''yyyy-mm-dd'''' AND ''''yyyy-mm-dd''''&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
Count the number of GPS fixes within a track session and for all track sessions within a specific project.&lt;br /&gt;
In the example below the project name needs to be filled in, for example s.key_name = 'HG_IVES'&lt;br /&gt;
&lt;br /&gt;
 WITH &lt;br /&gt;
 V AS (&lt;br /&gt;
    SELECT s.device_info_serial, count(t.*) AS point_count, s.track_session_id, s.individual_id&lt;br /&gt;
    FROM gps.ee_track_session_limited s&lt;br /&gt;
    JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
      ON t.latitude IS NOT NULL&lt;br /&gt;
     AND s.device_info_serial = t.device_info_serial &lt;br /&gt;
     AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
    WHERE s.key_name = ''''&amp;lt; project name &amp;gt;''''&lt;br /&gt;
    GROUP BY s.track_session_id, s.device_info_serial, s.individual_id&lt;br /&gt;
 )&lt;br /&gt;
 SELECT i.colour_ring, V.device_info_serial, V.point_count, V.track_session_id&lt;br /&gt;
 FROM V&lt;br /&gt;
 JOIN gps.ee_individual_limited i&lt;br /&gt;
  ON V.individual_id = i.individual_id&lt;br /&gt;
= Extra Metadata =&lt;br /&gt;
== Extract all track sessions for a project ==&lt;br /&gt;
This query provides all the track sessions for a specific project as well as the selected ID of the individual birds that were tracked. In the example below the project name needs to be filled in, for example s.key_name = 'HG_IVES'&lt;br /&gt;
&lt;br /&gt;
  SELECT s.device_info_serial, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_individual_limited i&lt;br /&gt;
  JOIN gps.ee_track_session_limited s&lt;br /&gt;
   ON s.individual_id = i.individual_id&lt;br /&gt;
  WHERE s.key_name = ''''&amp;lt; project name &amp;gt;'''' &lt;br /&gt;
  ORDER BY i.colour_ring&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1242</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1242"/>
				<updated>2015-03-02T14:08:06Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Views_2015 | e-Ecology database for general use (views) ]]&lt;br /&gt;
::* [[ DB_Tables_2015 | e-Ecology tables behind the views (not accessible for normal use) ]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Tracker Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[Flight Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::This tool produces GPX files from UvA-BiTS tracking data for dynamic [http://www.doarama.com Doarama] visualizations.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices they have access to and to access the dashboard for administering projects. &lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema. This service is currently not available.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=ECMWF&amp;diff=1241</id>
		<title>ECMWF</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=ECMWF&amp;diff=1241"/>
				<updated>2015-01-29T14:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Helpful Functions &amp;amp; Queries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ECMWF == &lt;br /&gt;
&lt;br /&gt;
Datamodel for the tables in the ECMWF schema. &lt;br /&gt;
&lt;br /&gt;
Data is created by the ECMWF and retrieved from the KNMI ftp site as GRIB files. The original GRIB files can also be  retrieved from the flysafe server from :&lt;br /&gt;
&lt;br /&gt;
[https://flysafe-pps.grid.sara.nl/archive/knmi/ecmwf/ ECMWF Data Archive]&lt;br /&gt;
&lt;br /&gt;
More information about the parameters in these GRIB files can be retrieved from the [http://www.ecmwf.int/services/dissemination/3.1/Products_in_GRIB_code.html ECMWF website].&lt;br /&gt;
&lt;br /&gt;
== INVARIABLE == &lt;br /&gt;
&lt;br /&gt;
The INVARIABLE table contains data that is invariant over time. &lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|'''LATITUDE''' || degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE''' || degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|Z || 129 Z Geopotential surface/model orography 				&lt;br /&gt;
|-&lt;br /&gt;
|LSM || 172 LSM	Land sea mask				&lt;br /&gt;
|-&lt;br /&gt;
|LOCATION || Latitude/longitude as GIS location  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The GIS LOCATION is only added to this table. This is because always the same values for latitude and  longitude are used and then if the GIS location is required for the ANALYSIS or FORECAST tables it can be retrieved by joining to this table on the LATITUDE, LONGUTUDE fields.&lt;br /&gt;
&lt;br /&gt;
== FORECAST and UVA_FORECAST == &lt;br /&gt;
&lt;br /&gt;
The FORECAST table contains predicted values in steps of 3 hours till 72 hours ahead. The MODELTS is the timestamp for which this prediction applies. Two times a day new Forecast GRIB files will arrive. The newer FORECAST data that arrives for the same timestamp will overwrite the older data.&lt;br /&gt;
&lt;br /&gt;
The FORECAST (and UVA_FORECAST) table itself is a master table that does not contain any data. The inherited tables &lt;br /&gt;
FORECAST&amp;lt;YEAR&amp;gt;&amp;lt;MONTH&amp;gt; contain the data, but the master FORECAST or UVA_FORECAST table can be used to SELECT the data. &lt;br /&gt;
&lt;br /&gt;
Data till 2009-09 is owned by the UvA and can be accessed by anybody with ECMWF_READ rights by using the FORECAST_UVA table. The FORECAST table itself also references data after 2009-09 that is owned by RNLAF for which special access rights ECMWF_RNLAF_READ are required. &lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|'''MODELTS'''||Time for which this forecast applies = model run + step hours&lt;br /&gt;
|-&lt;br /&gt;
|'''LATITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|STEP||model step (smaller is more recent forecast)&lt;br /&gt;
|-&lt;br /&gt;
|SSRD||169 SSRD	surface solar radiation downwards accumulated			&lt;br /&gt;
|-&lt;br /&gt;
|TP||228 TP	total precipitation accumulated			&lt;br /&gt;
|-&lt;br /&gt;
|SP||134 SP	surface pressure		&lt;br /&gt;
|-&lt;br /&gt;
|BLH||159 BLH	boundary layer height		&lt;br /&gt;
|-&lt;br /&gt;
|TCC||164 TCC	total cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|U10||165 10U	10 meters wind U-component		&lt;br /&gt;
|-&lt;br /&gt;
|V10||166 10V	10 meters wind V-component		&lt;br /&gt;
|-&lt;br /&gt;
|T2||167 2T	2 metres air temperature		&lt;br /&gt;
|-&lt;br /&gt;
|D2||168 2D	2 metres dew point temperature		&lt;br /&gt;
|-&lt;br /&gt;
|LCC||186 LCC	low cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 1000''||&lt;br /&gt;
|-&lt;br /&gt;
|T_1000||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_1000||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_1000||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_1000||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_1000||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 925''||&lt;br /&gt;
|-&lt;br /&gt;
|T_925 real||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_925 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_925 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_925 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_925 real||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 850''||&lt;br /&gt;
|-&lt;br /&gt;
|T_850||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_850 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_850 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_850 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_850 real||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 700''||&lt;br /&gt;
|-&lt;br /&gt;
|T_700 real||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_700 real||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_700 real||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_700 real||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_700 real||157 R	relative humidity	&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ANALYSIS and UVA_ANALYSIS ==&lt;br /&gt;
&lt;br /&gt;
The ANALYSIS and UVA_ANALYSIS table contains values from the Analysis GRIB files at 18, 00, 06 and 12 UTC&lt;br /&gt;
&lt;br /&gt;
Data till 2009-09 is owned by the UvA and can be accessed by anybody with ECMWF_READ rights by using the ANALYSIS_UVA table. The ANALYSIS table itself also references data after 2009-09 that is owned by RNLAF for which special access rights ECMWF_RNLAF_READ are required. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{|border=1&lt;br /&gt;
|'''MODELTS'''||Time for which this forecast applies = model run&lt;br /&gt;
|-&lt;br /&gt;
|'''LATITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|'''LONGITUDE'''||degrees * 100 to make this a integer&lt;br /&gt;
|-&lt;br /&gt;
|SP||134 SP	surface pressure		&lt;br /&gt;
|-&lt;br /&gt;
|TCC||164 TCC	total cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|U10||165 10U	10 meters wind U-component		&lt;br /&gt;
|-&lt;br /&gt;
|V10||166 10V	10 meters wind V-component		&lt;br /&gt;
|-&lt;br /&gt;
|T2||167 2T	2 metres air temperature		&lt;br /&gt;
|-&lt;br /&gt;
|D2||168 2D	2 metres dew point temperature		&lt;br /&gt;
|-&lt;br /&gt;
|LCC||186 LCC	low cloud coverage		&lt;br /&gt;
|-&lt;br /&gt;
|''Pressure level 1000''||&lt;br /&gt;
|-&lt;br /&gt;
|T_1000||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_1000||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_1000||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_1000||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_1000||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 925||&lt;br /&gt;
|-&lt;br /&gt;
|T_925||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_925||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_925||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_925||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_925||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 850||&lt;br /&gt;
|-&lt;br /&gt;
|T_850||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_850||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_850||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_850||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_850||157 R	relative humidity	&lt;br /&gt;
|-&lt;br /&gt;
|Pressure level 700||&lt;br /&gt;
|-&lt;br /&gt;
|T_700||130 T	temperature	&lt;br /&gt;
|-&lt;br /&gt;
|U_700||131 U	U-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|V_700||132 V	V-wind component	&lt;br /&gt;
|-&lt;br /&gt;
|GH_700||156 GH	geopotential height	&lt;br /&gt;
|-&lt;br /&gt;
|R_700||157 R	relative humidity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== COMBINED == &lt;br /&gt;
&lt;br /&gt;
If you want to use Analysis data if available for a timestimp but otherwise Forecast, the COMBINED VIEW can be used. If a ANALYSIS value is available for a timestamp and latitude/longitude the ANALYSIS value will be used, otherwise the FORECAST value is given.&lt;br /&gt;
&lt;br /&gt;
== Historical data == &lt;br /&gt;
&lt;br /&gt;
In addition ongoing process of adding ECMWF data since November 11 2007, a historical data set has been loaded.  That historical dataset is stored in additional inherited tables FORECASTHISTORY and&lt;br /&gt;
ANALYSISHISTORY which inherit from FORECAST and ANALYSIS respectively. &lt;br /&gt;
&lt;br /&gt;
The FORECASTHISTORY does not always contain TP (228 TP total precipitation accumulated).  Instead of this it contains the following values :&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|LSP||142 LSP Large scale precipitation&lt;br /&gt;
|-&lt;br /&gt;
|CP||143 CP Convective precipitation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The historical dat sets span the following periods and locations &lt;br /&gt;
&lt;br /&gt;
{|border=1 &lt;br /&gt;
|'''Start'''||'''End'''||'''Area'''||'''Grid'''&lt;br /&gt;
|-&lt;br /&gt;
|2007-01-01||2007-11-15||62degN 10degW 335degN 20degE||0.25x0.25deg&lt;br /&gt;
|-&lt;br /&gt;
|2003-02-15||2003-06-15||62degN 10degW 335degN 20degE||0.5x0.5deg&lt;br /&gt;
|-&lt;br /&gt;
|2005-01-01||2006-12-31||62degN 10degW 335degN 20degE||0.5x0.5deg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Helpful Functions &amp;amp; Queries == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following functions have been defined in Postgres to select the nearest gridpoint in spacetime for the ECMWF analysis and forecast tables. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are '''ecmwf.forecast_nearest''' and '''ecmwf.analysis_nearest''' and they take a latitude, longitude and timestamp as parameter. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
They can be used in the following way, which will return all the fields in the relevant ECMWF data:&lt;br /&gt;
&lt;br /&gt;
  SELECT * FROM ecmwf.forecast_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
   &lt;br /&gt;
  SELECT * FROM ecmwf.analysis_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
&lt;br /&gt;
Note that the model latitude and model longitude are returned as integers and multiples of 100.  To return latititude and longitude as a decimal (for example to compare to the latitude and longitude of your GPS data) you need to first convert these fields to decimals:&lt;br /&gt;
&lt;br /&gt;
  SELECT f.latitude/100::decimal, f.longitude/100::decimal&lt;br /&gt;
  FROM ecmwf.forecast_nearest( 52.35983, 5.615, timestamp '2008-05-19 13:34:00') f;&lt;br /&gt;
&lt;br /&gt;
These function can for example be used in a join as follows :&lt;br /&gt;
&lt;br /&gt;
  SELECT g.ptt_id&lt;br /&gt;
       , g.date_time&lt;br /&gt;
       , g.latitude&lt;br /&gt;
       , g.longitude&lt;br /&gt;
       , g.speed&lt;br /&gt;
       , g.course&lt;br /&gt;
       , g.altitude&lt;br /&gt;
       , (ecmwf.forecast_nearest( g.latitude, g.longitude,g.date_time)).*&lt;br /&gt;
  FROM gps.gps_tracking_data g&lt;br /&gt;
     , gps.individual i&lt;br /&gt;
     , gps.track_session t&lt;br /&gt;
  WHERE g.ptt_id = t.ptt_id &lt;br /&gt;
    AND g.date_time &amp;gt;= t.start_date &lt;br /&gt;
    AND i.ring_number = t.ring_number &lt;br /&gt;
    AND g.parser_qc = 1 &lt;br /&gt;
    AND g.ptt_id = 41745 &lt;br /&gt;
    AND g.latitude &amp;lt;&amp;gt; 0&lt;br /&gt;
  ORDER BY g.date_time;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although these functions were converted to PLPgSQL to speed them up, a faster ways to retrieve the same data is with (thanks to Floris Sluiters): &lt;br /&gt;
&lt;br /&gt;
  SELECT ptt_id, date_time, latitude, longitude, speed, course, altitude, (x::ecmwf.forecast).*&lt;br /&gt;
  FROM (SELECT &lt;br /&gt;
       g.*&lt;br /&gt;
       ,((SELECT f &lt;br /&gt;
            FROM ecmwf.forecast f&lt;br /&gt;
           WHERE f.latitude = round(g.latitude * 100 / 25)::integer * 25&lt;br /&gt;
             AND f.longitude =  round(g.longitude * 100 / 25)::integer * 25&lt;br /&gt;
             AND f.modelts = TIMESTAMP 'epoch' + round(EXTRACT(EPOCH FROM g.date_time) &lt;br /&gt;
                 / (60*60*3))::integer * INTERVAL '3 hours' limit 1)::ecmwf.forecast) as x &lt;br /&gt;
        FROM   gps.gps_tracking_data g&lt;br /&gt;
             , gps.individual i&lt;br /&gt;
             , gps.track_session t&lt;br /&gt;
        WHERE g.ptt_id = t.ptt_id &lt;br /&gt;
          AND g.date_time &amp;gt;= t.start_date &lt;br /&gt;
          AND i.ring_number = t.ring_number &lt;br /&gt;
          AND g.parser_qc = 1 &lt;br /&gt;
          AND g.ptt_id = 41745&lt;br /&gt;
          AND g.latitude &amp;lt;&amp;gt; 0&lt;br /&gt;
          ORDER BY g.date_time) t&lt;br /&gt;
&lt;br /&gt;
Below is example query that retrieves data for a model grid point closest to user provided coordinates and for one model time stamp (eg. 12:00) for a series of consecutive days&lt;br /&gt;
&lt;br /&gt;
  SELECT f.modelts, f.latitude, f.longitude, f.blh&lt;br /&gt;
  FROM ecmwf.forecast as f&lt;br /&gt;
  WHERE f.latitude = round(42.718104*100/25)::integer*25 AND f.longitude = round(11.517727*100/25)::integer*25 and &lt;br /&gt;
    f.modelts &amp;gt;= '2007-08-01 12:00' and f.modelts &amp;lt;= '2008-08-01 12:00' and date_part('hour', f.modelts) = 12&lt;br /&gt;
  ORDER BY f.modelts   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Interpolation ===&lt;br /&gt;
&lt;br /&gt;
The following functions are added so that simple linear interpolation for a specific point in space and time can be done in Postgres. &lt;br /&gt;
&lt;br /&gt;
These are '''ecmwf.forecast_interpolate''' and '''ecmwf.analysis_interpolate''' and they take a latitude, longitude and timestamp as parameter. &lt;br /&gt;
&lt;br /&gt;
They can be used in the same way:&lt;br /&gt;
&lt;br /&gt;
  select * from ecmwf.forecast_interpolate( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
   &lt;br /&gt;
  select * from ecmwf.analysis_interpolate( 52.35983, 5.615, timestamp '2008-05-19 13:34:00');&lt;br /&gt;
&lt;br /&gt;
And they can also be used in joins as above. These functions select the 8 surrounding points in latitude, longitude and date_time and interpolate linear in latitude, longitude and date_time successively. The '''interpolate''' functions are much slower then the '''nearest''' functions.&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1240</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1240"/>
				<updated>2015-01-19T19:02:32Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Total number of measurements per tag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== Select tracking data and distinguish between distinct GPS deployments ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger or each time an individual bird was tracked. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make a distinction between these tracking events by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = ''''&amp;lt;Project name&amp;gt;'''' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;br /&gt;
&lt;br /&gt;
== Re-sample tracking data to select data with a predefined interval between fixes ==&lt;br /&gt;
&lt;br /&gt;
The following query provides an example of how to select data points with a predefined interval between each point and not lower. In the following example, a 5 minute interval is selected.  In this example all measurements that are taken between each 5 minute interval are left out of the resampled data. &lt;br /&gt;
&lt;br /&gt;
Commented query with examples.  Statements followed by -- are comments and are not parsed by SQL.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               -- return oldest date_time for each interval&lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               -- each 5 minutes has a unique identifier&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = 355 AND date_time BETWEEN '2010-06-27' AND '2010-06-29'&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
Uncommented query, date_time and device_info_serial need to be filled in. Interval is 5 minutes and can be changed.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = '''&amp;lt;ID&amp;gt;''' AND date_time BETWEEN ''''yyyy-mm-dd'''' AND ''''yyyy-mm-dd''''&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
Count the number of GPS fixes within a track session and for all track sessions within a specific project.&lt;br /&gt;
In the example below the project name needs to be filled in, for example s.key_name = 'HG_IVES'&lt;br /&gt;
&lt;br /&gt;
 WITH &lt;br /&gt;
 V AS (&lt;br /&gt;
    SELECT s.device_info_serial, count(t.*) AS point_count, s.track_session_id, s.individual_id&lt;br /&gt;
    FROM gps.ee_track_session_limited s&lt;br /&gt;
    JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
      ON t.latitude IS NOT NULL&lt;br /&gt;
     AND s.device_info_serial = t.device_info_serial &lt;br /&gt;
     AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
    WHERE s.key_name = ''''&amp;lt; project name &amp;gt;''''&lt;br /&gt;
    GROUP BY s.track_session_id, s.device_info_serial, s.individual_id&lt;br /&gt;
 )&lt;br /&gt;
 SELECT i.colour_ring, V.device_info_serial, V.point_count, V.track_session_id&lt;br /&gt;
 FROM V&lt;br /&gt;
 JOIN gps.ee_individual_limited i&lt;br /&gt;
  ON V.individual_id = i.individual_id&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1239</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1239"/>
				<updated>2015-01-19T14:31:33Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Re-sample tracking data to select data with a predefined interval between fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== Select tracking data and distinguish between distinct GPS deployments ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger or each time an individual bird was tracked. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make a distinction between these tracking events by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = ''''&amp;lt;Project name&amp;gt;'''' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;br /&gt;
&lt;br /&gt;
== Re-sample tracking data to select data with a predefined interval between fixes ==&lt;br /&gt;
&lt;br /&gt;
The following query provides an example of how to select data points with a predefined interval between each point and not lower. In the following example, a 5 minute interval is selected.  In this example all measurements that are taken between each 5 minute interval are left out of the resampled data. &lt;br /&gt;
&lt;br /&gt;
Commented query with examples.  Statements followed by -- are comments and are not parsed by SQL.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               -- return oldest date_time for each interval&lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               -- each 5 minutes has a unique identifier&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = 355 AND date_time BETWEEN '2010-06-27' AND '2010-06-29'&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
Uncommented query, date_time and device_info_serial need to be filled in. Interval is 5 minutes and can be changed.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = '''&amp;lt;ID&amp;gt;''' AND date_time BETWEEN ''''yyyy-mm-dd'''' AND ''''yyyy-mm-dd''''&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1238</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1238"/>
				<updated>2015-01-19T14:30:38Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Select tracking data and distinguish between distinct GPS deployments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== Select tracking data and distinguish between distinct GPS deployments ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger or each time an individual bird was tracked. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make a distinction between these tracking events by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = ''''&amp;lt;Project name&amp;gt;'''' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;br /&gt;
&lt;br /&gt;
== Re-sample tracking data to select data with a predefined interval between fixes ==&lt;br /&gt;
&lt;br /&gt;
The following query provides an example of how to select data points with a predefined interval between each point and not lower. In the following example, a 5 minute interval is selected.  In this example all measurements that are taken between each 5 minute interval are left out of the resampled data. &lt;br /&gt;
&lt;br /&gt;
Commented query with examples.  Statements followed by -- are comments and are not parsed by SQL.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               -- return oldest date_time for each interval&lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               -- each 5 minutes has a unique identifier&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = 355 AND date_time BETWEEN '2010-06-27' AND '2010-06-29'&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
Uncommented query, date_time and device_info_serial need to be filled in. Interval is 5 minutes and can be changed.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
WHERE device_info_serial = &amp;lt;ID&amp;gt; AND date_time BETWEEN 'yyyy-mm-dd' AND 'yyyy-mm-dd'&lt;br /&gt;
ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1237</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1237"/>
				<updated>2015-01-19T14:28:57Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Re-sample tracking data to select data with a predefined interval between fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== Select tracking data and distinguish between distinct GPS deployments ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger or each time an individual bird was tracked. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make a distinction between these tracking events by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;br /&gt;
&lt;br /&gt;
== Re-sample tracking data to select data with a predefined interval between fixes ==&lt;br /&gt;
&lt;br /&gt;
The following query provides an example of how to select data points with a predefined interval between each point and not lower. In the following example, a 5 minute interval is selected.  In this example all measurements that are taken between each 5 minute interval are left out of the resampled data. &lt;br /&gt;
&lt;br /&gt;
Commented query with examples.  Statements followed by -- are comments and are not parsed by SQL.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               -- return oldest date_time for each interval&lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               -- each 5 minutes has a unique identifier&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = 355 AND date_time BETWEEN '2010-06-27' AND '2010-06-29'&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
Uncommented query, date_time and device_info_serial need to be filled in. Interval is 5 minutes and can be changed.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
WHERE device_info_serial = &amp;lt;ID&amp;gt; AND date_time BETWEEN 'yyyy-mm-dd' AND 'yyyy-mm-dd'&lt;br /&gt;
ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1236</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1236"/>
				<updated>2015-01-19T12:58:52Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Filtering tracking data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== Select tracking data and distinguish between distinct GPS deployments ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger or each time an individual bird was tracked. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make a distinction between these tracking events by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;br /&gt;
&lt;br /&gt;
== Re-sample tracking data to select data with a predefined interval between fixes ==&lt;br /&gt;
&lt;br /&gt;
The following query provides an example of how to select data points with a predefined interval between each point and not lower. In the following example, a 5 minute interval is selected.  In this example all measurements that are taken between each 5 minute interval are left out of the resampled data. &lt;br /&gt;
&lt;br /&gt;
Commented query with examples.  Statements followed by -- are comments and are not parsed by SQL.&lt;br /&gt;
&lt;br /&gt;
  SELECT *&lt;br /&gt;
  FROM gps.ee_tracking_speed_limited&lt;br /&gt;
  JOIN&lt;br /&gt;
  (&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               -- return oldest date_time for each interval&lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               -- each 5 minutes has a unique identifier&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
  ) b&lt;br /&gt;
  USING (device_info_serial, date_time)&lt;br /&gt;
  WHERE device_info_serial = 355 AND date_time BETWEEN '2010-06-27' AND '2010-06-29'&lt;br /&gt;
  ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
Uncommented query, date_time and device_info_serial need to be filled in. Interval is 5 minutes and can be changed.&lt;br /&gt;
&lt;br /&gt;
SELECT *&lt;br /&gt;
FROM gps.ee_tracking_speed_limited&lt;br /&gt;
JOIN&lt;br /&gt;
(&lt;br /&gt;
               SELECT &lt;br /&gt;
               device_info_serial, &lt;br /&gt;
               MIN(date_time) date_time,&lt;br /&gt;
               FLOOR(EXTRACT(EPOCH FROM date_time)/(5*60)) intervalid&lt;br /&gt;
               FROM gps.ee_tracking_speed_limited&lt;br /&gt;
               GROUP BY device_info_serial, intervalid&lt;br /&gt;
) b&lt;br /&gt;
USING (device_info_serial, date_time)&lt;br /&gt;
WHERE device_info_serial = &amp;lt;ID&amp;gt; AND date_time BETWEEN 'yyyy-mm-dd' AND 'yyyy-mm-dd'&lt;br /&gt;
ORDER BY date_time&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1235</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1235"/>
				<updated>2015-01-19T12:06:13Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Calculating summary statistics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1234</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1234"/>
				<updated>2015-01-19T12:05:31Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvAGPS functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Filtering tracking data =&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1233</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1233"/>
				<updated>2015-01-14T09:05:13Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1232</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1232"/>
				<updated>2015-01-14T09:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by January 2015&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed_2d, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1231</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1231"/>
				<updated>2015-01-14T08:57:23Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* get_uvagps_track_distance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.ee_tracking_speed_limited where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by January 2015&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1230</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1230"/>
				<updated>2015-01-14T08:56:41Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* get_uvagps_track_speed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(&amp;lt;device_info_serial&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.uva_tracking where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by January 2015&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1229</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1229"/>
				<updated>2015-01-14T08:55:41Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* get_uvagps_track_speed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119);&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.ee_tracking_speed_limited t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.uva_tracking where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by January 2015&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1200</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1200"/>
				<updated>2015-01-09T11:23:09Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119);&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.uva_tracking t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.uva_tracking where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by January 2015&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM gps.ee_track_session_limited s&lt;br /&gt;
  JOIN gps.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN gps.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1199</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1199"/>
				<updated>2015-01-09T11:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than on logger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119);&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.uva_tracking t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.uva_tracking where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than one logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by December 2014&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM webapp.ee_track_session_limited s&lt;br /&gt;
  JOIN webapp.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN webapp.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1191</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1191"/>
				<updated>2014-12-18T20:00:10Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Changes in the Database in 2014 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::This tool produces GPX files from UvA-BiTS tracking data for dynamic [http://www.doarama.com Doarama] visualizations.&lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema. This service is currently not available.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1190</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1190"/>
				<updated>2014-12-18T19:59:43Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Other e-Ecology Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::This tool produces GPX files from UvA-BiTS tracking data for dynamic [http://www.doarama.com Doarama] visualizations.&lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema. This service is currently not available.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1189</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1189"/>
				<updated>2014-12-18T19:32:02Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::This tool produces GPX files from UvA-BiTS tracking data for dynamic [http://www.doarama.com Doarama] visualizations.&lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema. This service is currently not available.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1188</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1188"/>
				<updated>2014-12-18T19:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema. This service is currently not available.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1187</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1187"/>
				<updated>2014-12-18T19:25:14Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema. This service is currently not available.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1186</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1186"/>
				<updated>2014-12-18T19:22:34Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Other e-Ecology Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1185</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1185"/>
				<updated>2014-12-18T19:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Other e-Ecology Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1184</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1184"/>
				<updated>2014-12-18T19:19:43Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1183</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1183"/>
				<updated>2014-12-18T14:46:14Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1182</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1182"/>
				<updated>2014-12-18T14:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1181</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1181"/>
				<updated>2014-12-18T14:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Other e-Ecology Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1180</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1180"/>
				<updated>2014-12-18T14:37:31Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Other e-Ecology Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1179</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1179"/>
				<updated>2014-12-18T14:37:17Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Other e-Ecology Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
:: [[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1178</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1178"/>
				<updated>2014-12-18T14:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1177</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1177"/>
				<updated>2014-12-18T14:36:32Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Other e-Ecology Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1176</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1176"/>
				<updated>2014-12-18T14:36:22Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1175</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1175"/>
				<updated>2014-12-18T14:33:56Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* UvA-BiTS Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Services==&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1174</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1174"/>
				<updated>2014-12-18T13:30:55Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==UvA-BiTS Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;br /&gt;
&lt;br /&gt;
==Other e-Ecology Datasets==&lt;br /&gt;
&lt;br /&gt;
'''ENVIRONMENTAL DATA'''&lt;br /&gt;
&lt;br /&gt;
::* [[ ECMWF|Weather Forecast Data (ECMWF)]]&lt;br /&gt;
::* [[ Elevation|Elevation Data ]]&lt;br /&gt;
&lt;br /&gt;
'''FLYSAFE'''&lt;br /&gt;
&lt;br /&gt;
:Bird data created from weather radar data and bird migration models. Financed by the Royal Netherlands Air Force. &lt;br /&gt;
&lt;br /&gt;
::* [[Connecting to the Flysafe database]]&lt;br /&gt;
::* [[GPS|Flysafe GPS Data Model]]&lt;br /&gt;
::* [[ RADAR|Radar Data Model]]&lt;br /&gt;
::* [[ Wind profile|Wind Profile Data Model]]&lt;br /&gt;
::* [[ Fino1|Fino1 Data Model]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1173</id>
		<title>E-Ecology Documentation and Guidance</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1173"/>
				<updated>2014-12-18T13:29:39Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Datasets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The e-Ecology Virtual Laboratories represent a collaborative effort between the University of Amsterdam Institute for Biodiversity and Ecosystem Dynamics and SARA Computing to manage bird tracking data and develop tools for data exploration, analysis and visualization. This wiki is designed to facilitate access to the data and tools within the Virtual Laboratories and to provide a forum for collaboration. &lt;br /&gt;
&lt;br /&gt;
== Changes in the Database in 2014 ==&lt;br /&gt;
'''Important'''&lt;br /&gt;
In the summer of 2014 we have '''re-arranged the administrative''' part of UvA-BiTS (and e-Ecology) in the database. End users may have to adapt their programs the following way:&lt;br /&gt;
:* The '''uva_*_limited''' views that used to exist in the gps schema are gone. Most of them should have been replaced with an equivalent '''ee_*_limited counterpart'''. &lt;br /&gt;
:* The new ee_*_limited views show a superset of the same information as before, but enhanced with new project information.&lt;br /&gt;
:* Some '''column names''' in the ee_*_limited views may differ from the previous views.&lt;br /&gt;
:* There are new limited views: &lt;br /&gt;
:** gps.ee_'''project'''_limited: shows your projects' information&lt;br /&gt;
:** gps.ee_'''shared'''_*_limited: set of data you are able to see related to trackers that a project is sharing with a project you belong to&lt;br /&gt;
:* Special attention: gps.uva_device_limited is now replaced by '''gps.ee_tracker_limited'''. For each tracker, you now see which project provides you access to that tracker.&lt;br /&gt;
:* Also, '''gps.uva_tracking_limited''' is gone. Instead of that we have gps.ee_tracker_speed_limited, which adds speed columns to the original data. This amounts to a merger of gps.ee_tracking_limited, gps.ee_tracking_speed_3d_limited and gps.ee_tracking_speed_limited.&lt;br /&gt;
&lt;br /&gt;
== UvA-BiTS data == &lt;br /&gt;
&lt;br /&gt;
:Bird data collected with the UvA-BiTS Bird Tracking System&lt;br /&gt;
&lt;br /&gt;
Note: We are continually working on improving UvA-BiTS services, including data processing and Virtual Lab functionality. In some cases, this has enabled us to extract more information from old GPS log files which is then incorporated into the database.  These changes may result in slight differences when you reprocess historic data. &lt;br /&gt;
&lt;br /&gt;
::* [[ DB_Model_2014 | e-Ecology data model]]&lt;br /&gt;
::* [[ UvAGPS|UvA-BiTS Data Model]] - OLD&lt;br /&gt;
::* [[Connecting to the UvA-BiTS database]]&lt;br /&gt;
::* [[Useful Queries]]&lt;br /&gt;
::* [[Queries for linking bird tracks to wind and flow data]]&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
&lt;br /&gt;
* Visualization Tools&lt;br /&gt;
:: [[KMZ Generator|UvA-BiTS KMZ Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[BirdView]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Access meterological and radar data and overlay with GPS bird tracking data.&lt;br /&gt;
:: [[BirdSim]]:  &amp;lt;br/ &amp;gt;&lt;br /&gt;
:::More dynamic version of BirdView that allows the user to scroll through weather data in time and space.&lt;br /&gt;
:: [[GPS tracks|FlySafe GPS Bird Track Generator]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produce kmz files of ARGOS/GPS bird tracking data from the FlySafe project to be viewed in Google Earth. &lt;br /&gt;
:: [[KMZ Generator2]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Produces kmz files of UvA-BiTS bird tracking data to be viewed in Google Earth. &lt;br /&gt;
:: [[Calendar]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::Calendar overview with daily statistics of GPS-tracker&lt;br /&gt;
:: [[GPX]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
:::GPX file generator for [http://www.doarama.com Doarama] visualization.&lt;br /&gt;
&lt;br /&gt;
* [[ Annotation tables ]] for uploading GPS annotation data into your own schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dashboard]]:   These web pages allow UvA-BiTS users to get an overview of the raw data files of GPS bird tracking devices.&lt;br /&gt;
:: [[ FilesDashboard | Tracker files dashboard ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Bookkeeping]]: Description of tables related to FlySafe data processing and archiving.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ Administration]]: Information about user rights and data processing tasks.&lt;br /&gt;
&lt;br /&gt;
[[ ToDo ]]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1170</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1170"/>
				<updated>2014-12-11T13:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* gps.ee_acc_start_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Acceleration is measured in blocks of 1-200 measurements (records). The date_time  mentioned in this block is the date and time of the first acceleration measurement. Sequential measurements within a block are numbered with an index 1... (max 200). Every row represents one measurement in 3 directions (X,Y,Z). The order is important within each block, so you should always sort the acceleration measurements by block and index. If you need the exact time for each row, you can calculate it from the index, the sample frequency (which is almost always 20 Hz) and the date_time of the first row in the block.&lt;br /&gt;
&lt;br /&gt;
The date_time of the first block is the time of the GPS measurement preceding the accelerometer measurement. If there is no valid GPS measurement, this time is calculated from the last GPS measurement and the time of the internal clock of the tracker.&lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time in gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to (time in UTC, no time zone).&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time. &lt;br /&gt;
&lt;br /&gt;
If there is no valid GPS measurement, this time is calculated from the last GPS measurement and the time of the internal clock of the tracker.&lt;br /&gt;
 &lt;br /&gt;
To know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bird data ==&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_species_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a species that you can assign to your birds to include them in your project. No bird in the system can exist without being linked to one of the species from this list. If you are tagging a bird whose species does not exist in the list, please [http://www.uva-bits.nl/contact/ contact] us.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|abbr||varchar||NO||Unique abbreviation for this species.&lt;br /&gt;
|-&lt;br /&gt;
|english_name||varchar||YES||Name of the species in English. &lt;br /&gt;
|-&lt;br /&gt;
|latin_name||varchar||NO||Name of the species in Latin. It is always filled in.&lt;br /&gt;
|-&lt;br /&gt;
|species_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
== Tracker and project data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* ''Meta'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;br /&gt;
&lt;br /&gt;
== Accelerometer calibration ==&lt;br /&gt;
&lt;br /&gt;
The accelerometer measures the acceleration in 3D (20 times per second). Acceleration is caused by gravity (static component) and by a change in speed (dynamic component). &lt;br /&gt;
When the logger is static in horizontal position (solar cells up), gravity (green arrow) shows a  heave (vertical acceleration, z) of +1 g (1 g = 9.81 m.s&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;) while surge and heave are both 0. When the front of the logger is vertically pointing down (forward acceleration, x), surge is +1g and when it is rolled to the right (sidewards acceleration, y) sway is +1g. Due to gravity, the pitch of a logger is thus translated into the values of heave, surge and sway (or z, x, y).&lt;br /&gt;
&lt;br /&gt;
However, the values are measured in mV instead of g. Before delivering the GPS-loggers, they have been calibrated at UvA. The acceleration (A) expressed in g is calculated from the measured value (M) and the calibration factors offset (''O'') and sensitivity (''S'').&lt;br /&gt;
&lt;br /&gt;
Thus acceleration for heave (z), surge (x) and sway (y) is calculated as:&lt;br /&gt;
A&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; ;      A&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;;      A&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; ; &lt;br /&gt;
&lt;br /&gt;
The values of ''O'' (in general ranging from 0-60, sometimes even 300) and ''S'' (ranging from 1300-1450) are available in the device table of the data base. If not available, use the factory defaults ''O'' = 0 and ''S'' = 1365.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[File:accelero1.png|300px]]||[[File:accelero2.png|300px]]|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the figure above heave (z) is shown in green, surge(x) in red and sway (y) in blue, all values are expressed in g (on the y-axis).&lt;br /&gt;
&lt;br /&gt;
== Data processing and filtering ==&lt;br /&gt;
The raw log files are processed before being entered into the database. Each firmware version has a dedicated parser for the task. In certain cases data that is found in the log files is not stored in the database.  This can occur for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. The data did not pass the CRC8 checksum (cyclic redundancy check). This is a standard procedure designed to detect accidental changes to raw computer data.&lt;br /&gt;
&lt;br /&gt;
2. If the data has an invalid signature. For example, if a certain data format (eg numeric) or number of values (eg 4 digits) is expected but not returned, this record is not stored in the database.&lt;br /&gt;
&lt;br /&gt;
When a line is deleted, the log file name, line number and the type of error is stored in the table gps.uva_warning102&lt;br /&gt;
&lt;br /&gt;
== Information about GPS receivers ==&lt;br /&gt;
The first series of tags used the UBlox LEAS4S chip (~up to tag 541), newer tags use UBlox LEAS6S. The series developed in 2012 will use the Max6G receivers. From 2012 receiver versions will be stored in the database.&lt;br /&gt;
The UBX protocol is used for programming firmware, packaging and processing data.&lt;br /&gt;
For more information about the receivers themselves see the ublox documentation.&lt;br /&gt;
Ublox 4 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/ANTARIS_Protocol_Specification%28GPS.G3-X-03002%29.zip]&lt;br /&gt;
Ublox 6 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/u-blox6_ReceiverDescriptionProtocolSpec_%28GPS.G6-SW-10018%29.pdf]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1169</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1169"/>
				<updated>2014-12-11T13:43:47Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* gps.ee_acceleration_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Acceleration is measured in blocks of 1-200 measurements (records). The date_time  mentioned in this block is the date and time of the first acceleration measurement. Sequential measurements within a block are numbered with an index 1... (max 200). Every row represents one measurement in 3 directions (X,Y,Z). The order is important within each block, so you should always sort the acceleration measurements by block and index. If you need the exact time for each row, you can calculate it from the index, the sample frequency (which is almost always 20 Hz) and the date_time of the first row in the block.&lt;br /&gt;
&lt;br /&gt;
The date_time of the first block is the time of the GPS measurement preceding the accelerometer measurement. If there is no valid GPS measurement, this time is calculated from the last GPS measurement and the time of the internal clock of the tracker.&lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time in gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to (time in UTC, no time zone).&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the begin of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and made available through this view. &lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bird data ==&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_species_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a species that you can assign to your birds to include them in your project. No bird in the system can exist without being linked to one of the species from this list. If you are tagging a bird whose species does not exist in the list, please [http://www.uva-bits.nl/contact/ contact] us.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|abbr||varchar||NO||Unique abbreviation for this species.&lt;br /&gt;
|-&lt;br /&gt;
|english_name||varchar||YES||Name of the species in English. &lt;br /&gt;
|-&lt;br /&gt;
|latin_name||varchar||NO||Name of the species in Latin. It is always filled in.&lt;br /&gt;
|-&lt;br /&gt;
|species_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
== Tracker and project data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* ''Meta'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;br /&gt;
&lt;br /&gt;
== Accelerometer calibration ==&lt;br /&gt;
&lt;br /&gt;
The accelerometer measures the acceleration in 3D (20 times per second). Acceleration is caused by gravity (static component) and by a change in speed (dynamic component). &lt;br /&gt;
When the logger is static in horizontal position (solar cells up), gravity (green arrow) shows a  heave (vertical acceleration, z) of +1 g (1 g = 9.81 m.s&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;) while surge and heave are both 0. When the front of the logger is vertically pointing down (forward acceleration, x), surge is +1g and when it is rolled to the right (sidewards acceleration, y) sway is +1g. Due to gravity, the pitch of a logger is thus translated into the values of heave, surge and sway (or z, x, y).&lt;br /&gt;
&lt;br /&gt;
However, the values are measured in mV instead of g. Before delivering the GPS-loggers, they have been calibrated at UvA. The acceleration (A) expressed in g is calculated from the measured value (M) and the calibration factors offset (''O'') and sensitivity (''S'').&lt;br /&gt;
&lt;br /&gt;
Thus acceleration for heave (z), surge (x) and sway (y) is calculated as:&lt;br /&gt;
A&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; ;      A&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;;      A&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; ; &lt;br /&gt;
&lt;br /&gt;
The values of ''O'' (in general ranging from 0-60, sometimes even 300) and ''S'' (ranging from 1300-1450) are available in the device table of the data base. If not available, use the factory defaults ''O'' = 0 and ''S'' = 1365.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[File:accelero1.png|300px]]||[[File:accelero2.png|300px]]|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the figure above heave (z) is shown in green, surge(x) in red and sway (y) in blue, all values are expressed in g (on the y-axis).&lt;br /&gt;
&lt;br /&gt;
== Data processing and filtering ==&lt;br /&gt;
The raw log files are processed before being entered into the database. Each firmware version has a dedicated parser for the task. In certain cases data that is found in the log files is not stored in the database.  This can occur for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. The data did not pass the CRC8 checksum (cyclic redundancy check). This is a standard procedure designed to detect accidental changes to raw computer data.&lt;br /&gt;
&lt;br /&gt;
2. If the data has an invalid signature. For example, if a certain data format (eg numeric) or number of values (eg 4 digits) is expected but not returned, this record is not stored in the database.&lt;br /&gt;
&lt;br /&gt;
When a line is deleted, the log file name, line number and the type of error is stored in the table gps.uva_warning102&lt;br /&gt;
&lt;br /&gt;
== Information about GPS receivers ==&lt;br /&gt;
The first series of tags used the UBlox LEAS4S chip (~up to tag 541), newer tags use UBlox LEAS6S. The series developed in 2012 will use the Max6G receivers. From 2012 receiver versions will be stored in the database.&lt;br /&gt;
The UBX protocol is used for programming firmware, packaging and processing data.&lt;br /&gt;
For more information about the receivers themselves see the ublox documentation.&lt;br /&gt;
Ublox 4 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/ANTARIS_Protocol_Specification%28GPS.G3-X-03002%29.zip]&lt;br /&gt;
Ublox 6 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/u-blox6_ReceiverDescriptionProtocolSpec_%28GPS.G6-SW-10018%29.pdf]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1160</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1160"/>
				<updated>2014-12-11T10:22:02Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Accelerometer calibration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents an acceleration measurement as it is interpreted from the data that comes via the accelerometer. Acceleration is looked at in batches for a period of time, for 3 components (X,Y,Z). The blocks are delimited by a starting date and time, and then each observation is numbered consecutively.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the beginning of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and you can find it via gps.ee_acc_start_limited. Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the begin of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and made available through this view. &lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bird data ==&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
== Tracker and project data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* ''Meta'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;br /&gt;
&lt;br /&gt;
== Accelerometer calibration ==&lt;br /&gt;
&lt;br /&gt;
The accelerometer measures the acceleration in 3D (20 times per second). Acceleration is caused by gravity (static component) and by a change in speed (dynamic component). &lt;br /&gt;
When the logger is static in horizontal position (solar cells up), gravity (green arrow) shows a  heave (vertical acceleration, z) of +1 g (1 g = 9.81 m.s&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;) while surge and heave are both 0. When the front of the logger is vertically pointing down (forward acceleration, x), surge is +1g and when it is rolled to the right (sidewards acceleration, y) sway is +1g. Due to gravity, the pitch of a logger is thus translated into the values of heave, surge and sway (or z, x, y).&lt;br /&gt;
&lt;br /&gt;
However, the values are measured in mV instead of g. Before delivering the GPS-loggers, they have been calibrated at UvA. The acceleration (A) expressed in g is calculated from the measured value (M) and the calibration factors offset (''O'') and sensitivity (''S'').&lt;br /&gt;
&lt;br /&gt;
Thus acceleration for heave (z), surge (x) and sway (y) is calculated as:&lt;br /&gt;
A&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; ;      A&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;;      A&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; ; &lt;br /&gt;
&lt;br /&gt;
The values of ''O'' (in general ranging from 0-60, sometimes even 300) and ''S'' (ranging from 1300-1450) are available in the device table of the data base. If not available, use the factory defaults ''O'' = 0 and ''S'' = 1365.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[File:accelero1.png|300px]]||[[File:accelero2.png|300px]]|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the figure above heave (z) is shown in green, surge(x) in red and sway (y) in blue, all values are expressed in g (on the y-axis).&lt;br /&gt;
&lt;br /&gt;
== Data processing and filtering ==&lt;br /&gt;
The raw log files are processed before being entered into the database. Each firmware version has a dedicated parser for the task. In certain cases data that is found in the log files is not stored in the database.  This can occur for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. The data did not pass the CRC8 checksum (cyclic redundancy check). This is a standard procedure designed to detect accidental changes to raw computer data.&lt;br /&gt;
&lt;br /&gt;
2. If the data has an invalid signature. For example, if a certain data format (eg numeric) or number of values (eg 4 digits) is expected but not returned, this record is not stored in the database.&lt;br /&gt;
&lt;br /&gt;
When a line is deleted, the log file name, line number and the type of error is stored in the table gps.uva_warning102&lt;br /&gt;
&lt;br /&gt;
== Information about GPS receivers ==&lt;br /&gt;
The first series of tags used the UBlox LEAS4S chip (~up to tag 541), newer tags use UBlox LEAS6S. The series developed in 2012 will use the Max6G receivers. From 2012 receiver versions will be stored in the database.&lt;br /&gt;
The UBX protocol is used for programming firmware, packaging and processing data.&lt;br /&gt;
For more information about the receivers themselves see the ublox documentation.&lt;br /&gt;
Ublox 4 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/ANTARIS_Protocol_Specification%28GPS.G3-X-03002%29.zip]&lt;br /&gt;
Ublox 6 Protocol specification [http://www.u-blox.com/images/downloads/Product_Docs/u-blox6_ReceiverDescriptionProtocolSpec_%28GPS.G6-SW-10018%29.pdf]&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1159</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1159"/>
				<updated>2014-12-11T10:19:06Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Meta data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents an acceleration measurement as it is interpreted from the data that comes via the accelerometer. Acceleration is looked at in batches for a period of time, for 3 components (X,Y,Z). The blocks are delimited by a starting date and time, and then each observation is numbered consecutively.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the beginning of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and you can find it via gps.ee_acc_start_limited. Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the begin of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and made available through this view. &lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bird data ==&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
== Tracker and project data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* ''Meta'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;br /&gt;
&lt;br /&gt;
== Accelerometer calibration ==&lt;br /&gt;
&lt;br /&gt;
The accelerometer measures the acceleration in 3D (20 times per second). Acceleration is caused by gravity (static component) and by a change in speed (dynamic component). &lt;br /&gt;
When the logger is static in horizontal position (solar cells up), gravity (green arrow) shows a  heave (vertical acceleration, z) of +1 g (1 g = 9.81 m.s&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;) while surge and heave are both 0. When the front of the logger is vertically pointing down (forward acceleration, x), surge is +1g and when it is rolled to the right (sidewards acceleration, y) sway is +1g. Due to gravity, the pitch of a logger is thus translated into the values of heave, surge and sway (or z, x, y).&lt;br /&gt;
&lt;br /&gt;
However, the values are measured in mV instead of g. Before delivering the GPS-loggers, they have been calibrated at UvA. The acceleration (A) expressed in g is calculated from the measured value (M) and the calibration factors offset (''O'') and sensitivity (''S'').&lt;br /&gt;
&lt;br /&gt;
Thus acceleration for heave (z), surge (x) and sway (y) is calculated as:&lt;br /&gt;
A&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; ;      A&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;;      A&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; ; &lt;br /&gt;
&lt;br /&gt;
The values of ''O'' (in general ranging from 0-60, sometimes even 300) and ''S'' (ranging from 1300-1450) are available in the device table of the data base. If not available, use the factory defaults ''O'' = 0 and ''S'' = 1365.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[File:accelero1.png|300px]]||[[File:accelero2.png|300px]]|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the figure above heave (z) is shown in green, surge(x) in red and sway (y) in blue, all values are expressed in g (on the y-axis).&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1158</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1158"/>
				<updated>2014-12-11T10:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Sharings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents an acceleration measurement as it is interpreted from the data that comes via the accelerometer. Acceleration is looked at in batches for a period of time, for 3 components (X,Y,Z). The blocks are delimited by a starting date and time, and then each observation is numbered consecutively.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the beginning of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and you can find it via gps.ee_acc_start_limited. Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the begin of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and made available through this view. &lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ''Meta'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* ''Meta'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;br /&gt;
&lt;br /&gt;
== Accelerometer calibration ==&lt;br /&gt;
&lt;br /&gt;
The accelerometer measures the acceleration in 3D (20 times per second). Acceleration is caused by gravity (static component) and by a change in speed (dynamic component). &lt;br /&gt;
When the logger is static in horizontal position (solar cells up), gravity (green arrow) shows a  heave (vertical acceleration, z) of +1 g (1 g = 9.81 m.s&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt;) while surge and heave are both 0. When the front of the logger is vertically pointing down (forward acceleration, x), surge is +1g and when it is rolled to the right (sidewards acceleration, y) sway is +1g. Due to gravity, the pitch of a logger is thus translated into the values of heave, surge and sway (or z, x, y).&lt;br /&gt;
&lt;br /&gt;
However, the values are measured in mV instead of g. Before delivering the GPS-loggers, they have been calibrated at UvA. The acceleration (A) expressed in g is calculated from the measured value (M) and the calibration factors offset (''O'') and sensitivity (''S'').&lt;br /&gt;
&lt;br /&gt;
Thus acceleration for heave (z), surge (x) and sway (y) is calculated as:&lt;br /&gt;
A&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; ;      A&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;;      A&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = (M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-O&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;)/S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; ; &lt;br /&gt;
&lt;br /&gt;
The values of ''O'' (in general ranging from 0-60, sometimes even 300) and ''S'' (ranging from 1300-1450) are available in the device table of the data base. If not available, use the factory defaults ''O'' = 0 and ''S'' = 1365.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[File:accelero1.png|300px]]||[[File:accelero2.png|300px]]|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the figure above heave (z) is shown in green, surge(x) in red and sway (y) in blue, all values are expressed in g (on the y-axis).&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1154</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1154"/>
				<updated>2014-12-09T13:48:06Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* get_uvagps_track_speed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries for a specific device_info_serial. &lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119);&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.uva_tracking t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.uva_tracking where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than on logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by December 2014&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM webapp.ee_track_session_limited s&lt;br /&gt;
  JOIN webapp.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN webapp.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1153</id>
		<title>Useful Queries</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Useful_Queries&amp;diff=1153"/>
				<updated>2014-12-09T13:46:07Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* Calculating summary statistics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= UvAGPS functions =&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_speed ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters), time-interval (time stamp hh:mm:ss), speed (meters/second) and heading (degrees) for a series of subsequent tracking entries with specific device_info_serial.&lt;br /&gt;
For the first entry in the sequence these values will always be missing because they are computed  as the difference between subsequent rows.&lt;br /&gt;
&lt;br /&gt;
Usage examples :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119);&lt;br /&gt;
&lt;br /&gt;
select t.*, a.distance, a.interval, a.speed, a.direction &lt;br /&gt;
from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00') a &lt;br /&gt;
join gps.uva_tracking t using(device_info_serial, date_time);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and heading are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. &lt;br /&gt;
The heading is the initial heading. PostGIS does not calculate the heading, so therefore we don't use PostGIS.&lt;br /&gt;
&lt;br /&gt;
In these functions the records that have been flagged as invalid by setting the '''userflag''' to 1 are not taken into account and discarded. &lt;br /&gt;
If speed calculations are required for all records an additional boolean argument '''get raw data''' can be given. i.e.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, '2008-01-01 00:00:00', '2010-01-01 00:00:00', true);&lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_speed(119, true);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance ==&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) for UvAGPS tracks to arbitrary point in lat/long or geometry location &lt;br /&gt;
&lt;br /&gt;
Example usage :&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, 52.1897017, 6.1996606); &lt;br /&gt;
&lt;br /&gt;
select * from gps.get_uvagps_track_distance(119, (select location from gps.uva_tracking where device_info_serial = 119 and date_time = '2009-05-07 19:55:08')); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here the distance is calculated with the PostGIS distance_sphere function which uses spherical correction.&lt;br /&gt;
&lt;br /&gt;
== get_uvagps_track_distance_direction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compute distance (meters) and direction (degrees) for UvAGPS tracks from arbitrary point in lat/long or geometry location&lt;br /&gt;
&lt;br /&gt;
Example usage: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distances and direction are calculated with spherical correction with the Haversine formula as described [http://http://www.movable-type.co.uk/scripts/latlong.html here]. The direction is the direction from the given point.&lt;br /&gt;
&lt;br /&gt;
In this function the records where the '''userflag''' has been set are discarded. To see  these records a additional boolean argument for '''show raw data''' should  be added like :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from gps.get_uvagps_track_distance_direction(119, 52.1897017, 6.1996606, true); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Calculating summary statistics =&lt;br /&gt;
== Total distance ==&lt;br /&gt;
A query to determine the total distance a bird has flown is : &lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''');&lt;br /&gt;
&lt;br /&gt;
or for a fixed time period :&lt;br /&gt;
&lt;br /&gt;
 select sum(distance)/1000 as total_distance&lt;br /&gt;
 from gps.get_uvagps_track_speed('''&amp;lt;ID&amp;gt;''', '2010-01-01 00:00:00', '2011-01-01 00:00:00');&lt;br /&gt;
&lt;br /&gt;
== Total number of measurements per tag ==&lt;br /&gt;
&lt;br /&gt;
Count the total number of measurements for each device using the GROUP BY clause:&lt;br /&gt;
&lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to count the number of measurements with valid GPS fixes you can add a where clause :&lt;br /&gt;
  &lt;br /&gt;
 select device_info_serial, count(*) &lt;br /&gt;
 from gps.ee_tracking_speed_limited&lt;br /&gt;
 where latitude is not null &lt;br /&gt;
 group by device_info_serial&lt;br /&gt;
 ORDER BY device_info_serial ASC;&lt;br /&gt;
&lt;br /&gt;
== Select tracking data from the beginning of a track session ==&lt;br /&gt;
&lt;br /&gt;
Select only those points that were collected during a valid track session (i.e. data that begins from the start_date of a track session) including 2D GPS speed. Filter our points where no GPS fix is returned (latitude is not null) and where a user has flagged the data as inappropriate (user_flag &amp;lt;&amp;gt; 1):&lt;br /&gt;
  &lt;br /&gt;
 SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.temperature, t.speed, t.userflag&lt;br /&gt;
 FROM gps.ee_tracking_speed_limited t, gps.ee_track_session_limited s&lt;br /&gt;
 WHERE t.device_info_serial = s.device_info_serial AND t.date_time &amp;gt;= s.start_date AND t.device_info_serial = '''&amp;lt;ID&amp;gt;'''&lt;br /&gt;
   AND t.latitude IS  NOT NULL AND t.userflag &amp;lt;&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
== How to separate birds or tag deployments when querying data where the same GPS logger has been used more than once or the same individual has been tracked with more than on logger ==&lt;br /&gt;
NOTE: The current query does not work yet and can only be implemented in a testing environment - we expect to have this ready by December 2014&lt;br /&gt;
&lt;br /&gt;
In this query you will select the tracking data related to each deployment of a GPS logger. This query is slightly more complex than the query above. If you have used the same logger on more than one individual bird, or have tracked the same individual with more than one logger, this query will enable you to make that distinction, by showing both GPS logger id (device_info_serial) and a unique identifier for your individual (eg ring_number or colour_ring). Furthermore, as above, this will only select tracking data from the start and end of a particular track session.&lt;br /&gt;
&lt;br /&gt;
  SELECT t.device_info_serial, t.date_time, t.latitude, t.longitude, t.altitude, t.speed, i.colour_ring, s.track_session_id, s.key_name&lt;br /&gt;
  FROM webapp.ee_track_session_limited s&lt;br /&gt;
  JOIN webapp.ee_individual_limited i&lt;br /&gt;
    ON s.individual_id = i.individual_id&lt;br /&gt;
  JOIN webapp.ee_tracking_speed_limited t&lt;br /&gt;
    ON t.device_info_serial = s.device_info_serial&lt;br /&gt;
  AND t.date_time BETWEEN s.start_date AND s.end_date&lt;br /&gt;
  WHERE s.key_name = '&amp;lt;Project name&amp;gt;' AND t.userflag = 0&lt;br /&gt;
  ORDER BY t.device_info_serial, t.date_time&lt;br /&gt;
&lt;br /&gt;
HINT: WHERE s.key_name = 'HG_TEXEL'&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1152</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1152"/>
				<updated>2014-12-09T13:42:54Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* gps.ee_track_session_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Meta'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged, decimal degrees&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[https://services.e-ecology.sara.nl/wiki/index.php/Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents an acceleration measurement as it is interpreted from the data that comes via the accelerometer. Acceleration is looked at in batches for a period of time, for 3 components (X,Y,Z). The blocks are delimited by a starting date and time, and then each observation is numbered consecutively.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the beginning of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and you can find it via gps.ee_acc_start_limited. Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the begin of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and made available through this view. &lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* ''Leaf'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1151</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1151"/>
				<updated>2014-12-09T13:42:06Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* gps.ee_nest_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Meta'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[https://services.e-ecology.sara.nl/wiki/index.php/Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents an acceleration measurement as it is interpreted from the data that comes via the accelerometer. Acceleration is looked at in batches for a period of time, for 3 components (X,Y,Z). The blocks are delimited by a starting date and time, and then each observation is numbered consecutively.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the beginning of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and you can find it via gps.ee_acc_start_limited. Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the begin of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and made available through this view. &lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* ''Leaf'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1150</id>
		<title>UvA-BiTS Tracking Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1150"/>
				<updated>2014-12-09T13:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Judy: /* gps.ee_tracking_speed_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Meta'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_project_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the details of each project, for the projects you are allowed to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Unique key name, with the form &amp;lt;species&amp;gt;_&amp;lt;place&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the project is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Project unique id. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|parent_id||int8||YES||Reference to the parent project in the hierarchy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows tracker details for all trackers that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_device_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|firmware_version||varchar||YES||String for firmware version&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(4,2)||YES||Mass (in grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the device is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the device is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (or surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (or heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Tracker unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows bird's details for all birds that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
This view replaces the old gps.uva_individual_limited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number.&lt;br /&gt;
|-&lt;br /&gt;
|species_latin_name||varchar||NO||Latin name of the species of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour.&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex (M=male, F=female, X=unknown/unspecified)&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date when the bird was first tracked with an UvA-BiTS logger.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant for the tracking project.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Bird unique id. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
This view shows nests you have access to. A nest is always for a bird with a tracker (so a track session must exist for that bird), and must contain a short name (a reference name for you to use) and a latitude and longitude pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string with a useful reference for you. We recommend its being unique for each nest in a project, but the system does NOT enforce it.&lt;br /&gt;
|-&lt;br /&gt;
|latitude||numeric||YES||Latitude of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||numeric||YES||Longitude of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|start_date_time||timestamp||NO||When the nest was spotted.&lt;br /&gt;
|-&lt;br /&gt;
|end_date_time||timestamp||NO||When the nest ceases to be relevant.&lt;br /&gt;
|-&lt;br /&gt;
|found_by_whom||varchar||YES||Place to credit people involved in finding the nest.&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text.&lt;br /&gt;
|-&lt;br /&gt;
|location||bytearray||YES||Calculated Geometry of the coordinates where the nest was found.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Unique id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant_limited ===&lt;br /&gt;
This view shows who lives on which nest, for birds you have access to. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|reference_name||varchar||NO||A string belonging to the nest that you can use to identify that nest. Because it is NOT enforced to be unique, DO NOT USE THIS FIELD FOR JOINING.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||The ring number of a bird on a nest.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the bird's trackers within that period are resolved so that they can be shown here. This is the device_info_serial of a tracker.&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Following the link from a bird to her track sessions, and considering the nest's start and end time, the track sessions' projects within that period are resolved so that they can be shown here. This is the key_name of a project.&lt;br /&gt;
|-&lt;br /&gt;
|nest_id||int8||NO||Reference to the nest id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id. Added to allow joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Reference to a resolved track session id. Added to allow joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session_limited ===&lt;br /&gt;
&lt;br /&gt;
A track session links a tracker and a bird for a given period of time. Therefore, it is '''mandatory for projects''' to supply this piece of '''metadata''' before they can see any tracking data related to a tracker they own. &lt;br /&gt;
&lt;br /&gt;
In order to create a track session, the project must create first an entry in the system for the bird that they are attaching the tracker to, and this is the way for the UvA-BiTS community to make sense of the tracking data that we are receiving. This is why providing the metadata is so important.&lt;br /&gt;
&lt;br /&gt;
By editing the start and end dates, administrators of the project that this track session belongs to, can delimit (and therefore, establish) when the coupling makes sense (or is to be understood as useful). &lt;br /&gt;
&lt;br /&gt;
Whenever a tracker is attached to a bird, a track session must be started (start_date) to indicate that the tracking data that is received is already live data. If the tracker is separated from the bird, the tracking data ceases to make sense, so the track session's end date should be set to denote it has ended. New track sessions can be started if the tracker is re-attached to a bird (possibly the same as before, or maybe a different one) afterwards.&lt;br /&gt;
&lt;br /&gt;
Each row shows track session's information. There exists a row for each track session that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the track session belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird that this track session involves.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the track session is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the track session is not relevant any more&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|start_latitude||numeric(11,8)||NO||Latitude where the bird was tagged&lt;br /&gt;
|-&lt;br /&gt;
|start_longitude||numeric(11,8)||NO||Longitude where the bird was tagged&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project this track session belongs to. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual this track session involves. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|track_session_id||int8||NO||Unique identifier of the track session. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracking_speed_limited ===&lt;br /&gt;
&lt;br /&gt;
Shows the tracking data that your projects allow you to see. &lt;br /&gt;
&lt;br /&gt;
Each row represents a GPS fix as it is interpreted from the data that comes via the GPS tracker, plus it adds speeds.&lt;br /&gt;
&lt;br /&gt;
It replaces old views gps.uva_tracking_limited, gps.uva_tracking_speed_3d_limited and gps.uva_tracking_speed. This table structure has ''not'' changed with respect to our previous database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time when the fix was taken. UTC (i.e.: no timezone). Part of the unique identifier of the GPS fix. &lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix, decimal degrees.&lt;br /&gt;
|-&lt;br /&gt;
|altitude||int4||YES||Altitude above sea level measured by GPS tag in meters&lt;br /&gt;
|-&lt;br /&gt;
|pressure||int4||YES||Pressure measured by GPS tag sensor in Pascals&lt;br /&gt;
|-&lt;br /&gt;
|temperature||float8||YES||Temperature measured by GPS tag sensor in Celsius&lt;br /&gt;
|-&lt;br /&gt;
|h_accuracy||float8||YES||Horizontal accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|v_accuracy||float8||YES||vertical accuracy (meters)&lt;br /&gt;
|-&lt;br /&gt;
|x_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|y_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|z_speed||float8||YES||meters/second &lt;br /&gt;
|-&lt;br /&gt;
|gps_fixtime||float8||YES||GPS fix time (also known as Time to Fix) in seconds&lt;br /&gt;
|-&lt;br /&gt;
|userflag||int4||YES||Acceptable = 0; Data flagged as unacceptable by user if not equal to 0.&lt;br /&gt;
|-&lt;br /&gt;
|satellites_used||int2||YES||Number of satellites used for fix the GPS measurement&lt;br /&gt;
|-&lt;br /&gt;
|positiondop||float8||YES||Positional DOP (Dilution of Precision), unitless&lt;br /&gt;
|-&lt;br /&gt;
|speed_accuracy||float8||YES||&lt;br /&gt;
|-&lt;br /&gt;
|location||geometry||YES||postgreSQL geometry; to allow GIS operations&lt;br /&gt;
|-&lt;br /&gt;
|vnorth||float8||YES||- vx * sin(lat) * cos(long) - vy * sin(lat) * sin (long) + vz * cos(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon), m/s&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2), m/s&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D, m/s&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES|| Heading in degrees; 0 is north, 90 is east&lt;br /&gt;
|-&lt;br /&gt;
|altitude_agl||float8||YES|| Reported GPS altitude MINUS terrain elevation on the coordinate based on Digital Elevation Model data used in the e-ecology database (for further information see: [[https://services.e-ecology.sara.nl/wiki/index.php/Elevation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_acceleration_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents an acceleration measurement as it is interpreted from the data that comes via the accelerometer. Acceleration is looked at in batches for a period of time, for 3 components (X,Y,Z). The blocks are delimited by a starting date and time, and then each observation is numbered consecutively.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the beginning of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and you can find it via gps.ee_acc_start_limited. Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
This table structure has ''not'' changed with respect to our previous database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the fix. Part of the unique identifier of the GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time of the acceleration block that this measurement belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|index||int2||NO||Sorting order of the measurement within the acceleration block (each block starts at 0).&lt;br /&gt;
|-&lt;br /&gt;
|x_acceleration||int2||YES||Acceleration measured on the x (or surge) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|y_acceleration||int2||YES||Acceleration measured on the y (or sway) axis (range between -2666 and 2666).&lt;br /&gt;
|-&lt;br /&gt;
|z_acceleration||int2||YES||Acceleration measured on the z (or heave) axis (range between -2666 and 2666).&lt;br /&gt;
|}&lt;br /&gt;
=== ''gps.''ee_acc_start_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of acceleration measurements when a GPS fix is not available at that acceleration block's time.&lt;br /&gt;
&lt;br /&gt;
The logger tries to mark the start of blocks from the GPS fix that coincides with the begin of the acceleration block. If there's no GPS fix during that block, then it extrapolates the date and time and makes a special record which is interpreted by our accelerometer processing software and made available through this view. &lt;br /&gt;
&lt;br /&gt;
Therefore, to know all valid dates and times that mark a valid block for a tracker, you need to consider all of the values in column date_time on gps.ee_tracking_speed_limited for the given tracker, column date_time on gps.ee_acc_start_limited, and all the values on column date_time for that tracker. And the order is important within each block, so you should sort the acceleration measurements by block and index.&lt;br /&gt;
&lt;br /&gt;
Added in firmware 1.0.2.7.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker that reported the acceleration measurement.&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Time to mark the start of the acceleration block.&lt;br /&gt;
|-&lt;br /&gt;
|line_counter||int4||NO||Number of lines associated with this set of accelerations.&lt;br /&gt;
|-&lt;br /&gt;
|timesynced||int2||YES||The source of the time that marks the acceleration block (0=not synced, 1=user set, 2=Gps Synced).&lt;br /&gt;
|-&lt;br /&gt;
|ascii||int4||YES||Acceleration measurement interval.&lt;br /&gt;
|-&lt;br /&gt;
|accsn||int4||YES||Number of samples (0-65536).&lt;br /&gt;
|-&lt;br /&gt;
|f||int2||YES||Acceleration sampling frequency (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_user_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows a colleague in a project that you belong to, indicating her role and status there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||Project name&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|name||varchar||NO||(first) name&lt;br /&gt;
|-&lt;br /&gt;
|surname||varchar||NO||Surname&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role in the project&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status of the membership&lt;br /&gt;
|-&lt;br /&gt;
|user_id||int8||NO||Unique identifier of the user. Included to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a tracker belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the tracker belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|tracker_id||int8||NO||Reference to the tracker. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual_ownership_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row that you see expresses that a bird belongs to one of the projects you are involved with. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|key_name||varchar||NO||The project that the individual belongs to.&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number of the bird.&lt;br /&gt;
|-&lt;br /&gt;
|project_id||int8||NO||Reference to the project. Included just to enable joins.&lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual. Included just to enable joins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
'''Note:''' These views will show no rows for trackers not yet attached to birds.&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_comm_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row indicates status and result of communications with ground stations for each tracker that your project allows you to see. &lt;br /&gt;
&lt;br /&gt;
Only for newer firmware (v.1.0.1.4 and higher).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
| device_info_serial || int4 || NO || Serial number of the tracker.&lt;br /&gt;
|-&lt;br /&gt;
| date_time || timestamp || NO || timestamp of start communication&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end || timestamp ||YES|| timestamp of end communication           &lt;br /&gt;
|-&lt;br /&gt;
| date_time_utc || timestamp ||YES|| date_time in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| date_time_end_utc || timestamp ||YES|| date_time_end in utc (if available)&lt;br /&gt;
|-&lt;br /&gt;
| action || text||YES|| JOINED / RESCHEDULE  ??&lt;br /&gt;
|-&lt;br /&gt;
| bytes_communicated || int4 ||YES|| Number of bytes communicated (total of all bytes per DATA line)  &lt;br /&gt;
|-&lt;br /&gt;
|status || text ||YES|| READY, TIMEOUT, LOWPOWER, MISSING&lt;br /&gt;
|-&lt;br /&gt;
| network_join_time || int4||YES||milliseconds&lt;br /&gt;
|-&lt;br /&gt;
| number_identical_lines || int4 ||YES|| Number identical lines in data block. Gives indication &lt;br /&gt;
|-&lt;br /&gt;
| non_ascii_char || int4 ||YES|| Number of non ascii characters (indicated by question-mark ?)&lt;br /&gt;
|-&lt;br /&gt;
| sts_time || timestamp ||YES|| derived from S0 hh,mi&lt;br /&gt;
|-&lt;br /&gt;
| timesynced || int2||YES|| TimeSynced (0=not sy:wnced, 1=user set, 2=Gps Synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode || int2||YES||DeviceMode (0-99). This describes whether the device is in a special operational mode.  0 = normal operational mode; 80 hex = Memory save mode (memory is almost full and all activity is drastically reduced so the circular memory probably won't be overwritten or, if it does,  it will be kept to a minimum)&lt;br /&gt;
|-&lt;br /&gt;
| vbat || float8 ||YES|| Battery voltage in V (0-~4.200V) &lt;br /&gt;
|-&lt;br /&gt;
|logb || int4 ||YES|| logged bytes, waiting for download (0-4Mbyte)&lt;br /&gt;
|-&lt;br /&gt;
| logp || int2 ||YES|| Logged percentage (units 0.1%) of memory waiting to be downloaded (0-1000)&lt;br /&gt;
|-&lt;br /&gt;
| gpsii || int4 ||YES|| GpsIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|comii || int4||YES|| ComIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| AcceleroIval, current (0-65535)&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| User switches, current (0-65535) &lt;br /&gt;
|-&lt;br /&gt;
|last_gps_fix ||timestamp||YES||timestamp of last fix&lt;br /&gt;
|-&lt;br /&gt;
|latitude||float8||YES||Latitude of last fix. Decimal degrees &lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of last fix. Decimal degrees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_energy_limited ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Date and time of the reported data&lt;br /&gt;
|-&lt;br /&gt;
|timesynced ||int2||YES||TimeSynced (0=not synced, 1=user set, 2=Gps synced)&lt;br /&gt;
|-&lt;br /&gt;
|devicemode ||int2||YES||(0-99)&lt;br /&gt;
|-&lt;br /&gt;
|vsll ||float8||YES||Solar Voltage during charging in mV (0-~2500)&lt;br /&gt;
|-&lt;br /&gt;
|vbat ||float8||YES||Battery Voltage in V (0-~4.200)&lt;br /&gt;
|-&lt;br /&gt;
|ssw ||int2||YES|| Solar Cell Switches ... (0-255) fw1022 and up &lt;br /&gt;
|-&lt;br /&gt;
| ||||YES||extended fields if special user switch is on &lt;br /&gt;
|-&lt;br /&gt;
|vsoo ||float8||YES|| Solar voltage open in V (0-~2.500)&lt;br /&gt;
|-&lt;br /&gt;
|vdrf ||float8||YES||reference voltage Dac in V (0-~2.435)&lt;br /&gt;
|-&lt;br /&gt;
|vchr ||float8||YES||charge current voltage&lt;br /&gt;
|-&lt;br /&gt;
|g ||int2||YES|| Gps battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|c || int2||YES||Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|m || int2||YES||Charge Mode (0,1,2 Com battery threshold OK&lt;br /&gt;
|-&lt;br /&gt;
|pressure || int4||YES|| in pascal (1mBar = 100Pa, 1pressuremeter = ~12Pa)&lt;br /&gt;
|-&lt;br /&gt;
|temperature || float8||YES|| in celcius degrees   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_settings_limited ===&lt;br /&gt;
&lt;br /&gt;
Settings are either from C0-C1-C9 lines or parsed from uplink communication lines. &lt;br /&gt;
If C0-C1 is parsed its values are compared with the previous value and if the settings are the same, then no new records need to be added. &lt;br /&gt;
If uplink settings are parsed, then wait until the last setting has been seen (DL command or EOF); then store all the new settings in one record. Only for newer firmware.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||&lt;br /&gt;
|-&lt;br /&gt;
|date_time||timestamp||NO||Derived timestamp from Hh:mi fields in C0 combined with computer timestamp in JOINED line&lt;br /&gt;
|-&lt;br /&gt;
|timesynced || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|timezone_time || int2 ||YES||&lt;br /&gt;
|-&lt;br /&gt;
|swddd || int4||YES|| SpecialUserSwitches &lt;br /&gt;
|-&lt;br /&gt;
|gpsnavmode || int2||YES|| GpsNavMode 0-8. This is the Kalman filter used for GPS navigation mode often called the &amp;quot;Dynamic platform model&amp;quot;. The following codes are provided by the GPS chip manufacturer for the UBlox GPS chip LEAS4S: 1 = stationary, 2 = pedestrian, 3 = automotive, 4 = sea, 5 = airborne 1G, 6 = airborne 2G, 7 = airborne 3G.  The UBlox GPS chip LEAS6S uses the following codes: 0 = portable, 2 = stationary, 3 = pedestrian, 4 = automotive, 5 = sea, 6 = airborne with &amp;lt; 1g acceleration, 7 = airborne with &amp;lt; 2g acceleration, 8 = airborne with &amp;lt; 4g acceleration &lt;br /&gt;
|-&lt;br /&gt;
|gpsreceivermode || int2 ||YES|| GpsReceiverNode 0-3&lt;br /&gt;
|-&lt;br /&gt;
|gpsfixtime || int2||YES|| GpsFixTime 0-255&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_h || int2||YES|| hours Gps IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln_on_m || int2||YES|| minutes Gps IvalN on &lt;br /&gt;
|-&lt;br /&gt;
|gps_ivaln  || int4||YES|| GpsIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_h || int2||YES|| hours Gps IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale_on_m || int2||YES|| minutes GpS IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|gps_ivale  || int4||YES|| GpsIvalE &lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_h || int2||YES|| hours Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln_on_m || int2||YES|| minutes Com IvalN on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivaln || int4||YES|| ComIvalN (0-65530)&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_h || int2||YES|| hours Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale_on_m || int2||YES|| minutes Com IvalE on&lt;br /&gt;
|-&lt;br /&gt;
|com_ivale || int4||YES|| ComIvalE&lt;br /&gt;
|-&lt;br /&gt;
|accii || int4||YES|| Accelero measurement interval         &lt;br /&gt;
|-&lt;br /&gt;
|accbn || int4||YES|| Accelero number of blocks &lt;br /&gt;
|-&lt;br /&gt;
|accsn || int4||YES|| Accelero number of samples (0-65536)&lt;br /&gt;
|-&lt;br /&gt;
|f || int2||YES||Accelero sample frequency  (0=20Hz, 1=10Hz, 2=5Hz, 3=1Hz)&lt;br /&gt;
|-&lt;br /&gt;
|pdp || int2||YES|| PdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|pac||int2||YES|| PaccMsk (10-100)&lt;br /&gt;
|-&lt;br /&gt;
|tdp ||int2||YES|| TdopMsk (3-250)&lt;br /&gt;
|-&lt;br /&gt;
|tac ||int2||YES|| TaccMsk (30-300)&lt;br /&gt;
|-&lt;br /&gt;
|ga || int2||YES|| Additional Fixes GpsIval mode (3-25) before interval fix is logged&lt;br /&gt;
|-&lt;br /&gt;
|aol || int2||YES||AccMemOffLev (100 - 950) units 0.1%; if Memfull above  this level all Accelero activity will be overruled and switched off untill MemFull &amp;lt; level - 5&lt;br /&gt;
|-&lt;br /&gt;
|eventnum || text||YES|| 12 eventnumbers (0-0xff) only printed if not zero, therfore converted to text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_trackingfile_limited ===&lt;br /&gt;
&lt;br /&gt;
Each row shows the status of the last attempt to parse (process) the raw data of a file for a given tracker, for each tracker that your projects allow you to see.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|id||int8||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|date_reported||date||NO||Date that the file arrived&lt;br /&gt;
|-&lt;br /&gt;
|filename||varchar||NO||Name of the file&lt;br /&gt;
|-&lt;br /&gt;
|last_modified_date||timestamp||NO||Date that the file was last modified on&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||YES||Serial number of the tracker this file comes from&lt;br /&gt;
|-&lt;br /&gt;
|filesize||int8||NO||Size of the file in KB&lt;br /&gt;
|-&lt;br /&gt;
|parsed_date||timestamp||YES||Date and time that the file was last attempted to be parsed on&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||NO||Optimistic locking field. Ignore it as a user. &lt;br /&gt;
|-&lt;br /&gt;
|last_found_date||timestamp||YES||Last time that a process that runs to look for new files saw the file&lt;br /&gt;
|-&lt;br /&gt;
|n_lines||int4||YES||Count of lines found in the file last time it was processed&lt;br /&gt;
|-&lt;br /&gt;
|n_data_lines||int4||YES||Count of actual data lines, out of the total lines&lt;br /&gt;
|-&lt;br /&gt;
|n_tracking_records||int4||YES||Count of GPS fixes found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_communication_records||int4||YES||Count of communication records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_energy_records||int4||YES||Count of energy records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_records||int4||YES||Count of acceleration records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_acceleration_start_records||int4||YES||Count of acceleration start records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_errors||int4||YES||Count of errors encountered during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|n_settings_records||int4||YES||Count of settings records found during the parsing process&lt;br /&gt;
|-&lt;br /&gt;
|filepath||text||NO||Directory path of the file on the server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_warning_limited ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
&lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.ee_warning_limited&lt;br /&gt;
  where warning = 'CRC8 failure'&lt;br /&gt;
  order by device_info_serial;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! COLUMN_NAME&lt;br /&gt;
! TYPE_NAME&lt;br /&gt;
! IS_NULLABLE&lt;br /&gt;
! DESCRIPTION&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int4||NO||Serial number of the tracker&lt;br /&gt;
|-&lt;br /&gt;
|filename||text||NO||File name &lt;br /&gt;
|-&lt;br /&gt;
|linenumber||integer||YES||line number in file &lt;br /&gt;
|-&lt;br /&gt;
|warning||text||YES||The warning message&lt;br /&gt;
|-&lt;br /&gt;
|line||text||YES||The actual line contents in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sharings ==&lt;br /&gt;
&lt;br /&gt;
Projects can now share trackers with other projects during periods of time. This means that people in the receiving projects can access information that these shared trackers provide during those time periods. &lt;br /&gt;
&lt;br /&gt;
The following views allow you to see this shared information:&lt;br /&gt;
&lt;br /&gt;
* ''Leaf'' data&lt;br /&gt;
** ''gps.''ee_shared_tracker_limited: information about each shared tracker&lt;br /&gt;
** ''gps.''ee_shared_individual_limited: information about birds with shared trackers&lt;br /&gt;
** ''gps.''ee_shared_track_session_limited: information about track sessions which involve shared trackers&lt;br /&gt;
* Tracking data&lt;br /&gt;
** ''gps.''ee_shared_tracking_speed_limited: tracking information (gps, speed), during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acc_start_limited: acceleration start information, during the shared period, for trackers shared&lt;br /&gt;
** ''gps.''ee_shared_acceleration_limited: acceleration information for trackers shared&lt;br /&gt;
* Relation to projects&lt;br /&gt;
** ''gps.''ee_shared_tracker_sharing_limited: view information for each sharing that your projects allow you to see&lt;/div&gt;</summary>
		<author><name>Judy</name></author>	</entry>

	</feed>