See: https://cran.r-project.org/web/packages/r5r/vignettes/intro_to_r5r.html
First I make a folder called
/cph/
in the folder I put a .pbf file of the city of choice
which in this case is Copenhagen
From this file network is build
library(r5r)
## Warning: package 'r5r' was built under R version 4.0.5
## Loading required namespace: sf
## Loading required namespace: rJava
## Please make sure you have already allocated some memory to Java by running:
## options(java.parameters = '-Xmx2G').
## Currently, Java memory is set to -Xmx512m
wd <- getwd()
data_path <- paste(wd,"//cph//",sep="")
r5r_core <- setup_r5(data_path = data_path, verbose = FALSE)
## Using cached version from C:/Users/np83zg/OneDrive - Aalborg Universitet/Dokumenter/R/win-library/4.0/r5r/jar/r5-v6.2-all_20210408.jar
##
## Using cached network.dat from C:/Users/np83zg/OneDrive - Aalborg Universitet/Skrivebord/cars-master/rspace_osm/r5r_copenhagen//cph///network.dat
setwd(wd)
Then with the network build we are ready to make requests for travel times and lengths from origin to destination. We just need some input data in the form of origin and destination spatial points. So this data is some how acquired: Here I just input it manually.
L <- list()
L[[1]] <- c('Reffen','55.69311844','12.60969741','201809','NA')
L[[2]] <- c('Torvehallerne','55.68388','12.56957','201109','NA')
L[[3]] <- c('Copenhagen Street Food','55.67763498115367', '12.597292074615451','201403','201709')
L[[4]] <- c('Experimentariet (papirøen)','55.67763498115367', '12.597292074615451','201403','201603')
L[[5]] <- c('Copenhagen Contemporary (papirøen)','55.67763498115367', '12.597292074615451','201609','201709')
L[[6]] <- c('Copenhagen Contemporary (reffen)','55.69311844','12.60969741','201809','NA')
L[[7]] <- c('Den Blå Planet','55.638422110388326', '12.656186126474394','201309','NA')
L[[8]] <- c('Royal Golf Center','55.6407305782633','12.573146281505826','201003','NA')
L[[9]] <- c('Ofelia Plads','55.68086190221758','12.595000382318917','201609','NA')
L[[10]] <- c('Fælledparken - Skate Park','55.70054200866475', '12.563170633763198','201109','NA')
amenity_df <- data.frame(
id=sapply(L,function(x) x[1]),
lat=sapply(L,function(x) as.numeric(x[2])),
lon=sapply(L,function(x) as.numeric(x[3]))
)
head(amenity_df)
## id lat lon
## 1 Reffen 55.69312 12.60970
## 2 Torvehallerne 55.68388 12.56957
## 3 Copenhagen Street Food 55.67763 12.59729
## 4 Experimentariet (papirøen) 55.67763 12.59729
## 5 Copenhagen Contemporary (papirøen) 55.67763 12.59729
## 6 Copenhagen Contemporary (reffen) 55.69312 12.60970
Very importantly the data set has columns {id,lat,lon}. So the step was
# Compute travel time matrix
# set inputs
max_walk_dist <- 5000
max_trip_duration <- 120
departure_datetime <- as.POSIXct("13-05-2019 12:00:00",
format = "%d-%m-%Y %H:%M:%S")
# calculate a travel time matrix
ttm <- travel_time_matrix(r5r_core = r5r_core,
origins = amenity_df,
destinations = amenity_df,
mode = "CAR",
departure_datetime = departure_datetime,
max_walk_dist = max_walk_dist,
max_trip_duration = max_trip_duration,
verbose = FALSE)
ttm
## fromId toId
## 1: Reffen Reffen
## 2: Reffen Torvehallerne
## 3: Reffen Copenhagen Street Food
## 4: Reffen Experimentariet (papirøen)
## 5: Reffen Copenhagen Contemporary (papirøen)
## 6: Reffen Copenhagen Contemporary (reffen)
## 7: Reffen Den Blå Planet
## 8: Reffen Royal Golf Center
## 9: Reffen Ofelia Plads
## 10: Reffen Fælledparken - Skate Park
## 11: Torvehallerne Reffen
## 12: Torvehallerne Torvehallerne
## 13: Torvehallerne Copenhagen Street Food
## 14: Torvehallerne Experimentariet (papirøen)
## 15: Torvehallerne Copenhagen Contemporary (papirøen)
## 16: Torvehallerne Copenhagen Contemporary (reffen)
## 17: Torvehallerne Den Blå Planet
## 18: Torvehallerne Royal Golf Center
## 19: Torvehallerne Ofelia Plads
## 20: Torvehallerne Fælledparken - Skate Park
## 21: Copenhagen Street Food Reffen
## 22: Copenhagen Street Food Torvehallerne
## 23: Copenhagen Street Food Copenhagen Street Food
## 24: Copenhagen Street Food Experimentariet (papirøen)
## 25: Copenhagen Street Food Copenhagen Contemporary (papirøen)
## 26: Copenhagen Street Food Copenhagen Contemporary (reffen)
## 27: Copenhagen Street Food Den Blå Planet
## 28: Copenhagen Street Food Royal Golf Center
## 29: Copenhagen Street Food Ofelia Plads
## 30: Copenhagen Street Food Fælledparken - Skate Park
## 31: Experimentariet (papirøen) Reffen
## 32: Experimentariet (papirøen) Torvehallerne
## 33: Experimentariet (papirøen) Copenhagen Street Food
## 34: Experimentariet (papirøen) Experimentariet (papirøen)
## 35: Experimentariet (papirøen) Copenhagen Contemporary (papirøen)
## 36: Experimentariet (papirøen) Copenhagen Contemporary (reffen)
## 37: Experimentariet (papirøen) Den Blå Planet
## 38: Experimentariet (papirøen) Royal Golf Center
## 39: Experimentariet (papirøen) Ofelia Plads
## 40: Experimentariet (papirøen) Fælledparken - Skate Park
## 41: Copenhagen Contemporary (papirøen) Reffen
## 42: Copenhagen Contemporary (papirøen) Torvehallerne
## 43: Copenhagen Contemporary (papirøen) Copenhagen Street Food
## 44: Copenhagen Contemporary (papirøen) Experimentariet (papirøen)
## 45: Copenhagen Contemporary (papirøen) Copenhagen Contemporary (papirøen)
## 46: Copenhagen Contemporary (papirøen) Copenhagen Contemporary (reffen)
## 47: Copenhagen Contemporary (papirøen) Den Blå Planet
## 48: Copenhagen Contemporary (papirøen) Royal Golf Center
## 49: Copenhagen Contemporary (papirøen) Ofelia Plads
## 50: Copenhagen Contemporary (papirøen) Fælledparken - Skate Park
## 51: Copenhagen Contemporary (reffen) Reffen
## 52: Copenhagen Contemporary (reffen) Torvehallerne
## 53: Copenhagen Contemporary (reffen) Copenhagen Street Food
## 54: Copenhagen Contemporary (reffen) Experimentariet (papirøen)
## 55: Copenhagen Contemporary (reffen) Copenhagen Contemporary (papirøen)
## 56: Copenhagen Contemporary (reffen) Copenhagen Contemporary (reffen)
## 57: Copenhagen Contemporary (reffen) Den Blå Planet
## 58: Copenhagen Contemporary (reffen) Royal Golf Center
## 59: Copenhagen Contemporary (reffen) Ofelia Plads
## 60: Copenhagen Contemporary (reffen) Fælledparken - Skate Park
## 61: Den Blå Planet Reffen
## 62: Den Blå Planet Torvehallerne
## 63: Den Blå Planet Copenhagen Street Food
## 64: Den Blå Planet Experimentariet (papirøen)
## 65: Den Blå Planet Copenhagen Contemporary (papirøen)
## 66: Den Blå Planet Copenhagen Contemporary (reffen)
## 67: Den Blå Planet Den Blå Planet
## 68: Den Blå Planet Royal Golf Center
## 69: Den Blå Planet Ofelia Plads
## 70: Den Blå Planet Fælledparken - Skate Park
## 71: Royal Golf Center Reffen
## 72: Royal Golf Center Torvehallerne
## 73: Royal Golf Center Copenhagen Street Food
## 74: Royal Golf Center Experimentariet (papirøen)
## 75: Royal Golf Center Copenhagen Contemporary (papirøen)
## 76: Royal Golf Center Copenhagen Contemporary (reffen)
## 77: Royal Golf Center Den Blå Planet
## 78: Royal Golf Center Royal Golf Center
## 79: Royal Golf Center Ofelia Plads
## 80: Royal Golf Center Fælledparken - Skate Park
## 81: Ofelia Plads Reffen
## 82: Ofelia Plads Torvehallerne
## 83: Ofelia Plads Copenhagen Street Food
## 84: Ofelia Plads Experimentariet (papirøen)
## 85: Ofelia Plads Copenhagen Contemporary (papirøen)
## 86: Ofelia Plads Copenhagen Contemporary (reffen)
## 87: Ofelia Plads Den Blå Planet
## 88: Ofelia Plads Royal Golf Center
## 89: Ofelia Plads Ofelia Plads
## 90: Ofelia Plads Fælledparken - Skate Park
## 91: Fælledparken - Skate Park Reffen
## 92: Fælledparken - Skate Park Torvehallerne
## 93: Fælledparken - Skate Park Copenhagen Street Food
## 94: Fælledparken - Skate Park Experimentariet (papirøen)
## 95: Fælledparken - Skate Park Copenhagen Contemporary (papirøen)
## 96: Fælledparken - Skate Park Copenhagen Contemporary (reffen)
## 97: Fælledparken - Skate Park Den Blå Planet
## 98: Fælledparken - Skate Park Royal Golf Center
## 99: Fælledparken - Skate Park Ofelia Plads
## 100: Fælledparken - Skate Park Fælledparken - Skate Park
## fromId toId
## travel_time
## 1: 0
## 2: 11
## 3: 8
## 4: 8
## 5: 8
## 6: 0
## 7: 15
## 8: 16
## 9: 10
## 10: 16
## 11: 12
## 12: 0
## 13: 6
## 14: 6
## 15: 6
## 16: 12
## 17: 17
## 18: 14
## 19: 6
## 20: 7
## 21: 10
## 22: 6
## 23: 0
## 24: 0
## 25: 0
## 26: 10
## 27: 15
## 28: 13
## 29: 6
## 30: 12
## 31: 10
## 32: 6
## 33: 0
## 34: 0
## 35: 0
## 36: 10
## 37: 15
## 38: 13
## 39: 6
## 40: 12
## 41: 10
## 42: 6
## 43: 0
## 44: 0
## 45: 0
## 46: 10
## 47: 15
## 48: 13
## 49: 6
## 50: 12
## 51: 0
## 52: 11
## 53: 8
## 54: 8
## 55: 8
## 56: 0
## 57: 15
## 58: 16
## 59: 10
## 60: 16
## 61: 15
## 62: 17
## 63: 15
## 64: 15
## 65: 15
## 66: 15
## 67: 3
## 68: 15
## 69: 17
## 70: 22
## 71: 17
## 72: 15
## 73: 14
## 74: 14
## 75: 14
## 76: 17
## 77: 15
## 78: 2
## 79: 15
## 80: 20
## 81: 12
## 82: 7
## 83: 7
## 84: 7
## 85: 7
## 86: 12
## 87: 17
## 88: 15
## 89: 0
## 90: 9
## 91: 18
## 92: 7
## 93: 13
## 94: 13
## 95: 13
## 96: 18
## 97: 23
## 98: 20
## 99: 10
## 100: 1
## travel_time
dit <- detailed_itineraries(r5r_core = r5r_core,
origins = amenity_df,
destinations = amenity_df[1,],
mode = "CAR",
departure_datetime = departure_datetime,
max_walk_dist = max_walk_dist,
shortest_path = FALSE,
verbose = FALSE)
## Destinations dataframe expanded to match the number of origins.
dit
## Simple feature collection with 10 features and 14 fields
## Geometry type: LINESTRING
## Dimension: XY
## Bounding box: xmin: 12.56151 ymin: 55.6394 xmax: 12.65327 ymax: 55.70254
## Geodetic CRS: WGS 84
## fromId fromLat fromLon toId toLat toLon
## 1 Reffen 55.69312 12.60970 Reffen 55.69312 12.6097
## 2 Torvehallerne 55.68388 12.56957 Reffen 55.69312 12.6097
## 3 Copenhagen Street Food 55.67763 12.59729 Reffen 55.69312 12.6097
## 4 Experimentariet (papirøen) 55.67763 12.59729 Reffen 55.69312 12.6097
## 5 Copenhagen Contemporary (papirøen) 55.67763 12.59729 Reffen 55.69312 12.6097
## 6 Copenhagen Contemporary (reffen) 55.69312 12.60970 Reffen 55.69312 12.6097
## 7 Den Blå Planet 55.63842 12.65619 Reffen 55.69312 12.6097
## 8 Royal Golf Center 55.64073 12.57315 Reffen 55.69312 12.6097
## 9 Ofelia Plads 55.68086 12.59500 Reffen 55.69312 12.6097
## 10 Fælledparken - Skate Park 55.70054 12.56317 Reffen 55.69312 12.6097
## option segment mode total_duration segment_duration wait distance route
## 1 1 1 CAR 1.85000 1.85000 0 99
## 2 1 1 CAR 15.05000 15.05000 0 5843
## 3 1 1 CAR 11.88333 11.88333 0 4053
## 4 1 1 CAR 11.88333 11.88333 0 4053
## 5 1 1 CAR 11.88333 11.88333 0 4053
## 6 1 1 CAR 1.85000 1.85000 0 99
## 7 1 1 CAR 15.76667 15.76667 0 7451
## 8 1 1 CAR 23.10000 23.10000 0 9450
## 9 1 1 CAR 14.53333 14.53333 0 5045
## 10 1 1 CAR 20.20000 20.20000 0 8081
## geometry
## 1 LINESTRING (12.61016 55.692...
## 2 LINESTRING (12.56912 55.683...
## 3 LINESTRING (12.59624 55.678...
## 4 LINESTRING (12.59624 55.678...
## 5 LINESTRING (12.59624 55.678...
## 6 LINESTRING (12.61016 55.692...
## 7 LINESTRING (12.65327 55.639...
## 8 LINESTRING (12.57301 55.642...
## 9 LINESTRING (12.59364 55.679...
## 10 LINESTRING (12.56483 55.700...