## create a move2 object from a data.frame and defining projection
n <- 5
data <- data.frame(
x = cumsum(rnorm(n)), y = cumsum(rnorm(n)),
time = seq(n), track = "a"
)
mt_as_move2(data,
coords = c("x", "y"), time_column = "time",
track_id_column = "track"
) |> sf::st_set_crs(4326L)
## Dealing with empty coordinates:
## If the data frame contains NA coordinates, the coords argument in sf
## will fail. An alternative is to first create an sfc column,
## or to use the na.fail argument
nn <- 3
data <- data.frame(
x = c(cumsum(rnorm(n)), rep(NA, nn)), y = c(cumsum(rnorm(n)), rep(NA, nn)),
time = seq(n + nn), track = "a",
sensor = c(rep("sensor1", n), rep("sensor2", nn)),
sensor2values = c(rep(NA, n), runif(nn))
)
mt_as_move2(data,
coords = c("x", "y"),
na.fail = FALSE,
time_column = "time",
track_id_column = "track"
)
## create a move2 object from a sf object
data$geometry <- sf::st_sfc(apply(data[, c("x", "y")], 1, sf::st_point, simplify = FALSE))
mt_as_move2(data,
sf_column_name = c("geometry"), time_column = "time",
track_id_column = "track"
)
Run the code above in your browser using DataLab