Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
eval = identical(tolower(Sys.getenv("NOT_CRAN")), "true"),
out.width = "100%"
)
## ----message=FALSE------------------------------------------------------------
# increase Java memory
options(java.parameters = "-Xmx2G")
# load libraries
library(r5r)
library(dplyr)
library(data.table)
library(ggplot2)
# data path
data_path <- system.file("extdata/poa", package = "r5r")
# build network
r5r_network <- r5r::build_network(
data_path = data_path,
verbose = FALSE
)
## ----message=FALSE------------------------------------------------------------
# read data.frame with new car speeds
edge_speed_factors <- read.csv(
file.path(data_path, "poa_osm_congestion.csv")
)
head(edge_speed_factors)
## ----message=FALSE------------------------------------------------------------
# origins and destination points
points <- read.csv(file.path(data_path, "poa_points_of_interest.csv"))
# travel time matrix
ttm_congestion <- r5r::travel_time_matrix(
r5r_network = r5r_network,
origins = points,
destinations = points,
mode = 'car',
departure_datetime = Sys.time(),
max_trip_duration = 30,
new_carspeeds = edge_speed_factors,
carspeed_scale = 0.8
)
## ----message=FALSE------------------------------------------------------------
# path to OSM pbf
pbf_path <- paste0(data_path, "/poa_osm.pbf")
# read layer of lines from pbf
roads <- sf::st_read(
pbf_path,
layer = 'lines',
quiet = TRUE
)
# Filter only road types of interest
rt <- c("motorway", "primary", "secondary", "tertiary")
roads <- roads |>
select(osm_id, highway) |>
filter(highway %in% rt)
head(roads)
## -----------------------------------------------------------------------------
# map
plot(roads["highway"])
## -----------------------------------------------------------------------------
new_edge_speeds <- roads |>
mutate(
osm_id = as.numeric(osm_id),
max_speed = case_when(
highway == "motorway" ~ 0.75,
highway == "primary" ~ 0.8,
highway == "secondary" ~ 0.85,
highway == "tertiary" ~ 0.9)) |>
sf::st_drop_geometry()
new_edge_speeds$speed_type <- "scale"
head(new_edge_speeds)
## ----message = FALSE, warning=FALSE-------------------------------------------
# travel time matrix
ttm_congestion <- r5r::travel_time_matrix(
r5r_network = r5r_network,
origins = points,
destinations = points,
mode = 'car',
departure_datetime = Sys.time(),
max_trip_duration = 30,
new_carspeeds = new_edge_speeds
)
## ----message = FALSE----------------------------------------------------------
# edit table with custom speeds to 40 km/h
new_edge_speeds40 <- new_edge_speeds |>
mutate(max_speed = 40,
speed_type = "km/h")
# travel time matrix
ttm_congestion <- r5r::travel_time_matrix(
r5r_network = r5r_network,
origins = points,
destinations = points,
mode = 'car',
departure_datetime = Sys.time(),
max_trip_duration = 30,
new_carspeeds = new_edge_speeds40
)
## ----message = FALSE----------------------------------------------------------
# read sf with congestion polygons
congestion_poly <- readRDS(file.path(data_path, "poa_poly_congestion.rds"))
# preview
mapview::mapview(congestion_poly, zcol="scale")
## ----message = FALSE----------------------------------------------------------
head(congestion_poly)
## ----message = FALSE----------------------------------------------------------
ttm_congestion <- r5r::travel_time_matrix(
r5r_network = r5r_network,
origins = points,
destinations = points,
mode = 'car',
departure_datetime = Sys.time(),
max_trip_duration = 30,
new_carspeeds = congestion_poly,
carspeed_scale = 0.95
)
## ----message=FALSE------------------------------------------------------------
# read data.frame with new lts
edge_lts <- read.csv(
file.path(data_path, "poa_osm_lts.csv")
)
head(edge_lts)
## ----message = FALSE----------------------------------------------------------
ttm_new_lts <- r5r::travel_time_matrix(
r5r_network = r5r_network,
origins = points,
destinations = points,
mode = 'bicycle',
departure_datetime = Sys.time(),
max_trip_duration = 30,
new_lts = edge_lts
)
## ----message = FALSE----------------------------------------------------------
# read sf with congestion polygons
lts_lines <- readRDS(file.path(data_path, "poa_ls_lts.rds"))
# preview
mapview::mapview(lts_lines, zcol="lts")
## ----message = FALSE----------------------------------------------------------
ttm_new_lts <- r5r::travel_time_matrix(
r5r_network = r5r_network,
origins = points,
destinations = points,
mode = 'bicycle',
departure_datetime = Sys.time(),
max_trip_duration = 30,
new_lts = lts_lines
)
## ----message = FALSE----------------------------------------------------------
# stop an specific r5r network
r5r::stop_r5(r5r_network)
# or stop all r5r networks at once
r5r::stop_r5()
rJava::.jgc(R.gc = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.