## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = identical(tolower(Sys.getenv("NOT_CRAN")), "true"), out.width = "100%" ) ## removes files previously created by 'build_network()' #data_path <- system.file("extdata/poa", package = "r5r") #existing_files <- list.files(data_path) #files_to_keep <- c( # "poa_hexgrid.csv", # "poa_osm.pbf", # "poa_points_of_interest.csv", # "poa_eptc.zip", # "poa_trensurb.zip", # 'fares' # ) #files_to_remove <- existing_files[! existing_files %in% files_to_keep] #invisible(file.remove(file.path(data_path, files_to_remove))) ## ----eval = FALSE------------------------------------------------------------- # # from CRAN # install.packages('r5r') # # # dev version with latest features # devtools::install_github("ipeaGIT/r5r", subdir = "r-package") ## ----eval = FALSE------------------------------------------------------------- # # install {rJavaEnv} from CRAN # install.packages("rJavaEnv") # # # check version of Java currently installed (if any) # rJavaEnv::java_check_version_rjava() # # ## if this is the first time you use {rJavaEnv}, you might need to run this code # ## below to consent the installation of Java. # # rJavaEnv::rje_consent(provided = TRUE) # # # install Java 21 # rJavaEnv::java_quick_install(version = 21) # # # check if Java was successfully installed # rJavaEnv::java_check_version_rjava() # ## ----message = FALSE---------------------------------------------------------- options(java.parameters = "-Xmx2G") # By default, {r5r} uses all CPU cores available. If you want to limit the # number of CPUs to 4, for example, you can run: options(java.parameters = c("-Xmx2G", "-XX:ActiveProcessorCount=4")) ## ----message = FALSE, warning = FALSE----------------------------------------- library(r5r) library(sf) library(data.table) library(ggplot2) ## ----------------------------------------------------------------------------- data_path <- system.file("extdata/poa", package = "r5r") list.files(data_path) ## ----------------------------------------------------------------------------- poi <- fread(file.path(data_path, "poa_points_of_interest.csv")) head(poi) ## ----------------------------------------------------------------------------- points <- fread(file.path(data_path, "poa_hexgrid.csv")) # sample points sampled_rows <- sample(1:nrow(points), 200, replace=TRUE) points <- points[ sampled_rows, ] head(points) ## ----message = FALSE---------------------------------------------------------- # Indicate the path where OSM and GTFS data are stored r5r_network <- build_network(data_path = data_path) ## ----message = FALSE---------------------------------------------------------- # set departure datetime input departure_datetime <- as.POSIXct("13-05-2019 14:00:00", format = "%d-%m-%Y %H:%M:%S") # calculate accessibility access <- accessibility( r5r_network, origins = points, destinations = points, opportunities_colnames = c("schools", "healthcare"), mode = c("WALK", "TRANSIT"), departure_datetime = departure_datetime, decay_function = "step", cutoffs = 60 ) head(access) ## ----message = FALSE---------------------------------------------------------- # set inputs mode <- c("WALK", "TRANSIT") max_walk_time <- 30 # minutes max_trip_duration <- 120 # minutes departure_datetime <- as.POSIXct("13-05-2019 14:00:00", format = "%d-%m-%Y %H:%M:%S") # calculate a travel time matrix ttm <- travel_time_matrix( r5r_network, origins = poi, destinations = poi, mode = mode, departure_datetime = departure_datetime, max_walk_time = max_walk_time, max_trip_duration = max_trip_duration ) head(ttm) ## ----ttm head, echo=FALSE, message=FALSE, out.width='100%', eval = FALSE------ # knitr::include_graphics("https://github.com/ipeaGIT/r5r/blob/master/r-package/inst/img/vig_output_ttm.png?raw=true") ## ----message = FALSE---------------------------------------------------------- # calculate a travel time matrix ettm <- expanded_travel_time_matrix( r5r_network, origins = poi, destinations = poi, mode = mode, departure_datetime = departure_datetime, breakdown = TRUE, max_walk_time = max_walk_time, max_trip_duration = max_trip_duration ) head(ettm) ## ----message = FALSE---------------------------------------------------------- # set inputs origins <- poi[10,] destinations <- poi[12,] mode <- c("WALK", "TRANSIT") max_walk_time <- 60 # minutes departure_datetime <- as.POSIXct("13-05-2019 14:00:00", format = "%d-%m-%Y %H:%M:%S") # calculate detailed itineraries det <- detailed_itineraries( r5r_network, origins = origins, destinations = destinations, mode = mode, departure_datetime = departure_datetime, max_walk_time = max_walk_time, shortest_path = FALSE ) head(det) ## ----detailed head, echo = FALSE, out.width='100%', message = FALSE, eval = FALSE---- # knitr::include_graphics("https://github.com/ipeaGIT/r5r/blob/master/r-package/inst/img/vig_output_detailed.png?raw=true") ## ----message = FALSE---------------------------------------------------------- # extract OSM network street_net <- r5r::street_network_to_sf(r5r_network) # extract public transport network transit_net <- r5r::transit_network_to_sf(r5r_network) # plot ggplot() + geom_sf(data = street_net$edges, color='gray85') + geom_sf(data = det, aes(color=mode)) + facet_wrap(.~option) + theme_void() ## ----ggplot2 output, echo = FALSE, out.width='100%', message = FALSE, eval = FALSE---- # knitr::include_graphics("https://github.com/ipeaGIT/r5r/blob/master/r-package/inst/img/vig_detailed_ggplot.png?raw=true") ## ----message = FALSE---------------------------------------------------------- r5r::stop_r5(r5r_network) rJava::.jgc(R.gc = TRUE) ## ----eval = TRUE, include = FALSE, message = FALSE---------------------------- # clean cache (CRAN policy) r5r::r5r_cache(delete_file = 'all')