otp_isochrone
when using fromID
otp_plan
and otp_isochrone
otp_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 terra
curl
resulting in faster routing and lower resource usagepbapply
dependency replaced with progressr
lubridate
1
to round(parallel::detectCores() * 1.25) - 1
tibble
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.table
httr
with curl
rjson
functions with RcppSimdJson
equivalentssf
functions with sfheaders
equivalentsotp_plan
when distance_balancing = TRUE
otp_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.0
dplyr 1.0.0
, package now needs vctrs 0.3.1
otp_connect
, otp_plan
, and otp_isochrone
fixing issue #54, see docs for details.quiet
argument to otp_dl_jar
and otp_dl_demo
correct_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.