context("rescaleImage")
library(terra)
lsat_t <- lsat
lsat2 <- lsat_t - 1000
lsat2r <- rescaleImage(lsat2, lsat_t)
lsat2u <- rescaleImage(lsat2, ymin = 0.5, ymax = 1.6)
mm <- matrix(c(0.5, 1.6), ncol= nlyr(lsat_t), nrow = 2)
colnames(mm) <- names(lsat_t)
rownames(mm) <- c("min", "max")
test_that("rescales to proper limits", {
skip_on_cran()
expect_equal(lsat_t[], lsat2r[], values = TRUE)
expect_equal(minmax(lsat2u), mm)
expect_equal(lsat2u[[1]][], rescaleImage(lsat_t[[1]], ymin = 0.5, ymax = 1.6)[], values = TRUE)
})
test_that("deals with missing values and single valued layers and returns NAs", {
skip_on_cran()
lsat2[[1]][] <- 1
suppressWarnings(lsat2[[2]][] <- NA)
suppressWarnings(lsat2[[3]][] <- Inf)
lsat2[[4]][,1:100] <- NA
lsat2[[5]][,1:100] <- Inf
expect_warning(lsaResc <- rescaleImage(lsat2, ymin = 0, ymax = 1), "no value range.*B1_dn*")
expect_equal(.th_naCount(lsaResc[[1]]), ncell(lsat_t)) # single values
expect_equal(.th_naCount(lsaResc[[2]]), ncell(lsat_t)) # NAs
expect_equal(.th_naCount(lsaResc[[3]]), ncell(lsat_t)) # Infinites
expect_equal(.th_minmax(lsaResc[[4]]), matrix(0:1.,ncol=1)) ## Ignores NAs
expect_false(any(!is.na(lsaResc[[4]][,1:100])))
expect_equal(.th_naCount(lsaResc[[5]]), ncell(lsat_t)) # Partial Infinites -> NA
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.