# Read in test data
test_ext <- terra::ext(439740.0, 439781.7, 5526491.8, 5526523.5)
test_chm <- terra::crop(terra::rast(kootenayCHM), test_ext)
test_img <- terra::crop(terra::rast(kootenayOrtho)[[1]], test_ext)
sf::st_agr(kootenayTrees) <- "constant"
test_trees <- sf::st_crop(kootenayTrees, sf::st_bbox(test_ext))
# Create segments
segs <- mcws(test_trees, test_chm, minHeight = 0.2, format = "raster")
# Create blank segments
segs_empty <- terra::setValues(segs, NA)
# Create an image with some blank values
test_img_empty <- terra::setValues(test_img, NA)
test_that("glcm_img: successful", {
tex <- glcm(test_chm)
expect_equal(tex[1, "glcm_mean"], 7.067751, tolerance = 0.001)
expect_equal(tex[1, "glcm_entropy"], 6.136393, tolerance = 0.001)
expect_equal(tex[1, "glcm_maxProb"], 0.1277584, tolerance = 0.001)
})
test_that("glcm: with segments", {
# Compute texture with standard segments
tex1 <- glcm(test_img, segs)
# All segments are included
expect_true(all(na.omit(unique(terra::values(segs, mat=FALSE))) %in% row.names(tex1)))
# No missing values
expect_false(any(is.na(tex1$glcm_mean)))
expect_equal(tex1[1, "glcm_mean"], 13.100, tolerance = 0.001)
expect_equal(tex1[1, "glcm_IDN"], 0.750, tolerance = 0.001)
expect_equal(tex1[1, "glcm_inverseVariance"], 1.000, tolerance = 0.001)
})
test_that("glcm: errors with empty inputs", {
# Compute text with blank segments
expect_error(glcm(test_img, segs_empty), "'segs' must contain usable values")
expect_error(glcm(test_img_empty, segs), "'image' must contain usable values")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.