Performance
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 47.6ms 48.2ms 20.7 18.16MB 25.9
#> 2 simple 41.4ms 41.9ms 23.9 1.88MB 23.9That 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")
)
res2
#> # 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 48.7ms 48.8ms 20.3 1.73MB 25.4
#> 2 simple 42.7ms 43.2ms 23.2 1.81MB 19.3