A benchmark can reveal how many route gradients can be calculated per second using different interpolation methods:
e = dem_lisbon()
r = lisbon_road_network
res = bench::mark(check = FALSE,
bilinear = slope_raster(r, e),
simple = slope_raster(r, e, method = "simple")
)res
#> # A tibble: 2 × 6
#> expression min median `itr/sec` mem_alloc `gc/sec`
#> <bch:expr> <bch:tm> <bch:tm> <dbl> <bch:byt> <dbl>
#> 1 bilinear 21.2ms 21.8ms 45.5 17.89MB 33.1
#> 2 simple 18.3ms 18.7ms 53.0 1.88MB 35.4That is approximately
routes per second using bilinear and simple
interpolation methods, respectively.
To go faster, you can chose the simple method to gain
some speed at the expense of accuracy:
res2 = bench::mark(check = FALSE,
bilinear = slope_raster(r, e, method = "bilinear"),
simple = slope_raster(r, e, method = "simple")
)