Rows: 51246 Columns: 6
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (2): TierID, TierName
dbl (3): CollarID, E, N
dttm (1): DatetimeUTC
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
ruth <- wildschwein |>st_as_sf(coords =c("E", "N"), crs =2056, remove =FALSE) |># remove = F Keeps "E" and "N" columnsfilter( TierName =="Ruth", DatetimeUTC >="2015-07-01", DatetimeUTC <"2015-07-03" )
Visualize
ggplot(ruth) +geom_sf() +geom_path(aes(E,N))
Task 1: Calculate distances to previous/next fixes
Fixes are taken every 15 minutes. Calculate: pos[n-3] to pos[n] pos[n-2] to pos[n] pos[n-1] to pos[n] pos[n] to pos[n+1] pos[n] to pos[n+2] pos[n] to pos[n+3]
ruth <- ruth |>mutate(nMinus3 =distance_by_element(lag(geometry, 3), geometry), # distance to pos -45 minutesnMinus2 =distance_by_element(lag(geometry, 2), geometry), # distance to pos -30 minutesnMinus1 =distance_by_element(lag(geometry, 1), geometry), # distance to pos -15 minutesnPlus1 =distance_by_element(geometry, lead(geometry, 1)), # distance to pos +15 mintuesnPlus2 =distance_by_element(geometry, lead(geometry, 2)), # distance to pos +30 minutesnPlus3 =distance_by_element(geometry, lead(geometry, 3)) # distance to pos +45 minutes )
Calculate mean distance
ruth <- ruth |>rowwise() |># rowwise, because it cannot be calculated for rows with NAsmutate(stepMean =mean(c(nMinus3, nMinus2, nMinus1, nPlus1, nPlus2, nPlus3)) ) |>ungroup()ruth