Difference between revisions of "Queries for linking bird tracks to wind and flow data"

From ecology
Jump to: navigation, search
(Getting the bird track for one device)
(Combining devices with birds)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=== Combining devices with birds ===
 
=== Combining devices with birds ===
  
Devices have no information directly about the bird it is attached to; the table 'gps.uva_track_session' can be used to get this information:
+
Devices have no information directly about the bird it is attached to, and the 'ee_individual' table for birds does not specify which devices it has. This is logical, because a device may be replaced with another device, so in the tracking data, one bird can have two (or more) devices. Also, device can be used for more than one bird, in the tracking data, one device can have more than one bird. To link devices with birds, the table 'gps.ee_track_session' contains 'sessions' of consecutive periods where one device is attached to one bird. This table can be used to join device information with bird information.
 +
 
 +
The basic join is as follows:
  
 
   SELECT ud.device_info_serial, ts.ring_number
 
   SELECT ud.device_info_serial, ts.ring_number
   FROM gps.uva_device ud
+
   FROM gps.ee_tracker ud
 
   LEFT JOIN gps.uva_track_session ts
 
   LEFT JOIN gps.uva_track_session ts
     ON ud.device_info_serial = ts.device_info_serial;
+
     ON ud.id = ts.device;
  
Join with the table 'gps.uva_individual'; then list only 'Larus fuscus':
+
This join can be extended with more joins. The following example shows which devices are connected to Lesser Black-Backed Gulls (Larus fuscus):
  
 
   SELECT ud.device_info_serial, ui.species
 
   SELECT ud.device_info_serial, ui.species
   FROM gps.uva_device ud
+
   FROM gps.ee_tracker ud
   LEFT JOIN gps.uva_track_session ts
+
   LEFT JOIN gps.ee_track_session ts
     ON ud.device_info_serial = ts.device_info_serial
+
     ON ud.id = ts.device
   LEFT JOIN gps.uva_individual ui
+
   LEFT JOIN gps.ee_individual ui
     ON ts.ring_number = ui.ring_number
+
     ON ts.individual = ui.id
   WHERE ui.species = 'Larus fuscus';
+
   LEFT JOIN gps.ee_species s
 +
    ON ui.species = s.id
 +
  WHERE s.latin_name = 'Larus fuscus';
  
 
=== Getting the bird track for one device ===
 
=== Getting the bird track for one device ===
Line 28: Line 32:
 
         date_time <= '2010-05-24 0:00:00'
 
         date_time <= '2010-05-24 0:00:00'
 
   ORDER BY date_time;
 
   ORDER BY date_time;
 +
 +
=== Combining bird track data with flow data ===
 +
 +
If flow data are available for the location of the bird, flow data can be added to the bird track:
 +
 +
  SELECT date_time, latitude, longitude, (uv).uvx, (uv).uvy FROM (
 +
    SELECT date_time, latitude, longitude, location,
 +
          flow.waddenzee_fijn_uv(location, date_time) as uv
 +
    FROM gps.uva_tracking_data101
 +
    WHERE device_info_serial = '373' AND
 +
          date_time >= '2010-06-24 0:00:00' AND
 +
          date_time <= '2010-06-24 0:20:00'
 +
    ORDER BY date_time
 +
  ) q;
 +
 +
 +
=== Combining bird track data with flow data and wind data ===
 +
 +
The bird track data can also be combined with weather forecast data using a more complicated query. The example query below retrieves in one table:
 +
 +
* the position of one bird (latitude, longitude);
 +
* the depth-averaged water velocity at the ground location and time of the bird, towards east and north, in m/s, as computed by the 'Waddenzee fijn' model by Deltares (uvx, uvy)
 +
* the wind velocity at 10 m height at the ground location and time of the bird, towards east and north, in m/s, as computed in the ECMWF forecast model (u10, v10).
 +
 +
The results are computed for the bird with device id 373 for June 24th 2010 from 0:00:00 to 0:20:00. To retrieve the data for other birds and for other dates times, replace the current values with the desired values.
 +
 +
The flow velocities are available for the Waddenzee and a strip of North Sea, from April 1st 2010 to July 21st 2010.
 +
 +
  SELECT date_time,
 +
      latitude,
 +
      longitude,
 +
      (uv).uvx,
 +
      (uv).uvy,
 +
      (fc).u10,
 +
      (fc).v10
 +
  FROM (
 +
    SELECT date_time, latitude, longitude, location,
 +
          flow.waddenzee_fijn_uv(location, date_time) as uv,
 +
          ecmwf.forecast_interpolate(latitude, longitude, date_time) as fc
 +
    FROM gps.uva_tracking_data101
 +
    WHERE device_info_serial = '373' AND
 +
          date_time >= '2010-06-24 0:00:00' AND
 +
          date_time <= '2010-06-24 0:20:00'
 +
    ORDER BY date_time
 +
  ) q;
 +
 +
