test_that("slope_* functions work", {
x = c(0, 2, 3, 4, 5, 9)
e = c(1, 2, 2, 4, 3, 1) / 10
expect_equal(slope_vector(x, e), c(0.05, 0, 0.2, -0.1, -0.05))
# expect_equal(slope_distance(x, e), c(0.05, 0, 0.2, -0.1, -0.05))
m = sf::st_coordinates(lisbon_road_segment)
d = sequential_dist(m, lonlat = FALSE)
# test lengths to nearest mm
sequential_right = round(sum(d), 2) ==
round(as.numeric(sf::st_length(lisbon_road_segment)), 2)
expect_true(sequential_right)
e = elevation_extract(m, dem_lisbon_raster)
expect_identical(round(e[1:3], 2), c(92.31, 91.93, 91.60))
e = elevation_extract(lisbon_road_segment, dem_lisbon_raster)
expect_identical(round(e[1:3], 2), c(92.31, 91.93, 91.60))
s = slope_distance(d, e)
expect_identical(round(s[1:3], 3), c(-0.047, -0.041, -0.025))
s = slope_distance_mean(d, e)
expect_identical(round(s, 3), 0.093)
s = slope_distance_mean(d, e, directed = TRUE)
expect_identical(round(s, 3), -0.093)
s = slope_distance_weighted(d, e)
expect_identical(round(s, 3), 0.095)
s = slope_distance_weighted(d, e, directed = TRUE)
expect_identical(round(s, 3), -0.095)
x = c(0, 2, 3, 4, 5, 9)
y = c(0, 0, 0, 0, 0, 9)
z = c(1, 2, 2, 4, 3, 1) / 10
m = cbind(x, y, z)
gxy = slope_matrix(m, lonlat = FALSE)
expect_identical(round(gxy, 3), c(0.05, 0., 0.2, -0.1, -0.02))
gxy = slope_matrix_mean(m, lonlat = FALSE)
expect_identical(round(gxy, 3), 0.074)
gxy = slope_matrix_mean(m, lonlat = FALSE, directed = TRUE)
expect_identical(round(gxy, 3), 0.0) # not sure if that's right
gxy = slope_matrix_weighted(m, lonlat = FALSE)
expect_identical(round(gxy, 3), 0.04)
gxy = slope_matrix_weighted(m, lonlat = FALSE, directed = TRUE)
expect_identical(round(gxy, 3), 0.0) # not sure if that's right
gxy = slope_matrix_weighted(m, lonlat = FALSE)
expect_identical(round(gxy, 3), 0.04)
d = sequential_dist(m, lonlat = FALSE)
expect_identical(round(d, 3), c(2, 1, 1, 1, 9.849))
d = sequential_dist(m, lonlat = TRUE)
expect_identical(round(d), c(221581, 110790, 110790, 110790, 1093977))
expect_error(slope_raster(1))
r = lisbon_road_network[1:3, ]
e = dem_lisbon_raster
s = slope_raster(r, e)
expect_true(cor(r$Avg_Slope, s) > 0.9975)
r_xyz = lisbon_road_segment_3d
expect_equal(slope_xyz(r_xyz), 0.0950132312274622, ignore_attr = TRUE)
r = lisbon_road_network[204, ]
r3d = elevation_add(r, e)
expect_equal(
sf::st_z_range(r3d$geom),
c(86, 92),
ignore_attr = TRUE,
tolerance = 10
)
if(nchar(Sys.getenv("MAPBOX_API_KEY")) < 8)
skip(message = "Skipping test, MAPBOX token in .Renviron needed")
r3d2 = elevation_add(r)
expect_equal(
sf::st_z_range(r3d2$geom),
c(86, 92),
ignore_attr = TRUE,
tolerance = 10
)
expect_error(slopes:::stopifnotsf(1))
expect_error(slopes:::stop_is_not_linestring(1))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.