test_that("resample trajectories", {
# fmt: skip
trjs <- dplyr::tribble(
~flight_id, ~timestamp, ~longitude, ~latitude, ~altitude, ~callsign,
1, "2025-03-08T00:00:00Z", 0.0, 0.0, 0.0, "ABC",
1, "2025-03-08T00:01:00Z", 1.0, 0.0, 100.0, "ABC",
1, "2025-03-08T00:02:00Z", 2.0, 0.0, 0.0, "ABC",
2, "2025-03-08T00:00:00Z", 0.0, 0.0, 0.0, "DEF",
2, "2025-03-08T00:01:00Z", 0.0, 1.0, 100.0, "DEF",
2, "2025-03-08T00:02:00Z", 0.0, 2.0, 0.0, "DEF",
) |>
dplyr::mutate(timestamp = lubridate::as_datetime(timestamp))
# fmt: skip
gr_t <- dplyr::tribble(
~flight_id, ~timestamp, ~longitude, ~latitude, ~altitude, ~callsign,
1, "2025-03-08", 0, 0, 0, "ABC",
1, "2025-03-08 00:00:12", 0.2, 0, 20, "ABC",
1, "2025-03-08 00:00:24", 0.4, 0, 40, "ABC",
1, "2025-03-08 00:00:36", 0.6, 0, 60, "ABC",
1, "2025-03-08 00:00:48", 0.8, 0, 80, "ABC",
1, "2025-03-08 00:01:00", 1, 0, 100, "ABC",
1, "2025-03-08 00:01:12", 1.2, 0, 80, "ABC",
1, "2025-03-08 00:01:24", 1.4, 0, 60, "ABC",
1, "2025-03-08 00:01:36", 1.6, 0, 40, "ABC",
1, "2025-03-08 00:01:48", 1.8, 0, 20, "ABC",
1, "2025-03-08 00:02:00", 2, 0, 0, "ABC",
2, "2025-03-08", 0, 0, 0, "DEF",
2, "2025-03-08 00:00:12", 0, 0.2, 20, "DEF",
2, "2025-03-08 00:00:24", 0, 0.4, 40, "DEF",
2, "2025-03-08 00:00:36", 0, 0.6, 60, "DEF",
2, "2025-03-08 00:00:48", 0, 0.8, 80, "DEF",
2, "2025-03-08 00:01:00", 0, 1, 100, "DEF",
2, "2025-03-08 00:01:12", 0, 1.2, 80, "DEF",
2, "2025-03-08 00:01:24", 0, 1.4, 60, "DEF",
2, "2025-03-08 00:01:36", 0, 1.6, 40, "DEF",
2, "2025-03-08 00:01:48", 0, 1.8, 20, "DEF",
2, "2025-03-08 00:02:00", 0, 2, 0, "DEF"
) |>
dplyr::mutate(timestamp = lubridate::as_datetime(timestamp),
across(c("longitude", "latitude", "altitude"), as.numeric))
res <- trjs |>
resample(12L)
expect_equal(res, gr_t)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.