vp
or vpts
) to an
integrated profile (vpi
)Performs a vertical integration of density, reflectivity and migration traffic rate, and a vertical averaging of ground speed and direction weighted by density.
integrate_profile(x, alt_min, alt_max, alpha = NA, interval_max = Inf)# S3 method for vp
integrate_profile(
x,
alt_min = 0,
alt_max = Inf,
alpha = NA,
interval_max = Inf
)
# S3 method for list
integrate_profile(
x,
alt_min = 0,
alt_max = Inf,
alpha = NA,
interval_max = Inf
)
# S3 method for vpts
integrate_profile(
x,
alt_min = 0,
alt_max = Inf,
alpha = NA,
interval_max = Inf
)
A vp
or vpts
object.
Minimum altitude in m.
Maximum altitude in m.
Migratory direction in clockwise degrees from north.
Maximum time interval belonging to a single profile in
seconds. Traffic rates are set to zero at times t
for which no
profiles can be found within the period t-interval_max/2
to
t+interval_max/2
. Ignored for single profiles of class vp
.
an object of class vpi
, a data frame with vertically
integrated profile quantities
vp
: Vertically integrate a vertical profile.
list
: Vertically integrate a list of
vertical profiles.
vpts
: Vertically integrate a time series of
vertical profiles.
The function generates a specially classed data frame with the following quantities:
datetime
POSIXct date of each profile in UTC
vid
Vertically Integrated Density in individuals/km^2.
vid
is a surface density, whereas dens
in vp
objects is a volume density.
vir
Vertically Integrated Reflectivity in cm^2/km^2
mtr
Migration Traffic Rate in individuals/km/h
rtr
Reflectivity Traffic Rate in cm^2/km/h
mt
Migration Traffic in individuals/km, cumulated from
the start of the time series up to datetime
rt
Reflectivity Traffic in cm^2/km, cumulated from
the start of the time series up to datetime
ff
Horizontal ground speed in m/s
dd
Horizontal ground speed direction in degrees
u
Ground speed component west to east in m/s
v
Ground speed component north to south in m/s
height
Mean flight height (height weighted by eta) in m above sea level
The height-averaged ground speed is defined as:
$$ff = \sum_i dens_i ff_i / \sum_i dens_i$$
with the sum running over all altitude layers between alt_min
and
alt_max
, \(dens_i\) the bird density, \(ff_i\) the ground speed at
altitude layer i.
the height-averaged u component (west to east) is defined as:
$$u = \sum_i dens_i u_i / \sum_i dens_i$$
the height-averaged v component (south to north) is defined as:
$$v = \sum_i dens_i v_i / \sum_i dens_i$$
Note that \(ff_i=\sqrt(u_i^2 + v_i^2)\), but the same does not hold for the height-integrated speeds, i.e. \(ff != \sqrt(u^2 + v^2)\) as soon as the ground speed directions vary with altitude.
Migration traffic rate (mtr) for an altitude layer is a flux measure, defined as the number of targets crossing a unit of transect per hour.
Column mtr of the output dataframe gives migration traffic rates in individuals/km/hour.
The transect direction is set by the angle alpha
. When
alpha=NA
, the transect runs perpendicular to the measured migratory
direction. mtr
then equals the number of crossing targets per km
transect per hour, for a transect kept perpendicular to the measured
migratory movement at all times and altitudes. In this case mtr
is
always a positive quantity, defined as:
$$mtr = 3.6 \sum_i dens_i ff_i \Delta h$$
with the sum running over all altitude layers between alt_min
and
alt_max
, \(dens_i\) the bird density, \(ff_i\) the ground speed at
altitude layer i, and \(\Delta h\) the altitude layer width. The factor 3.6
refers to a unit conversion of speeds \(ff_i\) from m/s to km/h.
If alpha
is given a numeric value, the transect is taken perpendicular
to the direction alpha
, and the number of crossing targets per hour
per km transect is calculated as:
$$mtr = 3.6 \sum_i dens_i ff_i \cos((dd_i-alpha) pi/180) \Delta h$$ with \(dd_i\) the migratory direction at altitude i.
Note that this equation evaluates to the previous equation when alpha
equals \(dd_i\).
Also note we can rewrite this equation using trigonemetry as:
$$mtr = 3.6 \sum_i dens_i (u_i \sin(alpha pi/180) + v_i \cos(alpha pi/180)) \Delta h$$ with \(u_i\) and \(v_i\) the u and v ground speed components at altitude i.
In this definition mtr
is a traditional flux into a direction of
interest. Targets moving into the direction alpha
contribute
positively to mtr
, while targets moving in the opposite direction
contribute negatively to mtr
. Therefore mtr
can be both
positive or negative, depending on the definition of alpha.
Note that mtr
for a given value of alpha
can also be calculated from
the vertically integrated density vid
and the height-integrated velocity
components u
and v
as follows:
$$mtr = 3.6 (u \sin(alpha pi/180) + v \cos(alpha pi/180)) vid$$
Formula for reflectivity traffic rate rtr
are found by replacing
dens
with eta
and vid
with vir
in the formula for mtr
.
Reflectivity traffic rate gives the cross-sectional area
passing the radar per km transect perpendicular to the migratory direction per hour.
mtr
values are conditional on settings of rcs, while rtr
values are not.
Migration traffic is calculated by time-integration of migration traffic rates. Migration traffic gives the number of individuals that have passed per km perpendicular to the migratory direction at the position of the radar for the full period of the time series within the specified altitude band.
Reflectivity traffic is calculated by time-integration of reflectivity traffic rates. Reflectivity traffic gives the total cross-sectional area that has passed per km perpendicular to the migratory direction at the position of the radar for the full period of the time series within the specified altitude band.
mt
values are conditional on settings of rcs, while rt
values are not.
Columnns mt and rt in the output dataframe provides migration traffic as a numeric value equal to migration traffic and reflectivity traffic from the start of the time series up till the moment of the time stamp of the respective row.
# NOT RUN {
# MTR for a single vertical profile
integrate_profile(example_vp)
# MTRs for a list of vertical profiles
integrate_profile(c(example_vp, example_vp))
# MTRs for a time series of vertical profiles
# load example data:
data(example_vpts)
example_vpts
# print migration traffic rates
vpi <- integrate_profile(example_vpts)
# plot migration traffic rates for the full air column
plot(example_vpts)
# plot migration traffic rates for altitudes > 1 km above sea level
plot(integrate_profile(example_vpts, alt_min = 1000))
# plot the (cumulative) migration traffic
plot(integrate_profile(example_vpts), quantity = "mt")
# }
Run the code above in your browser using DataLab