10 Example 2: soar-gliding

Photograph by El Golli Mohamed, (c) creative commons

Figure 10.1: Photograph by El Golli Mohamed, (c) creative commons

10.1 Classifying migratory flight in European bee-eaters: the dataset

European bee-eaters (Merops apiaster) have been tracked on the their migrations from Germany (to the Congo Basin) using SOI-GDL3pam loggers.

  • Pressure is recorded every 15 minutes
  • Light is recorded every 5 minutes
  • Activity is recorded every 5 minutes
  • Pitch is recorded every 5 minutes
  • Temperature is recorded every 15 minutes
  • Tri-axial acceleration is recorded every 4 hours
  • Tri-axial magnetic field is recorded every 4 hours

10.3 What should we look for?

Compared to the hoopoe, the activity patterns are less clear. However, there are some patterns become apparent.

  • The bird is visibly never active at night - It only migrates during the day.
  • During migration (August and April) the overall pressure changes from one night to the next (horizontal bars of different colors). Indeed pressure varies geographically and altitudinally - suggesting that those nights the bird is somewhere different.
  • During this migration period, pressure drops substatially as does temperature - indicating higher altitude flights than ususal
  • During the migration period, activity is low but sustained
  • During the migration period, pitch is constant
## Warning: package 'dygraphs' was built under R version 3.6.3

Some, if not all of these can therefore be used to identify migratory flight in European bee-eaters. We could for instance use create_summary_statistics(..., method="endurance") or create_summary_statistics(..., method="pressure") based on these data patterns. However, because these species soar-glide and are therefore in sunlight while thermalling (as opposed to hidden under leaves), periods of constant sunshine could also be used to identify migratory soar-gliding usingcreate_summary_statistics(..., method="light").

10.4 What variables make the most sense for classifying?

We start with endurance flights. These can be extracted from the data using the following code.

We can then plot the data. Here, to save space, we plot the variables which on first glance seem to best distinguish migration from non-migration. These include:

  • Long periods spend always activity: duration
  • Active day where the bird changed pressure (i.e. altitude) a lot: total_daily_P_change
  • Active periods where the pressure changed from one night to the next: night_P_diff
  • Active periods where there were the bird’s body wasin a specific position: median_pitch

10.5 Classify using HMM

There are two options for performing the classification of the data. One is to include multiple variables as is (see predictor 1 below). The other is to combine them into one metric (see predictor 2 below). The “hmm” method in classify_summary_statistics relies on the package depmixS4, and by default classify_summary_statistics treats each variable (i.e. a data column) with the formula variable ~ 1 with family = gaussian(). Family can easily be changed, however for a more complicated model, it is recommended to implement directly using the depmixS4 package.

Beware - some methods do not allow any NAs in the dataset

## converged at iteration 15 with logLik: -8216.3

10.5.1 Translate the classification events into something usable

The classification results in a series of numbers which can be accessed under classification$cluster. These indicate the states of the individual during a given event, in this case “migrating” and “not migrating”. However, we still need to figure out which number corresponds to which state, because these can be allocated randomly by the classification algorithm.

First, we start by taking the classification, and adding the data from the flight events to the same resolution of the data that we want to plot, using create_merged_classification(). For example, we use pressure, as this displays soar-gliding behaviour quite well.

To do so, we find the sate with the largest pressure difference, because it will indicate the state where the bird was changing altitude the most and therefore soar-gliding, which will be most obvious during migration.

10.6 Classify using pressure

Note from the previous classification where the pressure is very low, and therefore at very high altitudes, yet it was not active. This is because bee-eaters soar glide, and using this strategy, they flap their wings very little. Another way of classifying flight events, is to use a change in pressure greater than what we would expect from weather. In this case, pressure data are collected every 30 minutes, and we wouldn’t expect a pressure change greater than 2hPa/30 minutes when the bird is on the ground (you can for instance use nightime when birds do not fly to determine what this threshold should be). Thus we set Pdiff_thld = 2.

## converged at iteration 15 with logLik: -7954.512

10.6.1 Translate the classification events into something usable

10.7 Classify using a changepoint analysis

The changepoint analysis looks for changes in the mean and/or variance in the data, and can be implemented in pamlr using classify_changepoint. We can perform this and compare with the previous classification seen above. It seems like classify_changepoint overclassifies migration within the migratory period, which classify_summary_statistics overclassifies migration during the non-breeding season in Africa.