This function takes a wide range of input data types (spatial lines, points or text strings) and returns a data frame of coordinates representing origin (ox, oy) and destination (dx, dy) points.

od_coordinates(x, p = NULL, pd = NULL, silent = TRUE, sfnames = FALSE)

Arguments

x

A data frame in which the first two columns are codes representing points/zones of origin and destination

p

Points representing origins and destinations

pd

Points representing destinations, if different from origin points

silent

Hide messages? FALSE by default.

sfnames

Should output column names be compatible with the sf package?

Value

A data frame with origin and destination coordinates

Examples

x = od_data_df
p = od_data_centroids
res = od_coordinates(x, p)[1:2, ]
class(res)
#> [1] "data.frame"
res
#>          ox       oy        dx       dy
#> 6 -1.545094 53.80925 -1.545708 53.79593
#> 4 -1.518911 53.79230 -1.545708 53.79593
od_coordinates(x, p, sfnames = TRUE)[1:2, ]
#>           x        y         x        y
#> 6 -1.545094 53.80925 -1.545708 53.79593
#> 4 -1.518911 53.79230 -1.545708 53.79593
od_coordinates(x, p, silent = FALSE)[1:2, ]
#>  points not in od data removed.
#>          ox       oy        dx       dy
#> 6 -1.545094 53.80925 -1.545708 53.79593
#> 4 -1.518911 53.79230 -1.545708 53.79593
od_coordinates(x, p)
#>            ox       oy        dx       dy
#> 6   -1.545094 53.80925 -1.545708 53.79593
#> 4   -1.518911 53.79230 -1.545708 53.79593
#> 3   -1.545708 53.79593 -1.545708 53.79593
#> 2   -1.517420 53.77493 -1.545708 53.79593
#> 5   -1.564659 53.81767 -1.561249 53.80470
#> 3.1 -1.545708 53.79593 -1.561249 53.80470
#> 1   -1.561249 53.80470 -1.545708 53.79593
x = od_data_df2[1:3, ]
p = od_data_centroids2
pd = od_data_destinations
od_coordinates(x, p, pd)
#>          ox       oy        dx       dy
#> 3 -1.679672 53.86497 -1.664912 53.87430
#> 1 -1.376812 53.76545 -1.508841 53.80662
#> 2 -1.331076 53.79493 -1.342522 53.83669