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 29.8ms 31.6ms 31.7 17.71MB 23.8
#> 2 simple 25.6ms 27.4ms 36.2 1.88MB 16.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")
)