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 45.9ms 47.5ms 20.9 17.85MB 16.7
#> 2 simple 40.1ms 40.8ms 24.5 1.88MB 12.2That 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")
)