otp_isochrone when using
fromIDotp_plan and
otp_isochroneotp_plan when using toID with
thanks to @temporalistaVersion 0.5.0 is a significant rewrite of the package focusing on
substantially faster routing. The package has moved from using multiple
R workers requesting and parsing results from OTP to a two stage
process. Stage 1 uses curl to send asynchronous requests to
OTP. This stage should be as fast as OTP, and supports OTP’s limit of
1.25x the number of cores. Stage 2 parses the JSON and converts it into
a form usable in R. The parsing currently uses a single thread, but has
been optimised and can now parse around 700-800 routes/second which is
faster than OTP at around 40-50 routes/second/core.
Overall the new process is 3-4 times faster than v0.4.0 and uses less memory. Future development may add mulitcore support to the parsing stage for further speed improvements.
Breaking Changes
otp_make_surface is now a list
of lists to allow multiple inputs/outputsRcppSimdJson for older versions of R use version
0.2.3otp_plan have changed names.
The names now start with “leg_” to show they are leg specific variables
e.g. “mode” has become “leg_mode”Other Changes
raster and rgdal
replaced with terracurl resulting in faster routing and lower resource
usagepbapply dependency replaced with
progressrlubridate1 to
round(parallel::detectCores() * 1.25) - 1tibble moved from imports to suggestss2 features in the sf
packagetry() functions to reduce risk of crashes in
large scale batch routingflag64bit argument to
otp_build_graph() and otp_setup()quiet argument to
otp_build_graph()otp_setup() from 60
seconds to 30 secondsotp_dl_jar()Limited support for version of R than can’t install
RcppSimdJson
Note that this version makes minor changes to how results are returned, for example column order. These changes are due to the new json parser and should not affect the overall results but may affect any dependent code.
dplyr with data.tablehttr with curlrjson functions with
RcppSimdJson equivalentssf functions with sfheaders
equivalentsotp_plan when
distance_balancing = TRUEotp_plan will now return fromPlace and
toPlace as the first two columnsotp_plan set get_elevation = FALSE as
default this boosts performancedistance_balancing that gave sub-optimal
balancingdistance_balancing = TRUE zero distance routes
will not be found, as OTP will reject these in any case, this saves time
with no impact on results.distance_balancing argument to
otp_plan gives a small performance boost to multicore
routingget_elevation argument to otp_plan
default TRUE, when FALSE returns XY coordinates rather than XYZ
coordinates and gives a 4% performance boost.dplyr::bind_rows as no longer
required for dplyr 1.0.0dplyr 1.0.0, package now needs
vctrs 0.3.1otp_connect,
otp_plan, and otp_isochrone fixing issue #54,
see docs for details.quiet argument to otp_dl_jar and
otp_dl_democorrect_distances() when input is of length
<= 2 or the distances never decreasepolyline2linestring() when elevation is
length <= 2otp_plan() and otp_isochrone
routingOptions this allows support for many more routing options to be
set. Arguments walkReluctance, transferPenalty, and minTransferTime have
been removed and replaced with routingOptions.otp_routing_options(),
otp_validate_routing_options(),
otp_check_java()NEWS.md file to track changes to the
package.