This query collects the following variables in one table:
 +
* the position of the bird in geographical coordinates;
 +
* the eastward (uvx) and nordward (uvy) velocity components of the water velocity in m/s;
 +
* the eastward (u10) and nordward (v10) velocity components of the wind at 10m height, in m/s.
 +
 +
The flow data were obtained from the depth-averaged Unstruc model by Deltares. Please keep in mind that the water velocity is the average over the depth and that the flow at the surface may differ.

Latest revision as of 17:17, 28 July 2014

Combining devices with birds

Devices have no information directly about the bird it is attached to, and the 'ee_individual' table for birds does not specify which devices it has. This is logical, because a device may be replaced with another device, so in the tracking data, one bird can have two (or more) devices. Also, device can be used for more than one bird, in the tracking data, one device can have more than one bird. To link devices with birds, the table 'gps.ee_track_session' contains 'sessions' of consecutive periods where one device is attached to one bird. This table can be used to join device information with bird information.

The basic join is as follows:

 SELECT ud.device_info_serial, ts.ring_number
 FROM gps.ee_tracker ud
 LEFT JOIN gps.uva_track_session ts
   ON ud.id = ts.device;

This join can be extended with more joins. The following example shows which devices are connected to Lesser Black-Backed Gulls (Larus fuscus):

 SELECT ud.device_info_serial, ui.species
 FROM gps.ee_tracker ud
 LEFT JOIN gps.ee_track_session ts
   ON ud.id = ts.device
 LEFT JOIN gps.ee_individual ui
   ON ts.individual = ui.id
 LEFT JOIN gps.ee_species s
   ON ui.species = s.id
 WHERE s.latin_name = 'Larus fuscus';

Getting the bird track for one device

The following example gets the position of one bird as a function of the time for one day:

 SELECT date_time, latitude, longitude
 FROM gps.uva_tracking_data101
 WHERE device_info_serial = '330' AND
       date_time >= '2010-05-23 0:00:00' AND
       date_time <= '2010-05-24 0:00:00'
 ORDER BY date_time;

Combining bird track data with flow data

If flow data are available for the location of the bird, flow data can be added to the bird track:

 SELECT date_time, latitude, longitude, (uv).uvx, (uv).uvy FROM (
   SELECT date_time, latitude, longitude, location,
          flow.waddenzee_fijn_uv(location, date_time) as uv
   FROM gps.uva_tracking_data101
   WHERE device_info_serial = '373' AND
         date_time >= '2010-06-24 0:00:00' AND
         date_time <= '2010-06-24 0:20:00'
   ORDER BY date_time
 ) q;


Combining bird track data with flow data and wind data

The bird track data can also be combined with weather forecast data using a more complicated query. The example query below retrieves in one table:

  • the position of one bird (latitude, longitude);
  • the depth-averaged water velocity at the ground location and time of the bird, towards east and north, in m/s, as computed by the 'Waddenzee fijn' model by Deltares (uvx, uvy)
  • the wind velocity at 10 m height at the ground location and time of the bird, towards east and north, in m/s, as computed in the ECMWF forecast model (u10, v10).

The results are computed for the bird with device id 373 for June 24th 2010 from 0:00:00 to 0:20:00. To retrieve the data for other birds and for other dates times, replace the current values with the desired values.

The flow velocities are available for the Waddenzee and a strip of North Sea, from April 1st 2010 to July 21st 2010.

 SELECT date_time,
     latitude,
     longitude,
     (uv).uvx,
     (uv).uvy,
     (fc).u10,
     (fc).v10
 FROM (
   SELECT date_time, latitude, longitude, location,
          flow.waddenzee_fijn_uv(location, date_time) as uv,
          ecmwf.forecast_interpolate(latitude, longitude, date_time) as fc
   FROM gps.uva_tracking_data101
   WHERE device_info_serial = '373' AND
         date_time >= '2010-06-24 0:00:00' AND
         date_time <= '2010-06-24 0:20:00'
   ORDER BY date_time
 ) q;

This query collects the following variables in one table:

  • the position of the bird in geographical coordinates;
  • the eastward (uvx) and nordward (uvy) velocity components of the water velocity in m/s;
  • the eastward (u10) and nordward (v10) velocity components of the wind at 10m height, in m/s.

The flow data were obtained from the depth-averaged Unstruc model by Deltares. Please keep in mind that the water velocity is the average over the depth and that the flow at the surface may differ.