<?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=Andera</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=Andera"/>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php/Special:Contributions/Andera"/>
		<updated>2026-04-06T11:35:02Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1415</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1415"/>
				<updated>2020-11-12T12:32:02Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Setting up an ODBC connection (Windows) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURF.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Login to the database. To see the tables and views available in the database, expand the 'eEcology' folder by clicking directly on it or on the + next to it, then click the + next to the 'eecology' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data to which you officially have access.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software:''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the pgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs:''' &lt;br /&gt;
You can also connect to the database via other programs (Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network:'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the pgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In pgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window, fill in the following information: '''database''' ''eecology'', '''Server'''  ''pub.e-ecology.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it. &lt;br /&gt;
&lt;br /&gt;
If you are having problems setting up the connection, go back to Step 1 above and make sure that you have installed the most recent version of the PostgreSQL ODBC driver.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''Be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTS DataBase&lt;br /&gt;
  Servername   = pub.e-ecology.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the database in R with the package RODBC, using your username and password.&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password provided by SURF:&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R:&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=pub.e-ecology.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
To extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds: &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.ee_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SURF database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1414</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1414"/>
				<updated>2020-11-12T12:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Connecting to the database in R (mac) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURF.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Login to the database. To see the tables and views available in the database, expand the 'eEcology' folder by clicking directly on it or on the + next to it, then click the + next to the 'eecology' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data to which you officially have access.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software:''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the pgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs:''' &lt;br /&gt;
