message("\n---- Test mask - s2_mask() ----")
skip_gdal_tests()
testthat::test_that(
"Tests on custom mask on TOA, with save binary mask", {
outdir_6 <- tempfile(pattern = "out_test6_")
dir.create(dirname(outdir_6), showWarnings = FALSE)
exp_outpath_6 <- file.path(outdir_6, "TOA", "S2A1C_20190723_022_Barbellino_TOA_10.tif")
exp_outpath_msk <- file.path(outdir_6, "MSK", "S2A1C_20190723_022_Barbellino_MSK_10.tif")
unlink(exp_outpath_6)
unlink(exp_outpath_msk)
s2_mask(
infiles = file.path(ref_dir, "S2A1C_20190723_022_Barbellino_TOA_10.tif"),
maskfiles = file.path(ref_dir, "S2A2A_20190723_022_Barbellino_SCL_10.tif"),
mask_type = "clear_sky",
outdir = outdir_6,
subdirs = TRUE,
save_binary_mask = TRUE
)
expect_true(file.exists(exp_outpath_6))
expect_true(file.exists(exp_outpath_msk))
# test on raster metadata
exp_meta_r <- raster_metadata(exp_outpath_6, format = "list")[[1]]
testthat::expect_equal(exp_meta_r$size, c("x"=24, "y"=42))
testthat::expect_equal(exp_meta_r$res, c("x"=10, "y"=10))
testthat::expect_equal(exp_meta_r$nbands, 12)
testthat::expect_equal(
as.numeric(exp_meta_r$bbox),
c(580560, 5101700, 580800, 5102120)
)
expect_equal_crs(st_crs2(exp_meta_r$proj), 32632)
testthat::expect_equal(exp_meta_r$type, "UInt16")
testthat::expect_equal(exp_meta_r$outformat, "GTiff")
# test on raster values
skip_full_tests()
exp_stars <- stars::read_stars(exp_outpath_6)
testthat::expect_true(round(mean(exp_stars[[1]][,,1], na.rm=TRUE)) %in% c(1392))
testthat::expect_true(sum(is.na(exp_stars[[1]][,,1])) %in% c(188))
rm(exp_stars)
exp_meta_msk <- raster_metadata(exp_outpath_msk, format = "list")[[1]]
testthat::expect_equal(exp_meta_msk$size, c("x" = 24, "y" = 42))
testthat::expect_equal(exp_meta_msk$type, "Byte")
skip_full_tests()
exp_stars <- stars::read_stars(exp_outpath_msk)
testthat::expect_equal(max(exp_stars[[1]], na.rm=TRUE),1)
testthat::expect_equal(min(exp_stars[[1]], na.rm=TRUE),0)
rm(exp_stars)
}
)
testthat::test_that(
"Tests on clip BOA on extent - do not create if cloudiness > threshold", {
outdir_7 <- tempfile(pattern = "out_test7_")
dir.create(dirname(outdir_7), showWarnings = FALSE)
exp_outpath_7 <- file.path(outdir_7, "BOA", "S2A2A_20190723_022_Barbellino_BOA_10.tif")
unlink(exp_outpath_7)
s2_mask(
infiles = file.path(ref_dir, "S2A2A_20190723_022_Barbellino_BOA_10.tif"),
maskfiles = file.path(ref_dir, "S2A2A_20190723_022_Barbellino_SCL_10.tif"),
mask_type = "land",
max_mask = 20,
outdir = outdir_7,
subdirs = TRUE
)
testthat::expect_false(file.exists(exp_outpath_7))
# test on raster metadata
exp_meta_r <- raster_metadata(exp_outpath_7, format = "list")
testthat::expect_equal(names(exp_meta_r[[1]]), c("path", "valid"))
testthat::expect_equal(exp_meta_r[[1]]$valid, FALSE)
}
)
testthat::skip_on_cran() # because using runtime GDAL
if (Sys.info()["sysname"] != "Linux") {
testthat::skip_on_ci() # runtime GDAL not installed on Windows and macOS CI
}
skip_full_tests()
testthat::test_that(
"Tests on custom mask on TOA with smoothing and buffering", {
outdir_6b <- tempfile(pattern = "out_test6_")
dir.create(dirname(outdir_6b), showWarnings = FALSE)
exp_outpath_6b <- file.path(outdir_6b, "TOA", "S2A1C_20190723_022_Barbellino_TOA_10.tif")
unlink(exp_outpath_6b)
s2_mask(
infiles = file.path(ref_dir, "S2A1C_20190723_022_Barbellino_TOA_10.tif"),
maskfiles = file.path(ref_dir, "S2A2A_20190723_022_Barbellino_SCL_10.tif"),
mask_type = "clear_sky",
outdir = outdir_6b,
subdirs = TRUE,
smooth = 10,
buffer = 10
)
expect_true(file.exists(exp_outpath_6b))
# test on raster metadata
exp_meta_r <- raster_metadata(exp_outpath_6b, format = "list")[[1]]
testthat::expect_equal(exp_meta_r$size, c("x"=24, "y"=42))
testthat::expect_equal(exp_meta_r$res, c("x"=10, "y"=10))
testthat::expect_equal(exp_meta_r$nbands, 12)
testthat::expect_equal(
as.numeric(exp_meta_r$bbox),
c(580560, 5101700, 580800, 5102120)
)
expect_equal_crs(st_crs2(exp_meta_r$proj), 32632)
testthat::expect_equal(exp_meta_r$type, "UInt16")
testthat::expect_equal(exp_meta_r$outformat, "GTiff")
# test on raster values
exp_stars <- stars::read_stars(exp_outpath_6b)
testthat::expect_true(round(mean(exp_stars[[1]][,,1], na.rm=TRUE)) %in% c(1398, 1400))
testthat::expect_true(sum(is.na(exp_stars[[1]][,,1])) %in% c(126, 69))
rm(exp_stars)
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.