diff --git a/r-package/R/accessibility.R b/r-package/R/accessibility.R index 7e755c9f..ad85b534 100644 --- a/r-package/R/accessibility.R +++ b/r-package/R/accessibility.R @@ -128,7 +128,7 @@ accessibility <- function(r5r_network, opportunities_colnames = "opportunities", mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, percentiles = 50L, decay_function = "step", @@ -179,7 +179,7 @@ accessibility <- function(r5r_network, destinations <- assign_points_input(destinations, "destinations") opportunities <- assign_opportunities(destinations, opportunities_colnames) mode_list <- assign_mode(mode, mode_egress) - departure <- assign_departure(departure_datetime) + departure <- assign_departure(departure_datetime, mode_list) # check availability of transit services on the selected date if (mode_list$transit_mode %like% 'TRANSIT|TRAM|SUBWAY|RAIL|BUS|CABLE_CAR|GONDOLA|FUNICULAR') { diff --git a/r-package/R/arrival_travel_time_matrix.R b/r-package/R/arrival_travel_time_matrix.R index 012028aa..501a8155 100644 --- a/r-package/R/arrival_travel_time_matrix.R +++ b/r-package/R/arrival_travel_time_matrix.R @@ -86,7 +86,7 @@ arrival_travel_time_matrix <- function(r5r_network, destinations, mode = "WALK", mode_egress = "WALK", - arrival_datetime = Sys.time(), + arrival_datetime, breakdown = FALSE, max_walk_time = Inf, max_bike_time = Inf, @@ -133,6 +133,11 @@ arrival_travel_time_matrix <- function(r5r_network, mode_list <- assign_mode(mode, mode_egress) # calculate departure datetime + checkmate::assert( + !is.null(arrival_datetime), + .var.name = "arrival_datetime", + msg = "You must pass an arrival_datetime to use arrival_travel_time_matrix" + ) departure_datetime <- arrival_datetime - as.difftime(max_trip_duration, units = "mins") departure <- assign_departure(departure_datetime) diff --git a/r-package/R/assign.R b/r-package/R/assign.R index 150ad33d..4923986c 100644 --- a/r-package/R/assign.R +++ b/r-package/R/assign.R @@ -142,7 +142,16 @@ assign_mode <- function(mode, mode_egress, style) { #' @family assigning functions #' #' @keywords internal -assign_departure <- function(datetime) { +assign_departure <- function(datetime, mode_list) { + if (is.null(datetime)) { + if (mode_list$transit_mode == "") { + datetime <- Sys.time() + } else { + stop("When using a transit mode you must pass a departure_datetime", call. = FALSE) + } + } + + checkmate::assert_posixct( datetime, len = 1, diff --git a/r-package/R/detailed_itineraries.R b/r-package/R/detailed_itineraries.R index 66c6ba28..30522e8e 100644 --- a/r-package/R/detailed_itineraries.R +++ b/r-package/R/detailed_itineraries.R @@ -102,7 +102,7 @@ detailed_itineraries <- function(r5r_network, destinations, mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, suboptimal_minutes = 0L, max_walk_time = Inf, @@ -157,7 +157,7 @@ detailed_itineraries <- function(r5r_network, destinations <- od_list$destinations mode_list <- assign_mode(mode, mode_egress) - departure <- assign_departure(departure_datetime) + departure <- assign_departure(departure_datetime, mode_list) # check availability of transit services on the selected date if (mode_list$transit_mode %like% 'TRANSIT|TRAM|SUBWAY|RAIL|BUS|CABLE_CAR|GONDOLA|FUNICULAR') { diff --git a/r-package/R/expanded_travel_time_matrix.R b/r-package/R/expanded_travel_time_matrix.R index 4131ccbd..f0bd6fa6 100644 --- a/r-package/R/expanded_travel_time_matrix.R +++ b/r-package/R/expanded_travel_time_matrix.R @@ -96,7 +96,7 @@ expanded_travel_time_matrix <- function(r5r_network, destinations, mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, breakdown = FALSE, max_walk_time = Inf, @@ -140,7 +140,7 @@ expanded_travel_time_matrix <- function(r5r_network, origins <- assign_points_input(origins, "origins") destinations <- assign_points_input(destinations, "destinations") mode_list <- assign_mode(mode, mode_egress) - departure <- assign_departure(departure_datetime) + departure <- assign_departure(departure_datetime, mode_list) # check availability of transit services on the selected date if (mode_list$transit_mode %like% 'TRANSIT|TRAM|SUBWAY|RAIL|BUS|CABLE_CAR|GONDOLA|FUNICULAR') { diff --git a/r-package/R/isochrone.R b/r-package/R/isochrone.R index 9244f4b7..d7515d31 100644 --- a/r-package/R/isochrone.R +++ b/r-package/R/isochrone.R @@ -167,7 +167,7 @@ isochrone <- function(r5r_network, mode_egress = "walk", cutoffs = c(0, 15, 30), zoom = 10, - departure_datetime = Sys.time(), + departure_datetime = NULL, polygon_output = TRUE, time_window = 10L, max_walk_time = Inf, diff --git a/r-package/R/pareto_frontier.R b/r-package/R/pareto_frontier.R index 26712211..4c7f753a 100644 --- a/r-package/R/pareto_frontier.R +++ b/r-package/R/pareto_frontier.R @@ -93,7 +93,7 @@ pareto_frontier <- function(r5r_network, destinations, mode = c("WALK", "TRANSIT"), mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, percentiles = 50L, max_walk_time = Inf, @@ -135,7 +135,7 @@ pareto_frontier <- function(r5r_network, origins <- assign_points_input(origins, "origins") destinations <- assign_points_input(destinations, "destinations") mode_list <- assign_mode(mode, mode_egress) - departure <- assign_departure(departure_datetime) + departure <- assign_departure(departure_datetime, mode_list) # check availability of transit services on the selected date if (mode_list$transit_mode %like% 'TRANSIT|TRAM|SUBWAY|RAIL|BUS|CABLE_CAR|GONDOLA|FUNICULAR') { diff --git a/r-package/R/travel_time_matrix.R b/r-package/R/travel_time_matrix.R index 1d189275..07424e19 100644 --- a/r-package/R/travel_time_matrix.R +++ b/r-package/R/travel_time_matrix.R @@ -117,7 +117,7 @@ travel_time_matrix <- function(r5r_network, destinations, mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, percentiles = 50L, max_walk_time = Inf, @@ -163,7 +163,7 @@ travel_time_matrix <- function(r5r_network, origins <- assign_points_input(origins, "origins") destinations <- assign_points_input(destinations, "destinations") mode_list <- assign_mode(mode, mode_egress) - departure <- assign_departure(departure_datetime) + departure <- assign_departure(departure_datetime, mode_list) # check availability of transit services on the selected date if (mode_list$transit_mode %like% 'TRANSIT|TRAM|SUBWAY|RAIL|BUS|CABLE_CAR|GONDOLA|FUNICULAR') { diff --git a/r-package/man/accessibility.Rd b/r-package/man/accessibility.Rd index c5915c93..17062f93 100644 --- a/r-package/man/accessibility.Rd +++ b/r-package/man/accessibility.Rd @@ -12,7 +12,7 @@ accessibility( opportunities_colnames = "opportunities", mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, percentiles = 50L, decay_function = "step", diff --git a/r-package/man/arrival_travel_time_matrix.Rd b/r-package/man/arrival_travel_time_matrix.Rd index c7b5b9fd..6e737118 100644 --- a/r-package/man/arrival_travel_time_matrix.Rd +++ b/r-package/man/arrival_travel_time_matrix.Rd @@ -12,7 +12,7 @@ arrival_travel_time_matrix( destinations, mode = "WALK", mode_egress = "WALK", - arrival_datetime = Sys.time(), + arrival_datetime, breakdown = FALSE, max_walk_time = Inf, max_bike_time = Inf, diff --git a/r-package/man/assign_departure.Rd b/r-package/man/assign_departure.Rd index 33af5ec1..a9ab30a2 100644 --- a/r-package/man/assign_departure.Rd +++ b/r-package/man/assign_departure.Rd @@ -4,7 +4,7 @@ \alias{assign_departure} \title{Check and convert POSIXct objects to strings} \usage{ -assign_departure(datetime) +assign_departure(datetime, mode_list) } \arguments{ \item{datetime}{An object of POSIXct class.} diff --git a/r-package/man/detailed_itineraries.Rd b/r-package/man/detailed_itineraries.Rd index e110d9c2..3f5a116c 100644 --- a/r-package/man/detailed_itineraries.Rd +++ b/r-package/man/detailed_itineraries.Rd @@ -11,7 +11,7 @@ detailed_itineraries( destinations, mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, suboptimal_minutes = 0L, max_walk_time = Inf, diff --git a/r-package/man/expanded_travel_time_matrix.Rd b/r-package/man/expanded_travel_time_matrix.Rd index 79b58cef..eeeea8dc 100644 --- a/r-package/man/expanded_travel_time_matrix.Rd +++ b/r-package/man/expanded_travel_time_matrix.Rd @@ -11,7 +11,7 @@ expanded_travel_time_matrix( destinations, mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, breakdown = FALSE, max_walk_time = Inf, diff --git a/r-package/man/isochrone.Rd b/r-package/man/isochrone.Rd index 544888be..b3f90f40 100644 --- a/r-package/man/isochrone.Rd +++ b/r-package/man/isochrone.Rd @@ -12,7 +12,7 @@ isochrone( mode_egress = "walk", cutoffs = c(0, 15, 30), zoom = 10, - departure_datetime = Sys.time(), + departure_datetime = NULL, polygon_output = TRUE, time_window = 10L, max_walk_time = Inf, diff --git a/r-package/man/pareto_frontier.Rd b/r-package/man/pareto_frontier.Rd index fe939272..4ad22094 100644 --- a/r-package/man/pareto_frontier.Rd +++ b/r-package/man/pareto_frontier.Rd @@ -11,7 +11,7 @@ pareto_frontier( destinations, mode = c("WALK", "TRANSIT"), mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, percentiles = 50L, max_walk_time = Inf, diff --git a/r-package/man/travel_time_matrix.Rd b/r-package/man/travel_time_matrix.Rd index 2fd8876e..8cd77800 100644 --- a/r-package/man/travel_time_matrix.Rd +++ b/r-package/man/travel_time_matrix.Rd @@ -12,7 +12,7 @@ travel_time_matrix( destinations, mode = "WALK", mode_egress = "WALK", - departure_datetime = Sys.time(), + departure_datetime = NULL, time_window = 10L, percentiles = 50L, max_walk_time = Inf,