Calculate sequential bearing on longitude, latitude input vectors. The unit of bearing is degrees.

track_bearing(x, y)

Arguments

x

longitude

y

latitude

Value

a numeric vector of absolute bearing in degrees, see Details

Details

By convention the last value is set to NA missing value, because the bearing applies to the segment extending from the current location.

To use this on multiple track ids, use a grouped data frame with tidyverse code like data %>% group_by(id) %>% mutate(turn = track_bearing(lon, lat)).

Absolute bearing is relative to North (0), and proceeds clockwise positive and anti-clockwise negative N = 0, E = 90, S = +/-180, W = -90.

The last value will be NA as the bearing is relative to the first point of each segment.

Examples

track_bearing(trips0$x, trips0$y)[1:10]
#>  [1]  34.520769 -26.475002 158.074929  -9.199007  98.453739 -56.729095
#>  [7]  34.130728  12.884408 168.895970  53.068662