test_that("One-year, multicores processing reclassify", {
# Open mask map
data_dir <- system.file("extdata/raster/prodes", package = "sits")
prodes2021 <- sits_cube(
source = "USGS",
collection = "LANDSAT-C2L2-SR",
data_dir = data_dir,
parse_info = c(
"X1", "X2", "tile", "start_date", "end_date",
"band", "version"
),
bands = "class",
version = "v20220606",
labels = c("1" = "Forest", "11" = "d2012", "16" = "d2017",
"17" = "d2018", "27" = "d2019", "29" = "d2020",
"32" = "Clouds2021", "33" = "d2021"),
progress = FALSE
)
# Open classification map
data_dir <- system.file("extdata/raster/classif", package = "sits")
ro_class <- sits_cube(
source = "MPC",
collection = "SENTINEL-2-L2A",
data_dir = data_dir,
parse_info = c(
"X1", "X2", "tile", "start_date", "end_date",
"band", "version"
),
bands = "class",
labels = c(
"1" = "ClearCut_Fire", "2" = "ClearCut_Soil",
"3" = "ClearCut_Veg", "4" = "Forest"
),
progress = FALSE
)
# Reclassify cube
ro_mask <- sits_reclassify(
cube = ro_class,
mask = prodes2021,
rules = list(
"Old_Deforestation" = mask %in% c(
"d2012", "d2017", "d2018",
"d2019", "d2020", "d2021"
)
),
memsize = 4,
multicores = 2,
output_dir = tempdir(),
version = "reclass"
)
expect_equal(
sits_labels(ro_mask),
c(
"1" = "ClearCut_Fire", "2" = "ClearCut_Soil",
"3" = "ClearCut_Veg", "4" = "Forest",
"5" = "Old_Deforestation"
)
)
ro_class_obj <- .raster_open_rast(.tile_path(ro_class))
prodes2021_obj <- .raster_open_rast(.tile_path(prodes2021))
ro_mask_obj <- .raster_open_rast(.tile_path(ro_mask))
vls_ro_class <- terra::values(ro_class_obj)
vls_prodes2021 <- terra::values(prodes2021_obj)
vls_ro_mask <- terra::values(ro_mask_obj)
# ro_class is "ClearCut_Veg"
expect_equal(vls_ro_class[2000], 3)
# prodes2021 is ""d2018"
expect_equal(vls_prodes2021[2000], 1)
# ro_class is "Old_Deforestation"
expect_equal(vls_ro_mask[2000], 3)
Sys.setenv("SITS_DOCUMENTATION_MODE" = "FALSE")
expect_message({
object <- sits_reclassify(
cube = ro_class,
mask = prodes2021,
rules = list(
"Old_Deforestation" = mask %in% c(
"d2012", "d2017", "d2018",
"d2019", "d2020", "d2021"
)
),
memsize = 4,
multicores = 2,
output_dir = tempdir(),
version = "reclass"
)
})
unlink(ro_mask$file_info[[1]]$path)
})
test_that("One-year, reclassify different rules", {
rf_model <- sits_train(samples_modis_ndvi, ml_method = sits_rfor)
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
cube <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir
)
probs_cube <- sits_classify(
data = cube,
ml_model = rf_model,
output_dir = tempdir(),
version = "ex_classify",
multicores = 2,
memsize = 4
)
label_cube <- sits_label_classification(
probs_cube,
output_dir = tempdir(),
multicores = 2,
memsize = 4
)
reclass <- sits_reclassify(
cube = label_cube,
mask = label_cube,
rules = list(
Cerrado = mask %in% c("Pasture", "Cerrado")
),
output_dir = tempdir(),
version = "reclass",
multicores = 2,
memsize = 4
)
expect_error({
sits_reclassify(
cube = probs_cube,
mask = label_cube,
rules = list(
Cerrado = mask %in% c("Pasture", "Cerrado")
),
output_dir = tempdir(),
version = "reclass",
multicores = 2,
memsize = 4
)
})
expect_equal(
object = sits_labels(reclass),
expected = c("1" = "Cerrado", "2" = "Forest", "4" = "Soy_Corn")
)
reclassv2 <- sits_reclassify(
cube = label_cube,
mask = label_cube,
rules = list(
CerradoNew = mask %in% c("Pasture", "Cerrado")
),
output_dir = tempdir(),
version = "v2",
multicores = 2,
memsize = 4
)
expect_equal(
object = sits_labels(reclassv2),
expected = c("2" = "Forest", "4" = "Soy_Corn", "5" = "CerradoNew")
)
unlink(reclassv2$file_info[[1]]$path)
unlink(reclass$file_info[[1]]$path)
unlink(label_cube$file_info[[1]]$path)
unlink(probs_cube$file_info[[1]]$path)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.