Skip to contents

Returns a body-mass / locomotor-mode prediction of the maximum burst speed an animal of the given mass and mode is physically capable of, using the general scaling law of Hirt et al. (2017). Intended as a principled default for the v_max cap used by mt_clean_track and mt_peel_speed when the user does not have a species-specific number.

Usage

v_phys_estimate(
  mass,
  mode = c("flying", "running", "swimming"),
  ci_level = 0.95
)

Arguments

mass

Numeric scalar. Body mass in kilograms (kg). Must be positive. A warning is issued when mass lies outside the range of the Hirt et al. (2017) dataset (3e-8 to 1.084e5 kg).

mode

Character. One of "flying", "running", "swimming".

ci_level

Numeric in (0, 1). Confidence level for the parameter-uncertainty interval reported as the "ci" attribute. Default 0.95.

Value

A length-1 numeric vector containing the central prediction in m/s. Attached attributes:

ci

Length-2 numeric, lower and upper bound of the parameter-uncertainty interval at ci_level, in m/s.

kmh

Length-1 numeric, central prediction in km/h (the original Hirt unit).

mass

The supplied body mass.

mode

The supplied locomotor mode.

reference

A string citing Hirt et al. (2017).

Pass directly to mt_clean_track via the v_max argument; numeric coercion strips the attributes and yields the central estimate. mt_clean_track() also accepts the (mass, mode) pair directly and runs the estimator internally; that is the recommended path.

Details

The Hirt et al. (2017) model is a time-dependent saturation of a power-law scaling of theoretical maximum speed with body mass: $$v_{max} = a M^{b} \, (1 - e^{-h M^{i}})$$ where the first factor is the theoretical aerobic ceiling and the saturation term captures the finite anaerobic energy budget that limits large animals to a fraction of that ceiling. The fitted parameters per locomotion mode are taken directly from Supplementary Table 4 of Hirt et al. (2017) (M in kg, output v in km/h, internally converted to m/s):

modeabhi
flying142.8 +- 16.70.24 +- 0.012.4 +- 1.4-0.72 +- 0.26
running25.5 +- 0.840.26 +- 0.00622 +- 7.6-0.6 +- 0.05
swimming11.2 +- 0.910.36 +- 0.0219.5 +- 13.6-0.56 +- 0.07

Reported predictive accuracy R^2 = 0.893 across 622 data points from 474 species spanning 3e-8 to 1.084e5 kg.

Scope and caveats.

  • Hirt et al. excluded vertical (gravity-assisted) speeds from their dataset. This is the right scope for move2utils, which operates on horizontally projected GPS / Argos / satellite tracking data. A peregrine stoop at 89 m/s in 3D projects to a much smaller horizontal step speed and falls under the model's prediction. For 3D-tracked diving / stooping data, the user should override with species-specific aerodynamic literature.

  • The model's data are predominantly maximum anaerobic burst speeds – the impossibility ceiling, not the cruise speed. This is the right semantic for v_max: outliers are transitions an animal cannot physically perform.

  • Locomotor specialists (cheetah ~29 m/s, pronghorn antelope ~26 m/s, sailfish in water) sit in the upper tail of the residual distribution and can exceed the central prediction. When a published species-specific maximum is available, use it directly instead of the allometric default.

  • The returned prediction interval is propagated from the fitted parameter standard errors via the delta method. It describes parameter uncertainty in the model fit, not the species-to-species residual scatter; the latter implies a further roughly factor-of-2 spread documented in the original paper as the model R^2 = 0.893.

References

Hirt, M. R., Jetz, W., Rall, B. C., Brose, U. (2017). A general scaling law reveals why the largest animals are not the fastest. Nature Ecology & Evolution 1, 1116-1122. doi:10.1038/s41559-017-0241-4

Examples

## golden eagle, ~5 kg
v_phys_estimate(5, "flying")
#> v_max (allometric, Hirt et al. 2017): 30.89 m/s  (111.19 km/h)
#>   95% parameter CI: [0.90, 60.88] m/s
#>   inputs:  mass = 5 kg, mode = flying
#>   source:  Hirt et al. (2017) Nat. Ecol. Evol., doi:10.1038/s41559-017-0241-4

## red fox, ~6 kg
v_phys_estimate(6, "running")
#> v_max (allometric, Hirt et al. 2017): 11.28 m/s  (40.61 km/h)
#>   95% parameter CI: [10.51, 12.05] m/s
#>   inputs:  mass = 6 kg, mode = running
#>   source:  Hirt et al. (2017) Nat. Ecol. Evol., doi:10.1038/s41559-017-0241-4

## bottlenose dolphin, ~250 kg
v_phys_estimate(250, "swimming")
#> v_max (allometric, Hirt et al. 2017): 13.34 m/s  (48.03 km/h)
#>   95% parameter CI: [0.00, 26.79] m/s
#>   inputs:  mass = 250 kg, mode = swimming
#>   source:  Hirt et al. (2017) Nat. Ecol. Evol., doi:10.1038/s41559-017-0241-4

if (FALSE) { # \dontrun{
## use as the principled v_max default
clean <- mt_clean_track(track,
                         v_max = v_phys_estimate(mass = 5,
                                                     mode = "flying"))

## equivalent and more idiomatic: pass (mass, mode) directly
clean <- mt_clean_track(track, mass = 5, mode = "flying")
} # }