Nothing
test_that("Single core classification with rfor", {
rfor_model <- sits_train(
samples_modis_ndvi,
sits_rfor(num_trees = 30)
)
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = TRUE,
verbose = TRUE
)
expect_error(.check_bbox(sinop))
output_dir <- paste0(tempdir(), "/single_rfor")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_probs <- sits_classify(
data = sinop,
ml_model = rfor_model,
output_dir = output_dir,
memsize = 4,
multicores = 1,
progress = FALSE
)
bands_p <- sits_bands(sinop_probs)
labels_p <- sits_labels(sinop_probs)
expect_true(.check_cube_is_results_cube(bands_p, labels_p))
# testing resume feature
out <- capture_messages({
expect_message(
object = {
sits_classify(
data = sinop,
ml_model = rfor_model,
output_dir = output_dir,
memsize = 4,
multicores = 2,
progress = TRUE
)
},
regexp = "Recovery: "
)
})
expect_true(grepl("output_dir", out[1]))
sits_labels(sinop_probs) <- c(
"Cerrado", "Floresta",
"Pastagem", "Soja_Milho"
)
expect_true(all(sits_labels(sinop_probs) %in%
c("Cerrado", "Floresta", "Pastagem", "Soja_Milho")))
expect_true(all(file.exists(unlist(sinop_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_probs))
max_lyr1 <- max(.raster_get_values(r_obj)[, 1])
expect_true(max_lyr1 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_probs$file_info[[1]]$path))))
})
test_that("Classification with SVM", {
svm_model <- sits_train(samples_modis_ndvi, sits_svm())
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/svm")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_probs <- sits_classify(
data = sinop,
ml_model = svm_model,
output_dir = output_dir,
memsize = 4,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_probs$file_info[[1]]$path))))
})
test_that("Classification with XGBoost", {
xgb_model <- sits_train(samples_modis_ndvi, sits_xgboost())
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/xgb")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_probs <- sits_classify(
data = sinop,
ml_model = xgb_model,
output_dir = output_dir,
memsize = 4,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_probs$file_info[[1]]$path))))
})
test_that("Classification with SVM and Whittaker filter", {
samples_filt <- sits_filter(samples_modis_ndvi, filter = sits_whittaker())
svm_model <- sits_train(samples_filt, sits_svm())
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/svm_whit")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_probs <- sits_classify(
data = sinop,
ml_model = svm_model,
filter_fn = sits_whittaker(),
output_dir = output_dir,
memsize = 4,
multicores = 2,
progress = FALSE
)
r_obj <- .raster_open_rast(sinop_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_probs$file_info[[1]]$path))))
})
test_that("Classification with RFOR and Savitzky-Golay filter", {
samples_filt <- sits_apply(samples_modis_ndvi, NDVI = sits_sgolay(NDVI))
rfor_model <- sits_train(samples_filt, sits_rfor())
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/rfor_sg")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
start_date <- sits_timeline(sinop)[1]
end_date <- sits_timeline(sinop)[length(sits_timeline(sinop))]
sinop_2014_probs <- sits_classify(
data = sinop,
ml_model = rfor_model,
filter_fn = sits_sgolay(),
start_date = start_date,
end_date = end_date,
output_dir = output_dir,
memsize = 4,
multicores = 2,
progress = TRUE,
verbose = TRUE
)
expect_true(all(file.exists(unlist(sinop_2014_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_2014_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_2014_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_2014_probs$file_info[[1]]$path))))
})
test_that("Classification with MLP", {
torch_model <- sits_train(samples_modis_ndvi, sits_mlp(epochs = 20))
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/mlp")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_2014_probs <- sits_classify(
data = sinop,
ml_model = torch_model,
output_dir = output_dir,
memsize = 8,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_2014_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_2014_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_2014_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_2014_probs$file_info[[1]]$path))))
})
test_that("Classification with TempCNN", {
torch_model <- sits_train(samples_modis_ndvi, sits_tempcnn(epochs = 20))
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/tcnn")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_2014_probs <- sits_classify(
data = sinop,
ml_model = torch_model,
output_dir = output_dir,
memsize = 8,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_2014_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_2014_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_2014_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_2014_probs$file_info[[1]]$path))))
})
test_that("Classification with ResNet", {
torch_model <- sits_train(samples_modis_ndvi, sits_resnet(epochs = 20))
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/rnet")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_2014_probs <- sits_classify(
data = sinop,
ml_model = torch_model,
output_dir = output_dir,
memsize = 8,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_2014_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_2014_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_2014_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_2014_probs$file_info[[1]]$path))))
})
test_that("Classification with TAE", {
torch_model <- sits_train(samples_modis_ndvi, sits_tae(epochs = 20))
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/tae")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_2014_probs <- sits_classify(
data = sinop,
ml_model = torch_model,
output_dir = output_dir,
memsize = 8,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_2014_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_2014_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_2014_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_2014_probs$file_info[[1]]$path))))
})
test_that("Classification with LightTAE", {
torch_model <- sits_train(samples_modis_ndvi, sits_lighttae(epochs = 20))
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/ltae")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_2014_probs <- sits_classify(
data = sinop,
ml_model = torch_model,
output_dir = output_dir,
memsize = 8,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_2014_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_2014_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_2014_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_2014_probs$file_info[[1]]$path))))
})
test_that("Classification with cloud band", {
csv_file <- system.file("extdata/samples/samples_sinop_crop.csv",
package = "sits"
)
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
cube <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/cloud")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
cloud_cube <- sits_apply(
data = cube,
output_dir = output_dir,
CLOUD = ifelse(NDVI <= 0.2, 0.0002, 0.0001),
memsize = 4,
multicores = 2
)
kern_cube <- sits_apply(
data = cube,
output_dir = output_dir,
NDVI_TEXTURE = w_sd(NDVI),
window_size = 3,
memsize = 4,
multicores = 2
)
cube_merged <- sits_merge(data1 = cloud_cube, data2 = kern_cube)
samples_ndvi <- sits_get_data(
cube = cube_merged,
samples = csv_file,
multicores = 1,
progress = FALSE
)
rf_model <- sits_train(samples_ndvi, ml_method = sits_rfor)
sinop_2014_probs <- sits_classify(
data = cube_merged,
ml_model = rf_model,
output_dir = output_dir,
memsize = 4,
multicores = 2,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_2014_probs$file_info[[1]]$path))))
r_obj <- .raster_open_rast(sinop_2014_probs$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_obj) == .tile_nrows(sinop_2014_probs))
max_lyr2 <- max(.raster_get_values(r_obj)[, 2])
expect_true(max_lyr2 <= 10000)
max_lyr3 <- max(.raster_get_values(r_obj)[, 3])
expect_true(max_lyr3 <= 10000)
expect_true(all(file.remove(unlist(sinop_2014_probs$file_info[[1]]$path))))
})
test_that("Classification with post-processing", {
rfor_model <- sits_train(samples_modis_ndvi, sits_rfor())
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
data_dir = data_dir,
progress = FALSE
)
output_dir <- paste0(tempdir(), "/bayes")
if (!dir.exists(output_dir)) {
dir.create(output_dir)
}
sinop_probs <- sits_classify(
data = sinop,
ml_model = rfor_model,
output_dir = output_dir,
memsize = 4,
multicores = 1,
progress = FALSE
)
expect_true(all(file.exists(unlist(sinop_probs$file_info[[1]]$path))))
sinop_class <- sits_label_classification(
sinop_probs,
output_dir = output_dir,
progress = FALSE
)
# testing resume feature
out <- capture_messages({
expect_message(
object = {
sits_label_classification(
sinop_probs,
output_dir = output_dir,
progress = FALSE
)
},
regexp = "Recovery"
)
})
expect_true(grepl("output_dir", out[1]))
expect_true(all(file.exists(unlist(sinop_class$file_info[[1]]$path))))
expect_true(length(sits_timeline(sinop_class)) ==
length(sits_timeline(sinop_probs)))
r_obj <- .raster_open_rast(sinop_class$file_info[[1]]$path[[1]])
max_lab <- max(.raster_get_values(r_obj))
min_lab <- min(.raster_get_values(r_obj))
expect_true(max_lab == 4)
expect_true(min_lab == 1)
sinop_bayes <- sits_smooth(
sinop_probs,
output_dir = output_dir,
memsize = 4,
multicores = 2
)
# testing the recovery feature
out <- capture_messages({
expect_message(
object = {
sits_smooth(
sinop_probs,
output_dir = output_dir,
multicores = 2,
memsize = 4
)
},
regexp = "Recovery"
)
})
expect_true(grepl("output_dir", out[1]))
expect_true(all(file.exists(unlist(sinop_bayes$file_info[[1]]$path))))
expect_true(length(sits_timeline(sinop_bayes)) ==
length(sits_timeline(sinop_probs)))
r_bay <- .raster_open_rast(sinop_bayes$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_bay) == .tile_nrows(sinop_probs))
max_bay2 <- max(.raster_get_values(r_bay)[, 2])
expect_true(max_bay2 <= 10000)
max_bay3 <- max(.raster_get_values(r_bay)[, 3])
expect_true(max_bay3 <= 10000)
sinop_bayes_2 <- sits_smooth(
sinop_probs,
output_dir = output_dir,
window_size = 7,
neigh_fraction = 1.0,
multicores = 2,
memsize = 4,
version = "test_v2"
)
r_bay_2 <- .raster_open_rast(sinop_bayes_2$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_bay_2) == .tile_nrows(sinop_probs))
max_bay2 <- max(.raster_get_values(r_bay_2)[, 2])
expect_true(max_bay2 <= 10000)
max_bay3 <- max(.raster_get_values(r_bay_2)[, 3])
expect_true(max_bay3 <= 10000)
sinop_uncert <- sits_uncertainty(
cube = sinop_bayes,
type = "margin",
output_dir = output_dir,
memsize = 4,
multicores = 2
)
expect_true(all(file.exists(unlist(sinop_uncert$file_info[[1]]$path))))
r_unc <- .raster_open_rast(sinop_uncert$file_info[[1]]$path[[1]])
expect_true(.raster_nrows(r_unc) == .tile_nrows(sinop_probs))
max_unc <- max(.raster_get_values(r_unc))
expect_true(max_unc <= 10000)
sinop_uncert_2 <- sits_cube(
source = "BDC",
collection = "MOD13Q1-6",
bands = "margin",
version = "v1",
labels = sits_labels(sinop_class),
data_dir = output_dir,
parse_info = c(
"X1", "X2", "tile",
"start_date", "end_date",
"band", "version"
),
progress = FALSE
)
timeline_orig <- sits_timeline(sinop)
timeline_probs <- sits_timeline(sinop_probs)
timeline_unc <- sits_timeline(sinop_uncert)
timeline_class <- sits_timeline(sinop_class)
timeline_model <- sits_timeline(rfor_model)
timeline_ts <- sits_timeline(samples_modis_ndvi)
expect_equal(timeline_ts, timeline_model)
expect_equal(timeline_ts, timeline_orig)
expect_equal(timeline_probs, timeline_unc)
expect_equal(timeline_probs, timeline_class)
expect_equal(timeline_orig[1], timeline_class[1])
expect_equal(timeline_orig[length(timeline_orig)], timeline_class[2])
expect_true(all(file.remove(unlist(sinop_class$file_info[[1]]$path))))
expect_true(all(file.remove(unlist(sinop_bayes$file_info[[1]]$path))))
expect_true(all(file.remove(unlist(sinop_bayes_2$file_info[[1]]$path))))
expect_true(all(file.remove(unlist(sinop_probs$file_info[[1]]$path))))
expect_true(all(file.remove(unlist(sinop_uncert$file_info[[1]]$path))))
})
test_that("Raster GDAL datatypes", {
gdal_type <- .raster_gdal_datatype("INT2U")
expect_equal(gdal_type, "UInt16")
})
test_that("Raster terra interface", {
r_obj <- .raster_new_rast.terra(
nrows = 766,
ncols = 1307,
xmin = 534780,
ymin = 9025580,
xmax = 560920,
ymax = 9040900,
nlayers = 1,
crs = 3270
)
expect_equal(nrow(r_obj), 766)
expect_equal(ncol(r_obj), 1307)
expect_equal(terra::xmin(r_obj), 534780)
r_obj_1 <- .raster_new_rast.terra(
nrows = 766,
ncols = 1307,
xmin = 534780,
ymin = 9025580,
xmax = 560920,
ymax = 9040900,
nlayers = 1,
crs = 3270,
xres = 20,
yres = 20
)
expect_equal(nrow(r_obj_1), 766)
expect_equal(ncol(r_obj_1), 1307)
expect_equal(terra::xmin(r_obj_1), 534780)
block <- c("col" = 1, "row" = 1, "ncols" = 100, "nrows" = 100)
bbox <- .raster_bbox(r_obj, block = block)
expect_equal(bbox[["xmin"]], 534780)
expect_equal(bbox[["ymin"]], 9038900)
expect_equal(bbox[["xmax"]], 536780)
expect_equal(bbox[["ymax"]], 9040900)
prodes_dir <- system.file("extdata/raster/prodes", package = "sits")
prodes_file <- list.files(prodes_dir)
r_clone <- .raster_clone(paste0(prodes_dir, "/" ,prodes_file), nlayers = 1)
r_prodes <- .raster_open_rast(paste0(prodes_dir, "/", prodes_file))
expect_equal(nrow(r_clone), nrow(r_prodes))
expect_equal(ncol(r_clone), ncol(r_prodes))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.