You can also connect to the database via other programs (Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network:'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the pgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In pgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window, fill in the following information: '''database''' ''eecology'', '''Server'''  ''pubserv.e-ecology.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it. &lt;br /&gt;
&lt;br /&gt;
If you are having problems setting up the connection, go back to Step 1 above and make sure that you have installed the most recent version of the PostgreSQL ODBC driver.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''Be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTS DataBase&lt;br /&gt;
  Servername   = pub.e-ecology.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the database in R with the package RODBC, using your username and password.&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password provided by SURF:&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R:&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=pub.e-ecology.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
To extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds: &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.ee_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SURF database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1413</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1413"/>
				<updated>2020-11-12T12:30:51Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Setting up an ODBC connection (Linux) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURF.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Login to the database. To see the tables and views available in the database, expand the 'eEcology' folder by clicking directly on it or on the + next to it, then click the + next to the 'eecology' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data to which you officially have access.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software:''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the pgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs:''' &lt;br /&gt;
You can also connect to the database via other programs (Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network:'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the pgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In pgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window, fill in the following information: '''database''' ''eecology'', '''Server'''  ''pubserv.e-ecology.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it. &lt;br /&gt;
&lt;br /&gt;
If you are having problems setting up the connection, go back to Step 1 above and make sure that you have installed the most recent version of the PostgreSQL ODBC driver.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''Be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTS DataBase&lt;br /&gt;
  Servername   = pub.e-ecology.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the database in R with the package RODBC, using your username and password.&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password provided by SURF:&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R:&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=pubserv.e-ecology.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
To extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds: &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.ee_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SURF database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1412</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1412"/>
				<updated>2020-11-12T12:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* How to access the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURF.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Login to the database. To see the tables and views available in the database, expand the 'eEcology' folder by clicking directly on it or on the + next to it, then click the + next to the 'eecology' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data to which you officially have access.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software:''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the pgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs:''' &lt;br /&gt;
You can also connect to the database via other programs (Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network:'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the pgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In pgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window, fill in the following information: '''database''' ''eecology'', '''Server'''  ''pubserv.e-ecology.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it. &lt;br /&gt;
&lt;br /&gt;
If you are having problems setting up the connection, go back to Step 1 above and make sure that you have installed the most recent version of the PostgreSQL ODBC driver.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''Be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTS DataBase&lt;br /&gt;
  Servername   = pubserv.e-ecology.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the database in R with the package RODBC, using your username and password.&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password provided by SURF:&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R:&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=pubserv.e-ecology.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
To extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds: &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.ee_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SURF database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1411</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1411"/>
				<updated>2020-11-12T12:30:04Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: How to access the database - new server&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURF.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Login to the database. To see the tables and views available in the database, expand the 'eEcology' folder by clicking directly on it or on the + next to it, then click the + next to the 'eecology' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data to which you officially have access.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software:''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the pgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pub.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs:''' &lt;br /&gt;
You can also connect to the database via other programs (Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network:'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the pgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In pgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: e-Ecology&lt;br /&gt;
     Host: pubserv.e-ecology.nl&lt;br /&gt;
     Port: 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURF.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window, fill in the following information: '''database''' ''eecology'', '''Server'''  ''pubserv.e-ecology.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it. &lt;br /&gt;
&lt;br /&gt;
If you are having problems setting up the connection, go back to Step 1 above and make sure that you have installed the most recent version of the PostgreSQL ODBC driver.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''Be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTS DataBase&lt;br /&gt;
  Servername   = pubserv.e-ecology.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the database in R with the package RODBC, using your username and password.&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password provided by SURF:&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R:&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=pubserv.e-ecology.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
To extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds: &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.ee_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SURF database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1277</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1277"/>
				<updated>2016-04-20T15:06:20Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Connecting to the database in R (mac) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURFsara.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Log into the database. To see the tables and views available in the database, expand the 'FlySafe GPS Mirror' folder by clicking directly on it or on the + next to it, then click the + next to the 'flysafe' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data you officially have access to.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the PgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: public_e-Ecology&lt;br /&gt;
     Host: public.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURFsara.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs''' &lt;br /&gt;
You can also connect to the database via other programs(Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the PgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In PgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: eecology&lt;br /&gt;
     Host: db.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURFsara.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window fill in the following information: '''database''' ''eecology'', '''Server'''  ''public.e-ecology.sara.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file.&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTs DataBase&lt;br /&gt;
  Servername   = public.e-ecology.sara.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the flysafe database in R with the package RODBC, using your username and password&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password for the flysafe database&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=public.e-ecology.sara.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
Extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.ee_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SARA database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1276</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1276"/>
				<updated>2016-04-20T15:05:18Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* How to access the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURFsara.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Log into the database. To see the tables and views available in the database, expand the 'FlySafe GPS Mirror' folder by clicking directly on it or on the + next to it, then click the + next to the 'flysafe' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data you officially have access to.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the PgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: public_e-Ecology&lt;br /&gt;
     Host: public.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURFsara.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs''' &lt;br /&gt;
You can also connect to the database via other programs(Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the PgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In PgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: eecology&lt;br /&gt;
     Host: db.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURFsara.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window fill in the following information: '''database''' ''eecology'', '''Server'''  ''public.e-ecology.sara.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file.&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTs DataBase&lt;br /&gt;
  Servername   = public.e-ecology.sara.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the flysafe database in R with the package RODBC, using your username and password&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password for the flysafe database&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=public.e-ecology.sara.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
Extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.uva_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SARA database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1275</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1275"/>
				<updated>2016-04-20T15:04:58Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* How to access the database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURFsara.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Log into the database. To see the tables and views available in the database, expand the 'FlySafe GPS Mirror' folder by clicking directly on it or on the + next to it, then click the + next to the 'flysafe' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data you officially have access to.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the PgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: public_e-Ecology&lt;br /&gt;
     Host: public.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SURFsara.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs''' &lt;br /&gt;
You can also connect to the database via other programs(Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the PgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In PgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: eecology&lt;br /&gt;
     Host: db.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SARA.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window fill in the following information: '''database''' ''eecology'', '''Server'''  ''public.e-ecology.sara.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file.&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTs DataBase&lt;br /&gt;
  Servername   = public.e-ecology.sara.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the flysafe database in R with the package RODBC, using your username and password&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password for the flysafe database&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=public.e-ecology.sara.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
Extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.uva_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SARA database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1274</id>
		<title>How to access the e-Ecology database</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=How_to_access_the_e-Ecology_database&amp;diff=1274"/>
				<updated>2016-04-20T15:03:47Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* General Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=General Information=&lt;br /&gt;
&lt;br /&gt;
The UvA-BiTS database is a spatial postgreSQL database([http://www.postgresql.org/]). In order to access the database you must first have a user name and password provided to you by SURFsara.&lt;br /&gt;
&lt;br /&gt;
=How to access the database=&lt;br /&gt;
'''Via the UvA-BiTS Virtual Lab''' : http://www.uva-bits.nl/virtual-lab/ &lt;br /&gt;
The database can be accessed from any computer with an internet connection by clicking on the database icon on the Virtual Lab webpage. Access to the postgreSQL database is provided via a phpPgAdmin web service. Log into the database. To see the tables and views available in the database, expand the 'FlySafe GPS Mirror' folder by clicking directly on it or on the + next to it, then click the + next to the 'flysafe' folder, next expand 'Schemas' and finally 'gps'. Now you should be able to expand the database tables and views. Most users will only have access to the data included in tables or views that end with “_limited”; these are subsets of the entire database and include only the data you officially have access to.&lt;br /&gt;
&lt;br /&gt;
'''Via PgAdmin client software''' &lt;br /&gt;
PgAdmin must installed on your computer: http://www.pgadmin.org/download/&lt;br /&gt;
Once you have installed the PgAdmin software on your computer, go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: public_e-Ecology&lt;br /&gt;
     Host: public.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by surfSARA.&lt;br /&gt;
     Leave all other fields blank. Generally it is not recommended to store the password, especially on shared computer.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
'''Connecting via other programs''' &lt;br /&gt;
You can also connect to the database via other programs(Access, R, etc.) by setting up an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.)&lt;br /&gt;
&lt;br /&gt;
'''Now that I have connected, what do all these tables and views really mean?''' See the UvA-BiTS Data Model page of this wiki.&lt;br /&gt;
&lt;br /&gt;
'''UvA students and employees working on the UvA network'''&lt;br /&gt;
The database can be directly accessed from computers connected to the university network through PgAdmin software. The computer you are working on must first have the PgAdmin software installed. You can also access the database from other programs (Access, R, etc.) by installing an ODBC driver for postgreSQL and establishing a &amp;quot;User Data Source&amp;quot;. (See &amp;quot;Setting Up an ODBC Connection&amp;quot; below.) In PgAdmin go to File - Add Server. In the 'New Server Registration' window, enter the following:&lt;br /&gt;
&lt;br /&gt;
  Properties tab: &lt;br /&gt;
     Name: eecology&lt;br /&gt;
     Host: db.e-ecology.sara.nl&lt;br /&gt;
     Port : 5432&lt;br /&gt;
     Maintenance DB: eecology&lt;br /&gt;
     Enter Username and Password as provided to you by SARA.&lt;br /&gt;
     Leave all other fields blank. Do not store your user name and password on shared computers.&lt;br /&gt;
  SSL tab: SSL = require&lt;br /&gt;
  Advanced tab: Check &amp;quot;Connect now&amp;quot; and &amp;quot;Restore env?&amp;quot; boxes.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Windows) =&lt;br /&gt;
&lt;br /&gt;
ODBC (Open Database connectivity) is a standard method of sharing data between databases and other programs. ODBC drivers use SQL to gain access to data from sources outside the program.  Therefore, in order to connect between your database and other programs you must set up an ODBC connection.&lt;br /&gt;
  &lt;br /&gt;
Step 1: Download and install the most recent ODBC driver for postgreSQL.&lt;br /&gt;
[http://www.postgresql.org/ftp/odbc/versions/msi/]&lt;br /&gt;
&lt;br /&gt;
Step 2: Set up an ODBC connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do the following (variations may exist between windows operating systems):&lt;br /&gt;
# Go to '''start | Control panel | Administrative tools | Data sources (ODBC)'''. If you are having trouble finding it, type &amp;quot;ODBC&amp;quot; into the Search box at the top of the Control Panel window.&lt;br /&gt;
# Go to '''User DSN''' (first tab in Data sources).&lt;br /&gt;
# Click '''ADD'''.&lt;br /&gt;
# In the window '''Create''' '''New Data Source''' select '''PostgreSQL ANSI''' and click '''FINISH'''.&lt;br /&gt;
# The '''ODBC Driver Setup''' window opens. '''Data source name''': give your data source a name (e.g. GPS).  Keep it simple and easily identifiable since this is the name you will use to identify your database from other applications; this will be the '''ODBC driver name'''.&lt;br /&gt;
# In the same window fill in the following information: '''database''' ''eecology'', '''Server'''  ''public.e-ecology.sara.nl'', '''User Name''' ''your user name'', '''SSL Mode''' ''require'', '''Port''' ''5432'', '''Password''' ''your password''. Click '''TEST''' to test your connection. When the window is completed click '''SAVE'''.&lt;br /&gt;
# Back in the '''User DSN''' window you should now see the ODBC driver you just named. Click '''OK'''.&lt;br /&gt;
After completing these steps many other programs will now recognize your database and be able to communicate with it.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (MacOSX 10.8.5 ) =&lt;br /&gt;
&lt;br /&gt;
The PostgreSQL ODBC driver provided here is a 64-bit driver. It will probably only work if the other components involved in accessing the UvA-BiTS database are also 64-bit. This includes R, iODBC, and libpq. It has been tested on MacOSX 10.8.5 (Mountain Lion) with 64-bit R 3.0.2 (Frisbee Sailing). If you have an older version of MacOSX, and/or a 32-bit version of R installed, this driver may or may not work for you. There's no harm in trying. If it does not work, and you have a 32-bit version of R installed, try using the 64-bit version instead (this will allow R to use more memory as well, possibly speeding up your calculations). &lt;br /&gt;
&lt;br /&gt;
1. Download the ODBC Administrator Tool for Mac OS X v1.0 using the following URL http://support.apple.com/kb/DL895&lt;br /&gt;
&lt;br /&gt;
2. Download the zip file found here [http://horizon.science.uva.nl/public/pgodbc_macosx/]. Unpack the .zip file into your home directory by double clicking it. Your home directory will usually have your name and is located in Macintosh HD &amp;gt; Users next to the little symbol of a house. This will create a folder called &amp;quot;pgodbc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Open the iODBC Administator.app from within Applications.&lt;br /&gt;
&lt;br /&gt;
4. Select the tab &amp;quot;ODBC Drivers&amp;quot; and click on &amp;quot;Add a driver&amp;quot;. A new window will open.&lt;br /&gt;
&lt;br /&gt;
5. The first field is &amp;quot;Description of the driver&amp;quot;. Type in &amp;quot;PostgreSQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
6. Click on &amp;quot;Browse&amp;quot; next to the second field to locate and select the driver file you unpacked from the .zip file you downloaded.&lt;br /&gt;
&lt;br /&gt;
7. Go to folder &amp;quot;pgodbc&amp;quot; in your home directory, and select the driver file &amp;quot;psqlodbcw.so&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Make sure the driver is defined as &amp;quot;System&amp;quot;, i.e., that the &amp;quot;System&amp;quot; option is selected and not the &amp;quot;User&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
9. Click on &amp;quot;Add&amp;quot; at the bottom of this window, and &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the database through R using the R script provided.&lt;br /&gt;
&lt;br /&gt;
=Setting up an ODBC connection (Linux) =&lt;br /&gt;
&lt;br /&gt;
1. Install unixODBC and its -dev file&lt;br /&gt;
$ sudo apt-get install unixODBC unixODBC-dev&lt;br /&gt;
&lt;br /&gt;
2. Install the postgresql package&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install odbc-postgresql&lt;br /&gt;
&lt;br /&gt;
3. Configure the PostgreSQL ODBC driver in the /etc/odbcinst.ini file.&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbcinst.ini&lt;br /&gt;
&lt;br /&gt;
4. On Ubuntu, the /etc/odbcinst.ini file will be blank, so you’ll need to add the data to that configuration file. Add the following to the odbcinst.ini file:&lt;br /&gt;
&lt;br /&gt;
  [PostgreSQL]&lt;br /&gt;
  Description = ODBC for PostgreSQL&lt;br /&gt;
  Driver = /usr/lib/odbc/psqlodbca.so&lt;br /&gt;
  Setup = /usr/lib/odbc/libodbcpsqlS.so&lt;br /&gt;
  FileUsage = 1&lt;br /&gt;
'''be careful,''' on x64, the path for the driver and setup should look&lt;br /&gt;
something like that /usr/lib/x86_64-linux-gnu/odbc/ (use the command $&lt;br /&gt;
mlocate psql to find the appropriate path...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Verify that the system is able to see the driver by running the&lt;br /&gt;
following command. It should return the label name [PostgreSQL] if all is&lt;br /&gt;
well:&lt;br /&gt;
&lt;br /&gt;
  $ odbcinst -q -d&lt;br /&gt;
&lt;br /&gt;
6. Next, configure the /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
  $ gksudo gedit /etc/odbc.ini&lt;br /&gt;
&lt;br /&gt;
Here is what the text file should look like&lt;br /&gt;
&lt;br /&gt;
  [GPStracker]&lt;br /&gt;
  Driver       = PostgreSQL&lt;br /&gt;
  Description  = PostgreSQL connection to the UvA BiTs DataBase&lt;br /&gt;
  Servername   = public.e-ecology.sara.nl&lt;br /&gt;
  Port         = 5432&lt;br /&gt;
  UserName     = user_name&lt;br /&gt;
  Password     = yourpassword&lt;br /&gt;
  Database     = eecology&lt;br /&gt;
  SSLMode      = prefer&lt;br /&gt;
  OPTION       = 3&lt;br /&gt;
  SOCKET       =&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to the database, for example via RODBC.&lt;br /&gt;
&lt;br /&gt;
= Connecting other programs to the UvA-BiTS database (e.g. R, Access, ArcGIS) =&lt;br /&gt;
&lt;br /&gt;
This section provides information on how to set up an Open Database Connectivity (ODBC) which will enable many software packages to extract data directly from the database.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Here you provide the name of the database file or the user DSN name for a given ODBC data source (as described above).&lt;br /&gt;
 &lt;br /&gt;
 db.file &amp;lt;-&amp;quot;GPS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Load the RODBC library.  Visit the CRAN repository &amp;lt;http://cran.r-project.org/web/packages/&amp;gt; for a list of contributed packages and instructions for installation. Packages may be installed using the GUI interface or using ?install.packages.&lt;br /&gt;
&lt;br /&gt;
 library(RODBC)&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the database, the following code is used if reading from an ODBC data source.&lt;br /&gt;
&lt;br /&gt;
 db &amp;lt;- odbcConnect(db.file) &lt;br /&gt;
&lt;br /&gt;
View the table names in the database.&lt;br /&gt;
&lt;br /&gt;
 sqlTables(db)&lt;br /&gt;
&lt;br /&gt;
View the field (column) names of a specific table.&lt;br /&gt;
&lt;br /&gt;
 sqlColumns(db, table.name)&lt;br /&gt;
&lt;br /&gt;
Query the database, returning data from table gps.uva_tracking_speed_limited, for device_info_serial 1 as dataframe &amp;quot;test&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in R (mac) ==&lt;br /&gt;
&lt;br /&gt;
Here is a very short example that will give an idea of how to connect to the database via the ODBC driver you have just established.&lt;br /&gt;
&lt;br /&gt;
Connect to the flysafe database in R with the package RODBC, using your username and password&lt;br /&gt;
Install the RODBC package and any dependencies&lt;br /&gt;
 install.packages(&amp;quot;RODBC&amp;quot;, dep=T)&lt;br /&gt;
 require(RODBC)&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;password&amp;quot; with your own username and password for the flysafe database&lt;br /&gt;
 my_username &amp;lt;- &amp;quot;user&amp;quot;&lt;br /&gt;
 my_password &amp;lt;- &amp;quot;password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Define the connection and connect from within R&lt;br /&gt;
 l.connstring &amp;lt;- 'DRIVER=PostgreSQL;'&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SERVER=public.e-ecology.sara.nl;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'PORT=5432;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'SSLMODE=require;', sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, 'DATABASE=eecology;', sep = '')&lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;USERNAME=&amp;quot;, my_username, &amp;quot;;&amp;quot;, sep=''), sep = '') &lt;br /&gt;
 l.connstring &amp;lt;- paste(l.connstring, paste(&amp;quot;PASSWORD=&amp;quot;, my_password, &amp;quot;;&amp;quot;, sep='') , sep = '') &lt;br /&gt;
&lt;br /&gt;
 GPS &amp;lt;- odbcDriverConnect(l.connstring, case = &amp;quot;tolower&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
From here you can write SQL queries and retrieve the data through R. Here is an example.&lt;br /&gt;
&lt;br /&gt;
Extract GPS data, remember to replace &amp;lt;insert bird id&amp;gt; with the device serial number of one of your tracked birds &lt;br /&gt;
 gps_test &amp;lt;- sqlQuery(GPS, query = &amp;quot;SELECT * &lt;br /&gt;
 FROM gps.uva_tracking_speed_limited s  &lt;br /&gt;
 WHERE s.device_info_serial = &amp;lt;insert bird ID&amp;gt;&amp;quot;, as.is=c(2))&lt;br /&gt;
&lt;br /&gt;
==Connecting to the database in Access==&lt;br /&gt;
After completing the steps for setting up an ODBC connection, you can connect to the database via Access. You have two options. One is to import the data; once this is done your database is not automatically updated but does not require a link to the database.&lt;br /&gt;
&lt;br /&gt;
The second option (described below) is to create a dynamic link to the database. (You must be connected to the network.) In this case you are always viewing updated data that is in the actual SARA database. The first set of instructions is for Access 2007-2010, while the second is for the older version of Access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2007-2010'''.&lt;br /&gt;
# Go to '''External data | ODBC Database'''.&lt;br /&gt;
# Select '''Link to the data source by creating a linked table'''. Click OK.&lt;br /&gt;
# In '''Select Data Source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open a new database in '''Access 2003'''.&lt;br /&gt;
# Go to '''File | Get external data | Link tables'''.&lt;br /&gt;
# In '''Files of type''', select '''ODBC databases'''.&lt;br /&gt;
# In '''Select data source''' click on the tab '''Machine Data Source'''.&lt;br /&gt;
# Select the data source name you created when setting up the ODBC connection (e.g. GPS), then click OK.&lt;br /&gt;
# Select the tables you want to import and click OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have access to your selected tables in the database. Have fun.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1243</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1243"/>
				<updated>2015-03-03T13:22:36Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Users in your project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The dashboard is the tool to view the details of your projects. If you have administrative rights in a project you can also use it to administer them (e.g.: see trackers, create track sessions, add users...)&lt;br /&gt;
&lt;br /&gt;
= Monitoring your trackers: Dashboard tab =&lt;br /&gt;
&lt;br /&gt;
The direct link: https://services.e-ecology.sara.nl/dashboard/&lt;br /&gt;
&lt;br /&gt;
The Dashboard tab is the facility that helps you to get an overview of which trackers recently made contact and how much data they uploaded to the database.&lt;br /&gt;
&lt;br /&gt;
On the Dashboard there are two tabs, “Overview” and “Files Dashboard”:&lt;br /&gt;
* Overview:  gives an overview of the tracker activity for all your projects for the last three days.&lt;br /&gt;
* Files Dashboard: allows you to examine tracker activity for specific projects for adjustable time periods.&lt;br /&gt;
&lt;br /&gt;
A tracker is highlighted in colour if it uploaded data. The small horizontal bar indicates how much data the tracker uploaded to the database. See the legend on the “Files Dashboard” for an explanation.&lt;br /&gt;
&lt;br /&gt;
''Which trackers are shown on the dashboard?''&lt;br /&gt;
; Overview: only active trackers are shown, that is trackers with an active track session&lt;br /&gt;
; Files Dashboard: By default only active trackers are shown. Click on “show all trackers” to show all trackers of the project, that is also those without an active track session (e.g. to show trackers that you have turned on, but that have not been put on a bird yet, and therefore do not have an active track session).&lt;br /&gt;
&lt;br /&gt;
= Administering your projects: Projects tab =&lt;br /&gt;
&lt;br /&gt;
If you have administrative rights in a project, then you can see an &amp;quot;Project admin&amp;quot; tab on the dashboard. The direct link: https://services.e-ecology.sara.nl/dashboard/projects/&lt;br /&gt;
&lt;br /&gt;
== Users in your project ==&lt;br /&gt;
# Users should register themselves with Uva-Bits on https://services.e-ecology.sara.nl/dashboard/open/signup. Only after users have successfully registered themselves can you make them a member of your project, by following the next steps:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a member to&lt;br /&gt;
# Click on the Memberships tab&lt;br /&gt;
# Click on Add new to add a user membership to the selected project&lt;br /&gt;
# You will now see a screen “Create Membership” where you need to fill out:&lt;br /&gt;
#* User: the login name of the user (which has already registered himself on UvaBits) that you want to add (when you start typing the user’s name, a list will pop up with users’ names that match what you have just typed in so far)&lt;br /&gt;
#* Role: the membership role, i.e. the administrative rights you want to give to the user. Pick one of four options:&lt;br /&gt;
#** Enrolled: the user can only see the project exists, but cannot access data or perform administrative rights. &lt;br /&gt;
#** Base: assign this role to standard users. They can view and use the project data, but have no administrative rights&lt;br /&gt;
#** Admin: assign this role to project administrators. They can add/change user memberships, birds and track sessions&lt;br /&gt;
#** Leader: the role with highest administrative rights, typically for the principal investigator. Admin cannot change the administrative rights of a leader, but leaders can change the rights of Admins.&lt;br /&gt;
#* Status: select Approved to add the user to your project. If you want to put the membership temporarily on hold, select Pending_User (this will trigger the user to submit it back to you for re-approval).&lt;br /&gt;
#* Comments: any comments you like to add to the new membership&lt;br /&gt;
&lt;br /&gt;
== Trackers in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project for which you want to see the trackers&lt;br /&gt;
# Click on the Trackers tab&lt;br /&gt;
# This will give you an overview of all the trackers part of your project. Most important are the numbers listed in the column “Tracker”, these correspond to the number on the physical tracker device (this number is called device_info_serial in the database).&lt;br /&gt;
# In case you have several projects or collaborate with other projects, you may want to share trackers of your current project with other projects. To do so click “Add new share” and enter the following:&lt;br /&gt;
#* Share with project: enter the project name of the project you want to share a tracker with &lt;br /&gt;
#* Tracker: the tracker number of the tracker you want to share&lt;br /&gt;
#* Tracker ownership: usually, leave it blank (it is meaningful only if you have had a tracker in your project within two or more time periods)&lt;br /&gt;
#* Start date / End date: the start and end dates during which you want to share the tracker with another project. This gives you the flexibility to share data for a restricted time period only (e.g.: to prevent disclosing a nest location during mating season).&lt;br /&gt;
&lt;br /&gt;
== Birds in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Birds tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following information (if available)&lt;br /&gt;
#* ring number: the metal  ring number issued by your national ringing centre&lt;br /&gt;
#* Colour ring: colour ring code of your bird (if applicable)&lt;br /&gt;
#* Species: the latin name of the species (must be selected out the list we recognise; if you miss yours, please contact the system administrators)&lt;br /&gt;
#* Sex&lt;br /&gt;
#* Mass in grams&lt;br /&gt;
#* Start Date: the date at which the bird was either born or seen in the study area for the first time (start of the bird’s lifespan)&lt;br /&gt;
#* End Date: the date at which the bird died. Put into the far future if unknown or still alive (end of the bird’s lifespan)&lt;br /&gt;
#* Any remarks (e.g. the circumstances under which the bird was found dead)&lt;br /&gt;
# Click on Submit to save the bird to the selected project&lt;br /&gt;
&lt;br /&gt;
== Track sessions: assigning a tracker to a bird ==&lt;br /&gt;
Trackers have to be assigned to birds through a so-called Track Session, which establishes the link between a tracker and a bird during a period of time. You can create a Track Session like this:&lt;br /&gt;
&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Track sessions tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following fields:&lt;br /&gt;
#* Tracker: the number of the tracker (this number is called device_info_serial in the database)&lt;br /&gt;
#* Individual: the ring number of the bird &lt;br /&gt;
#* Tagging date: this is the start date of the Track Session&lt;br /&gt;
#* End date: this is the date at which you want to end the Track Session (e.g.:this can be either the date at which the bird died, the date at which you removed the tracker during a recapture, or the date at which the tracker was lost for other reasons).&lt;br /&gt;
#* Place of capture: select on the map as accurately as possible, or enter a coordinate and click “Bring map to given lat/lon”&lt;br /&gt;
#* Remarks: put any remarks here, in particular the reason why the track session was ended.&lt;br /&gt;
&lt;br /&gt;
Note that on the Dashboard overview only trackers with active track sessions in the period you queried for are shown by default, which are trackers for which at least a day within the period you queried for lies between the track session start and end date.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Adding track sessions may be the most involving step of the project administration, and several conditions need to be taken into account before a track session can be successfully defined:&lt;br /&gt;
#	The tracker you want to put on a bird must be owned by your project (i.e. it must be listed under the tab “Trackers”)&lt;br /&gt;
#	You must have added the bird in the system &lt;br /&gt;
#	A tracker can be assigned only to one bird at the time. This means you must close any existing track session of the tracker, before you can assign it to a new bird. So if you have removed the tracker from a bird and want to put it on a different bird, you must first close the existing track session of the tracker before you can assign it to a new bird. Closing the track session is simply done by entering the end date of the track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
#	A bird can have assigned only one active track session at the same time, because a bird cannot carry more than one tracker simultaneously. So if you have removed a tracker from a bird, and want to put a new tracker on that same bird, you first have to close the track session of the first tracker, before you can start the track session of the new tracker. Closing a track session is simply done by entering the end date of the previous track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
&lt;br /&gt;
To avoid problems we urge users to properly administer their track sessions and bird metadata at all times. So if you replace trackers, or find birds dead with a tracker, always update your track sessions immediately by providing the updated start and end dates of the existing track sessions.&lt;br /&gt;
&lt;br /&gt;
== Including a bird in a nest ==&lt;br /&gt;
You can keep track of nests for a bird. You just need to create the nest and tell which bird is living there (and eventually, partners or offspring). The bird must exist in the system before you can create a nest for it.&lt;br /&gt;
&lt;br /&gt;
To create a nest:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a nest to&lt;br /&gt;
# Click on the Nests tab&lt;br /&gt;
# Click on Add new to add a nest for a bird from the selected project&lt;br /&gt;
# Fill in the following fields:&lt;br /&gt;
#* Ref. name: 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;
#* Birds (max. 2): a maximum of 2 existing birds that you have identified living on that nest&lt;br /&gt;
#* Nest location: the important fields are Latitude and Longitude; these will be stored in the database. The map is there as a visual cue and you can double click on the map to fill the Latitude and Longitude. You can search for a location on the textbox above the map to bring the area of the map close to a known point.&lt;br /&gt;
#* Start date: when the nest was spotted&lt;br /&gt;
#* End date: When the nest ceases to be relevant to you.&lt;br /&gt;
#* Found by: place to credit people involved in finding the nest&lt;br /&gt;
#* Remarks: free text. Maybe you want to include an address or use it as a log of subsequent observations.&lt;br /&gt;
# Finally, click on Submit to store the nest.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=E-Ecology_Documentation_and_Guidance&amp;diff=1224</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=1224"/>
				<updated>2015-01-13T09:41:23Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* UvA-BiTS data */&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;
:: [[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;
:: [[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;
:: [[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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1203</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1203"/>
				<updated>2015-01-09T12:22:09Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: moved DB Tables 2014 to DB Tables 2015&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
The database is split into two useful schemas: ''admin'' and ''gps''. The ''gps'' schema is meant for data that should be readily available for users, and that they may edit via the services (software tools) offered to that effect. The ''admin'' schema is meant to host data only accessible for e-Ecology administrators. &lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
=== ''gps.''ee_nest ===&lt;br /&gt;
This table holds nests' information. A nest is always for (at least) 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;
|id||int8||NO||Unique id. Primary key.&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;
|operated_date||timestamp||NO||When was this row last edited.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to a user id. Last one who edited the row.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant ===&lt;br /&gt;
This table is the materialisation of the many-to-many relation between nests and birds. The primary key of the table is the pair of both columns.&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;
|nest_id||int8||NO||Reference to the nest id. &lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2014&amp;diff=1204</id>
		<title>DB Tables 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2014&amp;diff=1204"/>
				<updated>2015-01-09T12:22:09Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: moved DB Tables 2014 to DB Tables 2015&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[DB Tables 2015]]&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Views_2014&amp;diff=1202</id>
		<title>DB Views 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Views_2014&amp;diff=1202"/>
				<updated>2015-01-09T12:21:42Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: moved DB Views 2014 to DB Views 2015&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[DB Views 2015]]&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1201</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=1201"/>
				<updated>2015-01-09T12:21:42Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: moved DB Views 2014 to DB Views 2015&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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1168</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1168"/>
				<updated>2014-12-11T13:30:51Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Including a bird in a nest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The dashboard is the tool to view the details of your projects. If you have administrative rights in a project you can also use it to administer them (e.g.: see trackers, create track sessions, add users...)&lt;br /&gt;
&lt;br /&gt;
= Monitoring your trackers: Dashboard tab =&lt;br /&gt;
&lt;br /&gt;
The direct link: https://services.e-ecology.sara.nl/dashboard/&lt;br /&gt;
&lt;br /&gt;
The Dashboard tab is the facility that helps you to get an overview of which trackers recently made contact and how much data they uploaded to the database.&lt;br /&gt;
&lt;br /&gt;
On the Dashboard there are two tabs, “Overview” and “Files Dashboard”:&lt;br /&gt;
* Overview:  gives an overview of the tracker activity for all your projects for the last three days.&lt;br /&gt;
* Files Dashboard: allows you to examine tracker activity for specific projects for adjustable time periods.&lt;br /&gt;
&lt;br /&gt;
A tracker is highlighted in colour if it uploaded data. The small horizontal bar indicates how much data the tracker uploaded to the database. See the legend on the “Files Dashboard” for an explanation.&lt;br /&gt;
&lt;br /&gt;
''Which trackers are shown on the dashboard?''&lt;br /&gt;
; Overview: only active trackers are shown, that is trackers with an active track session&lt;br /&gt;
; Files Dashboard: By default only active trackers are shown. Click on “show all trackers” to show all trackers of the project, that is also those without an active track session (e.g. to show trackers that you have turned on, but that have not been put on a bird yet, and therefore do not have an active track session).&lt;br /&gt;
&lt;br /&gt;
= Administering your projects: Projects tab =&lt;br /&gt;
&lt;br /&gt;
If you have administrative rights in a project, then you can see an &amp;quot;Project admin&amp;quot; tab on the dashboard. The direct link: https://services.e-ecology.sara.nl/dashboard/projects/&lt;br /&gt;
&lt;br /&gt;
== Users in your project ==&lt;br /&gt;
# Users should register themselves with Uva-Bits on https://services-dev.e-ecology.sara.nl/dashboard/open/signup. Only after users have successfully registered themselves can you make them a member of your project, by following the next steps:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a member to&lt;br /&gt;
# Click on the Memberships tab&lt;br /&gt;
# Click on Add new to add a user membership to the selected project&lt;br /&gt;
# You will now see a screen “Create Membership” where you need to fill out:&lt;br /&gt;
#* User: the login name of the user (which has already registered himself on UvaBits) that you want to add (when you start typing the user’s name, a list will pop up with users’ names that match what you have just typed in so far)&lt;br /&gt;
#* Role: the membership role, i.e. the administrative rights you want to give to the user. Pick one of four options:&lt;br /&gt;
#** Enrolled: the user can only see the project exists, but cannot access data or perform administrative rights. &lt;br /&gt;
#** Base: assign this role to standard users. They can view and use the project data, but have no administrative rights&lt;br /&gt;
#** Admin: assign this role to project administrators. They can add/change user memberships, birds and track sessions&lt;br /&gt;
#** Leader: the role with highest administrative rights, typically for the principal investigator. Admin cannot change the administrative rights of a leader, but leaders can change the rights of Admins.&lt;br /&gt;
#* Status: select Approved to add the user to your project. If you want to put the membership temporarily on hold, select Pending_User (this will trigger the user to submit it back to you for re-approval).&lt;br /&gt;
#* Comments: any comments you like to add to the new membership&lt;br /&gt;
&lt;br /&gt;
== Trackers in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project for which you want to see the trackers&lt;br /&gt;
# Click on the Trackers tab&lt;br /&gt;
# This will give you an overview of all the trackers part of your project. Most important are the numbers listed in the column “Tracker”, these correspond to the number on the physical tracker device (this number is called device_info_serial in the database).&lt;br /&gt;
# In case you have several projects or collaborate with other projects, you may want to share trackers of your current project with other projects. To do so click “Add new share” and enter the following:&lt;br /&gt;
#* Share with project: enter the project name of the project you want to share a tracker with &lt;br /&gt;
#* Tracker: the tracker number of the tracker you want to share&lt;br /&gt;
#* Tracker ownership: usually, leave it blank (it is meaningful only if you have had a tracker in your project within two or more time periods)&lt;br /&gt;
#* Start date / End date: the start and end dates during which you want to share the tracker with another project. This gives you the flexibility to share data for a restricted time period only (e.g.: to prevent disclosing a nest location during mating season).&lt;br /&gt;
&lt;br /&gt;
== Birds in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Birds tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following information (if available)&lt;br /&gt;
#* ring number: the metal  ring number issued by your national ringing centre&lt;br /&gt;
#* Colour ring: colour ring code of your bird (if applicable)&lt;br /&gt;
#* Species: the latin name of the species (must be selected out the list we recognise; if you miss yours, please contact the system administrators)&lt;br /&gt;
#* Sex&lt;br /&gt;
#* Mass in grams&lt;br /&gt;
#* Start Date: the date at which the bird was either born or seen in the study area for the first time (start of the bird’s lifespan)&lt;br /&gt;
#* End Date: the date at which the bird died. Put into the far future if unknown or still alive (end of the bird’s lifespan)&lt;br /&gt;
#* Any remarks (e.g. the circumstances under which the bird was found dead)&lt;br /&gt;
# Click on Submit to save the bird to the selected project&lt;br /&gt;
&lt;br /&gt;
== Track sessions: assigning a tracker to a bird ==&lt;br /&gt;
Trackers have to be assigned to birds through a so-called Track Session, which establishes the link between a tracker and a bird during a period of time. You can create a Track Session like this:&lt;br /&gt;
&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Track sessions tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following fields:&lt;br /&gt;
#* Tracker: the number of the tracker (this number is called device_info_serial in the database)&lt;br /&gt;
#* Individual: the ring number of the bird &lt;br /&gt;
#* Tagging date: this is the start date of the Track Session&lt;br /&gt;
#* End date: this is the date at which you want to end the Track Session (e.g.:this can be either the date at which the bird died, the date at which you removed the tracker during a recapture, or the date at which the tracker was lost for other reasons).&lt;br /&gt;
#* Place of capture: select on the map as accurately as possible, or enter a coordinate and click “Bring map to given lat/lon”&lt;br /&gt;
#* Remarks: put any remarks here, in particular the reason why the track session was ended.&lt;br /&gt;
&lt;br /&gt;
Note that on the Dashboard overview only trackers with active track sessions in the period you queried for are shown by default, which are trackers for which at least a day within the period you queried for lies between the track session start and end date.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Adding track sessions may be the most involving step of the project administration, and several conditions need to be taken into account before a track session can be successfully defined:&lt;br /&gt;
#	The tracker you want to put on a bird must be owned by your project (i.e. it must be listed under the tab “Trackers”)&lt;br /&gt;
#	You must have added the bird in the system &lt;br /&gt;
#	A tracker can be assigned only to one bird at the time. This means you must close any existing track session of the tracker, before you can assign it to a new bird. So if you have removed the tracker from a bird and want to put it on a different bird, you must first close the existing track session of the tracker before you can assign it to a new bird. Closing the track session is simply done by entering the end date of the track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
#	A bird can have assigned only one active track session at the same time, because a bird cannot carry more than one tracker simultaneously. So if you have removed a tracker from a bird, and want to put a new tracker on that same bird, you first have to close the track session of the first tracker, before you can start the track session of the new tracker. Closing a track session is simply done by entering the end date of the previous track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
&lt;br /&gt;
To avoid problems we urge users to properly administer their track sessions and bird metadata at all times. So if you replace trackers, or find birds dead with a tracker, always update your track sessions immediately by providing the updated start and end dates of the existing track sessions.&lt;br /&gt;
&lt;br /&gt;
== Including a bird in a nest ==&lt;br /&gt;
You can keep track of nests for a bird. You just need to create the nest and tell which bird is living there (and eventually, partners or offspring). The bird must exist in the system before you can create a nest for it.&lt;br /&gt;
&lt;br /&gt;
To create a nest:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a nest to&lt;br /&gt;
# Click on the Nests tab&lt;br /&gt;
# Click on Add new to add a nest for a bird from the selected project&lt;br /&gt;
# Fill in the following fields:&lt;br /&gt;
#* Ref. name: 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;
#* Birds (max. 2): a maximum of 2 existing birds that you have identified living on that nest&lt;br /&gt;
#* Nest location: the important fields are Latitude and Longitude; these will be stored in the database. The map is there as a visual cue and you can double click on the map to fill the Latitude and Longitude. You can search for a location on the textbox above the map to bring the area of the map close to a known point.&lt;br /&gt;
#* Start date: when the nest was spotted&lt;br /&gt;
#* End date: When the nest ceases to be relevant to you.&lt;br /&gt;
#* Found by: place to credit people involved in finding the nest&lt;br /&gt;
#* Remarks: free text. Maybe you want to include an address or use it as a log of subsequent observations.&lt;br /&gt;
# Finally, click on Submit to store the nest.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1167</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1167"/>
				<updated>2014-12-11T13:30:01Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Including a bird in a nest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The dashboard is the tool to view the details of your projects. If you have administrative rights in a project you can also use it to administer them (e.g.: see trackers, create track sessions, add users...)&lt;br /&gt;
&lt;br /&gt;
= Monitoring your trackers: Dashboard tab =&lt;br /&gt;
&lt;br /&gt;
The direct link: https://services.e-ecology.sara.nl/dashboard/&lt;br /&gt;
&lt;br /&gt;
The Dashboard tab is the facility that helps you to get an overview of which trackers recently made contact and how much data they uploaded to the database.&lt;br /&gt;
&lt;br /&gt;
On the Dashboard there are two tabs, “Overview” and “Files Dashboard”:&lt;br /&gt;
* Overview:  gives an overview of the tracker activity for all your projects for the last three days.&lt;br /&gt;
* Files Dashboard: allows you to examine tracker activity for specific projects for adjustable time periods.&lt;br /&gt;
&lt;br /&gt;
A tracker is highlighted in colour if it uploaded data. The small horizontal bar indicates how much data the tracker uploaded to the database. See the legend on the “Files Dashboard” for an explanation.&lt;br /&gt;
&lt;br /&gt;
''Which trackers are shown on the dashboard?''&lt;br /&gt;
; Overview: only active trackers are shown, that is trackers with an active track session&lt;br /&gt;
; Files Dashboard: By default only active trackers are shown. Click on “show all trackers” to show all trackers of the project, that is also those without an active track session (e.g. to show trackers that you have turned on, but that have not been put on a bird yet, and therefore do not have an active track session).&lt;br /&gt;
&lt;br /&gt;
= Administering your projects: Projects tab =&lt;br /&gt;
&lt;br /&gt;
If you have administrative rights in a project, then you can see an &amp;quot;Project admin&amp;quot; tab on the dashboard. The direct link: https://services.e-ecology.sara.nl/dashboard/projects/&lt;br /&gt;
&lt;br /&gt;
== Users in your project ==&lt;br /&gt;
# Users should register themselves with Uva-Bits on https://services-dev.e-ecology.sara.nl/dashboard/open/signup. Only after users have successfully registered themselves can you make them a member of your project, by following the next steps:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a member to&lt;br /&gt;
# Click on the Memberships tab&lt;br /&gt;
# Click on Add new to add a user membership to the selected project&lt;br /&gt;
# You will now see a screen “Create Membership” where you need to fill out:&lt;br /&gt;
#* User: the login name of the user (which has already registered himself on UvaBits) that you want to add (when you start typing the user’s name, a list will pop up with users’ names that match what you have just typed in so far)&lt;br /&gt;
#* Role: the membership role, i.e. the administrative rights you want to give to the user. Pick one of four options:&lt;br /&gt;
#** Enrolled: the user can only see the project exists, but cannot access data or perform administrative rights. &lt;br /&gt;
#** Base: assign this role to standard users. They can view and use the project data, but have no administrative rights&lt;br /&gt;
#** Admin: assign this role to project administrators. They can add/change user memberships, birds and track sessions&lt;br /&gt;
#** Leader: the role with highest administrative rights, typically for the principal investigator. Admin cannot change the administrative rights of a leader, but leaders can change the rights of Admins.&lt;br /&gt;
#* Status: select Approved to add the user to your project. If you want to put the membership temporarily on hold, select Pending_User (this will trigger the user to submit it back to you for re-approval).&lt;br /&gt;
#* Comments: any comments you like to add to the new membership&lt;br /&gt;
&lt;br /&gt;
== Trackers in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project for which you want to see the trackers&lt;br /&gt;
# Click on the Trackers tab&lt;br /&gt;
# This will give you an overview of all the trackers part of your project. Most important are the numbers listed in the column “Tracker”, these correspond to the number on the physical tracker device (this number is called device_info_serial in the database).&lt;br /&gt;
# In case you have several projects or collaborate with other projects, you may want to share trackers of your current project with other projects. To do so click “Add new share” and enter the following:&lt;br /&gt;
#* Share with project: enter the project name of the project you want to share a tracker with &lt;br /&gt;
#* Tracker: the tracker number of the tracker you want to share&lt;br /&gt;
#* Tracker ownership: usually, leave it blank (it is meaningful only if you have had a tracker in your project within two or more time periods)&lt;br /&gt;
#* Start date / End date: the start and end dates during which you want to share the tracker with another project. This gives you the flexibility to share data for a restricted time period only (e.g.: to prevent disclosing a nest location during mating season).&lt;br /&gt;
&lt;br /&gt;
== Birds in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Birds tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following information (if available)&lt;br /&gt;
#* ring number: the metal  ring number issued by your national ringing centre&lt;br /&gt;
#* Colour ring: colour ring code of your bird (if applicable)&lt;br /&gt;
#* Species: the latin name of the species (must be selected out the list we recognise; if you miss yours, please contact the system administrators)&lt;br /&gt;
#* Sex&lt;br /&gt;
#* Mass in grams&lt;br /&gt;
#* Start Date: the date at which the bird was either born or seen in the study area for the first time (start of the bird’s lifespan)&lt;br /&gt;
#* End Date: the date at which the bird died. Put into the far future if unknown or still alive (end of the bird’s lifespan)&lt;br /&gt;
#* Any remarks (e.g. the circumstances under which the bird was found dead)&lt;br /&gt;
# Click on Submit to save the bird to the selected project&lt;br /&gt;
&lt;br /&gt;
== Track sessions: assigning a tracker to a bird ==&lt;br /&gt;
Trackers have to be assigned to birds through a so-called Track Session, which establishes the link between a tracker and a bird during a period of time. You can create a Track Session like this:&lt;br /&gt;
&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Track sessions tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following fields:&lt;br /&gt;
#* Tracker: the number of the tracker (this number is called device_info_serial in the database)&lt;br /&gt;
#* Individual: the ring number of the bird &lt;br /&gt;
#* Tagging date: this is the start date of the Track Session&lt;br /&gt;
#* End date: this is the date at which you want to end the Track Session (e.g.:this can be either the date at which the bird died, the date at which you removed the tracker during a recapture, or the date at which the tracker was lost for other reasons).&lt;br /&gt;
#* Place of capture: select on the map as accurately as possible, or enter a coordinate and click “Bring map to given lat/lon”&lt;br /&gt;
#* Remarks: put any remarks here, in particular the reason why the track session was ended.&lt;br /&gt;
&lt;br /&gt;
Note that on the Dashboard overview only trackers with active track sessions in the period you queried for are shown by default, which are trackers for which at least a day within the period you queried for lies between the track session start and end date.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Adding track sessions may be the most involving step of the project administration, and several conditions need to be taken into account before a track session can be successfully defined:&lt;br /&gt;
#	The tracker you want to put on a bird must be owned by your project (i.e. it must be listed under the tab “Trackers”)&lt;br /&gt;
#	You must have added the bird in the system &lt;br /&gt;
#	A tracker can be assigned only to one bird at the time. This means you must close any existing track session of the tracker, before you can assign it to a new bird. So if you have removed the tracker from a bird and want to put it on a different bird, you must first close the existing track session of the tracker before you can assign it to a new bird. Closing the track session is simply done by entering the end date of the track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
#	A bird can have assigned only one active track session at the same time, because a bird cannot carry more than one tracker simultaneously. So if you have removed a tracker from a bird, and want to put a new tracker on that same bird, you first have to close the track session of the first tracker, before you can start the track session of the new tracker. Closing a track session is simply done by entering the end date of the previous track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
&lt;br /&gt;
To avoid problems we urge users to properly administer their track sessions and bird metadata at all times. So if you replace trackers, or find birds dead with a tracker, always update your track sessions immediately by providing the updated start and end dates of the existing track sessions.&lt;br /&gt;
&lt;br /&gt;
== Including a bird in a nest ==&lt;br /&gt;
You can keep track of nests for a bird. You just need to create the nest and tell which bird is living there (and eventually, partners or offspring). The bird must exist in the system before you can create a nest for him.&lt;br /&gt;
&lt;br /&gt;
To create a nest:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a nest to&lt;br /&gt;
# Click on the Nests tab&lt;br /&gt;
# Click on Add new to add a nest for a bird from the selected project&lt;br /&gt;
# Fill in the following fields:&lt;br /&gt;
#* Ref. name: 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;
#* Birds (max. 2): a maximum of 2 existing birds that you have identified living on that nest&lt;br /&gt;
#* Nest location: the important fields are Latitude and Longitude; these will be stored in the database. The map is there as a visual cue and you can double click on the map to fill the Latitude and Longitude. You can search for a location on the textbox above the map to bring the area of the map close to a known point.&lt;br /&gt;
#* Start date: when the nest was spotted&lt;br /&gt;
#* End date: When the nest ceases to be relevant to you.&lt;br /&gt;
#* Found by: place to credit people involved in finding the nest&lt;br /&gt;
#* Remarks: free text. Maybe you want to include an address or use it as a log of subsequent observations.&lt;br /&gt;
# Finally, click on Submit to store the nest.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1166</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=Dashboard&amp;diff=1166"/>
				<updated>2014-12-11T13:29:33Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Assigning a tracker to a bird */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The dashboard is the tool to view the details of your projects. If you have administrative rights in a project you can also use it to administer them (e.g.: see trackers, create track sessions, add users...)&lt;br /&gt;
&lt;br /&gt;
= Monitoring your trackers: Dashboard tab =&lt;br /&gt;
&lt;br /&gt;
The direct link: https://services.e-ecology.sara.nl/dashboard/&lt;br /&gt;
&lt;br /&gt;
The Dashboard tab is the facility that helps you to get an overview of which trackers recently made contact and how much data they uploaded to the database.&lt;br /&gt;
&lt;br /&gt;
On the Dashboard there are two tabs, “Overview” and “Files Dashboard”:&lt;br /&gt;
* Overview:  gives an overview of the tracker activity for all your projects for the last three days.&lt;br /&gt;
* Files Dashboard: allows you to examine tracker activity for specific projects for adjustable time periods.&lt;br /&gt;
&lt;br /&gt;
A tracker is highlighted in colour if it uploaded data. The small horizontal bar indicates how much data the tracker uploaded to the database. See the legend on the “Files Dashboard” for an explanation.&lt;br /&gt;
&lt;br /&gt;
''Which trackers are shown on the dashboard?''&lt;br /&gt;
; Overview: only active trackers are shown, that is trackers with an active track session&lt;br /&gt;
; Files Dashboard: By default only active trackers are shown. Click on “show all trackers” to show all trackers of the project, that is also those without an active track session (e.g. to show trackers that you have turned on, but that have not been put on a bird yet, and therefore do not have an active track session).&lt;br /&gt;
&lt;br /&gt;
= Administering your projects: Projects tab =&lt;br /&gt;
&lt;br /&gt;
If you have administrative rights in a project, then you can see an &amp;quot;Project admin&amp;quot; tab on the dashboard. The direct link: https://services.e-ecology.sara.nl/dashboard/projects/&lt;br /&gt;
&lt;br /&gt;
== Users in your project ==&lt;br /&gt;
# Users should register themselves with Uva-Bits on https://services-dev.e-ecology.sara.nl/dashboard/open/signup. Only after users have successfully registered themselves can you make them a member of your project, by following the next steps:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a member to&lt;br /&gt;
# Click on the Memberships tab&lt;br /&gt;
# Click on Add new to add a user membership to the selected project&lt;br /&gt;
# You will now see a screen “Create Membership” where you need to fill out:&lt;br /&gt;
#* User: the login name of the user (which has already registered himself on UvaBits) that you want to add (when you start typing the user’s name, a list will pop up with users’ names that match what you have just typed in so far)&lt;br /&gt;
#* Role: the membership role, i.e. the administrative rights you want to give to the user. Pick one of four options:&lt;br /&gt;
#** Enrolled: the user can only see the project exists, but cannot access data or perform administrative rights. &lt;br /&gt;
#** Base: assign this role to standard users. They can view and use the project data, but have no administrative rights&lt;br /&gt;
#** Admin: assign this role to project administrators. They can add/change user memberships, birds and track sessions&lt;br /&gt;
#** Leader: the role with highest administrative rights, typically for the principal investigator. Admin cannot change the administrative rights of a leader, but leaders can change the rights of Admins.&lt;br /&gt;
#* Status: select Approved to add the user to your project. If you want to put the membership temporarily on hold, select Pending_User (this will trigger the user to submit it back to you for re-approval).&lt;br /&gt;
#* Comments: any comments you like to add to the new membership&lt;br /&gt;
&lt;br /&gt;
== Trackers in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project for which you want to see the trackers&lt;br /&gt;
# Click on the Trackers tab&lt;br /&gt;
# This will give you an overview of all the trackers part of your project. Most important are the numbers listed in the column “Tracker”, these correspond to the number on the physical tracker device (this number is called device_info_serial in the database).&lt;br /&gt;
# In case you have several projects or collaborate with other projects, you may want to share trackers of your current project with other projects. To do so click “Add new share” and enter the following:&lt;br /&gt;
#* Share with project: enter the project name of the project you want to share a tracker with &lt;br /&gt;
#* Tracker: the tracker number of the tracker you want to share&lt;br /&gt;
#* Tracker ownership: usually, leave it blank (it is meaningful only if you have had a tracker in your project within two or more time periods)&lt;br /&gt;
#* Start date / End date: the start and end dates during which you want to share the tracker with another project. This gives you the flexibility to share data for a restricted time period only (e.g.: to prevent disclosing a nest location during mating season).&lt;br /&gt;
&lt;br /&gt;
== Birds in your project ==&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Birds tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following information (if available)&lt;br /&gt;
#* ring number: the metal  ring number issued by your national ringing centre&lt;br /&gt;
#* Colour ring: colour ring code of your bird (if applicable)&lt;br /&gt;
#* Species: the latin name of the species (must be selected out the list we recognise; if you miss yours, please contact the system administrators)&lt;br /&gt;
#* Sex&lt;br /&gt;
#* Mass in grams&lt;br /&gt;
#* Start Date: the date at which the bird was either born or seen in the study area for the first time (start of the bird’s lifespan)&lt;br /&gt;
#* End Date: the date at which the bird died. Put into the far future if unknown or still alive (end of the bird’s lifespan)&lt;br /&gt;
#* Any remarks (e.g. the circumstances under which the bird was found dead)&lt;br /&gt;
# Click on Submit to save the bird to the selected project&lt;br /&gt;
&lt;br /&gt;
== Track sessions: assigning a tracker to a bird ==&lt;br /&gt;
Trackers have to be assigned to birds through a so-called Track Session, which establishes the link between a tracker and a bird during a period of time. You can create a Track Session like this:&lt;br /&gt;
&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a bird to&lt;br /&gt;
# Click on the Track sessions tab&lt;br /&gt;
# Click on Add new to add a bird to the selected project&lt;br /&gt;
# Fill out the following fields:&lt;br /&gt;
#* Tracker: the number of the tracker (this number is called device_info_serial in the database)&lt;br /&gt;
#* Individual: the ring number of the bird &lt;br /&gt;
#* Tagging date: this is the start date of the Track Session&lt;br /&gt;
#* End date: this is the date at which you want to end the Track Session (e.g.:this can be either the date at which the bird died, the date at which you removed the tracker during a recapture, or the date at which the tracker was lost for other reasons).&lt;br /&gt;
#* Place of capture: select on the map as accurately as possible, or enter a coordinate and click “Bring map to given lat/lon”&lt;br /&gt;
#* Remarks: put any remarks here, in particular the reason why the track session was ended.&lt;br /&gt;
&lt;br /&gt;
Note that on the Dashboard overview only trackers with active track sessions in the period you queried for are shown by default, which are trackers for which at least a day within the period you queried for lies between the track session start and end date.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Adding track sessions may be the most involving step of the project administration, and several conditions need to be taken into account before a track session can be successfully defined:&lt;br /&gt;
#	The tracker you want to put on a bird must be owned by your project (i.e. it must be listed under the tab “Trackers”)&lt;br /&gt;
#	You must have added the bird in the system &lt;br /&gt;
#	A tracker can be assigned only to one bird at the time. This means you must close any existing track session of the tracker, before you can assign it to a new bird. So if you have removed the tracker from a bird and want to put it on a different bird, you must first close the existing track session of the tracker before you can assign it to a new bird. Closing the track session is simply done by entering the end date of the track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
#	A bird can have assigned only one active track session at the same time, because a bird cannot carry more than one tracker simultaneously. So if you have removed a tracker from a bird, and want to put a new tracker on that same bird, you first have to close the track session of the first tracker, before you can start the track session of the new tracker. Closing a track session is simply done by entering the end date of the previous track session, which should lie before the date at which you want to start the new track session.&lt;br /&gt;
&lt;br /&gt;
To avoid problems we urge users to properly administer their track sessions and bird metadata at all times. So if you replace trackers, or find birds dead with a tracker, always update your track sessions immediately by providing the updated start and end dates of the existing track sessions.&lt;br /&gt;
&lt;br /&gt;
== Including a bird in a nest ==&lt;br /&gt;
You can keep track of nests for a bird. You just need to create the nest and tell which bird is living there (and eventually, partners or offspring). The bird must exist in the system before you can create a nest for him.&lt;br /&gt;
&lt;br /&gt;
To create a nest:&lt;br /&gt;
# Click Project Admin on the top of your screen&lt;br /&gt;
# On the Overview tab, select the project you want to add a nest to&lt;br /&gt;
# Click on the Nests tab&lt;br /&gt;
# Click on Add new to add a nest for a bird from the selected project&lt;br /&gt;
# Fill in the following fields:&lt;br /&gt;
#* Ref. name: 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;
#* Birds (max. 2): a maximum of 2 existing birds that you have identified living on that nest&lt;br /&gt;
#* Nest location: the important fields are Latitude and Longitude; these will be stored in the database. The map is there as a visual cue and you can double click on the map to fill the Latitude and Longitude. You can search for a location on the textbox above the map to bring the area of the map close to a known point.&lt;br /&gt;
#* Start date: when the nest was spotted&lt;br /&gt;
#* End date: When the nest ceases to be relevant to you.&lt;br /&gt;
#* Found by: place to credit people involved in finding the nest&lt;br /&gt;
#* Remarks: free text. Maybe you want to include an address or use it as a log of subsequent observations.&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1165</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=1165"/>
				<updated>2014-12-11T13:24:18Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_tracker_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;
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_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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1163</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=1163"/>
				<updated>2014-12-11T12:27:58Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_species_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;
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_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;
&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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1162</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=1162"/>
				<updated>2014-12-11T12:27:18Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* 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;
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_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;
|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;
&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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=File:Accelero1.png&amp;diff=1161</id>
		<title>File:Accelero1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=File:Accelero1.png&amp;diff=1161"/>
				<updated>2014-12-11T11:04:27Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: uploaded a new version of &amp;amp;quot;File:Accelero1.png&amp;amp;quot;: The image has disappeared. Uploading a backup I had rescued once for the dashboard.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tag with heave, sway and surge&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1157</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=1157"/>
				<updated>2014-12-09T17:22:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_tracking_speed_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;
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;
* ''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;
* 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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1156</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=1156"/>
				<updated>2014-12-09T17:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* 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: [[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;
== ''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;
* ''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;
* 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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1155</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=1155"/>
				<updated>2014-12-09T17:19:27Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: &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: [[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;
== ''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;
* ''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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1140</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1140"/>
				<updated>2014-11-27T10:56:19Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.uva_acceleration101 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
The database is split into two useful schemas: ''admin'' and ''gps''. The ''gps'' schema is meant for data that should be readily available for users, and that they may edit via the services (software tools) offered to that effect. The ''admin'' schema is meant to host data only accessible for e-Ecology administrators. &lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
=== ''gps.''ee_nest ===&lt;br /&gt;
This table holds nests' information. A nest is always for (at least) 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;
|id||int8||NO||Unique id. Primary key.&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;
|operated_date||timestamp||NO||When was this row last edited.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to a user id. Last one who edited the row.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_nest_inhabitant ===&lt;br /&gt;
This table is the materialisation of the many-to-many relation between nests and birds. The primary key of the table is the pair of both columns.&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;
|nest_id||int8||NO||Reference to the nest id. &lt;br /&gt;
|-&lt;br /&gt;
|individual_id||int8||NO||Reference to the individual id.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1139</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=1139"/>
				<updated>2014-11-27T10:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_nest_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&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)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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&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;
=== ''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;
&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;
== 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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1138</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=1138"/>
				<updated>2014-11-27T10:41:18Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_nest_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&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)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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&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;
=== ''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;
&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;
== 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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1137</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=1137"/>
				<updated>2014-11-27T10:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_acceleration_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&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)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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&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;
=== ''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;
&lt;br /&gt;
=== ''gps.''ee_nest_limited ===&lt;br /&gt;
A nest must contain a short name (a reference name for you to use), 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;
== 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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1133</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=1133"/>
				<updated>2014-11-20T14:19:43Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_tracking_speed_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&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)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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&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;
=== ''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;
&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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1132</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1132"/>
				<updated>2014-11-20T14:19:33Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.uva_tracking_data101 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
The database is split into two useful schemas: ''admin'' and ''gps''. The ''gps'' schema is meant for data that should be readily available for users, and that they may edit via the services (software tools) offered to that effect. The ''admin'' schema is meant to host data only accessible for e-Ecology administrators. &lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1131</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1131"/>
				<updated>2014-11-20T14:18:45Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.uva_tracking_data101 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
The database is split into two useful schemas: ''admin'' and ''gps''. The ''gps'' schema is meant for data that should be readily available for users, and that they may edit via the services (software tools) offered to that effect. The ''admin'' schema is meant to host data only accessible for e-Ecology administrators. &lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
|speed_3d||float8||YES|| sqrt(d.x_speed^2 + d.y_speed^2 + d.z_speed^2)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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 - terrain elevation on the coordinate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1130</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=1130"/>
				<updated>2014-11-20T14:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_tracking_speed_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&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)&lt;br /&gt;
|-&lt;br /&gt;
|speed_2d||float8||YES|| Speed on 2D&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 - terrain elevation on the coordinate&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;
=== ''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;
&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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1129</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=1129"/>
				<updated>2014-11-19T12:47:32Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Sharings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&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>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1128</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=1128"/>
				<updated>2014-11-19T11:31:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&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;
** projects&lt;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1127</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=1127"/>
				<updated>2014-11-19T11:26:34Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Engineering data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1126</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=1126"/>
				<updated>2014-11-19T11:26:20Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Tracking data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&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;
=== ''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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1125</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1125"/>
				<updated>2014-11-19T11:24:53Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Relationship with projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
The database is split into two useful schemas: ''admin'' and ''gps''. The ''gps'' schema is meant for data that should be readily available for users, and that they may edit via the services (software tools) offered to that effect. The ''admin'' schema is meant to host data only accessible for e-Ecology administrators. &lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
== Relation to projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1124</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=1124"/>
				<updated>2014-11-19T11:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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;
=== ''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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&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;
=== ''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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1123</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=1123"/>
				<updated>2014-11-19T11:23:02Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_tracking_speed_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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;
=== ''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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&lt;br /&gt;
== Relation to projects ==&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;
=== ''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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1122</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=1122"/>
				<updated>2014-11-19T11:19:58Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_tracking_speed_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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;
=== ''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_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;
You will not see anything here for any tracker that has not been attached to a bird yet. &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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&lt;br /&gt;
== Relation to projects ==&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;
=== ''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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1121</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=1121"/>
				<updated>2014-11-19T11:18:44Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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;
=== ''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_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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&lt;br /&gt;
== Relation to projects ==&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;
=== ''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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1120</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=1120"/>
				<updated>2014-11-19T11:17:49Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' 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_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_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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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;
=== ''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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
=== ''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;
&lt;br /&gt;
== Relation to projects ==&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;
=== ''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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1119</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1119"/>
				<updated>2014-11-19T11:14:59Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Relationship with projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
The database is split into two useful schemas: ''admin'' and ''gps''. The ''gps'' schema is meant for data that should be readily available for users, and that they may edit via the services (software tools) offered to that effect. The ''admin'' schema is meant to host data only accessible for e-Ecology administrators. &lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=UvA-BiTS_Tracking_Data&amp;diff=1118</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=1118"/>
				<updated>2014-11-19T11:07:27Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* gps.ee_track_session_limited */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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_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_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 before which the bird is not relevant.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant.&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_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;
== ''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;
== ''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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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)&lt;br /&gt;
|-&lt;br /&gt;
|veast||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|vdown||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|speed||float8||YES||- vx * sin(lon) + vy * cos(lon)&lt;br /&gt;
|-&lt;br /&gt;
|speed3d||float8||YES||- vx * cos(lat) * cos(lon) - vy * cos(lat) * sin(lon) - vz * sin(lat)&lt;br /&gt;
|-&lt;br /&gt;
|direction||numeric||YES||Heading in degrees; 0 is north, 90 is east&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;
&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;
== ''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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1117</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1117"/>
				<updated>2014-11-19T11:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
The database is split into two useful schemas: ''admin'' and ''gps''. The ''gps'' schema is meant for data that should be readily available for users, and that they may edit via the services (software tools) offered to that effect. The ''admin'' schema is meant to host data only accessible for e-Ecology administrators. &lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1116</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1116"/>
				<updated>2014-11-19T11:03:09Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note:''' What follows is a list of tables and explanations intended for the database maintainers or otherwise people actively involved in the development of the e-Ecology system itself. Users from e-Ecology should mainly focus on the documentation made available on the [[DB_Views_2014|DB views 2014 page]]. This actual [[DB_Tables_2014|DB tables 2014 page]] is only made available to every user for completion.&lt;br /&gt;
&lt;br /&gt;
== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1115</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1115"/>
				<updated>2014-11-19T10:53:30Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Relationship with projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_tracking_data101 ===&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. &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 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.&lt;br /&gt;
|-&lt;br /&gt;
|longitude||float8||YES||Longitude of the GPS fix.&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;
&lt;br /&gt;
=== ''gps.''uva_acc_start102 ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the start of a block of accelerations when a GPS fix is not available.&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 inserted into this specific table. &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 table gps.ee_tracking_data101 for the given tracker, 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;
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 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;
=== ''gps.''uva_acceleration101 ===&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, so the 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 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 inserted into a specific table called gps.ee_acc_start102. 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 table gps.ee_tracking_data101 for the given tracker, 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;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1114</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1114"/>
				<updated>2014-11-19T10:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Leaf data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Source'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	<entry>
		<id>https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1113</id>
		<title>DB Tables 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.e-ecology.nl/index.php?title=DB_Tables_2015&amp;diff=1113"/>
				<updated>2014-11-19T10:45:20Z</updated>
		
		<summary type="html">&lt;p&gt;Andera: /* Relationship with projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''Leaf'' data ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_project_limited ===&lt;br /&gt;
Each row represents a project.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
|description||text||YES||String for free description. Updatable by the user.&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;
|key_name||varchar||NO||Unique key name, of the form species_place&lt;br /&gt;
|-&lt;br /&gt;
|lft||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|rgt||int8||NO||&amp;quot;Modified preorder tree traversal&amp;quot; field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Project start date&lt;br /&gt;
|-&lt;br /&gt;
|station_name||varchar||NO||Where the receiving station is&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the project&lt;br /&gt;
|-&lt;br /&gt;
|parent||int8||YES||Reference to the parent project. Only the root project has no parent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_user ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a user.&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. Primary key&lt;br /&gt;
|-&lt;br /&gt;
||address||varchar||YES||String for postal address&lt;br /&gt;
|-&lt;br /&gt;
|email||varchar||NO||e-mail address&lt;br /&gt;
|-&lt;br /&gt;
|encrypted_password||varchar||NO||Encrypted password&lt;br /&gt;
|-&lt;br /&gt;
|login_name||varchar||NO||Login name&lt;br /&gt;
|-&lt;br /&gt;
|mobile_phone||varchar||YES||String for mobile phone number&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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||YES||Id of the user who last edited this user's data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.'' ee_tracker ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a tracker.&lt;br /&gt;
&lt;br /&gt;
This table replaces the old gps.uva_device.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|device_info_serial||int8||NO||Serial number of the tracker&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|x_o||numeric(30,6)||YES||Accelerometer calibration: offset on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|x_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the x (surge) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_o||numeric(30,6)||YES||Accelerometer calibration: offset on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|y_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (sway) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_o||numeric(30,6)||YES||Accelerometer calibration: offset on the z (heave) axis&lt;br /&gt;
|-&lt;br /&gt;
|z_s||numeric(30,6)||YES||Accelerometer calibration: sensitivity on the y (heave) axis&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_individual ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a bird.&lt;br /&gt;
&lt;br /&gt;
This table replaces gps.uva_individual from the old 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;
|id||int8||NO||Unique identifier. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|colour_ring||varchar||YES||String for ring colour&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the bird is no longer relevant&lt;br /&gt;
|-&lt;br /&gt;
|mass||numeric(5,0)||YES||Mass (grams)&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Text for user remarks&lt;br /&gt;
|-&lt;br /&gt;
|ring_number||varchar||NO||Ring number&lt;br /&gt;
|-&lt;br /&gt;
|sex||varchar||NO||Sex&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date before which the bird is not relevant&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|species||int8||NO||Reference to the species&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_track_session ===&lt;br /&gt;
&lt;br /&gt;
Each row represents a track session. &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. Primary key.&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;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|remarks||text||YES||Free text for comments&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;
|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;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this track session belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Relationship with projects ==&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_membership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a user has a given role in a given project at the moment.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|comments||text||YES||Free text for comments&lt;br /&gt;
|-&lt;br /&gt;
|label||text||YES||Labels that Willem wants to have for people in projects&lt;br /&gt;
|-&lt;br /&gt;
|role||varchar||NO||Role that the user holds during this period&lt;br /&gt;
|-&lt;br /&gt;
|status||varchar||NO||Status that the row holds during that period. Look at the attached file to know the allowed transitions.&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|member_user||int8||NO||Reference to the user that this membership applies to&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Date that the row was last modified&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited this row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that this membership applies to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_tracker_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the tracker&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|device||int8||NO||Reference to the tracker&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this tracker belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''admin.''ee_individual_ownership ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that an individual belongs to a project within a specified time period.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the individual ceases to belong to the project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the project begins to own the individual&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|individual||int8||NO||Reference to the individual&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project this individual belongs to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''ee_tracker_sharing ===&lt;br /&gt;
&lt;br /&gt;
Each row represents the fact that a tracker's information within a specified period, can be accessed by users belonging to another project.&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. Primary key.&lt;br /&gt;
|-&lt;br /&gt;
|end_date||timestamp||NO||Date at which the tracker information ceases to be available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|operated_date||timestamp||NO||Recording of the last time the row was edited&lt;br /&gt;
|-&lt;br /&gt;
|start_date||timestamp||NO||Date at which the tracker information becomes available to the receiving project&lt;br /&gt;
|-&lt;br /&gt;
|version||int4||YES||Optimistic locking field. Ignore it as a user.&lt;br /&gt;
|-&lt;br /&gt;
|operator_user||int8||NO||Reference to the user who last edited the row&lt;br /&gt;
|-&lt;br /&gt;
|project||int8||NO||Reference to the project that receives access to the tracker information&lt;br /&gt;
|-&lt;br /&gt;
|tracker_ownership||int8||NO||Reference to the tracker ownership by virtue of which, the tracker information is shared&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Engineering data ==&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_trackingfile_parsing ===&lt;br /&gt;
&lt;br /&gt;
Each row on this table represents the status of the last attempt to parse (process) the raw data file that came from a tracker.&lt;br /&gt;
&lt;br /&gt;
It is heavily used by the dashboard to determine how a given file is represented 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;
|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.''uva_trackingfile_messages ===&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||serial||NO||Unique identifier of the row&lt;br /&gt;
|-&lt;br /&gt;
|tracking_bookkeeping_id||int4||YES||Reference to the gps.uva_trackingfile_parsing row for this file&lt;br /&gt;
|-&lt;br /&gt;
|message_type||int4||YES||Code for the type of information being told by the message. &lt;br /&gt;
|-&lt;br /&gt;
|message||text||YES||Textual message from the parsing process telling what it found.&lt;br /&gt;
|-&lt;br /&gt;
|message_code||int4||YES||&lt;br /&gt;
|-&lt;br /&gt;
|line_number||int4||YES||Line in the file where the message is reported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_warning102 ===&lt;br /&gt;
&lt;br /&gt;
Since firmware version 1.0.2.7 this table was added as catchall for events that do not occur very often (C10, C20) or errors that occur during parsing. &lt;br /&gt;
For example all CRC failures can be selected with : &lt;br /&gt;
&lt;br /&gt;
  select * from gps.uva_warning102 &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||log 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 in the file &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''gps.''uva_comm101 ===&lt;br /&gt;
&lt;br /&gt;
Communication table indicates status and result of communications with ground stations. Only for newer firmware (v.1.0.1.4 and higher).&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.&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.''uva_energy101 ===&lt;br /&gt;
&lt;br /&gt;
Only for newer firmware.&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&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.''uva_settings101 ===&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;
This table structure has ''not'' changed from the old 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||&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;/div&gt;</summary>
		<author><name>Andera</name></author>	</entry>

	</feed>