From da9ee5474924282a6c71cbc4ccbbbae2c0910ead Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Mon, 13 Sep 2021 21:38:11 +0000 Subject: [PATCH 01/45] update --- DESCRIPTION | 2 +- R/RcppExports.R | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 R/RcppExports.R diff --git a/DESCRIPTION b/DESCRIPTION index b8fc5ccd5..84573ea27 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -93,7 +93,7 @@ VignetteBuilder: knitr LinkingTo: Rcpp, RcppArmadillo -RoxygenNote: 7.1.1 +RoxygenNote: 7.1.2 Collate: 'RcppExports.R' 'data.R' diff --git a/R/RcppExports.R b/R/RcppExports.R new file mode 100644 index 000000000..8f3b34e3b --- /dev/null +++ b/R/RcppExports.R @@ -0,0 +1,31 @@ +# Generated by using Rcpp::compileAttributes() -> do not edit by hand +# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 + +apply_transition_matrix <- function(data_before, data, transition_matrix) { + .Call(`_sits_apply_transition_matrix`, data_before, data, transition_matrix) +} + +bayes_smoother <- function(m, m_nrow, m_ncol, w, sigma, covar_sigma0) { + .Call(`_sits_bayes_smoother`, m, m_nrow, m_ncol, w, sigma, covar_sigma0) +} + +kernel_smoother <- function(m, m_nrow, m_ncol, w, normalised) { + .Call(`_sits_kernel_smoother`, m, m_nrow, m_ncol, w, normalised) +} + +bilateral_smoother <- function(m, m_nrow, m_ncol, w, tau) { + .Call(`_sits_bilateral_smoother`, m, m_nrow, m_ncol, w, tau) +} + +linear_interp <- function(mtx) { + .Call(`_sits_linear_interp`, mtx) +} + +linear_interp_vec <- function(vec) { + .Call(`_sits_linear_interp_vec`, vec) +} + +normalize_data <- function(data, min, max) { + .Call(`_sits_normalize_data`, data, min, max) +} + From 0414a5b656d5439f6df8581aa45295a7722509df Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Mon, 20 Sep 2021 19:01:46 -0300 Subject: [PATCH 02/45] Fix #367 --- R/sits_config.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sits_config.R b/R/sits_config.R index 60e3da73a..d2db149e3 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -81,6 +81,9 @@ sits_config <- function(processing_bloat = NULL, message(paste("Additional configurations found in", user_yml_file)) config <- yaml::yaml.load_file(input = user_yml_file, merge.precedence = "override") + config <- utils::modifyList(sits_env[["config"]], + config, + keep.null = FALSE) # set options defined by user (via YAML file) # modifying existing configuration From aaab53c148e300ab75a2946f01da3a3017fc8df9 Mon Sep 17 00:00:00 2001 From: Gilberto Camara Date: Tue, 21 Sep 2021 11:41:30 -0300 Subject: [PATCH 03/45] replace bbox with roi in sits cube definition --- R/sits_classification.R | 2 +- R/sits_cube.R | 26 ++++++++++++++------------ R/sits_stac.R | 4 ++-- man/dot-sits_plot_classified_image.Rd | 9 +++------ man/plot.classified_image.Rd | 14 ++++++++++++-- man/sits_classify.Rd | 2 +- man/sits_cube.Rd | 14 +++++++------- 7 files changed, 40 insertions(+), 31 deletions(-) diff --git a/R/sits_classification.R b/R/sits_classification.R index 6f4a13f07..d4e2e533f 100644 --- a/R/sits_classification.R +++ b/R/sits_classification.R @@ -52,7 +52,7 @@ #' The "roi" parameter defines a region of interest. It can be #' an sf_object, a shapefile, or a bounding box vector with #' named XY values ("xmin", "xmax", "ymin", "ymax") or -#' named lat/long values ("lat_min", "lat_max", "lon_min", "lon_max") +#' named lat/long values ("lon_min", "lat_min", "lon_max", "lat_max") #' #' The "filter_fn" parameter specifies a smoothing filter to be applied to #' time series for reducing noise. Currently, options include diff --git a/R/sits_cube.R b/R/sits_cube.R index 2bb9bc8d3..aeeea1e56 100755 --- a/R/sits_cube.R +++ b/R/sits_cube.R @@ -95,7 +95,7 @@ #' @param bands Bands to be included. #' @param tiles Tiles from the collection to be included in the #' data cube. -#' @param bbox Area of interest (see details below). +#' @param roi Region of interest (see details below). #' @param start_date Initial date for the cube (optional). #' @param end_date Final date for the cube (optional). #' @param s2_resolution Resolution of S2 images ("10m", "20m" or "60m"). @@ -114,8 +114,8 @@ #' probabilities). #' @param probs_labels Labels associated to a probabilities cube. #' -#' @details The \code{bbox} parameter allows a selection of an area of interest. -#' Either using a named \code{vector} ("xmin", "ymin", "xmax", "ymax") with +#' @details The \code{roi} parameter allows a selection of an area of interest. +#' Either using a named \code{vector} ("lon_min", "lat_min", "lon_max", "lat_max") with #' values in WGS 84, a \code{sfc} or \code{sf} object from sf package, or a #' GeoJSON geometry (RFC 7946). Note that this parameter does not crop a #' region, but only selects the images that intersect with it. @@ -272,7 +272,7 @@ sits_cube.bdc_cube <- function(source = "BDC", ..., collection, bands = NULL, tiles = NULL, - bbox = NULL, + roi = NULL, start_date = NULL, end_date = NULL) { @@ -305,7 +305,7 @@ sits_cube.bdc_cube <- function(source = "BDC", ..., name = name, bands = bands, tiles = tiles, - bbox = bbox, + bbox = roi, start_date = start_date, end_date = end_date, ...) } @@ -319,7 +319,7 @@ sits_cube.deafrica_cube <- function(source = "DEAFRICA", ..., collection = "S2_L2A", bands = NULL, tiles = NULL, - bbox = NULL, + roi = NULL, start_date = NULL, end_date = NULL) { @@ -354,7 +354,7 @@ sits_cube.deafrica_cube <- function(source = "DEAFRICA", ..., name = name, bands = bands, tiles = tiles, - bbox = bbox, + bbox = roi, start_date = start_date, end_date = end_date, ...) } @@ -368,7 +368,7 @@ sits_cube.aws_cube <- function(source = "AWS", ..., collection = "sentinel-s2-l2a", tiles = NULL, bands = NULL, - bbox = NULL, + roi = NULL, s2_resolution = 20, start_date = NULL, end_date = NULL) { @@ -415,7 +415,7 @@ sits_cube.aws_cube <- function(source = "AWS", ..., name = name, bands = bands, tiles = tiles, - bbox = bbox, + bbox = roi, start_date = start_date, end_date = end_date, ..., s2_resolution = s2_resolution) @@ -429,7 +429,7 @@ sits_cube.usgs_cube <- function(source = "USGS", ..., collection = "landsat-c2l2-sr", tiles = NULL, bands = NULL, - bbox = NULL, + roi = NULL, start_date = NULL, end_date = NULL) { @@ -471,7 +471,7 @@ sits_cube.usgs_cube <- function(source = "USGS", ..., name = name, bands = bands, tiles = tiles, - bbox = bbox, + bbox = roi, start_date = start_date, end_date = end_date, ...) } @@ -665,8 +665,10 @@ sits_cube_copy <- function(cube, # get all the bands which are requested file_info_out <- dplyr::filter(file_info, band %in% bands) + # remove token (if existing) + file_no_token <- gsub("^([^?]+)(\\?.*)?$", "\\1", file_info_out$path[[1]]) # get the file extension - file_ext <- tools::file_ext(file_info_out$path[1]) + file_ext <- tools::file_ext(file_no_token) if (file_ext == "jp2") { gdal_of <- "JP2OpenJPEG" diff --git a/R/sits_stac.R b/R/sits_stac.R index 3e61feebf..87244a607 100644 --- a/R/sits_stac.R +++ b/R/sits_stac.R @@ -58,9 +58,9 @@ # verify the provided parameters if (!inherits(roi, "sf")) { - if (all(c("xmin", "ymin", "xmax", "ymax") %in% names(roi))) + if (all(c("lon_min", "lat_min", "lon_max", "lat_max") %in% names(roi))) roi_list[c("bbox", "intersects")] <- - list(roi[c("xmin", "ymin", "xmax", "ymax")], NULL) + list(roi[c("lon_min", "lat_min", "lon_max", "lat_max")], NULL) else if (typeof(roi) == "character") roi_list[c("bbox", "intersects")] <- list(NULL, roi) diff --git a/man/dot-sits_plot_classified_image.Rd b/man/dot-sits_plot_classified_image.Rd index fa2b25be1..b34e586d3 100644 --- a/man/dot-sits_plot_classified_image.Rd +++ b/man/dot-sits_plot_classified_image.Rd @@ -4,12 +4,7 @@ \alias{.sits_plot_classified_image} \title{Plot a raster classified image} \usage{ -.sits_plot_classified_image( - cube, - time = 1, - title = "Classified Image", - legend = NULL -) +.sits_plot_classified_image(cube, time, title, legend, palette) } \arguments{ \item{cube}{A tibble with the metadata for a labelled data cube.} @@ -19,6 +14,8 @@ \item{title}{Title of the plot} \item{legend}{named vector that associates labels to colors.} + +\item{palette}{palette provided in the configuration file} } \description{ plots a raster using ggplot. This function is used diff --git a/man/plot.classified_image.Rd b/man/plot.classified_image.Rd index 46852af63..245b0b8cc 100644 --- a/man/plot.classified_image.Rd +++ b/man/plot.classified_image.Rd @@ -4,7 +4,15 @@ \alias{plot.classified_image} \title{Generic interface for ploting classified images} \usage{ -\method{plot}{classified_image}(x, y, ..., time = 1, title = "", legend = NULL) +\method{plot}{classified_image}( + x, + y, + ..., + time = 1, + title = "Classified Image", + legend = NULL, + palette = "default" +) } \arguments{ \item{x}{object of class "classified_image"} @@ -17,7 +25,9 @@ \item{title}{Title of the plot} -\item{legend}{named vector that associated labels to colors} +\item{legend}{named vector that associates labels to colors} + +\item{palette}{palette provided in the configuration file} } \description{ plots a classified raster using ggplot. diff --git a/man/sits_classify.Rd b/man/sits_classify.Rd index b10031325..95de4f9ca 100644 --- a/man/sits_classify.Rd +++ b/man/sits_classify.Rd @@ -87,7 +87,7 @@ SITS supports the following models: The "roi" parameter defines a region of interest. It can be an sf_object, a shapefile, or a bounding box vector with named XY values ("xmin", "xmax", "ymin", "ymax") or - named lat/long values ("lat_min", "lat_max", "lon_min", "lon_max") + named lat/long values ("lon_min", "lat_min", "lon_max", "lat_max") The "filter_fn" parameter specifies a smoothing filter to be applied to time series for reducing noise. Currently, options include diff --git a/man/sits_cube.Rd b/man/sits_cube.Rd index 3283236aa..fc4817bff 100644 --- a/man/sits_cube.Rd +++ b/man/sits_cube.Rd @@ -23,7 +23,7 @@ sits_cube(source, ...) collection, bands = NULL, tiles = NULL, - bbox = NULL, + roi = NULL, start_date = NULL, end_date = NULL ) @@ -36,7 +36,7 @@ sits_cube(source, ...) collection = "S2_L2A", bands = NULL, tiles = NULL, - bbox = NULL, + roi = NULL, start_date = NULL, end_date = NULL ) @@ -49,7 +49,7 @@ sits_cube(source, ...) collection = "sentinel-s2-l2a", tiles = NULL, bands = NULL, - bbox = NULL, + roi = NULL, s2_resolution = 20, start_date = NULL, end_date = NULL @@ -63,7 +63,7 @@ sits_cube(source, ...) collection = "landsat-c2l2-sr", tiles = NULL, bands = NULL, - bbox = NULL, + roi = NULL, start_date = NULL, end_date = NULL ) @@ -113,7 +113,7 @@ sits_cube(source, ...) \item{tiles}{Tiles from the collection to be included in the data cube.} -\item{bbox}{Area of interest (see details below).} +\item{roi}{Region of interest (see details below).} \item{start_date}{Initial date for the cube (optional).} @@ -184,8 +184,8 @@ in two ways: (a) a region of interest(`bbox`) in WGS 84 coordinates; } } \details{ -The \code{bbox} parameter allows a selection of an area of interest. -Either using a named \code{vector} ("xmin", "ymin", "xmax", "ymax") with +The \code{roi} parameter allows a selection of an area of interest. +Either using a named \code{vector} ("lon_min", "lat_min", "lon_max", "lat_max") with values in WGS 84, a \code{sfc} or \code{sf} object from sf package, or a GeoJSON geometry (RFC 7946). Note that this parameter does not crop a region, but only selects the images that intersect with it. From 92dd709addf7021298cee0b0c5a2763216d92e26 Mon Sep 17 00:00:00 2001 From: Felipe Date: Wed, 22 Sep 2021 13:34:50 +0000 Subject: [PATCH 04/45] get spatial resolution from config file (closes #369) --- R/sits_config.R | 30 ++++++++++++++++++++++++++++++ man/config_functions.Rd | 9 +++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/R/sits_config.R b/R/sits_config.R index 60e3da73a..d7ec4130a 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -596,6 +596,7 @@ sits_config_show <- function(source = NULL, #' #' @keywords internal #' +#' @param bands Sensor bands. #' @param collection Collection to be searched in the data source. #' @param data A sits data cube. #' @param labels Vector with labels. @@ -810,3 +811,32 @@ NULL return(res) } + +#' @rdname config_functions +.config_collection_res <- function(source, collection, bands) { + + list_bands <- .config_get(key = c("sources", source, "collections", + collection, "bands"))[bands] + # pre-condition + .check_lst( + x = list_bands, + allow_null = FALSE, is_named = TRUE, + max_len = length(bands), + msg = "invalid 'bands' in config file" + ) + + res <- vapply( + list_bands, `[[`, "resolutions", + FUN.VALUE = numeric(1), USE.NAMES = FALSE + ) + + # post-condition + .check_num( + x = res, + len_max = length(res), + allow_null = FALSE, + msg = "invalid 'resolutions' in config file. " + ) + + return(res) +} diff --git a/man/config_functions.Rd b/man/config_functions.Rd index 772db36ee..1629aad5f 100644 --- a/man/config_functions.Rd +++ b/man/config_functions.Rd @@ -14,6 +14,7 @@ \alias{.config_processing_bloat} \alias{.config_rstac_limit} \alias{.config_raster_pkg} +\alias{.config_collection_res} \title{Get values from config file} \usage{ .config_file() @@ -39,14 +40,20 @@ .config_rstac_limit() .config_raster_pkg() + +.config_collection_res(source, collection, bands) } \arguments{ \item{labels}{Vector with labels.} \item{...}{Additional parameters.} +\item{source}{Source of data cube} + \item{collection}{Collection to be searched in the data source.} +\item{bands}{Sensor bands.} + \item{data}{A sits data cube.} \item{pallete}{The palette that should be chosen based on the @@ -54,8 +61,6 @@ configuration file.} \item{simplify}{A logical value that specifies whether the return should be in vector form, if true, or list form, if false. Default value is FALSE.} - -\item{source}{Source of data cube} } \value{ Functions that search for values from a key or collection From 2ea69aff0ef596dca64c7dc199e043c45bb0250b Mon Sep 17 00:00:00 2001 From: Felipe Date: Wed, 22 Sep 2021 13:35:12 +0000 Subject: [PATCH 05/45] get spatial resolution from config file (closes #369) --- R/sits_source_api_bdc.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/sits_source_api_bdc.R b/R/sits_source_api_bdc.R index 6d4299d4f..aa81c96b6 100644 --- a/R/sits_source_api_bdc.R +++ b/R/sits_source_api_bdc.R @@ -34,7 +34,13 @@ .source_item_get_resolutions.bdc_cube <- function(source, item, ..., collection = NULL) { - item[[c("properties", "eo:gsd")]] + + bands <- .source_item_get_bands(source = source, + item = item) + + .config_collection_res(source = source, + collection = collection, + bands = bands) } #' @keywords internal From 6b5965b86143f0c29dee0941759b994c80483b66 Mon Sep 17 00:00:00 2001 From: Felipe Date: Wed, 22 Sep 2021 13:35:56 +0000 Subject: [PATCH 06/45] update resolutions on 'S2-SEN2COR_10_16D_STK-1' product --- inst/extdata/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/extdata/config.yml b/inst/extdata/config.yml index 8aeb3d877..369a94276 100644 --- a/inst/extdata/config.yml +++ b/inst/extdata/config.yml @@ -431,7 +431,7 @@ sources: 11 : "snow or ice" interp_values: [0, 1, 2, 3, 8, 9, 10, 11] resampling : "near" - resolutions : [20, 60] + resolutions : [10] satellite : "SENTINEL-2" sensor : "MSI" collection_name: "S2-SEN2COR_10_16D_STK-1" From 87974cceb58e296ad7ab8af8c72da6590cc06c4c Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Wed, 22 Sep 2021 11:55:25 -0300 Subject: [PATCH 07/45] introduce impute_fn parameter in sits_get_data.wtss_cube --- R/sits_get_data.R | 130 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 120 insertions(+), 10 deletions(-) diff --git a/R/sits_get_data.R b/R/sits_get_data.R index 61ceb08e8..c8a8704bb 100644 --- a/R/sits_get_data.R +++ b/R/sits_get_data.R @@ -128,7 +128,8 @@ sits_get_data.wtss_cube <- function(cube, file = NULL, ..., start_date = NULL, end_date = NULL, bands = NULL, - label = "NoClass") { + label = "NoClass", + impute_fn = sits_impute_linear()) { # Precondition - lat/long must be provided .check_that(!purrr::is_null(latitude) & @@ -146,10 +147,11 @@ sits_get_data.wtss_cube <- function(cube, file = NULL, ..., cube = cube, longitude = longitude, latitude = latitude, - start_date = start_end["start_date"], - end_date = start_end["end_date"], + start_date = start_end[["start_date"]], + end_date = start_end[["end_date"]], bands = bands, - label = label + label = label, + impute_fn = impute_fn ) if (!purrr::is_null(data) && !("sits" %in% class(data))) { class(data) <- c("sits", class(data)) @@ -201,7 +203,10 @@ sits_get_data.satveg_cube <- function(cube, #' #' @export #' -sits_get_data.csv_wtss_cube <- function(cube, file, ..., bands = NULL) { +sits_get_data.csv_wtss_cube <- function(cube, + file, ..., + bands = NULL, + impute_fn = sits_impute_linear()) { # read sample information from CSV file and put it in a tibble csv <- tibble::as_tibble(utils::read.csv(file)) @@ -229,7 +234,8 @@ sits_get_data.csv_wtss_cube <- function(cube, file, ..., bands = NULL) { start_date = lubridate::as_date(start_date), end_date = lubridate::as_date(end_date), bands = bands, - label = label + label = label, + impute_fn = impute_fn ) return(row) } @@ -310,6 +316,7 @@ sits_get_data.shp_wtss_cube <- function(cube, file, ..., end_date = NULL, bands = NULL, label = "NoClass", + impute_fn = sits_impute_linear(), shp_attr = NULL, .n_shp_pol = 30) { @@ -346,7 +353,8 @@ sits_get_data.shp_wtss_cube <- function(cube, file, ..., start_date = start_end["start_date"], end_date = start_end["end_date"], bands = bands, - label = lab + label = lab, + impute_fn = impute_fn ) return(row) } @@ -445,8 +453,8 @@ sits_get_data.raster_cube <- function(cube, file = NULL, ..., id = 1, longitude = longitude, latitude = latitude, - start_date = start_end["start_date"], - end_date = start_end["end_date"], + start_date = start_end[["start_date"]], + end_date = start_end[["end_date"]], label = label ) @@ -742,7 +750,8 @@ sits_get_data.shp_raster_cube <- function(cube, file, ..., start_date = NULL, end_date = NULL, bands = NULL, - label = "NoClass") { + label = "NoClass", + impute_fn = sits_impute_linear()) { # verifies if wtss package is installed if (!requireNamespace("Rwtss", quietly = TRUE)) { @@ -786,6 +795,106 @@ sits_get_data.shp_raster_cube <- function(cube, file, ..., paste(e) }) + # interpolate clouds + cld_band <- .source_bands_band_name(source = "WTSS", + collection = cube$collection, + bands = .source_cloud()) + + # retrieve values for the cloud band (if available) + if (cld_band %in% bands) { + + bands <- bands[bands != cld_band] + + # retrieve values that indicate clouds + cld_index <- .source_cloud_interp_values( + source = .cube_source(cube = cube), + collection = .cube_collection(cube = cube) + ) + + # get the values of the time series (terra object) + cld_values <- as.integer(ts$time_series[[1]][[cld_band]]) + + # get information about cloud bitmask + if (.source_cloud_bit_mask( + source = .cube_source(cube = cube), + collection = .cube_collection(cube = cube))) { + + cld_values <- as.matrix(cld_values) + cld_rows <- nrow(cld_values) + cld_values <- matrix(bitwAnd(cld_values, sum(2 ^ cld_index)), + nrow = cld_rows) + } + } + + # Retrieve values on a band by band basis + ts_bands <- lapply(bands, function(band) { + + # get the values of the time series as matrix + values_band <- ts$time_series[[1]][[band]] + + # convert to sits band + band_sits <- .source_bands_to_sits(source = cube$source[[1]], + collection = cube$collection[[1]], + bands = band) + + if (!purrr::is_null(impute_fn)) { + + # get the scale factors, max, min and missing values + missing_value <- .cube_band_missing_value( + cube = cube, + band = band_sits + ) + minimum_value <- .cube_band_minimum_value( + cube = cube, + band = band_sits + ) + maximum_value <- .cube_band_maximum_value( + cube = cube, + band = band_sits + ) + scale_factor <- .cube_band_scale_factor( + cube = cube, + band = band_sits + ) + + # include information from cloud band + if (!purrr::is_null(cld_band)) { + if (.source_cloud_bit_mask( + source = .cube_source(cube = cube), + collection = .cube_collection(cube = cube))) + values_band[cld_values > 0] <- NA + else + values_band[cld_values %in% cld_index] <- NA + } + + # adjust maximum and minimum values + values_band[values_band < minimum_value * scale_factor] <- NA + values_band[values_band > maximum_value * scale_factor] <- NA + + # are there NA values? interpolate them + if (any(is.na(values_band))) { + values_band <- impute_fn(as.integer(values_band / scale_factor)) + } + } + + # return the values + return(values_band * scale_factor) + }) + + # rename bands to sits band names + bands_sits <- .source_bands_to_sits(source = cube$source[[1]], + collection = cube$collection[[1]], + bands = bands) + + # now we have to transpose the data + ts_samples <- ts_bands %>% + purrr::set_names(bands_sits) %>% + tibble::as_tibble() + + ts_samples <- dplyr::bind_cols(ts$time_series[[1]]["Index"], ts_samples) + + ts$time_series[[1]] <- ts_samples + # change the class of the data # before - class "wtss" # now - class "sits" @@ -800,6 +909,7 @@ sits_get_data.shp_raster_cube <- function(cube, file, ..., ts <- .sits_tibble_rename(ts) # band names are uppercase in SITS } + # return the tibble with the time series return(ts) } From 510bc0d70fc8c10afbc898a3e47481a7bd15e414 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Wed, 22 Sep 2021 11:55:43 -0300 Subject: [PATCH 08/45] format code --- R/sits_raster_data.R | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/R/sits_raster_data.R b/R/sits_raster_data.R index 8b500f4e4..1bc112fac 100644 --- a/R/sits_raster_data.R +++ b/R/sits_raster_data.R @@ -328,8 +328,11 @@ ) # get the values of the time series (terra object) - cld_values <- .sits_cube_extract(cube = cube, band_cube = cld_band, - xy = xy) + cld_values <- .sits_cube_extract( + cube = cube, + band_cube = cld_band, + xy = xy + ) # get information about cloud bitmask if (.source_cloud_bit_mask( From 5993b03eda0916bdd29f38e52fbdaf632894d417 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Wed, 22 Sep 2021 11:56:11 -0300 Subject: [PATCH 09/45] change band_name values to correspond to BDC original name (lower case) --- inst/extdata/config.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/inst/extdata/config.yml b/inst/extdata/config.yml index 8aeb3d877..8b46f20fe 100644 --- a/inst/extdata/config.yml +++ b/inst/extdata/config.yml @@ -198,25 +198,25 @@ sources: offset_value : 0 resampling : "bilinear" resolutions : [30] - band_name : "BAND1" + band_name : "band1" B2 : <<: *bdc_oli_band1 - band_name : "BAND2" + band_name : "band2" B3 : <<: *bdc_oli_band1 - band_name : "BAND3" + band_name : "band3" B4 : <<: *bdc_oli_band1 - band_name : "BAND4" + band_name : "band4" B5 : <<: *bdc_oli_band1 - band_name : "BAND5" + band_name : "band5" B6 : <<: *bdc_oli_band1 - band_name : "BAND6" + band_name : "band6" B7 : <<: *bdc_oli_band1 - band_name : "BAND7" + band_name : "band7" CLOUD : &bdc_oli_cloud bit_mask : FALSE band_name : "Fmask4" @@ -310,37 +310,37 @@ sources: offset_value : 0 resampling : "bilinear" resolutions : [10] - band_name : "BAND1" + band_name : "band1" B02 : <<: *bdc_msi_band1 - band_name : "BAND2" + band_name : "band2" B03 : <<: *bdc_msi_band1 - band_name : "BAND3" + band_name : "band3" B04 : <<: *bdc_msi_band1 - band_name : "BAND4" + band_name : "band4" B05 : <<: *bdc_msi_band1 - band_name : "BAND5" + band_name : "band5" B06 : <<: *bdc_msi_band1 - band_name : "BAND6" + band_name : "band6" B07 : <<: *bdc_msi_band1 - band_name : "BAND7" + band_name : "band7" B08 : <<: *bdc_msi_band1 - band_name : "BAND8" + band_name : "band8" B8A : <<: *bdc_msi_band1 - band_name : "BAND8a" + band_name : "band8a" B11 : <<: *bdc_msi_band1 - band_name : "BAND11" + band_name : "band11" B12 : <<: *bdc_msi_band1 - band_name : "BAND12" + band_name : "band12" CLOUD : bit_mask : FALSE band_name : "Fmask4" From fb56981fd86b8a083fc26fa831eedf87c7f06ca7 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Wed, 22 Sep 2021 11:56:26 -0300 Subject: [PATCH 10/45] add impute_fn parameter --- man/dot-sits_get_data_from_wtss.Rd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/man/dot-sits_get_data_from_wtss.Rd b/man/dot-sits_get_data_from_wtss.Rd index cdaf6dc57..262037a12 100644 --- a/man/dot-sits_get_data_from_wtss.Rd +++ b/man/dot-sits_get_data_from_wtss.Rd @@ -11,7 +11,8 @@ start_date = NULL, end_date = NULL, bands = NULL, - label = "NoClass" + label = "NoClass", + impute_fn = sits_impute_linear() ) } \arguments{ From 7145e1b10e021958858c976a58e44d7e3c702b9b Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Wed, 22 Sep 2021 11:57:02 -0300 Subject: [PATCH 11/45] support wtss impute_fn to interpolate clouds and invalid values --- man/sits_get_data.Rd | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/man/sits_get_data.Rd b/man/sits_get_data.Rd index 235af1b6a..4801e31f6 100644 --- a/man/sits_get_data.Rd +++ b/man/sits_get_data.Rd @@ -24,7 +24,8 @@ sits_get_data(cube, file = NULL, ..., multicores = 1) start_date = NULL, end_date = NULL, bands = NULL, - label = "NoClass" + label = "NoClass", + impute_fn = sits_impute_linear() ) \method{sits_get_data}{satveg_cube}( @@ -38,7 +39,7 @@ sits_get_data(cube, file = NULL, ..., multicores = 1) label = "NoClass" ) -\method{sits_get_data}{csv_wtss_cube}(cube, file, ..., bands = NULL) +\method{sits_get_data}{csv_wtss_cube}(cube, file, ..., bands = NULL, impute_fn = sits_impute_linear()) \method{sits_get_data}{csv_satveg_cube}(cube, file, ...) @@ -50,6 +51,7 @@ sits_get_data(cube, file = NULL, ..., multicores = 1) end_date = NULL, bands = NULL, label = "NoClass", + impute_fn = sits_impute_linear(), shp_attr = NULL, .n_shp_pol = 30 ) @@ -125,14 +127,14 @@ in "YYYY-MM-DD" format (optional).} \item{label}{Label to be assigned to the time series (optional).} +\item{impute_fn}{Imputation function for NA values.} + \item{shp_attr}{Attribute in the shapefile to be used as a polygon label.} \item{.n_shp_pol}{Number of samples per polygon to be read (for POLYGON or MULTIPOLYGON shapefile).} -\item{impute_fn}{Imputation function for NA values.} - \item{.n_pts_csv}{Number of points from CSV file to be retrieved.} } \value{ From 1b8780b0e13f278ce03ae0840a9d2eac04086128 Mon Sep 17 00:00:00 2001 From: Gilberto Camara Date: Wed, 22 Sep 2021 14:11:04 -0300 Subject: [PATCH 12/45] Closes #370 #373 --- NAMESPACE | 1 + R/sits_config.R | 62 ++++++++++++++++++++++++++++++++++++++- R/sits_cube.R | 1 + man/sits_configuration.Rd | 12 +++++++- 4 files changed, 74 insertions(+), 2 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index fb9340f6f..30c152bff 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -195,6 +195,7 @@ export(sits_cluster_clean) export(sits_cluster_dendro) export(sits_cluster_frequency) export(sits_config) +export(sits_config_list_collections) export(sits_config_show) export(sits_create_folds) export(sits_cube) diff --git a/R/sits_config.R b/R/sits_config.R index d2db149e3..1fbaf361f 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -13,9 +13,13 @@ #' #' \code{sits_config_show()} prints the current sits #' configuration options. To show specific configuration options for -#' a source, a collection, or a palette, user can inform the corresponding +#' a source, a collection, or a palette, users can inform the corresponding #' keys to \code{source}, \code{collection}, and \code{palette} parameters. #' +#' \code{sits_config_list_collection()} prints the collections available +#' in each cloud service supported by sits. Users can select to get information +#' only for a single service by using the \code{source} parameter. +#' #' @param processing_bloat A \code{numeric} value to estimate #' growth size of R memory relative to block size. #' @param rstac_pagination_limit A \code{numeric} value indicating number of @@ -193,6 +197,62 @@ sits_config_show <- function(source = NULL, return(invisible(config)) } +#' @rdname sits_configuration +#' +#' @return +#' \code{sits_config_list_collection()} prints the collections available in +#' each cloud service supported by sits. +#' +#' @export + +sits_config_list_collections <- function(source = NULL) { + # divert output + sink("/dev/null") + # get configuration + config <- sits_config_show() + # re-enable output + sink() + # get sources available + sources <- config$sources[[1]] + # remove local collections + sources <- sources[!(sources %in% + c("CLASSIFIED", "PROBS", "WTSS", "LOCAL", "SATVEG"))] + # if the user has required a source + # check that it is valid + if (!purrr::is_null(source)) { + # check if source exists + .check_chr_within( + x = band, + within = sits_bands(x), + msg = "invalid band" + ) + sources <- source + } + purrr::map(sources, function(s){ + sink("/dev/null") + # get configuration + config_s <- sits_config_show(source = s) + sink() + # re-enable output + cat("====================\n") + cat(paste0("source = ", s, "\n")) + collections <- config_s$collections[[1]] + purrr::map(collections, function(c){ + sink("/dev/null") + # get collection information + config_s_c <- sits_config_show(source = s, collection = c) + sink() + cat(paste0("collection = ", c,"\n")) + cat(paste0("satellite = ", config_s_c["satellite"], + " sensor = ", config_s_c["sensor"], "\n")) + cat("bands = ") + cat(names(config_s_c[["bands"]])) + cat("\n") + cat("\n") + }) + }) + return(invisible(NULL)) +} .config_set_options <- function(processing_bloat = NULL, rstac_pagination_limit = NULL, raster_api_package = NULL, diff --git a/R/sits_cube.R b/R/sits_cube.R index aeeea1e56..772366898 100755 --- a/R/sits_cube.R +++ b/R/sits_cube.R @@ -682,6 +682,7 @@ sits_cube_copy <- function(cube, dest_dir, "/", row$satellite, "_", row$sensor, "_", + row$tile,"_", file_row$band, "_", file_row$date, ".", file_ext diff --git a/man/sits_configuration.Rd b/man/sits_configuration.Rd index 2b7e62acc..abd65fdc5 100644 --- a/man/sits_configuration.Rd +++ b/man/sits_configuration.Rd @@ -4,6 +4,7 @@ \alias{sits_configuration} \alias{sits_config} \alias{sits_config_show} +\alias{sits_config_list_collections} \title{sits configuration} \usage{ sits_config( @@ -15,6 +16,8 @@ sits_config( ) sits_config_show(source = NULL, collection = NULL, palette = NULL) + +sits_config_list_collections(source = NULL) } \arguments{ \item{processing_bloat}{A \code{numeric} value to estimate @@ -49,6 +52,9 @@ configuration options. \code{sits_config_show()} returns a \code{list} containing the respective configuration printed in the console. + +\code{sits_config_list_collection()} prints the collections available in +each cloud service supported by sits. } \description{ These functions load and show sits configurations. @@ -61,8 +67,12 @@ obtained by overriding the options by the values provided in \code{sits_config_show()} prints the current sits configuration options. To show specific configuration options for -a source, a collection, or a palette, user can inform the corresponding +a source, a collection, or a palette, users can inform the corresponding keys to \code{source}, \code{collection}, and \code{palette} parameters. + +\code{sits_config_list_collection()} prints the collections available +in each cloud service supported by sits. Users can select to get information +only for a single service by using the \code{source} parameter. } \details{ Users can provide additional configuration files, by specifying the From 8463a0b67996ca4d36a6b9cdfdc449da196bb239 Mon Sep 17 00:00:00 2001 From: Felipe Date: Wed, 22 Sep 2021 17:49:38 +0000 Subject: [PATCH 13/45] remove config_collection_res function and use .source_bands_resolution --- R/sits_config.R | 29 ----------------------------- R/sits_source_api_bdc.R | 12 +++++++----- man/config_functions.Rd | 9 +++------ 3 files changed, 10 insertions(+), 40 deletions(-) diff --git a/R/sits_config.R b/R/sits_config.R index d7ec4130a..225f796a3 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -811,32 +811,3 @@ NULL return(res) } - -#' @rdname config_functions -.config_collection_res <- function(source, collection, bands) { - - list_bands <- .config_get(key = c("sources", source, "collections", - collection, "bands"))[bands] - # pre-condition - .check_lst( - x = list_bands, - allow_null = FALSE, is_named = TRUE, - max_len = length(bands), - msg = "invalid 'bands' in config file" - ) - - res <- vapply( - list_bands, `[[`, "resolutions", - FUN.VALUE = numeric(1), USE.NAMES = FALSE - ) - - # post-condition - .check_num( - x = res, - len_max = length(res), - allow_null = FALSE, - msg = "invalid 'resolutions' in config file. " - ) - - return(res) -} diff --git a/R/sits_source_api_bdc.R b/R/sits_source_api_bdc.R index aa81c96b6..151c4ddf3 100644 --- a/R/sits_source_api_bdc.R +++ b/R/sits_source_api_bdc.R @@ -35,12 +35,14 @@ item, ..., collection = NULL) { - bands <- .source_item_get_bands(source = source, - item = item) + res <- .source_bands_resolutions( + source = source, + collection = collection, + bands = .source_item_get_bands(source = source, + item = item) + ) - .config_collection_res(source = source, - collection = collection, - bands = bands) + return(res[[1]]) } #' @keywords internal diff --git a/man/config_functions.Rd b/man/config_functions.Rd index 1629aad5f..c23fd558a 100644 --- a/man/config_functions.Rd +++ b/man/config_functions.Rd @@ -14,7 +14,6 @@ \alias{.config_processing_bloat} \alias{.config_rstac_limit} \alias{.config_raster_pkg} -\alias{.config_collection_res} \title{Get values from config file} \usage{ .config_file() @@ -40,20 +39,16 @@ .config_rstac_limit() .config_raster_pkg() - -.config_collection_res(source, collection, bands) } \arguments{ \item{labels}{Vector with labels.} \item{...}{Additional parameters.} -\item{source}{Source of data cube} +\item{bands}{Sensor bands.} \item{collection}{Collection to be searched in the data source.} -\item{bands}{Sensor bands.} - \item{data}{A sits data cube.} \item{pallete}{The palette that should be chosen based on the @@ -61,6 +56,8 @@ configuration file.} \item{simplify}{A logical value that specifies whether the return should be in vector form, if true, or list form, if false. Default value is FALSE.} + +\item{source}{Source of data cube} } \value{ Functions that search for values from a key or collection From c09da18b8bd43fced0e860704f1c7bcb308a2792 Mon Sep 17 00:00:00 2001 From: Felipe Date: Wed, 22 Sep 2021 18:16:35 +0000 Subject: [PATCH 14/45] remove bands parameter --- R/sits_config.R | 1 - man/config_functions.Rd | 2 -- 2 files changed, 3 deletions(-) diff --git a/R/sits_config.R b/R/sits_config.R index 225f796a3..60e3da73a 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -596,7 +596,6 @@ sits_config_show <- function(source = NULL, #' #' @keywords internal #' -#' @param bands Sensor bands. #' @param collection Collection to be searched in the data source. #' @param data A sits data cube. #' @param labels Vector with labels. diff --git a/man/config_functions.Rd b/man/config_functions.Rd index c23fd558a..772db36ee 100644 --- a/man/config_functions.Rd +++ b/man/config_functions.Rd @@ -45,8 +45,6 @@ \item{...}{Additional parameters.} -\item{bands}{Sensor bands.} - \item{collection}{Collection to be searched in the data source.} \item{data}{A sits data cube.} From 87ace2707dfe8806874c20f70bc813a958af636f Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Thu, 23 Sep 2021 18:15:06 -0300 Subject: [PATCH 15/45] update sits_config_list_collections function --- R/sits_config.R | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/R/sits_config.R b/R/sits_config.R index 1fbaf361f..cd150e4f2 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -206,47 +206,35 @@ sits_config_show <- function(source = NULL, #' @export sits_config_list_collections <- function(source = NULL) { - # divert output - sink("/dev/null") - # get configuration - config <- sits_config_show() - # re-enable output - sink() + # get sources available - sources <- config$sources[[1]] - # remove local collections - sources <- sources[!(sources %in% - c("CLASSIFIED", "PROBS", "WTSS", "LOCAL", "SATVEG"))] + sources <- .sources(internal = FALSE) + # if the user has required a source # check that it is valid if (!purrr::is_null(source)) { # check if source exists .check_chr_within( - x = band, - within = sits_bands(x), - msg = "invalid band" + x = source, + within = sources, + msg = "invalid source value" ) sources <- source } + purrr::map(sources, function(s){ - sink("/dev/null") - # get configuration - config_s <- sits_config_show(source = s) - sink() - # re-enable output + cat("====================\n") - cat(paste0("source = ", s, "\n")) - collections <- config_s$collections[[1]] + cat(paste0(s, ":\n")) + collections <- .source_collections(source = s) purrr::map(collections, function(c){ - sink("/dev/null") # get collection information - config_s_c <- sits_config_show(source = s, collection = c) - sink() - cat(paste0("collection = ", c,"\n")) - cat(paste0("satellite = ", config_s_c["satellite"], - " sensor = ", config_s_c["sensor"], "\n")) - cat("bands = ") - cat(names(config_s_c[["bands"]])) + + cat(paste0("- ", c)) + cat(paste0(" (", .source_collection_satellite(s, c), + "/", .source_collection_sensor(s, c), ")\n")) + cat("- bands: ") + cat(.source_bands(s, c)) cat("\n") cat("\n") }) From ddfea96b9cf738eaa53f4229f8d1e1ea7519f0bb Mon Sep 17 00:00:00 2001 From: Gilberto Camara Date: Fri, 24 Sep 2021 09:50:09 -0300 Subject: [PATCH 16/45] Closes #378 --- R/sits_cube.R | 22 ++-- R/sits_view.R | 14 +-- demo/classify_cbers_local.R | 99 ------------------ .../CBERS-4_AWFI_022024_B13_2018-02-02.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-02-18.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-03-06.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-03-22.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-04-07.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-04-23.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-05-09.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-05-25.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-06-10.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-06-26.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-07-12.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-07-28.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-08-13.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B13_2018-08-29.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-02-02.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-02-18.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-03-06.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-03-22.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-04-07.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-04-23.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-05-09.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-05-25.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-06-10.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-06-26.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-07-12.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-07-28.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-08-13.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B14_2018-08-29.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-02-02.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-02-18.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-03-06.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-03-22.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-04-07.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-04-23.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-05-09.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-05-25.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-06-10.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-06-26.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-07-12.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-07-28.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-08-13.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B15_2018-08-29.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-02-02.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-02-18.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-03-06.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-03-22.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-04-07.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-04-23.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-05-09.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-05-25.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-06-10.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-06-26.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-07-12.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-07-28.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-08-13.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_B16_2018-08-29.tif | Bin 5639 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-02-02.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-02-18.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-03-06.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-03-22.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-04-07.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-04-23.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-05-09.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-05-25.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-06-10.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-06-26.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-07-12.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-07-28.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-08-13.tif | Bin 3133 -> 0 bytes .../CBERS-4_AWFI_022024_CMASK_2018-08-29.tif | Bin 3133 -> 0 bytes tests/testthat/test-cube.R | 88 +++++----------- 74 files changed, 47 insertions(+), 176 deletions(-) delete mode 100644 demo/classify_cbers_local.R delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-02-02.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-02-18.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-03-06.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-03-22.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-04-07.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-04-23.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-05-09.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-05-25.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-06-10.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-06-26.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-07-12.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-07-28.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-08-13.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-08-29.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-02-02.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-02-18.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-03-06.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-03-22.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-04-07.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-04-23.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-05-09.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-05-25.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-06-10.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-06-26.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-07-12.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-07-28.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-08-13.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-08-29.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-02-02.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-02-18.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-03-06.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-03-22.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-04-07.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-04-23.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-05-09.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-05-25.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-06-10.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-06-26.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-07-12.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-07-28.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-08-13.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-08-29.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-02-02.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-02-18.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-03-06.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-03-22.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-04-07.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-04-23.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-05-09.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-05-25.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-06-10.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-06-26.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-07-12.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-07-28.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-08-13.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-08-29.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-02-02.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-02-18.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-03-06.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-03-22.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-04-07.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-04-23.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-05-09.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-05-25.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-06-10.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-06-26.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-07-12.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-07-28.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-08-13.tif delete mode 100644 inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-08-29.tif diff --git a/R/sits_cube.R b/R/sits_cube.R index 772366898..a4a3ba9d9 100755 --- a/R/sits_cube.R +++ b/R/sits_cube.R @@ -186,14 +186,14 @@ #' s2_resolution = 20 #' ) #' -#' # --- Create a cube based on a stack of CBERS data -#' data_dir <- system.file("extdata/raster/cbers", package = "sits") +#' # --- Create a cube based on a local MODIS data +#' data_dir <- system.file("extdata/raster/mod13q1", package = "sits") #' -#' cbers_cube <- sits_cube( +#' modis_cube <- sits_cube( #' source = "LOCAL", -#' name = "022024", +#' name = "modis_sinop", #' origin = "BDC", -#' collection = "CB4_64-1", +#' collection = "MOD13Q1-6", #' data_dir = data_dir, #' delim = "_", #' parse_info = c("X1", "X2", "tile", "band", "date") @@ -595,20 +595,20 @@ sits_cube.default <- function(source, ...) { #' #' @examples #' \donttest{ -#' data_dir <- system.file("extdata/raster/cbers", package = "sits") +#' data_dir <- system.file("extdata/raster/mod13q1", package = "sits") #' -#' cbers_022024 <- sits_cube( +#' modis_cube <- sits_cube( #' source = "LOCAL", -#' name = "cbers_022024", +#' name = "modis_sinop", #' origin = "BDC", -#' collection = "CB4_64-1", +#' collection = "MOD13Q1-6", #' band = "NDVI", #' data_dir = data_dir, #' parse_info = c("X1", "X2", "tile", "band", "date") #' ) #' -#' cbers_022024_copy <- sits_cube_copy(cbers_022024, -#' name = "cb_022024_cp", +#' modis_cube_copy <- sits_cube_copy(modis_cube, +#' name = "modis_sinop_cp", #' dest_dir = tempdir() #' ) #' } diff --git a/R/sits_view.R b/R/sits_view.R index b9d72dc62..6aabc794f 100644 --- a/R/sits_view.R +++ b/R/sits_view.R @@ -18,19 +18,21 @@ #' #' @examples #' \donttest{ -#' data_dir <- system.file("extdata/raster/cbers", package = "sits") +#' data_dir <- system.file("extdata/raster/mod13q1", package = "sits") #' -#' cbers_022024 <- sits_cube( +#' modis_cube <- sits_cube( #' source = "LOCAL", -#' name = "cbers_022024", +#' name = "modis_sinop", #' origin = "BDC", -#' collection = "CB4_64-1", -#' resolution = 64, +#' collection = "MOD13Q1-6", +#' band = "NDVI", #' data_dir = data_dir, #' parse_info = c("X1", "X2", "tile", "band", "date") #' ) +#' +#' ) #' # plot the data cube -#' sits_view(cbers_022024, red = "B15", green = "B16", blue = "B13", time = 1) +#' sits_view(modis_cube, red = "EVI", green = "NDVI", blue = "EVI", time = 1) #' } #' #' @export diff --git a/demo/classify_cbers_local.R b/demo/classify_cbers_local.R deleted file mode 100644 index 95031d1ae..000000000 --- a/demo/classify_cbers_local.R +++ /dev/null @@ -1,99 +0,0 @@ -# This is a demonstration of classification of using -# local data (images organised by tiles) -# The input is a CBERS-4 data set covering an area in the Cerrado -# of the state of Bahia (Brazil) -# with two bands (NDVI and EVI) -library(sits) -if (!requireNamespace("sitsdata", quietly = TRUE)) { - if (!requireNamespace("devtools", quietly = TRUE)) { - install.packages("devtools") - } - devtools::install_github("e-sensing/sitsdata") -} -# load the sitsdata library -library(sitsdata) - -# define the local directory to load the images -local_dir <- system.file("extdata/CBERS", package = "sitsdata") - -# define the local CBERS data cube -cbers_cube <- sits_cube( - source = "LOCAL", - name = "cbers_022024", - origin = "BDC", - collection = "CB4_64-1", - data_dir = local_dir, - parse_info = c("X1", "X2", "X3", "X4", "tile", "date", "X5", "band") -) - -# load the samples -data("samples_cerrado_cbers") - -# set up the bands -bands <- c("NDVI", "EVI") - -# select the ndvi and evi bands -cbers_samples_2bands <- sits_select( - data = samples_cerrado_cbers, - bands = bands -) - -# train a random forest model -tcnn_model <- sits_train( - data = cbers_samples_2bands, - ml_method = sits_rfor() -) - -# classify the data (remember to set the appropriate memory size) -cbers_probs <- sits_classify( - data = cbers_cube, - ml_model = tcnn_model, - memsize = 1, - multicores = 3, - output_dir = tempdir(), - verbose = TRUE -) - -# label the resulting probs maps -cbers_label <- sits_label_classification( - cube = cbers_probs, - memsize = 12, - multicores = 2, - output_dir = tempdir() -) - -# smoothen the probabibilities with bayesian estimator -cbers_bayes <- sits_smooth( - cube = cbers_probs, - type = "bayes", - memsize = 12, - multicores = 2, - output_dir = tempdir() -) - -# label the resulting smoothed probs maps -cbers_label_bayes <- sits_label_classification( - cube = cbers_bayes, - memsize = 12, - multicores = 2, - output_dir = tempdir() -) - - - -# view the image (first and last instances) -sits_view(cbers_cube, red = "EVI", green = "NDVI", blue = "EVI", time = 1) -sits_view(cbers_cube, red = "EVI", green = "NDVI", blue = "EVI", time = 23) - -# plot the probabilities for each class -plot(cbers_probs) - -# labels are "Cerradao" "Cerrado" "Cropland" "Pasture" - -mylegend <- list("Cerradao" = "darkgreen", "Cerrado" = "palegreen1", -"Cropland" = "orange2", "Pasture" = "yellow") - -plot(cbers_label, legend = mylegend) - -plot(cbers_label, palette = "default") - diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-02-02.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-02-02.tif deleted file mode 100644 index 384564816d2a97f3daf49aa960b6df43d396ab6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-02-18.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-02-18.tif deleted file mode 100644 index 7b614de3989b2dfbf82048a240a37619433ad6a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-03-06.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-03-06.tif deleted file mode 100644 index 6006921a867484862077eff9f0725bfabc316c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-03-22.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-03-22.tif deleted file mode 100644 index 3eeb6ed0c7f4a18de253e606e2e04220525094b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 M@|iKjz6Qwu0D(ct-2eap diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-04-07.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-04-07.tif deleted file mode 100644 index ced97924d9442cca721a272fa9314b2f37facb6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 zcmaKwcX(CB)`w?itvLyj&=qMCMGz@cY#?%l3kpaTqzh7|Bp@Q4NFW3f1R*NDNPrNK zP!c*K7%8Dj69ECGBS=@INc-L#bDzh*zU=3mnZ3{6Yt65$H5=;HD`P^9F?o%#Vl1=D zeC)sGE_ykasx-amrd0wl*XJec(kN@lX6WQ~um<6-%Nyu+Z(SP03EPKwQCfCR? zBaA2c#Kwi00OK7#%i_hfVk}MKwD>TSgZUBW>G96I&pd*MM^`YT_RKU4fs zQ~UL!#x-Wu9`|l3)1*f5r~l_G<7$zHzDSFjr@p8fGh=?In*Y1i2Jt;^jKWUVkv%$1 zkI&*Si$rT4#n{mF_!gYF?DIfy9A6?d`#eWzTD)bQIfG+}2@j6^81~QeE_;;VnA2!* ze7-~=EbBRALV}|;p}|p1j^OCbW5H2P&fw_(x9p66Ca+|VrL)KS!Es-{Wd6E-Bdv6sR+0b?yX8*1UtA7pC{YqA6J@#dk{AisRytk(l1g&Qt#ikm z$QU^yTO>`aexMh0svMSIrG;#D-?=sJluMGLy4l~A(e4Nit}Mglpxlzmx>U>fNA3~N zi`;W1WROgjvU*3~)QfUa3;9UBE)C?Q`^Ht1WT~L@{f$8H&|x75Lt-_cgS3*S>N9fJ zJs?K743S5&#J$dX1K^k;XXU2k(OSAn3rZ1r=<-Qk@qCKP68T6^$wKL>n{>8bm3Jh! z>~*c>acv&jJusbT>T7kar_D7}bLevUU0O+fsjDk=n1)DCSKs~R3P@vFEr;ZoS*lNYp@Z>L8jg^a89zLxZnA(6hdcGmn_M!S>UrUjfE65e?CW z(gQ~B%Vjs%<(6vFLq3%Sc%m|hL$saFP~%JcO1`=;rxq=?OI_I}uX1&R4+~Tb3<$jF zJ8OR(stMXxlhI*6s!WkZa#eOq23|WL>GGr2^(pd;8{|BEyekQ;B14YD;b>XIJx8UG zR@4+-uDN|zKhTFuTbZb>0xd&&2I~1@T0#2}f26i%MWbPErpD<}nJYWt{37o8Ko(0o z|C)csU*h-sPNgjVp9fznWQ4peEu}N}+?4h@L}%&WTFtli&ApYj>Oy*jwg|*(Lw$=J zllc_YayY6J`OeD~P@Is?_@V|Z^wB=i7#~@ZIrVBY2vlA8HZJi{{nA(}PTB^b(j>=yuL(Ya#O22C>x} zEc-FHn1}h}270>Lab}PrCE2fjmadwe&Cf2HI9X*Cd?vs-Dwy zs-nF9uD!{crjy8539p=lx2=+d7gA-vyX}e)w;=1!OLbX!R+^#zJ!z-mc>ajq)EfSP z+wY!|*Q7nZy{EZ+FI}wj^(5VAn#MAo_D#vT2@D@=1iWp9_pf9y8uUWR32p`H>F?&cwREl1?yTGGHo7w|3RQlS;<|?}l2`BQIsd@-cL(Tn>)btE zt5>zWA3@D@2j@|_EiV)Mao@oY@QHq!w$#F8wt7q>{UO{nMA}F{H^e2nuiYxQ+(i@R zoGVR_>?RxKOT2gvmk;$*{6}t>>+fRSHeIa;$q}hF^fk??w`8nd0qZ(nAuuRVEpXBQ z=|}l+e@MU84*r6_K_xT|dEHg#`9zoL=D9iUD?Wd?GExOEkD@~fJt#%n=quV$M`@`4 zRc~nlU&Ig5FgSUdZXX*Mjs~xBBnC2lhQH=d_{V*U{;Fx-P`?=xEl;~LuA%GcMz{*D z1V<$*zm`SI3P?O;H64rEGy0Nfu|l0Y9rsr z2f)#ueQBva@KNMQM4SK87fRBF(si%KkTF>e-RdTsFO(GfjVN0zNw*MVh<4R@z3gj+_SG+OZ!;}UOsgZ{t+T#NCs+)> z&(cee!&WET!S1p@+4CGf+f(33#A&loxQ`p-zNap>aQsT8#>oyUbBUam04jZso2L2+ zp{dl#Ae6bn&T!Yq=|d{(p**WUYh&0fN9GgK+`FV=PPCKl9I}PFmt9p?&DC@r z-6*`&)eUeN?t<$hv*krPKz+KwHW@&_^8QHRu^jvKGvYLQ!)~>Q>`8k8M0f0eTw#|VtzulND@8xcFGu0;C-)}3BEQzr z_x*8deIy))QiW^SQwrz<-W6WJ2ZQ``frf!!{8b-rtJx^9)Uyq3Q`_8rY7^{CyBK8i z$#=pov)|cEwgk@Gf=WBkX{1|(MxEI$Hb_1FOLwC}6} z(w7Y6vCrDdHeer_%jPj##CEptk*TNcV_Vs-WSaoGrS^CGlI!Fey9Vxk*UpWHxwqKa znuBbp-eAoo^%DIfjUC#NDWATB2M=p_;J8oqTl_uqx4CZ4m_6o4bKIOT5w<*8pR=zs zRwG|W+u9C5trPZ7d(-A{<=w}0l?!xIk)5EbB|B7n4b+${{pqp?@X>cLnGXlv_hbAW zeW(}Ad19|H8_X87(k$U01_i9xE9Q|20oBtspUrEllV^tAVvmvIIoy`XJKB6V#Wi=` z-9%SXk5coSVDAlfQL2Hen?P6ZpilUn?B2!nut_&RnIw~Hmh-*96tX4kRk9v|yIbZ@ zR`7=@VPCNy+Ua%?{?5nyQabN&ja(7;(B>v*L3Yl@>^q*CZA=IHjPst-9`A+Wgmkj~ z0D?4=Y(|?H6UTU+sN2nclgY8q9D}`k`~#$hZEM@}8EelFceI<~9&_99db(}tW};Ik z*Mw{9c=PMd8{F$sN6M3B3U3J`c(F?w`=lYQ5|jTbJ0 z?JSPS=Mvmjcg@|TH*9yCz*H72(e%~HW}%5T9}#_!8DhRL^Wkfa*-M6P;8<^Vo1amn zAUs8a=3^@7NjKV-vt?`*TNVcnrf%n2>z;5Su8Z3SlFL-mVmia$?x8C#9i*QeHcP<~ zM~)aiqu_0U`39c8MU!3N*hZG)w7bGKCw~3})f3!$&O)ujcin6Yn`l?tO?0|5wi3}( z+(I|djdcsy_tM-+mrH8OJo6PgM4L}cAJFtA+d^`TA#au*8~NU4PMK@w5;YWN=h@pf z&F!$>hLIsZNLrxLT=MLqpsM9a#1)s6s?PQOBQr4SEW(1Lkn!zCHXFi3i zWRqZGxi$?^3yfNJI9kY@AHqp%BECcpVQLmNke_*Z^M>DYOM3?=z`6Byw zG@WghTZ!(OaDKr2N-ca#%nw=hC~(B$fT6@544yARHvsmgkw1ZZ#=~h==lKy-yYNAN zd|ceV#oiE&@8)sLp;KS9#at;@E4cHV1@&DpUogKBZyG3unfFXv(}}qKaM}>+W*D&( zOmEN(#d&S{y&IL9N{&@{d#|}^&YHaT864JzYMF00+6{I$#|itu)^JhI+FRxU|5cOI z-iPs>W-V;Q615NN3;;ntSepcQaq!fIYYoiXWE;!1NvtQ0-m{91_YKb~`%qO>nQiyl z^>&F}!)|JL8>!=7rh69-?ig9!_8?Wa0UlNoc^pxrVJ4Aiqlg*{rnaWFX=0k1j%bs@ zu>_S?q2wf7u#bJA6x}n@#@iS>#V!ZOZ7VL^m14IL`w%P_%PsW zlkispIop$=nQ3hP3!V>9Di%L}%{_~$+Ud-UjpHtlejJ5I4((R{Sfg-Dep5-_coJG04wmxr(?eVtSi@ZOqLA|}?_z6|EfMX8p znn0K72!ht&=tQ*Xtal7mG?Dcu1bvs~^O59BW<_gI{sQ~K8PvZ(oEW#7>L_U|qD*aE zyb~3+lYbW(GSPeiE1f~i(e#-%939bmGCD2AO`pTkFk;8S(_m&((0madScXpz!u8L@ zImRrNw;E&5n~SEDeHHzWu=YJcmNM}0c5r7^;B;!R8{Tb+-t~#M5v8(nj6#92d=CTL WBrq>!J&7P&K#WT$@erqOGyey7=buXe diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-04-23.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-04-23.tif deleted file mode 100644 index 08218227f3fcf5a32fb288691a45929f63303a53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-05-09.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-05-09.tif deleted file mode 100644 index cf594bac8d7f630d1bc5c706bb9002356af4f086..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-05-25.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-05-25.tif deleted file mode 100644 index ef7c3cd56846e08ef76dcba1c81d8ce749e2b1fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 aw2o>X&%|jUTJbKBxbs2L)iQ@S)Bgc(UN%Yq diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-06-26.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-06-26.tif deleted file mode 100644 index bcba44eeb4cf7210b39767c062ca1c8eec35b577..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-07-12.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-07-12.tif deleted file mode 100644 index c41fd7921494963e7e88142315949acd0a4bfd3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-07-28.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B13_2018-07-28.tif deleted file mode 100644 index 9a0d17fd74fcb8d49eb480219fc27075f2384156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 bl)cCv$vG{Zu^vzSU5_&~lW*Kr^nw2ZAXFc2 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-02-02.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-02-02.tif deleted file mode 100644 index 770b673558649937184b961aa069af007c362df7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-02-18.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-02-18.tif deleted file mode 100644 index 39e8f1ce4ab75aba37fa4dc0a4078f2845fb1415..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 K)Xs-FZ~qSsv2>*X diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-03-06.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-03-06.tif deleted file mode 100644 index fbc0e3604f1998962d0997092a9003356baddf84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-04-07.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-04-07.tif deleted file mode 100644 index 55bd2db3b3f94acba183666d47ef78788caff5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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�AOks`l&R7fq&myrB$6>&8c4aSRVnf` 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-05-09.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-05-09.tif deleted file mode 100644 index 610831507c360fc509fbd61e3051669f1bb4b31b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 Z=uoUJq#Dfs-4>GKnFB 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 P_Aloh{F-`44#@uikdtK7 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-06-26.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-06-26.tif deleted file mode 100644 index c482ecacd5174b9ff75d4ecdc2f60f9175639a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-08-13.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-08-13.tif deleted file mode 100644 index 046731ca48b000fd7be5a3b5fc7cfc2787393667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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

tJ<&_&crH;1=M-vXweIfJJ?H7R%fX=p2O~*+?iv zhC5XaL5E^VucX3}eC}LqC(skd;$s69HGviVNT|coRDNZXB?b5z!~Q&b8%rC=uFtV1 z1C~!fgPR|Lt{jjKfOjI_&9ERF@3OG3o9qu^witiTz=TueQ7BeKV?`5l&W8+Gor`@# zsgs9m?GVe~C+1OTqmOL1ch+S#KX9RIe^u*@il}+p z^+TAIj=jy)v{n(;4M9>Azb{D|I)d3Zg^av`s#Qa@a`7t%J5snC?c+2S)N_b@f$vuy z{Bc;B9>R-U`uD?h!5p6xO-LM0rbMwe3adiU>rVFrl0zk!hrA`^OF2;(kNjBjJQ>*u zL~S$@N|`A|Pl|722PZcVb~O^$mpNZ9AaYT93ePTsbSpC5DJ%d7Qekx;xE4?$$K%~{ zq|BfS&p~o89w*{S8tbCrULM{}U<`p3q2xgjv&rzUU%t@g*2a81Gmeez@TCPL-Fadd zSF5;KXTiGh$eYBz0&uG!4ry2%#jbQDgX@iG1xrW8yfus4O-EP6u@m*ZJ15p<`8b6hRp^%0d_ zZJxb|AFwKWC%67jlE973+9x>MdvG~9xp-FTZ$%wt$L z((fusa5~xdv4osTW4DXgOPrumIYXt|GgzL7j(*8xe+*VSMDnq;ks8@U{&zFR^TcIz z5z_j|#T3?LfO8_AxHDS<^F?^;-Ve)}8P4@S?^fZzFVpx?$1qsvlm~&Mm3@ww`6-OjOL3S#LWnu9-asOd>hW?ZfJ5phqtCPJl z4m={T-o0z5QGdUB?+T#hJS=R5Egj-&c_|1Trw_%jE{^>RiB2Ap&e9VL;bR0(T}>T@ z*JJQ)5_(5q=_Tw62d7B(2iOFTD@THd?(}47=>q< z4_fGWC-Ju*{jLMKw+>J1sHnpj75`h&H=4+$P@%eIF7IaL+{gHqo@HkbIn#yi99EU0 z!*#=vU=>8>^umEgtT=>q_40qz`yOy~S>Huf?!n7$uyp^QaoLv1J{Q+q{3s$j`p6N( z?-ryCBgf*fCkySx>~~!tnNO3?w=ePH9nR5v;lys_4g+IXM?5@qIbd{*2xO-DtaB&R zZYoD4k#m`m!b+F%C0xU?V*)4qU_2a$&PY&l=c*Qv+$S4l6DLK(r+R#IbutSto5`vS zPK$d$EuHo4)W=S7{}(umo;)H|!qclrh(O{5*f^QG`v_-&Xg|ZlVPPB5YQ?Uj@;vXz zU&=_N)RC_}$ZUZ>SCH2WU;4m$C`fgKUnq7T<=k^k#`3;0f@e+Od_fX;vt7qK;0Dga Fe*=iUs>A>Q diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-08-29.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B14_2018-08-29.tif deleted file mode 100644 index e0ae4fca4194bf68ddb9f3051f0b10365afe7900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-02-02.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-02-02.tif deleted file mode 100644 index db2b111b4763561596b90078e3d61d9333facd33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-02-18.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-02-18.tif deleted file mode 100644 index 37281a1c886b320c4f5e7e9468afc8e3e1357128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 B(R2U+ diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-03-22.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-03-22.tif deleted file mode 100644 index f6ff0593e74110f383b6d3637bd94fe669777806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 DXd$~h diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-04-23.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-04-23.tif deleted file mode 100644 index 99dff130cf7366f40462ba3c5a351d1533ee8743..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 zcmaKwcYIV;7RTQ?Z)h4(vVbBW2o_*f#0n}Qfk+7HlQzkuPG%;VWHRX?Kp+ss&}}pU zQ50NQrKzZkihXr0h`O-oilVqH77#^6QDndO5kDXQTHfc)z3-M&e&=`2y&*Aigw@@$ ztX`HSwk7ng;*~%2wX=T?<927?tn2!RelKx3d)w5q`ut(MZ)e}gJhyYr+&@{?fIqCs z?Ci7E>Um3)Wz!zuZND|j>Pq_)@0JeR^3V=L@z#zgs|Wpk^tW}WRZM>{n`f_6XZ;6! zn}3&&;h#0=lv_5QN{hWWeqq)nR(h;6^?!bzKhi&?OaGj>PwpDiwragE?)RnQ_}9m> zT%co~&Q@L9It+dWM6ph_N%w6XIecj6cUPxfJhXe~caQE{I|Mt=blPs#Sx(Dj)am`& z+1gHfrsZ-Z1*g*7W*Nb-*l1s1F1pQ$l4G zt*utJdNrgo^g|tBKdSR|q0VF^R!8W?dXWy&OLVx_=ullL3*?|g+Z*gJ^@yyHhh?7} zkwfyM^w&#um|m!7=xBXQMBkK8LRI;$Hb>%J*nECOy$Hob`pe#qLnQw&_~^mloLZ z_93o)oT0sS03#P@o8)5sZW*jEO0`Up=j98D z(qH6j`AII&ej3C6$9Wr(uu0$46S^Dkd$IFXX~yzpx?d0LD(%qQv`Nb}TT`+BM>#Ct zAtxRjj>|MD2dz70tIU-=`k#SZ7yW@XU6}8u*J(NX5_OC&&|UhN{-`hMXKLx=>}dk+ zIr^m@(?`&?QY%0&q?7R?N<~k|Nx4i_mr9$glyx$jwp9XB4CXKKekI>ZU+ld?`{VBz z5bF*0_aP^M)){(`U90h<64^)exIT#|3z_q3oc7T!=s1CdpX3)gAdN&|IexTA9Y~c( zj{IF-M8ioLs9Esi1|l*LyDBsf2|+ZbVP_0}J}U3XG`&;bA>PMyk8akxwH6&CL258s zL~Ri5svi>XdfoI3_t7vwC+I$H2jOyh*XagOD%Z31EbR#|uO*^iiUkW+ z>AM90MZby0!7|oYi zXiFg`3uV82fR?Y|)L2lyL{G|1aOOc>4qjvQDy$rcHtlv8Olk-l0WWxipM(&j*k|nWnqf93H-;jYPPvMZlZ8E+zk->+pzR6 zWZ(f1`-p0C9t<6+A8R)|!9GZRxDy>OP{%4XNuQ!ZEXTtz$h-8Y?9|cr2v>}2p6e!8 zgX?xX+U{vLYk(*xlNCXD)rt?bcrh2uuO%b;>pS4FUlguv)dS?2Uk}NfvK{@`qr*)! z7l@Y%SOXJ|$}9AL)Mi(b>rMLy`&WC3y-zKBvIg;C0#T@tsnR5sWJiE#9+pbveusvQ zc+x?2dQJP;QFaSl`~n{`sn*l6;!C13lo*_=>)~dlyiMk=(be{gc9lKP?q}~OLieE| zUapn#QbZjIk{>~$vQ(mVD(pW?cTgoiCreht%^3R>vg@ddwP2Hg7ctbMoidDEsRM~* zo?`g2PS)xp_EvkjJ_Xn3z@!8jjgFgPR0-K$h!;&{N*|3-Ws~(=cyyoam1Qs|#r_3p zL#Q3)Fzq6$$@x^G7i1LtUPXP#27_##BH1O^*k9;!^yd=mco`!jfUCh_}!y;mmhPFh0lhKk#jJ@c|;7LKlINl<%FQ1dS zid+~?W(`AD7plmUoQ`jho2%h=EgV`y{vM=mj;F%@Og){;>@h~~Lt6%@B_c6JQo*N^ z+Tq5lba2Y1oy6=W&h^o7VufshB_^|1z>k@X-wXR1kXKK9Yor~C8zqg%r08a{cQ*NZ z7k3&jUX_(~=^fDd2*<|@=)Cr${O5M8y+09tp#97%$uZ|3@a!$(-W3|K} zOg!SK$OmLPIJKh50~U#3o{U5fT5{-T@)Xm?GGo{^gDO==4*W)SS;mRo#y&q8x&V)s z;z={U2k@f`kHYjkRJ3vMU_PrCBPY#aY&sUZ9qFmG1)!HmrcZE2QzRtE#ngs-L3ky& z%!el-aCw+B;Aya%g}r`!uP1jpz@!h+_ywM(d5uAAUqR4s#tS3EPYMR(AOEAg3eNhK@IfwP{9t#v$BKOv@q^xtO(gA6MT3Y zVSg3l9(;(yn+!bl!j1~=H8a3r8h8|7a|znklE2aVJ$0#^eU%^>VcgW|^=MekNIRab zAX>FxU&vF=?rP+lDpkao@hcg2Wl^toamH?AJ`In{u^>P!r=o8IHXp=~bSkKyT@^?O z!M(%sIBO=cGYm7T&}}MfCG(Yx74z$3bt$sVuX*l~*Wpt=tIciBFggcG^~9Pa;syB z7dFI#LIUd}%;n-k4!uS!E#nEYqq}Y*Bd$k>7dd%YP|TVV^tkb?5X3$7gCOT-x2en? zP&>f+dV)ySF>b1u$yYZX!C%?kl8>ulbgFprL2e2oH_@+5t`Pf;6 zM)L%aZI~O6&3mXNz4cxE%4NjMZxON@SaGAXyNaVjHh8spkDZkBVH8@qVGKB3r zscE_Nr!wNhrcCsD*lQ5*IqSk$5Mrl^U@?Bip*zHB9?vbH!pZ+kVxENk1?($BdKj;R z;8@A77V5xsq!l86rekX^RvB~+$9!n6M|v?Rcvu}_^lEh6j6Ib)ja$A;3)t=Bnaq=l z4@sa^2->Dj`_NO0ga-IM89B3fZlPc1%$ll{@8~E&LlRXi&+)>XPubYsB5|A^%ef6N zLZ@GDl3{4hKwlECVRsf^Ze|Qiy$*}~_*H{c!woO<>G*1TK4kmZlg*pMev{EfSavoi zV2JZ$3Yite!W-mD=TtTsSK&m?u+r$uz;}}`ruH@RX22P9P86cei8Tq0BIcpX4P z5!U694d$*p8^*TaUny}LtGV3pk8`UseA0j=jyRC6`2VRZsw+R`Zi$j z$wXf+TnM7yu-kAy22Zm1GW8>fcP64`oDyFneHo|G{ha@csZ+B#0cZ0Bv7&@5oq*-$ zE>MTpdqKjSccxAl9h1SyWQGr9&1eyiId_v;ZK7wgU?%dObsV^$ZF1q7P2(# zpjN_qbC#LC1?(~G%Hl}{CzDG?n#m3G6?EccDp)R0G7`)U&xfuS+01#i4*4%pQ+9yX zW89@?Ak*wK_p-6rYHqewj*X>`{if>Wfl4ZE8uJr*JghB3dKz*~Mj7^I5RC}vHxgCz zSM*x`9$dw^Ju*Biq#3bjHVl=M4^~2EQ^8uHyBR zOzVAyp*8;I;zboZ8i~m(U}!R}6>pX}e**?C1HAZ#{55eP;E z!37a%8;=&Zv$juNu8Y6-{KrFMYx9z!IX8}V zxvu!$oT8yIOI;VP8RatE|ITOi+EK1y+`r-TNWXEFau3GwzW!0JK*oP%yuV*v)r^B! zyy_lx<{#s`{TC9=KiBwkbL9SW`AN5@Z781TDoAo({hvRFPL9jHV4OGkoh{LQJNDEi ze>YW}_%3$2+^}P>p}V^G_gnrfiQ+ofCjtBWy?oK3@57w?#t8vK-va~o^$R#hI``qO zA2@ejjyk_yhwjF?k94`6`{W73M%i^P*Kp@9t^nt5T!GGAT_c>k+cna;U+^95L+1yP zL-*jJd$w~wI;O~p@93C%dr!KzxHS2`GbaYGyr(0H@6NxjmX_LPe?xC(YEe)gqoDYp z%sE9tVbM`Df;}afnbVx%{%H@&H;v29UnW5f9cQ8RiAIvSh( zc1mW4-`}#hv3@~suPaCEbcw#9@#c&^s*mX7xw_OSMA1dYv}tB)vyEB|sBQ zvq{%J@yXrtwj7sFJ=TonQ{? zpl;P&x>^@#i6-bg^=Xo(YMl0HlD z(Or62FEdT%OI`2YY)Z^W(yHycSdZ#Rb3}LQdZJjXjYN@06tnbNjl|!0Jt;RzsoWw@ zOQ0T*9$6yK$%kU}zan}{exO%tKKORS$$CAgfo7zcZ$_9cTBHA#Kgde$)NcKay3F(X zbA6b3oAJ`FIXW4{@5?!v$-Q3|VR^gUB)3UD-g05-eK{lFh^px2_()Jc*jDHceUVuA z>kGOK8yDynkS*6P-L9YN2y>Kt9MQcXxn9%p5U3~Qg#25^=oy*M^)p!}i}6$<$&xB> z%CqvW{9V2!lBqgFqxDjq$+|FnZP(eFp;`KtekpgzVQJQ-`hi|Lf?a)Q)#z_0syHd(dJ9Z@Gyu+~>lJW4 z6I&B>we;ZmN>gAW(DUsmY$+KJ1wlO5M7;#Iv$Pu@E%GpY`6Nlg(b%9IlS6V;+-PbV z_D;!kXf#b1gcbROWVrH1p<|93%x8b9Os6(`jmBFA1(J^`!+l{hW z4p76{5+_#?Q;+-}^}bEc$7wM$Cs6BgsD6&#hmu}_$6vAHHe!83R?Cz6iB_3!QFDd1 zX*O1a(MdYKVlh6r{i@tJU5GnK9U7ncS?<sq|LDgTf?#C%#WHmCJw6xf0?9@k^K!Q5qfOri*s-eq8>EvZkZZ4`sHV)*usLeu$6TWvl!WWm~m9iO%=x zM(m%)=Lva0FEyW=U${Hn-R@`1PIINX%sixNC^sIxcB89$D$x2^Oc(MH!CCnTKOf6w zRPMucq<^5<fwcHHo zFY$bhjFr)H32`LIb@)jj=gDyONA|W#SYD(*(LL1U06EVzK_*~Qf2kukD3G*9$hkfT=z1p;4^G)8a2In<8jGp~5{h*nCG(y|Z{_RA(5XE%R zFKnK};3|SHn~Udse1`Ka3Ln{2`yTSRofwu<*}3TG6S~2FB#1uv8t>Mj?LlgEKk*)= zifXCtt8^zj&?x>6kdIE{i37Lo=cVwUK?YJB=Hlpxv+%Wynu`G2Mf$qzV$DWYt-|uH zXl#J)R*j8L`hsO=HRyf#4xyz)qVRfVmyo>@;%%ivuK~e2DtRJ0wfj&e*7LBLz?F)R zD49-vQdlvE=-!nMcGtUPJw0q2_B*8eKP6woS0A0ak^b3< z_jYnQUf)G+53wH{hOKZcBs(>b$yzV-YT1|a$a1nwA;u|OKY__pvXRr;UNGMb>Uqqm zee}FPv-iG_k52M24<52$y_je>qv!{*bvJ5jakA{iW(lJzR{OzN z2fuls&m>d9;8-QY^%?B=d0q|gMZ~+Fn08|0RXGAbi3f@b`ozfD@u4?%04{kTz8Nmi>i%z1=z?Ylhf&2 zopi(q@>$MoFR1cZ)6P}tH6z8xL= zvDXBOa!y(w!`gIK7xFgN!EGbSa=4n~SS^N+2K<)t%<{NMehn+P$QtZqqUV^Q?A3rN zjl31%p`8`g_%Goa!7guWcP`@$KE+P=D0I|oJE6zf`AUhz<~`5({vK*f;1u{%o_4{A z)piS7@?j+sWtI`)c@KpkD4>HJCIbb`ZDvM2pL`<9g~d6H?C$LYe*xC&;5G#`k!WKU zXP1e3gv?mYRq(gc$xjLq#Suph5jG9su9PtS4Rh{iN7#t1YW$aDwUB5^!Bg#IXaOtc zI+0|e9=P>*uwlOu$1!7TC{4a z;;O}m2X>e9tdXqGM!mKVOyabcrp-KwaaWTZt&6Qo3~|zvFg-vWCpr-7Oy!6-1K-pJ@(Pjl3-e z-_7(Gi|KQfRVIh{Q@RH9}2Wb4QQ93a)DWCgURkd{!fw zjyk>I@Uqs2&8;xi#Pw6IPJET(Bb~Q?;w)!P32M&6Mwdr-n@lO0cc<^C89F#36_aG%@;92Ro%5QF}`3w?HRR5A^J(}zf9lJHg=}!xSZsCJ(~pl_6k)HK zT%=$xjAw=PpcP!HM6&>OL~+`#(Py=u9b}M94zM@%bC$UWKXsspK?RXu^$~>+bg?{1 zgy&q|MWDkvqWAF5`mmf?zq7GiPGm`Vt>V|_U$~y2`e7>a4!rc!YnRa>8^}Qd zmSXWSkJaRRV<9`#lwB_0Kc9eW%MB9 z_2i<`VWki>8P1t9n)H`@Ke)`Jhen|R}8UO74a89VA; zcC|0~ZT=a%#STv6TdC4&=0&*I2nY(rq4kTON6%8 z)49rE%<-pL1oouS0MdB8q`_7w zCzD{1L^DpuR|7K=sT^DVK30_y`wF<(K#zNyJ+_T~`~&vc#mp#0Qwa`2n|-S}+gI{n z#h%oP@i7}FeUA02OugNn?$3B57p(T6v7K!nZPv9c2mcvz^*liQ*18>i!>U|9&|D diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-05-25.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-05-25.tif deleted file mode 100644 index 4c44a6170614696e091c0d6fe6e85a613fdea27d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-06-10.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-06-10.tif deleted file mode 100644 index ed799d45c62b82468d610c93098d8c70e43af870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 RRe+;5cN%G5_}rOa{tx$!d=CHs diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-06-26.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-06-26.tif deleted file mode 100644 index c5e8471f0ea557f580f41df477f7bd3127229480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 DfKzgm diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-08-13.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B15_2018-08-13.tif deleted file mode 100644 index 540b984a23bbfa6ee61e8b30b75b1f8fc3bfcd85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-03-22.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-03-22.tif deleted file mode 100644 index eb45df6046515c36bb9be33fedfaca8965db4aca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 D(m$VK diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-05-09.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-05-09.tif deleted file mode 100644 index 8811dd008c99389bee1864acb291b98fdcf21a23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 MEt}|GbX$7=1)zeFvH$=8 diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-06-10.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-06-10.tif deleted file mode 100644 index 07702b9385953d125055a269fa5133b6cc63d250..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 C3%J<; diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-07-12.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_B16_2018-07-12.tif deleted file mode 100644 index 6e8eb4dc8aab7b4f225146129d65d6b3c79cc458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 d9{9=3>|YP>&4sh6_DOl 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 H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-02-18.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-02-18.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-03-06.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-03-06.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-03-22.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-03-22.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-04-07.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-04-07.tif deleted file mode 100644 index 2464e1aa039614d509830a79b73e967d660aad87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmebD)MDUZU|-qGR53%@Aa!g=Y(YjAu--~01_n_iaWN64@5r`lx7Cg+zc#WT2q;g2c(aIfgMaUGH`%tW(H0$ z&BVY3rdb%c!89w(*#{sDGbpVArMRKpK=-M!{$ZjE2By2#kinXb6mk Nz-S1Jh5#uc006IbUoijx diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-04-23.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-04-23.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-05-09.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-05-09.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-05-25.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-05-25.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-06-10.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-06-10.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-06-26.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-06-26.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-07-12.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-07-12.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-07-28.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-07-28.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-08-13.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-08-13.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-08-29.tif b/inst/extdata/raster/cbers/CBERS-4_AWFI_022024_CMASK_2018-08-29.tif deleted file mode 100644 index 9ccab5b840ee2303c7a0efe1f18711e27700281a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH@Jxc>Y5Qb;(F3H85f&mr$z@Q+BSg4?wLP$_Kf~X;hl1`!q44PA-L46l^8D4eFh>mv8-HHYCu0iqAu ziFjx<`xQZz7yykJ8TJ~y55Pxcpc7T_6BTG9Y7iiLTEG3=6w`uX!A0V0FirEl1~)ll z_nB<`;pg*upjwJyPG8xwa>e|XZO)}b%cw%LAv2W@O+;tL!--YX93vUA=W~bUA|95l z9c%B%vKMxD3;PFqg{@}8%($H_6^eOYVwUoG>!`4~ZQHF^B&7q=0qKBrKsq2DkPb)( H{*eQ}ifvyl diff --git a/tests/testthat/test-cube.R b/tests/testthat/test-cube.R index 04f065747..53b308758 100644 --- a/tests/testthat/test-cube.R +++ b/tests/testthat/test-cube.R @@ -45,16 +45,16 @@ test_that("Reading a raster cube", { }) test_that("Creating a raster stack cube and selecting bands", { - # Create a raster cube based on CBERS data - data_dir <- system.file("extdata/raster/cbers", package = "sits") + # Create a raster cube based on MODIS data + data_dir <- system.file("extdata/raster/mod13q1", package = "sits") # create a raster cube file based on the information about the files - cbers_cube <- tryCatch({ + modis_cube <- tryCatch({ sits_cube( source = "LOCAL", name = "022024", origin = "BDC", - collection = "CB4_64-1", + collection = "MOD13Q1-6", data_dir = data_dir, delim = "_", parse_info = c("X1", "X2", "tile", "band", "date") @@ -64,19 +64,19 @@ test_that("Creating a raster stack cube and selecting bands", { return(NULL) }) - testthat::skip_if(purrr::is_null(cbers_cube), + testthat::skip_if(purrr::is_null(modis_cube), message = "LOCAL cube not found") - expect_true(all(sits_bands(cbers_cube) %in% - c("B13", "B14", "B15", "B16", "CLOUD"))) - rast <- .raster_open_rast(cbers_cube$file_info[[1]]$path[[1]]) - expect_true(.raster_nrows(rast) == cbers_cube$nrows[[1]]) - timeline <- sits_timeline(cbers_cube) - expect_true(timeline[1] == "2018-02-02") + expect_true(all(sits_bands(modis_cube) %in% + c("EVI", "NDVI"))) + rast <- sits:::.raster_open_rast(modis_cube$file_info[[1]]$path[[1]]) + expect_true(sits:::.raster_nrows(rast) == modis_cube$nrows[[1]]) + timeline <- sits_timeline(modis_cube) + expect_true(timeline[1] == "2013-09-14") - cbers_cube_b13 <- sits_select(cbers_cube, bands = "B13") - expect_true(all(sits_bands(cbers_cube_b13) == c("B13"))) + modis_cube_evi <- sits_select(modis_cube, bands = "EVI") + expect_true(all(sits_bands(modis_cube_evi) == c("EVI"))) }) test_that("Creating cubes from BDC", { @@ -381,14 +381,14 @@ test_that("Creating cubes from classified images", { }) test_that("Cube copy", { - data_dir <- system.file("extdata/raster/cbers", package = "sits") + data_dir <- system.file("extdata/raster/mod13q1", package = "sits") - cbers_022024 <- tryCatch({ + modis_cube <- tryCatch({ sits_cube( source = "LOCAL", - name = "cbers_022024", + name = "modis_sinop", origin = "BDC", - collection = "CB4_64-1", + collection = "MOD13Q1-6", data_dir = data_dir, parse_info = c("X1", "X2", "tile", "band", "date") ) @@ -397,56 +397,24 @@ test_that("Cube copy", { return(NULL) }) - testthat::skip_if(purrr::is_null(cbers_022024), + testthat::skip_if(purrr::is_null(modis_cube), message = "LOCAL cube not found") - bbox <- sits_bbox(cbers_022024) + bbox <- sits_bbox(modis_cube) x_size <- bbox["xmax"] - bbox["xmin"] bbox["xmax"] <- bbox["xmin"] + x_size / 2 - cbers_022024_copy <- sits_cube_copy(cbers_022024, - name = "cb_022024_cp", + modis_cube_copy <- suppressWarnings(sits_cube_copy(modis_cube, + name = "modis_cube_cp", dest_dir = tempdir(), - bands = "B13", + bands = "EVI", roi = bbox - ) - expect_true(sits_bands(cbers_022024_copy) == "B13") - expect_true(cbers_022024_copy$ncols == 26) - expect_true(cbers_022024_copy$xmin == cbers_022024$xmin) - expect_true(all(sits_timeline(cbers_022024_copy) == - sits_timeline(cbers_022024))) -}) - -test_that("Creating a raster stack cube and renaming bands", { - # Create a raster cube based on CBERS data - data_dir <- system.file("extdata/raster/cbers", package = "sits") - - # create a raster cube file based on the information about the files - cbers_cube2 <- tryCatch({ - sits_cube( - source = "LOCAL", - name = "022024", - origin = "BDC", - collection = "CB4_64-1", - data_dir = data_dir, - delim = "_", - parse_info = c("X1", "X2", "tile", "band", "date") - ) - }, - error = function(e) { - return(NULL) - }) - - testthat::skip_if(purrr::is_null(cbers_cube2), - message = "LOCAL cube not found") - - expect_true(all(sits_bands(cbers_cube2) %in% - c("B13", "B14", "B15", "B16", "CLOUD"))) - sits_bands(cbers_cube2) <- c("BAND13", "BAND14", "BAND15", - "BAND16", "CLOUD") - expect_true(all(sits_bands(cbers_cube2) %in% - c("BAND13", "BAND14", "BAND15", "BAND16", "CLOUD"))) - + )) + expect_true(sits_bands(modis_cube_copy) == "EVI") + expect_true(modis_cube_copy$ncols == 254) + expect_true(modis_cube_copy$xmin == modis_cube$xmin) + expect_true(all(sits_timeline(modis_cube_copy) == + sits_timeline(modis_cube))) }) test_that("Creating a raster stack cube with BDC band names", { From 03189e857cb4993b111d5d0bc2323fba6745b086 Mon Sep 17 00:00:00 2001 From: Gilberto Camara Date: Fri, 24 Sep 2021 10:40:24 -0300 Subject: [PATCH 17/45] Adjustments to remove CBERS raster data from sits --- R/sits_view.R | 1 - man/sits_cube.Rd | 10 +++++----- man/sits_cube_copy.Rd | 12 ++++++------ man/sits_view.Rd | 14 ++++++++------ tests/testthat/test-cube.R | 6 +++--- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/R/sits_view.R b/R/sits_view.R index 6aabc794f..de480afe2 100644 --- a/R/sits_view.R +++ b/R/sits_view.R @@ -30,7 +30,6 @@ #' parse_info = c("X1", "X2", "tile", "band", "date") #' ) #' -#' ) #' # plot the data cube #' sits_view(modis_cube, red = "EVI", green = "NDVI", blue = "EVI", time = 1) #' } diff --git a/man/sits_cube.Rd b/man/sits_cube.Rd index fc4817bff..ba369e6e3 100644 --- a/man/sits_cube.Rd +++ b/man/sits_cube.Rd @@ -299,14 +299,14 @@ s2_cube <- sits_cube(source = "AWS", s2_resolution = 20 ) -# --- Create a cube based on a stack of CBERS data -data_dir <- system.file("extdata/raster/cbers", package = "sits") +# --- Create a cube based on a local MODIS data +data_dir <- system.file("extdata/raster/mod13q1", package = "sits") -cbers_cube <- sits_cube( +modis_cube <- sits_cube( source = "LOCAL", - name = "022024", + name = "modis_sinop", origin = "BDC", - collection = "CB4_64-1", + collection = "MOD13Q1-6", data_dir = data_dir, delim = "_", parse_info = c("X1", "X2", "tile", "band", "date") diff --git a/man/sits_cube_copy.Rd b/man/sits_cube_copy.Rd index b1cfcdcc3..46827452a 100644 --- a/man/sits_cube_copy.Rd +++ b/man/sits_cube_copy.Rd @@ -29,20 +29,20 @@ a box in lat-long coordinates ("lon_min", "lon_max", "lat_min", "lat_max"). } \examples{ \donttest{ -data_dir <- system.file("extdata/raster/cbers", package = "sits") +data_dir <- system.file("extdata/raster/mod13q1", package = "sits") -cbers_022024 <- sits_cube( +modis_cube <- sits_cube( source = "LOCAL", - name = "cbers_022024", + name = "modis_sinop", origin = "BDC", - collection = "CB4_64-1", + collection = "MOD13Q1-6", band = "NDVI", data_dir = data_dir, parse_info = c("X1", "X2", "tile", "band", "date") ) -cbers_022024_copy <- sits_cube_copy(cbers_022024, - name = "cb_022024_cp", +modis_cube_copy <- sits_cube_copy(modis_cube, + name = "modis_sinop_cp", dest_dir = tempdir() ) } diff --git a/man/sits_view.Rd b/man/sits_view.Rd index 2ac91fe10..dda72f70b 100644 --- a/man/sits_view.Rd +++ b/man/sits_view.Rd @@ -39,19 +39,21 @@ Uses mapview to visualize raster cube and classified images } \examples{ \donttest{ -data_dir <- system.file("extdata/raster/cbers", package = "sits") +data_dir <- system.file("extdata/raster/mod13q1", package = "sits") -cbers_022024 <- sits_cube( +modis_cube <- sits_cube( source = "LOCAL", - name = "cbers_022024", + name = "modis_sinop", origin = "BDC", - collection = "CB4_64-1", - resolution = 64, + collection = "MOD13Q1-6", + band = "NDVI", data_dir = data_dir, parse_info = c("X1", "X2", "tile", "band", "date") ) + +) # plot the data cube -sits_view(cbers_022024, red = "B15", green = "B16", blue = "B13", time = 1) +sits_view(modis_cube, red = "EVI", green = "NDVI", blue = "EVI", time = 1) } } diff --git a/tests/testthat/test-cube.R b/tests/testthat/test-cube.R index 53b308758..3da4cd98b 100644 --- a/tests/testthat/test-cube.R +++ b/tests/testthat/test-cube.R @@ -225,9 +225,9 @@ test_that("Merging cubes", { sits_cube( source = "LOCAL", name = "sinop-2014", - satellite = "TERRA", - sensor = "MODIS", + origin = "BDC", bands = "NDVI", + collection = "MOD13Q1-6", data_dir = data_dir, delim = "_", parse_info = c("X1", "X2", "tile", "band", "date") @@ -411,7 +411,7 @@ test_that("Cube copy", { roi = bbox )) expect_true(sits_bands(modis_cube_copy) == "EVI") - expect_true(modis_cube_copy$ncols == 254) + expect_true(modis_cube_copy$ncols == 128) expect_true(modis_cube_copy$xmin == modis_cube$xmin) expect_true(all(sits_timeline(modis_cube_copy) == sits_timeline(modis_cube))) From ea24a1bd167401fda194b8aac5c4b3457e5c9534 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sat, 25 Sep 2021 21:10:38 -0300 Subject: [PATCH 18/45] Solve #379 --- R/sits_select.R | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/R/sits_select.R b/R/sits_select.R index f23940c2f..f2f85c796 100644 --- a/R/sits_select.R +++ b/R/sits_select.R @@ -42,24 +42,35 @@ sits_select.sits <- function(data, bands) { # bands names in SITS are uppercase bands <- toupper(bands) sits_bands(data) <- toupper(sits_bands(data)) + data_bands <- sits_bands(data) .check_chr_within( x = bands, within = sits_bands(data), - msg = paste("missing bands:", - paste(bands[!bands %in% sits_bands(data)], - collapse = ", ")) + msg = paste("Invalid bands values") ) - # prepare result sits tibble - result <- data + # make sure that nesting operation (bellow) will be done correctly + data[["..row_id"]] <- seq_len(nrow(data)) - # select the chosen bands for the time series - result$time_series <- data$time_series %>% - purrr::map(function(ts) ts[, c("Index", bands)]) + # unnest bands + data <- tidyr::unnest(data, cols = "time_series") - # return the result - return(result) + # select anything other than non selected bands + removed_bands <- paste0(setdiff(data_bands, bands)) + + data <- data[, setdiff(colnames(data), removed_bands)] + + # nest again + data <- tidyr::nest(data, time_series = dplyr::all_of(c("Index", bands))) + + # remove ..row_id + data <- dplyr::select(data, -"..row_id") + + # set sits tibble class + class(data) <- c("sits", class(data)) + + return(data) } #' @export From 0b0850066569e920527b671cc21b3440688c6ab0 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sat, 25 Sep 2021 21:10:58 -0300 Subject: [PATCH 19/45] Solve #380 --- R/sits_bands.R | 2 +- R/sits_bands_set.R | 41 ++++++++++++++++++++++++++++------------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/R/sits_bands.R b/R/sits_bands.R index 839a6136b..09ee2ba60 100644 --- a/R/sits_bands.R +++ b/R/sits_bands.R @@ -35,7 +35,7 @@ sits_bands <- function(x) { #' sits_bands.sits <- function(x) { - return(names(sits_time_series(x))[-1]) + return(setdiff(names(sits_time_series(x)), "Index")) } #' @export diff --git a/R/sits_bands_set.R b/R/sits_bands_set.R index 0cb872d92..4b21b2dbe 100644 --- a/R/sits_bands_set.R +++ b/R/sits_bands_set.R @@ -21,23 +21,38 @@ # set caller to show in errors .check_set_caller("sits_bands") - # get the time series - ts <- sits_time_series(x) - .check_that( - x = ncol(ts) == length(value) + 1, - msg = "invalid number of bands to be replaced") + # get the data bands + data_bands <- sits_bands(x) - # change band names for all rows of the tibble - rows <- slider::slide(x, function(row) { - ts <- sits_time_series(row) - names(ts) <- c("Index", value) - row$time_series[[1]] <- ts - return(row) - }) - x <- dplyr::bind_rows(rows) + .check_chr(value, allow_empty = FALSE, len_min = length(data_bands), + len_max = length(data_bands), + msg = "Invalid bands values to be replaced") + + # create an row_id to use later in nest + x[["..row_id"]] <- seq_len(nrow(x)) + + # unnest bands + x <- tidyr::unnest(x, cols = "time_series") + + # here, you could pass a function to process fast + new_bands <- colnames(x) + names(new_bands) <- new_bands + + new_bands[data_bands] <- toupper(value) + colnames(x) <- unname(new_bands) + + # nest again + x <- tidyr::nest(x, time_series = c("Index", toupper(value))) + + # remove ..row_id + x <- dplyr::select(x, -"..row_id") + + # set sits tibble class + class(x) <- c("sits", class(x)) return(x) } + #' @export #' `sits_bands<-.cube` <- function(x, value) { From bb9a5d1b6fc8db454dad3734248d4b6ca3ddd5a0 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sat, 25 Sep 2021 22:11:13 -0300 Subject: [PATCH 20/45] Closes #382 --- R/sits_som.R | 55 ++++++++++++++++------------------------------------ 1 file changed, 17 insertions(+), 38 deletions(-) diff --git a/R/sits_som.R b/R/sits_som.R index 023f25640..886dd1609 100644 --- a/R/sits_som.R +++ b/R/sits_som.R @@ -279,7 +279,6 @@ sits_som_map <- function(data, #' new_samples <- sits_som_clean_samples(som_map) #' } #' @export - sits_som_clean_samples <- function(som_map, prior_threshold = 0.6, posterior_threshold = 0.6, @@ -299,43 +298,23 @@ sits_som_clean_samples <- function(som_map, msg = "invalid keep parameter" ) - # original_samples - data <- som_map$data - - # obtain the evaluation for each sample - eval_lst <- slider::slide(data, function(row) { - neuron_id <- row$id_neuron - sample_probs <- - som_map$labelled_neurons %>% - dplyr::filter(id_neuron == neuron_id) %>% - dplyr::filter(label_samples == row$label) - if (sample_probs$prior_prob >= prior_threshold & - sample_probs$post_prob >= posterior_threshold) { - return("clean") - } else { - if (sample_probs$prior_prob >= prior_threshold & - sample_probs$post_prob < posterior_threshold) { - return("analyze") - } else { - return("remove") - } - } - }) - data$eval <- unlist(eval_lst) - - # obtain the posterior probability for each sample - post_probs <- slider::slide(data, function(row) { - neuron_id <- row$id_neuron - sample_prob <- - som_map$labelled_neurons %>% - dplyr::filter(id_neuron == neuron_id) %>% - dplyr::filter(label_samples == row$label) - - return(sample_prob$post_prob) - }) - data$post_prob <- unlist(post_probs) - - data <- dplyr::filter(data, eval %in% keep) + # function to detect of class noise + .detect_class_noise <- function(prior_prob, post_prob) { + ifelse( + prior_prob >= prior_threshold & + post_prob >= posterior_threshold, "clean", + ifelse( + prior_prob >= prior_threshold & + post_prob < posterior_threshold, "analyze", "remove")) + } + + data <- som_map$data %>% + dplyr::inner_join(som_map$labelled_neurons, + by = c("id_neuron", "label" = "label_samples")) %>% + dplyr::mutate(eval = .detect_class_noise(prior_prob, post_prob)) %>% + dplyr::select(-count, -prior_prob) %>% + dplyr::filter(eval %in% keep) + return(data) } From 0eb40083ad6949d3fa825123f51cc664cfa2ceee Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 05:09:18 +0000 Subject: [PATCH 21/45] introduces support to open data --- DESCRIPTION | 1 + NAMESPACE | 11 +++ R/sits_cube.R | 46 +++++++++++ R/sits_source_api_awsod.R | 163 ++++++++++++++++++++++++++++++++++++++ inst/extdata/config.yml | 163 +++++++++++++++++++++++++++++++++++++- man/sits_cube.Rd | 14 ++++ man/sits_view.Rd | 1 - 7 files changed, 397 insertions(+), 2 deletions(-) create mode 100644 R/sits_source_api_awsod.R diff --git a/DESCRIPTION b/DESCRIPTION index 66f8795ec..4772958be 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -152,6 +152,7 @@ Collate: 'sits_som.R' 'sits_source_api.R' 'sits_source_api_aws.R' + 'sits_source_api_awsod.R' 'sits_source_api_bdc.R' 'sits_source_api_deafrica.R' 'sits_source_api_local.R' diff --git a/NAMESPACE b/NAMESPACE index 30c152bff..5ce5fe45c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -72,18 +72,22 @@ S3method(.source_cube,satveg_cube) S3method(.source_cube,stac_cube) S3method(.source_cube,wtss_cube) S3method(.source_item_get_bands,aws_cube) +S3method(.source_item_get_bands,awsod_cube) S3method(.source_item_get_bands,bdc_cube) S3method(.source_item_get_bands,deafrica_cube) S3method(.source_item_get_bands,usgs_cube) S3method(.source_item_get_date,aws_cube) +S3method(.source_item_get_date,awsod_cube) S3method(.source_item_get_date,bdc_cube) S3method(.source_item_get_date,deafrica_cube) S3method(.source_item_get_date,usgs_cube) S3method(.source_item_get_hrefs,aws_cube) +S3method(.source_item_get_hrefs,awsod_cube) S3method(.source_item_get_hrefs,bdc_cube) S3method(.source_item_get_hrefs,deafrica_cube) S3method(.source_item_get_hrefs,usgs_cube) S3method(.source_item_get_resolutions,aws_cube) +S3method(.source_item_get_resolutions,awsod_cube) S3method(.source_item_get_resolutions,bdc_cube) S3method(.source_item_get_resolutions,deafrica_cube) S3method(.source_item_get_resolutions,usgs_cube) @@ -94,27 +98,33 @@ S3method(.source_items_cube,wtss_cube) S3method(.source_items_fileinfo,stac_cube) S3method(.source_items_fileinfo,wtss_cube) S3method(.source_items_new,aws_cube) +S3method(.source_items_new,awsod_cube) S3method(.source_items_new,bdc_cube) S3method(.source_items_new,deafrica_cube) S3method(.source_items_new,usgs_cube) S3method(.source_items_new,wtss_cube) S3method(.source_items_tile_get_bbox,aws_cube) +S3method(.source_items_tile_get_bbox,awsod_cube) S3method(.source_items_tile_get_bbox,bdc_cube) S3method(.source_items_tile_get_bbox,deafrica_cube) S3method(.source_items_tile_get_bbox,usgs_cube) S3method(.source_items_tile_get_crs,aws_cube) +S3method(.source_items_tile_get_crs,awsod_cube) S3method(.source_items_tile_get_crs,bdc_cube) S3method(.source_items_tile_get_crs,deafrica_cube) S3method(.source_items_tile_get_crs,usgs_cube) S3method(.source_items_tile_get_name,aws_cube) +S3method(.source_items_tile_get_name,awsod_cube) S3method(.source_items_tile_get_name,bdc_cube) S3method(.source_items_tile_get_name,deafrica_cube) S3method(.source_items_tile_get_name,usgs_cube) S3method(.source_items_tile_get_size,aws_cube) +S3method(.source_items_tile_get_size,awsod_cube) S3method(.source_items_tile_get_size,bdc_cube) S3method(.source_items_tile_get_size,deafrica_cube) S3method(.source_items_tile_get_size,usgs_cube) S3method(.source_items_tiles_group,aws_cube) +S3method(.source_items_tiles_group,awsod_cube) S3method(.source_items_tiles_group,bdc_cube) S3method(.source_items_tiles_group,deafrica_cube) S3method(.source_items_tiles_group,usgs_cube) @@ -140,6 +150,7 @@ S3method(sits_bbox,sits) S3method(sits_classify,raster_cube) S3method(sits_classify,sits) S3method(sits_cube,aws_cube) +S3method(sits_cube,awsod_cube) S3method(sits_cube,bdc_cube) S3method(sits_cube,deafrica_cube) S3method(sits_cube,default) diff --git a/R/sits_cube.R b/R/sits_cube.R index a4a3ba9d9..35b7bdb2b 100755 --- a/R/sits_cube.R +++ b/R/sits_cube.R @@ -421,6 +421,52 @@ sits_cube.aws_cube <- function(source = "AWS", ..., s2_resolution = s2_resolution) } +#' @rdname sits_cube +#' +#' @export +sits_cube.awsod_cube <- function(source = "AWSOD", ..., + name = "awsod_cube", + url = NULL, + collection = "sentinel-s2-l2a-cogs", + tiles = NULL, + bands = NULL, + roi = NULL, + start_date = NULL, + end_date = NULL) { + + + # collection name is upper case + collection <- toupper(collection) + + # suite of checks to verify collection parameter + .check_collection(source = source, + collection = collection) + + if (is.null(bands)) + bands <- .source_bands(source = source, + collection = collection) + + # Pre-condition - checks if the bands are supported by the collection + .check_bands(source = source, + collection = collection, + bands = bands) + + # dry run to verify if service is running + .source_access_test(source = source, + collection = collection, ..., + bands = bands) + + # builds a sits data cube + .source_cube(source = source, + collection = collection, + name = name, + bands = bands, + tiles = tiles, + bbox = roi, + start_date = start_date, + end_date = end_date, ...) +} + #' @rdname sits_cube #' @keywords internal sits_cube.usgs_cube <- function(source = "USGS", ..., diff --git a/R/sits_source_api_awsod.R b/R/sits_source_api_awsod.R new file mode 100644 index 000000000..43ae65998 --- /dev/null +++ b/R/sits_source_api_awsod.R @@ -0,0 +1,163 @@ +#' @keywords internal +#' @export +.source_item_get_date.awsod_cube <- function(source, + item, ..., + collection = NULL) { + item[[c("properties", "datetime")]] +} + +#' @keywords internal +#' @export +.source_item_get_hrefs.awsod_cube <- function(source, + item, ..., + collection = NULL) { + + href <- unname(purrr::map_chr(item[["assets"]], `[[`, "href")) + + # add gdal vsi in href urls + return(.stac_add_gdal_vsi(href)) +} + +#' @keywords internal +#' @export +.source_item_get_bands.awsod_cube <- function(source, + item, ..., + collection = NULL) { + names(item[["assets"]]) +} + +#' @keywords internal +#' @export +.source_item_get_resolutions.awsod_cube <- function(source, + item, ..., + collection = NULL) { + + res <- .source_bands_resolutions( + source = source, + collection = collection, + bands = .source_item_get_bands(source = source, + item = item) + ) + + unlist(res) +} + +#' @keywords internal +#' @export +.source_items_new.awsod_cube <- function(source, + collection, ..., + stac_query, + tiles = NULL) { + + # set caller to show in errors + .check_set_caller(".source_items_new.awsod_cube") + + # if specified, a filter per tile is added to the query + if (!is.null(tiles)) { + sep_tile <- .aws_tiles(tiles) + + stac_query <- + rstac::ext_query(q = stac_query, + "sentinel:utm_zone" %in% sep_tile$utm_zone, + "sentinel:latitude_band" %in% sep_tile$lat_band, + "sentinel:grid_square" %in% sep_tile$grid_square) + } + + # making the request + items_info <- rstac::post_request(q = stac_query, ...) + + # check if matched items + .check_that( + x = rstac::items_matched(items_info) > 0, + msg = "no items matched the query criteria." + ) + + # if more than 2 times items pagination are found the progress bar + # is displayed + pgr_fetch <- rstac::items_matched(items_info) > 2 * .config_rstac_limit() + + # fetching all the metadata + items_info <- rstac::items_fetch(items = items_info, progress = pgr_fetch) + + return(items_info) +} + +#' @keywords internal +#' @export +.source_items_tiles_group.awsod_cube <- function(source, + items, ..., + collection = NULL) { + + # store tile info in items object + items$features <- purrr::map(items$features, function(feature) { + feature$properties$tile <- paste0( + feature$properties[["sentinel:utm_zone"]], + feature$properties[["sentinel:latitude_band"]], + feature$properties[["sentinel:grid_square"]]) + + feature + }) + + rstac::items_group(items, field = c("properties", "tile")) +} + +#' @keywords internal +#' @export +.source_items_tile_get_crs.awsod_cube <- function(source, + tile_items, ..., + collection = NULL) { + + # format collection crs + crs <- .sits_proj_format_crs( + tile_items[["features"]][[1]][[c("properties", "proj:epsg")]] + ) + + return(crs) +} + +#' @keywords internal +#' @export +.source_items_tile_get_name.awsod_cube <- function(source, + tile_items, ..., + collection = NULL) { + + tile_items[["features"]][[1]][[c("properties", "tile")]] +} + +#' @keywords internal +#' @export +.source_items_tile_get_bbox.awsod_cube <- function(source, + tile_items, ..., + collection = NULL) { + + + href <- .source_item_get_hrefs(source = source, + item = tile_items[["features"]][[1]], ..., + collection = collection) + + # read the first image and obtain the size parameters + params <- .raster_params_file(href) + + bbox <- c(xmin = params[["xmin"]], ymin = params[["ymin"]], + xmax = params[["xmax"]], ymax = params[["ymax"]]) + + return(bbox) +} + +#' @keywords internal +#' @export +.source_items_tile_get_size.awsod_cube <- function(source, + tile_items, ..., + collection = NULL) { + + href <- .source_item_get_hrefs(source = source, + item = tile_items[["features"]][[1]], ..., + collection = collection) + + # read the first image and obtain the size parameters + params <- .raster_params_file(href) + + size <- c(nrows = params[["nrows"]], ncols = params[["ncols"]]) + + return(size) +} diff --git a/inst/extdata/config.yml b/inst/extdata/config.yml index 2ad87914e..c3d9d6fd2 100644 --- a/inst/extdata/config.yml +++ b/inst/extdata/config.yml @@ -569,7 +569,7 @@ sources: service : "STAC" url : "https://earth-search.aws.element84.com/v0/" collections : - SENTINEL-S2-L2A : + SENTINEL-S2-L2A : bands : B01 : &aws_msi_60m missing_value: -9999 @@ -651,6 +651,167 @@ sources: AWS_DEFAULT_REGION : "eu-central-1" AWS_S3_ENDPOINT : "s3.amazonaws.com" AWS_REQUEST_PAYER : "requester" + SENTINEL-S2-L2A-COGS : + bands : + B01 : &aws_cog_msi_60m + missing_value: -9999 + minimum_value: 0 + maximum_value: 10000 + scale_factor : 0.0001 + offset_value : 0 + resampling : "bilinear" + resolutions : [60] + band_name : "B01" + B02 : &aws_cog_msi_10m + missing_value: -9999 + minimum_value: 0 + maximum_value: 10000 + scale_factor : 0.0001 + offset_value : 0 + resampling : "bilinear" + resolutions : [10] + band_name : "B02" + B03 : + <<: *aws_cog_msi_10m + band_name : "B03" + B04 : + <<: *aws_cog_msi_10m + band_name : "B04" + B05 : &aws_cog_msi_20m + missing_value: -9999 + minimum_value: 0 + maximum_value: 10000 + scale_factor : 0.0001 + offset_value : 0 + resampling : "bilinear" + resolutions : [20] + band_name : "B05" + B06 : + <<: *aws_cog_msi_20m + band_name : "B06" + B07 : + <<: *aws_cog_msi_20m + band_name : "B07" + B08 : + <<: *aws_cog_msi_10m + band_name : "B08" + B8A : + <<: *aws_cog_msi_20m + band_name : "B8A" + B09 : + <<: *aws_cog_msi_60m + band_name : "B09" + B11 : + <<: *aws_cog_msi_20m + band_name : "B11" + B12 : + <<: *aws_cog_msi_20m + band_name : "B12" + CLOUD : + bit_mask : FALSE + band_name : "SCL" + values : + 0 : "missing_data" + 1 : "defective pixel" + 2 : "shadows" + 3 : "cloud shadows" + 4 : "vegetation" + 5 : "non-vegetated" + 6 : "water" + 7 : "unclassified" + 8 : "cloud medium" + 9 : "cloud high" + 10 : "thin cirrus" + 11 : "snow or ice" + interp_values: [0, 1, 2, 3, 8, 9, 10, 11] + resampling : "near" + resolutions : [20, 60] + satellite : "SENTINEL-2" + sensor : "MSI" + collection_name: "sentinel-s2-l2a-cogs" + AWSOD : + s3_class : ["awsod_cube", "stac_cube", "raster_cube"] + service : "STAC" + url : "https://earth-search.aws.element84.com/v0/" + collections : + SENTINEL-S2-L2A-COGS : + bands : + B01 : &aws_cog_msi_60m + missing_value: -9999 + minimum_value: 0 + maximum_value: 10000 + scale_factor : 0.0001 + offset_value : 0 + resampling : "bilinear" + resolutions : [60] + band_name : "B01" + B02 : &aws_cog_msi_10m + missing_value: -9999 + minimum_value: 0 + maximum_value: 10000 + scale_factor : 0.0001 + offset_value : 0 + resampling : "bilinear" + resolutions : [10] + band_name : "B02" + B03 : + <<: *aws_cog_msi_10m + band_name : "B03" + B04 : + <<: *aws_cog_msi_10m + band_name : "B04" + B05 : &aws_cog_msi_20m + missing_value: -9999 + minimum_value: 0 + maximum_value: 10000 + scale_factor : 0.0001 + offset_value : 0 + resampling : "bilinear" + resolutions : [20] + band_name : "B05" + B06 : + <<: *aws_cog_msi_20m + band_name : "B06" + B07 : + <<: *aws_cog_msi_20m + band_name : "B07" + B08 : + <<: *aws_cog_msi_10m + band_name : "B08" + B8A : + <<: *aws_cog_msi_20m + band_name : "B8A" + B09 : + <<: *aws_cog_msi_60m + band_name : "B09" + B11 : + <<: *aws_cog_msi_20m + band_name : "B11" + B12 : + <<: *aws_cog_msi_20m + band_name : "B12" + CLOUD : + bit_mask : FALSE + band_name : "SCL" + values : + 0 : "missing_data" + 1 : "defective pixel" + 2 : "shadows" + 3 : "cloud shadows" + 4 : "vegetation" + 5 : "non-vegetated" + 6 : "water" + 7 : "unclassified" + 8 : "cloud medium" + 9 : "cloud high" + 10 : "thin cirrus" + 11 : "snow or ice" + interp_values: [0, 1, 2, 3, 8, 9, 10, 11] + resampling : "near" + resolutions : [20] + satellite : "SENTINEL-2" + sensor : "MSI" + collection_name: "sentinel-s2-l2a-cogs" DEAFRICA : s3_class : ["deafrica_cube", "stac_cube", "raster_cube"] service : "STAC" diff --git a/man/sits_cube.Rd b/man/sits_cube.Rd index ba369e6e3..539a61797 100644 --- a/man/sits_cube.Rd +++ b/man/sits_cube.Rd @@ -6,6 +6,7 @@ \alias{sits_cube.bdc_cube} \alias{sits_cube.deafrica_cube} \alias{sits_cube.aws_cube} +\alias{sits_cube.awsod_cube} \alias{sits_cube.usgs_cube} \alias{sits_cube.local_cube} \alias{sits_cube.probs_cube} @@ -55,6 +56,19 @@ sits_cube(source, ...) end_date = NULL ) +\method{sits_cube}{awsod_cube}( + source = "AWSOD", + ..., + name = "awsod_cube", + url = NULL, + collection = "sentinel-s2-l2a-cogs", + tiles = NULL, + bands = NULL, + roi = NULL, + start_date = NULL, + end_date = NULL +) + \method{sits_cube}{usgs_cube}( source = "USGS", ..., diff --git a/man/sits_view.Rd b/man/sits_view.Rd index dda72f70b..3f98749c6 100644 --- a/man/sits_view.Rd +++ b/man/sits_view.Rd @@ -51,7 +51,6 @@ modis_cube <- sits_cube( parse_info = c("X1", "X2", "tile", "band", "date") ) -) # plot the data cube sits_view(modis_cube, red = "EVI", green = "NDVI", blue = "EVI", time = 1) } From cad67d3474f4678326551250ad51417c9bbb79a1 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 18:29:58 -0300 Subject: [PATCH 22/45] add .source_bands_resampling function --- R/sits_source_api.R | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/R/sits_source_api.R b/R/sits_source_api.R index 564c1ff42..e478bba98 100644 --- a/R/sits_source_api.R +++ b/R/sits_source_api.R @@ -356,6 +356,45 @@ NULL return(res) } +#' @rdname source_bands +#' +#' @description \code{.source_bands_resampling()} returns the +#' \code{resampling} attribute of all bands filtered by its parameters. +#' +#' @return \code{.source_bands_resampling()} returns a \code{character} +#' vectors with the desired resampling method that should be used in the band. +.source_bands_resampling <- function(source, + collection, ..., + bands = NULL, + fn_filter = NULL, + add_cloud = TRUE) { + + # source is upper case + source <- toupper(source) + + # collection is upper case + collection <- toupper(collection) + + # pre-condition + .source_collection_check(source = source, collection = collection) + + res <- .source_bands_reap(source = source, + collection = collection, + key = "resampling", + bands = bands, + fn_filter = fn_filter, + add_cloud = add_cloud) + + # simplify to character + res <- unlist(res, recursive = FALSE, use.names = FALSE) + + # post-condition + .check_chr(res, allow_empty = FALSE, + msg = "invalid 'resampling' in config file") + + return(res) +} + #' @rdname source_bands #' #' @description \code{.source_bands_to_sits()} converts any bands to its From 26d71a1428c0ccd53f963b915944323d6bde9fa4 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:32:37 +0000 Subject: [PATCH 23/45] closes #384 --- demo/00Index | 1 - 1 file changed, 1 deletion(-) diff --git a/demo/00Index b/demo/00Index index 6313769f6..9d5a5f42a 100644 --- a/demo/00Index +++ b/demo/00Index @@ -1,6 +1,5 @@ access_SATVEG Access time series using the SATVEG service classify_cbers_bdc Classify a set of CBERS AWFI images in the Brazil Data Cube -classify_cbers_local Classify a set of CBERS AWFI images stored in a local directory classify_ts Classify a time series using SVM classify_raster_xgb Classify MODIS image using extreme gradient boosting classify_raster_svm Classify MODIS image using SVM From e29d2b7764667bc56409583350ba7aa732ba05f9 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:33:48 +0000 Subject: [PATCH 24/45] change awsop to opendata source name --- R/sits_cube.R | 20 ++--- R/sits_source_api_opendata.R | 163 +++++++++++++++++++++++++++++++++++ 2 files changed, 173 insertions(+), 10 deletions(-) create mode 100644 R/sits_source_api_opendata.R diff --git a/R/sits_cube.R b/R/sits_cube.R index 35b7bdb2b..7f17df165 100755 --- a/R/sits_cube.R +++ b/R/sits_cube.R @@ -424,15 +424,15 @@ sits_cube.aws_cube <- function(source = "AWS", ..., #' @rdname sits_cube #' #' @export -sits_cube.awsod_cube <- function(source = "AWSOD", ..., - name = "awsod_cube", - url = NULL, - collection = "sentinel-s2-l2a-cogs", - tiles = NULL, - bands = NULL, - roi = NULL, - start_date = NULL, - end_date = NULL) { +sits_cube.opendata_cube <- function(source = "OPENDATA", ..., + name = "opendata_cube", + url = NULL, + collection = "sentinel-s2-l2a-cogs", + tiles = NULL, + bands = NULL, + roi = NULL, + start_date = NULL, + end_date = NULL) { # collection name is upper case @@ -1353,7 +1353,7 @@ NULL .source_bands_to_sits(source = source, collection = collection, bands = bands), - collapse = ", ")), + collapse = ", ")), call. = FALSE) return(invisible(NULL)) diff --git a/R/sits_source_api_opendata.R b/R/sits_source_api_opendata.R new file mode 100644 index 000000000..3997e7fb0 --- /dev/null +++ b/R/sits_source_api_opendata.R @@ -0,0 +1,163 @@ +#' @keywords internal +#' @export +.source_item_get_date.opendata_cube <- function(source, + item, ..., + collection = NULL) { + item[[c("properties", "datetime")]] +} + +#' @keywords internal +#' @export +.source_item_get_hrefs.opendata_cube <- function(source, + item, ..., + collection = NULL) { + + href <- unname(purrr::map_chr(item[["assets"]], `[[`, "href")) + + # add gdal vsi in href urls + return(.stac_add_gdal_vsi(href)) +} + +#' @keywords internal +#' @export +.source_item_get_bands.opendata_cube <- function(source, + item, ..., + collection = NULL) { + names(item[["assets"]]) +} + +#' @keywords internal +#' @export +.source_item_get_resolutions.opendata_cube <- function(source, + item, ..., + collection = NULL) { + + res <- .source_bands_resolutions( + source = source, + collection = collection, + bands = .source_item_get_bands(source = source, + item = item) + ) + + unlist(res) +} + +#' @keywords internal +#' @export +.source_items_new.opendata_cube <- function(source, + collection, ..., + stac_query, + tiles = NULL) { + + # set caller to show in errors + .check_set_caller(".source_items_new.opendata_cube") + + # if specified, a filter per tile is added to the query + if (!is.null(tiles)) { + sep_tile <- .aws_tiles(tiles) + + stac_query <- + rstac::ext_query(q = stac_query, + "sentinel:utm_zone" %in% sep_tile$utm_zone, + "sentinel:latitude_band" %in% sep_tile$lat_band, + "sentinel:grid_square" %in% sep_tile$grid_square) + } + + # making the request + items_info <- rstac::post_request(q = stac_query, ...) + + # check if matched items + .check_that( + x = rstac::items_matched(items_info) > 0, + msg = "no items matched the query criteria." + ) + + # if more than 2 times items pagination are found the progress bar + # is displayed + pgr_fetch <- rstac::items_matched(items_info) > 2 * .config_rstac_limit() + + # fetching all the metadata + items_info <- rstac::items_fetch(items = items_info, progress = pgr_fetch) + + return(items_info) +} + +#' @keywords internal +#' @export +.source_items_tiles_group.opendata_cube <- function(source, + items, ..., + collection = NULL) { + + # store tile info in items object + items$features <- purrr::map(items$features, function(feature) { + feature$properties$tile <- paste0( + feature$properties[["sentinel:utm_zone"]], + feature$properties[["sentinel:latitude_band"]], + feature$properties[["sentinel:grid_square"]]) + + feature + }) + + rstac::items_group(items, field = c("properties", "tile")) +} + +#' @keywords internal +#' @export +.source_items_tile_get_crs.opendata_cube <- function(source, + tile_items, ..., + collection = NULL) { + + # format collection crs + crs <- .sits_proj_format_crs( + tile_items[["features"]][[1]][[c("properties", "proj:epsg")]] + ) + + return(crs) +} + +#' @keywords internal +#' @export +.source_items_tile_get_name.opendata_cube <- function(source, + tile_items, ..., + collection = NULL) { + + tile_items[["features"]][[1]][[c("properties", "tile")]] +} + +#' @keywords internal +#' @export +.source_items_tile_get_bbox.opendata_cube <- function(source, + tile_items, ..., + collection = NULL) { + + + href <- .source_item_get_hrefs(source = source, + item = tile_items[["features"]][[1]], ..., + collection = collection) + + # read the first image and obtain the size parameters + params <- .raster_params_file(href) + + bbox <- c(xmin = params[["xmin"]], ymin = params[["ymin"]], + xmax = params[["xmax"]], ymax = params[["ymax"]]) + + return(bbox) +} + +#' @keywords internal +#' @export +.source_items_tile_get_size.opendata_cube <- function(source, + tile_items, ..., + collection = NULL) { + + href <- .source_item_get_hrefs(source = source, + item = tile_items[["features"]][[1]], ..., + collection = collection) + + # read the first image and obtain the size parameters + params <- .raster_params_file(href) + + size <- c(nrows = params[["nrows"]], ncols = params[["ncols"]]) + + return(size) +} From a46f68a4624cef888cdaef4f6f9c28e1a0d0da5c Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:34:08 +0000 Subject: [PATCH 25/45] update tests --- tests/testthat/test-accuracy.R | 4 +++- tests/testthat/test-config.R | 10 +++++----- tests/testthat/test-cube.R | 31 +++++++++++++++++++++++-------- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/tests/testthat/test-accuracy.R b/tests/testthat/test-accuracy.R index 39c42ce40..4fc336f73 100644 --- a/tests/testthat/test-accuracy.R +++ b/tests/testthat/test-accuracy.R @@ -83,5 +83,7 @@ test_that("Accuracy areas", { expect_true(as.numeric(as$area_pixels["Forest"]) > as$area_pixels["Pasture"]) - expect_true(as.numeric(as$accuracy$overall) > 0.75) + expect_equal(as.numeric(as$accuracy$overall), + expected = 0.75, + tolerance = 0.5) }) diff --git a/tests/testthat/test-config.R b/tests/testthat/test-config.R index 9da1ec681..983dad45e 100644 --- a/tests/testthat/test-config.R +++ b/tests/testthat/test-config.R @@ -41,7 +41,7 @@ test_that("User functions", { expect_equal( .sources(), - c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", + c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", "OPENDATA", "DEAFRICA", "LOCAL") ) @@ -84,7 +84,7 @@ test_that("User functions", { expect_equal( .sources(), - c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", + c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", "OPENDATA", "DEAFRICA", "LOCAL") ) @@ -149,7 +149,7 @@ test_that("User functions", { expect_equal( .sources(), - c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", + c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", "OPENDATA", "DEAFRICA", "LOCAL") ) @@ -164,7 +164,7 @@ test_that("User functions", { expect_true( any(grepl( - "- CLASSIFIED, PROBS, BDC, WTSS, SATVEG, AWS, DEAFRICA, LOCAL", + "- CLASSIFIED, PROBS, BDC, WTSS, SATVEG, AWS, OPENDATA, DEAFRICA, LOCAL", config_txt )) ) @@ -233,7 +233,7 @@ test_that("User functions", { expect_equal( .sources(), - c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", + c("CLASSIFIED", "PROBS", "BDC", "WTSS", "SATVEG", "AWS", "OPENDATA", "DEAFRICA", "LOCAL", "TEST") ) diff --git a/tests/testthat/test-cube.R b/tests/testthat/test-cube.R index 3da4cd98b..9651a09d2 100644 --- a/tests/testthat/test-cube.R +++ b/tests/testthat/test-cube.R @@ -267,7 +267,7 @@ test_that("Merging cubes", { expect_true(cube_merge$xmax == evi_cube$xmax) }) -test_that("Creating cubes from AWS and regularizing them", { +test_that("Creating cubes from AWS", { testthat::skip_on_cran() @@ -312,6 +312,21 @@ test_that("Creating cubes from AWS and regularizing them", { expect_equal(s2_cube$ncols[[1]], sits:::.raster_ncols(r)) expect_equal(s2_cube$xmax[[1]], sits:::.raster_xmax(r)) expect_equal(s2_cube$xmin[[1]], sits:::.raster_xmin(r)) +}) + +test_that("Creating cubes from AWS OPen Data and regularizing them", { + + + testthat::expect_warning({ + s2_cube <- sits_cube(source = "OPENDATA", + name = "T20LKP_2018_2019", + collection = "sentinel-s2-l2a-cogs", + tiles = "20LKP", + bands = c("B08", "SCL"), + start_date = "2018-07-30", + end_date = "2018-08-30" + ) + }) dir_images <- paste0(tempdir(), "/images/") if (!dir.exists(dir_images)) @@ -320,20 +335,20 @@ test_that("Creating cubes from AWS and regularizing them", { gc_cube <- sits_regularize( cube = s2_cube, name = "T20LKP_2018_2019_P5D", - dir_images = dir_images, + output_dir = dir_images, + res = 250, roi = c("xmin" = 234872.7, "ymin" = 8847983.0, "xmax" = 239532.6, "ymax" = 8852017.0), period = "P15D", agg_method = "median", - resampling = "bilinear" - ) + multicores = 2) - expect_equal(s2_cube$nrows, gc_cube$nrows) - expect_equal(s2_cube$ncols, gc_cube$ncols) - expect_equal(s2_cube$xmax, gc_cube$xmax) - expect_equal(s2_cube$xmin, gc_cube$xmin) + expect_equal(gc_cube$nrows, 17) + expect_equal(gc_cube$ncols, 19) + expect_equal(gc_cube$xmax, 239577.7, tolerance = 1e-1) + expect_equal(gc_cube$xmin, 234827.7, tolerance = 1e-1) file_info2 <- gc_cube$file_info[[1]] From 154f47dce070fe6a71425e5caf1edd93cd0f27c6 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:35:26 +0000 Subject: [PATCH 26/45] update opendata metada and add format collection to opendata --- inst/extdata/config.yml | 4 ++-- inst/extdata/gdalcubes/s2la_aws.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inst/extdata/config.yml b/inst/extdata/config.yml index c3d9d6fd2..0555ed38b 100644 --- a/inst/extdata/config.yml +++ b/inst/extdata/config.yml @@ -729,8 +729,8 @@ sources: satellite : "SENTINEL-2" sensor : "MSI" collection_name: "sentinel-s2-l2a-cogs" - AWSOD : - s3_class : ["awsod_cube", "stac_cube", "raster_cube"] + OPENDATA : + s3_class : ["opendata_cube", "stac_cube", "raster_cube"] service : "STAC" url : "https://earth-search.aws.element84.com/v0/" collections : diff --git a/inst/extdata/gdalcubes/s2la_aws.json b/inst/extdata/gdalcubes/s2la_aws.json index 7cf2327a7..00562d11d 100644 --- a/inst/extdata/gdalcubes/s2la_aws.json +++ b/inst/extdata/gdalcubes/s2la_aws.json @@ -77,7 +77,7 @@ "scale" : 0.0001, "pattern" : ".+B12\\.jp2" }, - "SCL" : { + "CLOUD" : { "pattern" : ".+SCL\\.jp2" } } From 4749d61cdfaacad852b3d13c34bbfd47a3c8d766 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 18:37:08 -0300 Subject: [PATCH 27/45] new function `sits_config_list_collections()` --- NAMESPACE | 1 + R/sits_config.R | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/NAMESPACE b/NAMESPACE index 660e55b1b..e64a850c0 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -203,6 +203,7 @@ export(sits_cluster_clean) export(sits_cluster_dendro) export(sits_cluster_frequency) export(sits_config) +export(sits_config_list_collections) export(sits_config_show) export(sits_create_folds) export(sits_cube) diff --git a/R/sits_config.R b/R/sits_config.R index 938a178a0..a45efc2cd 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -197,6 +197,50 @@ sits_config_show <- function(source = NULL, return(invisible(config)) } +#' @rdname sits_configuration +#' +#' @return +#' \code{sits_config_list_collection()} prints the collections available in +#' each cloud service supported by sits. +#' +#' @export +sits_config_list_collections <- function(source = NULL) { + + # get sources available + sources <- .sources(internal = FALSE) + + # if the user has required a source + # check that it is valid + if (!purrr::is_null(source)) { + # check if source exists + .check_chr_within( + x = source, + within = sources, + msg = "invalid source value" + ) + sources <- source + } + + purrr::map(sources, function(s){ + + cat("====================\n") + cat(paste0(s, ":\n")) + collections <- .source_collections(source = s) + purrr::map(collections, function(c){ + # get collection information + + cat(paste0("- ", c)) + cat(paste0(" (", .source_collection_satellite(s, c), + "/", .source_collection_sensor(s, c), ")\n")) + cat("- bands: ") + cat(.source_bands(s, c)) + cat("\n") + cat("\n") + }) + }) + return(invisible(NULL)) +} + .config_set_options <- function(processing_bloat = NULL, rstac_pagination_limit = NULL, raster_api_package = NULL, From 3bdf4bb676a430f06e8ee5f51a4261fe66f96dab Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 18:37:22 -0300 Subject: [PATCH 28/45] update documentation for new function `sits_config_list_collections()` --- man/sits_configuration.Rd | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/man/sits_configuration.Rd b/man/sits_configuration.Rd index 2b7e62acc..fc49b8b18 100644 --- a/man/sits_configuration.Rd +++ b/man/sits_configuration.Rd @@ -4,6 +4,7 @@ \alias{sits_configuration} \alias{sits_config} \alias{sits_config_show} +\alias{sits_config_list_collections} \title{sits configuration} \usage{ sits_config( @@ -15,6 +16,8 @@ sits_config( ) sits_config_show(source = NULL, collection = NULL, palette = NULL) + +sits_config_list_collections(source = NULL) } \arguments{ \item{processing_bloat}{A \code{numeric} value to estimate @@ -49,6 +52,9 @@ configuration options. \code{sits_config_show()} returns a \code{list} containing the respective configuration printed in the console. + +\code{sits_config_list_collection()} prints the collections available in +each cloud service supported by sits. } \description{ These functions load and show sits configurations. From 94ea6e241a1a4576f0a865b65286ce09be6a0288 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:39:23 +0000 Subject: [PATCH 29/45] update gdalcubes. (closes #387) --- R/sits_gdalcubes.R | 238 +++++++++++++++++++++++--------------- R/sits_regularize.R | 118 ++++++++++++------- R/sits_source_api_awsod.R | 163 -------------------------- 3 files changed, 222 insertions(+), 297 deletions(-) delete mode 100644 R/sits_source_api_awsod.R diff --git a/R/sits_gdalcubes.R b/R/sits_gdalcubes.R index 14fc82c2b..51d8f892a 100644 --- a/R/sits_gdalcubes.R +++ b/R/sits_gdalcubes.R @@ -1,5 +1,5 @@ #' @title Save the images based on an aggregation method. -#' @name .sits_gc_compose +#' @name .gc_new_cube #' @keywords internal #' #' @param tile A data cube tile @@ -9,8 +9,8 @@ #' @param cv A \code{list} 'cube_view' with values from cube. #' @param cloud_mask A \code{logical} corresponds to the use of the cloud band #' for aggregation. -#' @param db_file Database to be created by gdalcubes -#' @param dir_images Directory where the aggregated images will be written. +#' @param path_db Database to be created by gdalcubes +#' @param output_dir Directory where the aggregated images will be written. #' @param cloud_mask A \code{logical} corresponds to the use of the cloud band #' for aggregation. #' @param ... Additional parameters that can be included. See @@ -18,93 +18,82 @@ #' @param version A \code{character} with version of the output files. #' #' @return A data cube tile with information used in its creation. -.sits_gc_compose <- function(tile, - name, - cv, - img_col, - db_file, - dir_images, - cloud_mask, ..., - version = "v1") { +.gc_new_cube <- function(tile, + name, + cv, + img_col, + path_db, + output_dir, + cloud_mask, ..., + version = "v1") { # set caller to show in errors - .check_set_caller(".sits_gc_compose") - - .check_that( - x = nrow(tile) == 1, - msg = "tile must have only one row." - ) - - # verifies the path to save the images - .check_that( - x = dir.exists(dir_images), - msg = "The provided dir does not exist. Please provided a valid path." - ) + .check_set_caller(".gc_new_cube") # create a clone cube cube_gc <- .sits_cube_clone( cube = tile, name = name, ext = "", - output_dir = dir_images, - version = version) + output_dir = output_dir, + version = version + ) - # delete file info column - cube_gc$file_info <- NULL + # update cube metadata + cube_gc <- .gc_update_metadata(cube = cube_gc, cube_view = cv) # create file info column - file_info <- tibble::tibble(band = character(), - date = lubridate::as_date(""), - res = numeric(), - path = character()) - # add file info and path db columns - cube_gc <- tibble::add_column(cube_gc, file_info = list(file_info)) + cube_gc$file_info[[1]] <- tibble::tibble(band = character(), + date = lubridate::as_date(""), + res = numeric(), + path = character()) for (band in .cube_bands(tile)) { - # create a raster_cube object from gdalcubes - cube_brick <- .sits_gc_brick(tile, img_col, cv, cloud_mask) - band_source <- .source_bands_to_source( - source = .cube_source(tile), - collection = .cube_collection(tile), - bands = band - ) - message(paste("Writing images of band", band, "of tile", - tile$tile)) + cv$resampling <- .source_bands_resampling(source = tile$source, + collection = tile$collection, + bands = band) + + # create a raster_cube object to each band the select below change + # the object value + cube_brick <- .gc_raster_cube(tile, img_col, cv, cloud_mask) + + message(paste("Writing images of band", band, "of tile", tile$tile)) # write the aggregated cubes path_write <- gdalcubes::write_tif( - gdalcubes::select_bands(cube_brick, band_source), - dir = dir_images, + gdalcubes::select_bands(cube_brick, band), + dir = output_dir, prefix = paste("cube", tile$tile, band, "", sep = "_"), + creation_options = list("COMPRESS" = "LZW", "BIGTIFF" = "YES"), write_json_descr = TRUE, ...) # retrieving image date - images_date <- .sits_gc_date(path_write) - res <- dplyr::filter(tile$file_info[[1]], band == band)$res[[1]] + images_date <- .gc_get_date(path_write) # set file info values cube_gc$file_info[[1]] <- tibble::add_row( cube_gc$file_info[[1]], band = rep(band, length(path_write)), date = images_date, - res = rep(res, length(path_write)), + res = rep(cv$space$dx, length(path_write)), path = path_write ) } return(cube_gc) } + #' @title Extracted date from aggregated cubes -#' @name .sits_gc_date +#' @name .gc_get_date #' @keywords internal #' #' @param dir_images A \code{character} corresponds to the path on which the #' images will be saved. #' #' @return a \code{character} vector with the dates extracted. -.sits_gc_date <- function(dir_images) { +.gc_get_date <- function(dir_images) { # get image name image_name <- basename(dir_images) @@ -127,8 +116,9 @@ return(date_files) } + #' @title Create a raster_cube object -#' @name .sits_gc_brick +#' @name .gc_raster_cube #' @keywords internal #' #' @param cube Data cube from where data is to be retrieved. @@ -140,7 +130,7 @@ #' #' @return a \code{object} 'raster_cube' from gdalcubes containing information #' about the cube brick metadata. -.sits_gc_brick <- function(cube, img_col, cv, cloud_mask) { +.gc_raster_cube <- function(cube, img_col, cv, cloud_mask) { # defining the chunk size c_size <- c(t = 1, @@ -149,7 +139,7 @@ mask_band <- NULL if (cloud_mask) - mask_band <- .sits_gc_cloud_mask(cube) + mask_band <- .gc_cloud_mask(cube) # create a brick of raster_cube object cube_brick <- gdalcubes::raster_cube(image_collection = img_col, @@ -159,15 +149,37 @@ return(cube_brick) } + +#' @title Update metadata from sits cube using gdalcubes metadata +#' @name .gc_update_metadata +#' @keywords internal +#' +#' @param cube Data cube from where data is to be retrieved. +#' @param cv A \code{object} 'cube_view' with values from cube. +#' for aggregation. +#' +#' @return a \code{sits_cube} object with updated metadata. +.gc_update_metadata <- function(cube, cube_view) { + + # update bbox + bbox_names <- c("xmin", "xmax", "ymin", "ymax") + cube[, bbox_names] <- cube_view$space[c("left", "right", "bottom", "top")] + + # update nrows and ncols + cube[, c("nrows", "ncols")] <- cube_view$space[c("ny", "nx")] + + return(cube) +} + #' @title Create an object image_mask with information about mask band -#' @name .sits_gc_cloud_mask +#' @name .gc_cloud_mask #' @keywords internal #' #' @param tile Data cube tile from where data is to be retrieved. #' #' @return A \code{object} 'image_mask' from gdalcubes containing information #' about the mask band. -.sits_gc_cloud_mask <- function(tile) { +.gc_cloud_mask <- function(tile) { bands <- .cube_bands(tile) cloud_band <- .source_cloud() @@ -181,14 +193,9 @@ "mask, please include the cloud band in your cube") ) - cloud_source <- .source_bands_to_source( - source = .cube_source(cube = tile), - collection = .cube_collection(cube = tile), - bands = cloud_band) - # create a image mask object mask_values <- gdalcubes::image_mask( - cloud_source, + cloud_band, values = .source_cloud_interp_values( source = .cube_source(cube = tile), collection = .cube_collection(cube = tile) @@ -197,8 +204,9 @@ return(mask_values) } + #' @title Create an image_collection object -#' @name .sits_gc_database +#' @name .gc_create_database #' @keywords internal #' #' @param cube Data cube from where data is to be retrieved. @@ -207,54 +215,90 @@ #' #' @return a \code{object} 'image_collection' containing information about the #' images metadata. -.sits_gc_database <- function(cube, path_db) { +.gc_create_database <- function(cube, path_db) { # set caller to show in errors - .check_set_caller(".sits_gc_database") - - # error if a cube other than S2_L2A_AWS is provided - .check_that( - x = .sits_cube_source(cube) == "AWS", - msg = "for now, only 'AWS' cubes can be aggregated." - ) + .check_set_caller(".gc_create_database") # joining the bands of all tiles - full_images <- dplyr::bind_rows(cube$file_info) + file_info <- dplyr::bind_rows(cube$file_info) - # retrieving the s2_la_aws format - format_col <- system.file("extdata/gdalcubes/s2la_aws.json", - package = "sits") + # retrieving the collection format + format_col <- .gc_format_col(cube$source) message("Creating database of images...") - # create image collection cube - ic_cube <- gdalcubes::create_image_collection(files = full_images$path, - format = format_col, - out_file = path_db) + ic_cube <- gdalcubes::create_image_collection( + files = file_info$path, + format = format_col, + out_file = path_db) return(ic_cube) } + + +#' @title Internal function to handle with different file collection formats +#' for each provider. +#' @name gdalcubes_format_col +#' @keywords internal +#' +#' @description +#' Generic function with the goal that each source implements its own way of +#' localizing the collection format file. +#' +#' @param source A \code{character} value referring to a valid data source. +#' @param ... Additional parameters. +#' +#' @return A \code{character} path with format collection. +.gc_format_col <- function(source, ...) { + + # set caller to show in errors + .check_set_caller("sits_cube") + + s <- .source_new(source = source) + + # Dispatch + UseMethod(".gc_format_col", s) +} + +#' @keywords internal +#' @export +.gc_format_col.aws_cube <- function(source, ...) { + + system.file("extdata/gdalcubes/s2la_aws.json", package = "sits") +} + +#' @keywords internal +#' @export +.gc_format_col.opendata_cube <- function(source, ...) { + + system.file("extdata/gdalcubes/s2la_aws_cogs.json", package = "sits") +} + #' @title Create a cube_view object -#' @name .sits_gc_cube +#' @name .gc_create_cube_view #' @keywords internal #' #' @param tile A data cube tile #' @param period A \code{character} with the The period of time in which it #' is desired to apply in the cube, must be provided based on ISO8601, where 1 #' number and a unit are provided, for example "P16D". +#' @param res A \code{numeric} with spatial resolution of the image that +#' will be aggregated. #' @param roi A region of interest. #' @param toi A timeline of intersection #' @param agg_method A \code{character} with the method that will be applied in #' the aggregation, the following are available: "min", "max", "mean", #' "median" or "first". -#' @param resampling A \code{character} with the method that will be applied -#' in the resampling in mosaic operation. The following are available: "near", -#' "bilinear", "bicubic" or others supported by gdalwarp -#' (see https://gdal.org/programs/gdalwarp.html). #' #' @return a \code{cube_view} object from gdalcubes. -.sits_gc_cube <- function(tile, period, roi, toi, agg_method, resampling) { +.gc_create_cube_view <- function(tile, + period, + res, + roi, + toi, + agg_method) { # set caller to show in errors - .check_set_caller(".sits_gc_cube") + .check_set_caller(".gc_create_cube_view") .check_that( x = nrow(tile) == 1, @@ -271,6 +315,18 @@ msg = "the parameter 'method' must be provided." ) + .check_num( + x = res, + msg = "the parameter 'res' is invalid.", + allow_null = TRUE, + len_max = 1 + ) + + if (is.null(res)) + res <- tile[["xres"]][[1]] + + bbox_roi <- sits_bbox(tile) + if (!purrr::is_null(roi)) { bbox_roi <- .sits_roi_bbox(roi, tile) @@ -279,13 +335,12 @@ right = bbox_roi[["xmax"]], bottom = bbox_roi[["ymin"]], top = bbox_roi[["ymax"]]) - } else { - bbox_roi <- sits_bbox(tile) + } else roi <- list(left = bbox_roi[["xmin"]], right = bbox_roi[["xmax"]], bottom = bbox_roi[["ymin"]], top = bbox_roi[["ymax"]]) - } + # create a list of cube view cv <- gdalcubes::cube_view( @@ -296,11 +351,10 @@ t0 = format(toi[["max_min_date"]], "%Y-%m-%d"), t1 = format(toi[["min_max_date"]], "%Y-%m-%d")), srs = tile$crs[[1]], - dt = period, - dx = tile$xres[[1]], - dy = tile$yres[[1]], - aggregation = agg_method, - resampling = resampling + dt = period, + dx = res, + dy = res, + aggregation = agg_method ) return(cv) diff --git a/R/sits_regularize.R b/R/sits_regularize.R index eb489d8a1..68fcb7264 100644 --- a/R/sits_regularize.R +++ b/R/sits_regularize.R @@ -44,28 +44,32 @@ #' } #' } #' -#' @param cube A cube whose spacing of observation times is -#' not constant and will be regularized by the -#' "gdalcubes" packges -#' @param name Name of the output data cube -#' @param dir_images Directory where the regularized images will be -#' written by \code{gdalcubes}. -#' @param period ISO8601 time period for regular data cubes -#' produced by \code{gdalcubes}, -#' with number and unit, e.g., "P16D" for 16 days. -#' Use "D", "M" and "Y" for days, month and year.. -#' -#' @param roi A region of interest (see above) -#' @param agg_method Method that will be applied by \code{gdalcubes} -#' for aggregation. Options: "min", "max", "mean", -#' "median" and "first". -#' @param resampling Method to be used by \code{gdalcubes} -#' for resampling in mosaic operation. -#' Options: "near", "bilinear", "bicubic" -#' or others supported by gdalwarp -#' (see https://gdal.org/programs/gdalwarp.html). -#' @param cloud_mask Use cloud band for aggregation by \code{gdalcubes}? -#' +#' @param cube A \code{sits_cube} object whose spacing of observation +#' times is not constant and will be regularized by the \code{gdalcubes} +#' package. +#' @param name A \code{character} with name of the output data cube +#' @param output_dir A \code{character} with a directory where the regularized +#' images will be written by \code{gdalcubes}. +#' @param period A \code{character} with ISO8601 time period for regular +#' data cubes produced by \code{gdalcubes}, with number and unit, e.g., "P16D" +#' for 16 days. Use "D", "M" and "Y" for days, month and year. +#' @param res A \code{numeric} with spatial resolution of the image that +#' will be aggregated. +#' @param roi A named \code{numeric} vector with a region of interest. +#' See above +#' @param multicores A \code{numeric} with the number of cores will be used in +#' the regularize. By default is used 1 core. +#' @param agg_method A \code{character} with method that will be applied by +#' \code{gdalcubes} for aggregation. +#' Options: \code{min}, \code{max}, \code{mean}, \code{median} and +#' \code{first}. +#' @param resampling A \code{character} with method to be used by +#' \code{gdalcubes} for resampling in mosaic operation. +#' Options: \code{near}, \code{bilinear}, \code{bicubic} or others supported by +#' gdalwarp (see https://gdal.org/programs/gdalwarp.html). +#' By default is bilinear. +#' @param cloud_mask A \code{logical} to use cloud band for aggregation by +#' \code{gdalcubes}. Default is \code{TRUE}. #' #' @note #' The "roi" parameter defines a region of interest. It can be @@ -73,16 +77,18 @@ #' named XY values ("xmin", "xmax", "ymin", "ymax") or #' named lat/long values ("lat_min", "lat_max", "long_min", "long_max") #' -#' @export +#' @return A \code{sits_cube} object with aggregated images. #' +#' @export sits_regularize <- function(cube, name, - dir_images, + output_dir, period = NULL, + res = NULL, roi = NULL, agg_method = NULL, - resampling = "bilinear", - cloud_mask = TRUE) { + cloud_mask = TRUE, + multicores = 1) { # set caller to show in errors .check_set_caller("sits_regularize") @@ -94,6 +100,24 @@ sits_regularize <- function(cube, ) } + # supported cubes + .check_chr_within( + x = .sits_cube_source(cube), + within = c("AWS", "OPENDATA"), + msg = paste("for the time being only the 'AWS' and 'OPENDATA' cubes", + "can be regularized.") + ) + + .check_num( + x = multicores, + allow_zero = FALSE, + min = 1, + msg = "invalid 'multicores' parameter." + ) + + # setting in global env multicores options + gdalcubes::gdalcubes_options(threads = multicores) + # test if provided object its a sits cube .check_that( x = inherits(cube, "raster_cube"), @@ -103,7 +127,15 @@ sits_regularize <- function(cube, ) # fix slashes for windows - dir_images <- normalizePath(dir_images) + output_dir <- normalizePath(output_dir) + + # verifies the path to save the images + .check_that( + x = dir.exists(output_dir), + msg = "Invalid 'output_dir' parameter.." + ) + + path_db <- paste0(output_dir, "/gdalcubes.db") # filter only intersecting tiles intersects <- slider::slide_lgl(cube, @@ -145,31 +177,33 @@ sits_regularize <- function(cube, cube <- .sits_cube_fix_name(cube) # create an image collection - db_file <- paste0(dir_images, "/gdalcubes.db") - img_col <- .sits_gc_database(cube = cube, path_db = db_file) + img_col <- .gc_create_database(cube = cube, path_db = path_db) gc_cube <- slider::slide_dfr(cube, function(tile){ # create a list of cube view object - cv <- .sits_gc_cube(tile = tile, - period = period, - roi = roi, - toi = toi, - agg_method = agg_method, - resampling = resampling) + cv <- .gc_create_cube_view(tile = tile, + period = period, + roi = roi, + res = res, + toi = toi, + agg_method = agg_method) # create of the aggregate cubes - gc_tile <- .sits_gc_compose(tile = tile, - name = name, - cv = cv, - img_col = img_col, - db_file = db_file, - dir_images = dir_images, - cloud_mask = cloud_mask) + gc_tile <- .gc_new_cube(tile = tile, + name = name, + cv = cv, + img_col = img_col, + path_db = path_db, + output_dir = output_dir, + cloud_mask = cloud_mask) return(gc_tile) }) + # reset global option + gdalcubes::gdalcubes_options(threads = 1) + class(gc_cube) <- c("raster_cube", class(gc_cube)) return(gc_cube) diff --git a/R/sits_source_api_awsod.R b/R/sits_source_api_awsod.R deleted file mode 100644 index 43ae65998..000000000 --- a/R/sits_source_api_awsod.R +++ /dev/null @@ -1,163 +0,0 @@ -#' @keywords internal -#' @export -.source_item_get_date.awsod_cube <- function(source, - item, ..., - collection = NULL) { - item[[c("properties", "datetime")]] -} - -#' @keywords internal -#' @export -.source_item_get_hrefs.awsod_cube <- function(source, - item, ..., - collection = NULL) { - - href <- unname(purrr::map_chr(item[["assets"]], `[[`, "href")) - - # add gdal vsi in href urls - return(.stac_add_gdal_vsi(href)) -} - -#' @keywords internal -#' @export -.source_item_get_bands.awsod_cube <- function(source, - item, ..., - collection = NULL) { - names(item[["assets"]]) -} - -#' @keywords internal -#' @export -.source_item_get_resolutions.awsod_cube <- function(source, - item, ..., - collection = NULL) { - - res <- .source_bands_resolutions( - source = source, - collection = collection, - bands = .source_item_get_bands(source = source, - item = item) - ) - - unlist(res) -} - -#' @keywords internal -#' @export -.source_items_new.awsod_cube <- function(source, - collection, ..., - stac_query, - tiles = NULL) { - - # set caller to show in errors - .check_set_caller(".source_items_new.awsod_cube") - - # if specified, a filter per tile is added to the query - if (!is.null(tiles)) { - sep_tile <- .aws_tiles(tiles) - - stac_query <- - rstac::ext_query(q = stac_query, - "sentinel:utm_zone" %in% sep_tile$utm_zone, - "sentinel:latitude_band" %in% sep_tile$lat_band, - "sentinel:grid_square" %in% sep_tile$grid_square) - } - - # making the request - items_info <- rstac::post_request(q = stac_query, ...) - - # check if matched items - .check_that( - x = rstac::items_matched(items_info) > 0, - msg = "no items matched the query criteria." - ) - - # if more than 2 times items pagination are found the progress bar - # is displayed - pgr_fetch <- rstac::items_matched(items_info) > 2 * .config_rstac_limit() - - # fetching all the metadata - items_info <- rstac::items_fetch(items = items_info, progress = pgr_fetch) - - return(items_info) -} - -#' @keywords internal -#' @export -.source_items_tiles_group.awsod_cube <- function(source, - items, ..., - collection = NULL) { - - # store tile info in items object - items$features <- purrr::map(items$features, function(feature) { - feature$properties$tile <- paste0( - feature$properties[["sentinel:utm_zone"]], - feature$properties[["sentinel:latitude_band"]], - feature$properties[["sentinel:grid_square"]]) - - feature - }) - - rstac::items_group(items, field = c("properties", "tile")) -} - -#' @keywords internal -#' @export -.source_items_tile_get_crs.awsod_cube <- function(source, - tile_items, ..., - collection = NULL) { - - # format collection crs - crs <- .sits_proj_format_crs( - tile_items[["features"]][[1]][[c("properties", "proj:epsg")]] - ) - - return(crs) -} - -#' @keywords internal -#' @export -.source_items_tile_get_name.awsod_cube <- function(source, - tile_items, ..., - collection = NULL) { - - tile_items[["features"]][[1]][[c("properties", "tile")]] -} - -#' @keywords internal -#' @export -.source_items_tile_get_bbox.awsod_cube <- function(source, - tile_items, ..., - collection = NULL) { - - - href <- .source_item_get_hrefs(source = source, - item = tile_items[["features"]][[1]], ..., - collection = collection) - - # read the first image and obtain the size parameters - params <- .raster_params_file(href) - - bbox <- c(xmin = params[["xmin"]], ymin = params[["ymin"]], - xmax = params[["xmax"]], ymax = params[["ymax"]]) - - return(bbox) -} - -#' @keywords internal -#' @export -.source_items_tile_get_size.awsod_cube <- function(source, - tile_items, ..., - collection = NULL) { - - href <- .source_item_get_hrefs(source = source, - item = tile_items[["features"]][[1]], ..., - collection = collection) - - # read the first image and obtain the size parameters - params <- .raster_params_file(href) - - size <- c(nrows = params[["nrows"]], ncols = params[["ncols"]]) - - return(size) -} From b16b6cb53e2b48cb9a300949e7c6e50ef83417d3 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:39:40 +0000 Subject: [PATCH 30/45] update docs --- DESCRIPTION | 2 +- NAMESPACE | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 4772958be..5a3f8928a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -152,11 +152,11 @@ Collate: 'sits_som.R' 'sits_source_api.R' 'sits_source_api_aws.R' - 'sits_source_api_awsod.R' 'sits_source_api_bdc.R' 'sits_source_api_deafrica.R' 'sits_source_api_local.R' 'sits_source_api_probs.R' + 'sits_source_api_opendata.R' 'sits_source_api_satveg.R' 'sits_source_api_stac.R' 'sits_source_api_usgs.R' diff --git a/NAMESPACE b/NAMESPACE index 5ce5fe45c..1b7fa5305 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -6,6 +6,8 @@ S3method("sits_bands<-",predicted) S3method("sits_bands<-",sits) S3method("sits_labels<-",pattern) S3method("sits_labels<-",sits) +S3method(.gc_format_col,aws_cube) +S3method(.gc_format_col,opendata_cube) S3method(.raster_check_package,default) S3method(.raster_check_package,raster) S3method(.raster_check_package,terra) @@ -72,24 +74,24 @@ S3method(.source_cube,satveg_cube) S3method(.source_cube,stac_cube) S3method(.source_cube,wtss_cube) S3method(.source_item_get_bands,aws_cube) -S3method(.source_item_get_bands,awsod_cube) S3method(.source_item_get_bands,bdc_cube) S3method(.source_item_get_bands,deafrica_cube) +S3method(.source_item_get_bands,opendata_cube) S3method(.source_item_get_bands,usgs_cube) S3method(.source_item_get_date,aws_cube) -S3method(.source_item_get_date,awsod_cube) S3method(.source_item_get_date,bdc_cube) S3method(.source_item_get_date,deafrica_cube) +S3method(.source_item_get_date,opendata_cube) S3method(.source_item_get_date,usgs_cube) S3method(.source_item_get_hrefs,aws_cube) -S3method(.source_item_get_hrefs,awsod_cube) S3method(.source_item_get_hrefs,bdc_cube) S3method(.source_item_get_hrefs,deafrica_cube) +S3method(.source_item_get_hrefs,opendata_cube) S3method(.source_item_get_hrefs,usgs_cube) S3method(.source_item_get_resolutions,aws_cube) -S3method(.source_item_get_resolutions,awsod_cube) S3method(.source_item_get_resolutions,bdc_cube) S3method(.source_item_get_resolutions,deafrica_cube) +S3method(.source_item_get_resolutions,opendata_cube) S3method(.source_item_get_resolutions,usgs_cube) S3method(.source_items_bands_select,aws_cube) S3method(.source_items_bands_select,stac_cube) @@ -98,35 +100,35 @@ S3method(.source_items_cube,wtss_cube) S3method(.source_items_fileinfo,stac_cube) S3method(.source_items_fileinfo,wtss_cube) S3method(.source_items_new,aws_cube) -S3method(.source_items_new,awsod_cube) S3method(.source_items_new,bdc_cube) S3method(.source_items_new,deafrica_cube) +S3method(.source_items_new,opendata_cube) S3method(.source_items_new,usgs_cube) S3method(.source_items_new,wtss_cube) S3method(.source_items_tile_get_bbox,aws_cube) -S3method(.source_items_tile_get_bbox,awsod_cube) S3method(.source_items_tile_get_bbox,bdc_cube) S3method(.source_items_tile_get_bbox,deafrica_cube) +S3method(.source_items_tile_get_bbox,opendata_cube) S3method(.source_items_tile_get_bbox,usgs_cube) S3method(.source_items_tile_get_crs,aws_cube) -S3method(.source_items_tile_get_crs,awsod_cube) S3method(.source_items_tile_get_crs,bdc_cube) S3method(.source_items_tile_get_crs,deafrica_cube) +S3method(.source_items_tile_get_crs,opendata_cube) S3method(.source_items_tile_get_crs,usgs_cube) S3method(.source_items_tile_get_name,aws_cube) -S3method(.source_items_tile_get_name,awsod_cube) S3method(.source_items_tile_get_name,bdc_cube) S3method(.source_items_tile_get_name,deafrica_cube) +S3method(.source_items_tile_get_name,opendata_cube) S3method(.source_items_tile_get_name,usgs_cube) S3method(.source_items_tile_get_size,aws_cube) -S3method(.source_items_tile_get_size,awsod_cube) S3method(.source_items_tile_get_size,bdc_cube) S3method(.source_items_tile_get_size,deafrica_cube) +S3method(.source_items_tile_get_size,opendata_cube) S3method(.source_items_tile_get_size,usgs_cube) S3method(.source_items_tiles_group,aws_cube) -S3method(.source_items_tiles_group,awsod_cube) S3method(.source_items_tiles_group,bdc_cube) S3method(.source_items_tiles_group,deafrica_cube) +S3method(.source_items_tiles_group,opendata_cube) S3method(.source_items_tiles_group,usgs_cube) S3method(plot,classified_image) S3method(plot,keras_model) @@ -150,11 +152,11 @@ S3method(sits_bbox,sits) S3method(sits_classify,raster_cube) S3method(sits_classify,sits) S3method(sits_cube,aws_cube) -S3method(sits_cube,awsod_cube) S3method(sits_cube,bdc_cube) S3method(sits_cube,deafrica_cube) S3method(sits_cube,default) S3method(sits_cube,local_cube) +S3method(sits_cube,opendata_cube) S3method(sits_cube,probs_cube) S3method(sits_cube,satveg_cube) S3method(sits_cube,wtss_cube) From f550246b0bb03d5ffdfeb5a12a42c6c5973e7f16 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:39:55 +0000 Subject: [PATCH 31/45] update documentation --- ..._gc_cloud_mask.Rd => dot-gc_cloud_mask.Rd} | 6 +- ..._gc_cube.Rd => dot-gc_create_cube_view.Rd} | 14 ++--- ..._database.Rd => dot-gc_create_database.Rd} | 6 +- ...dot-sits_gc_date.Rd => dot-gc_get_date.Rd} | 6 +- ...-sits_gc_compose.Rd => dot-gc_new_cube.Rd} | 14 ++--- ...sits_gc_brick.Rd => dot-gc_raster_cube.Rd} | 6 +- man/dot-gc_update_metadata.Rd | 21 +++++++ man/gdalcubes_format_col.Rd | 23 ++++++++ man/sits_cube.Rd | 8 +-- man/sits_regularize.Rd | 58 +++++++++++-------- 10 files changed, 108 insertions(+), 54 deletions(-) rename man/{dot-sits_gc_cloud_mask.Rd => dot-gc_cloud_mask.Rd} (84%) rename man/{dot-sits_gc_cube.Rd => dot-gc_create_cube_view.Rd} (67%) rename man/{dot-sits_gc_database.Rd => dot-gc_create_database.Rd} (84%) rename man/{dot-sits_gc_date.Rd => dot-gc_get_date.Rd} (85%) rename man/{dot-sits_gc_compose.Rd => dot-gc_new_cube.Rd} (81%) rename man/{dot-sits_gc_brick.Rd => dot-gc_raster_cube.Rd} (87%) create mode 100644 man/dot-gc_update_metadata.Rd create mode 100644 man/gdalcubes_format_col.Rd diff --git a/man/dot-sits_gc_cloud_mask.Rd b/man/dot-gc_cloud_mask.Rd similarity index 84% rename from man/dot-sits_gc_cloud_mask.Rd rename to man/dot-gc_cloud_mask.Rd index d4a344d9b..bcf8d11fc 100644 --- a/man/dot-sits_gc_cloud_mask.Rd +++ b/man/dot-gc_cloud_mask.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sits_gdalcubes.R -\name{.sits_gc_cloud_mask} -\alias{.sits_gc_cloud_mask} +\name{.gc_cloud_mask} +\alias{.gc_cloud_mask} \title{Create an object image_mask with information about mask band} \usage{ -.sits_gc_cloud_mask(tile) +.gc_cloud_mask(tile) } \arguments{ \item{tile}{Data cube tile from where data is to be retrieved.} diff --git a/man/dot-sits_gc_cube.Rd b/man/dot-gc_create_cube_view.Rd similarity index 67% rename from man/dot-sits_gc_cube.Rd rename to man/dot-gc_create_cube_view.Rd index 66cbc7e5a..1718bb5df 100644 --- a/man/dot-sits_gc_cube.Rd +++ b/man/dot-gc_create_cube_view.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sits_gdalcubes.R -\name{.sits_gc_cube} -\alias{.sits_gc_cube} +\name{.gc_create_cube_view} +\alias{.gc_create_cube_view} \title{Create a cube_view object} \usage{ -.sits_gc_cube(tile, period, roi, toi, agg_method, resampling) +.gc_create_cube_view(tile, period, res, roi, toi, agg_method) } \arguments{ \item{tile}{A data cube tile} @@ -13,6 +13,9 @@ is desired to apply in the cube, must be provided based on ISO8601, where 1 number and a unit are provided, for example "P16D".} +\item{res}{A \code{numeric} with spatial resolution of the image that +will be aggregated.} + \item{roi}{A region of interest.} \item{toi}{A timeline of intersection} @@ -20,11 +23,6 @@ number and a unit are provided, for example "P16D".} \item{agg_method}{A \code{character} with the method that will be applied in the aggregation, the following are available: "min", "max", "mean", "median" or "first".} - -\item{resampling}{A \code{character} with the method that will be applied -in the resampling in mosaic operation. The following are available: "near", -"bilinear", "bicubic" or others supported by gdalwarp -(see https://gdal.org/programs/gdalwarp.html).} } \value{ a \code{cube_view} object from gdalcubes. diff --git a/man/dot-sits_gc_database.Rd b/man/dot-gc_create_database.Rd similarity index 84% rename from man/dot-sits_gc_database.Rd rename to man/dot-gc_create_database.Rd index e1c4c40b2..d690160ac 100644 --- a/man/dot-sits_gc_database.Rd +++ b/man/dot-gc_create_database.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sits_gdalcubes.R -\name{.sits_gc_database} -\alias{.sits_gc_database} +\name{.gc_create_database} +\alias{.gc_create_database} \title{Create an image_collection object} \usage{ -.sits_gc_database(cube, path_db) +.gc_create_database(cube, path_db) } \arguments{ \item{cube}{Data cube from where data is to be retrieved.} diff --git a/man/dot-sits_gc_date.Rd b/man/dot-gc_get_date.Rd similarity index 85% rename from man/dot-sits_gc_date.Rd rename to man/dot-gc_get_date.Rd index 1617560cb..a59442b19 100644 --- a/man/dot-sits_gc_date.Rd +++ b/man/dot-gc_get_date.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sits_gdalcubes.R -\name{.sits_gc_date} -\alias{.sits_gc_date} +\name{.gc_get_date} +\alias{.gc_get_date} \title{Extracted date from aggregated cubes} \usage{ -.sits_gc_date(dir_images) +.gc_get_date(dir_images) } \arguments{ \item{dir_images}{A \code{character} corresponds to the path on which the diff --git a/man/dot-sits_gc_compose.Rd b/man/dot-gc_new_cube.Rd similarity index 81% rename from man/dot-sits_gc_compose.Rd rename to man/dot-gc_new_cube.Rd index e708e0e4c..20a209c5c 100644 --- a/man/dot-sits_gc_compose.Rd +++ b/man/dot-gc_new_cube.Rd @@ -1,16 +1,16 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sits_gdalcubes.R -\name{.sits_gc_compose} -\alias{.sits_gc_compose} +\name{.gc_new_cube} +\alias{.gc_new_cube} \title{Save the images based on an aggregation method.} \usage{ -.sits_gc_compose( +.gc_new_cube( tile, name, cv, img_col, - db_file, - dir_images, + path_db, + output_dir, cloud_mask, ..., version = "v1" @@ -26,9 +26,9 @@ \item{img_col}{A \code{object} 'image_collection' containing information about the images metadata.} -\item{db_file}{Database to be created by gdalcubes} +\item{path_db}{Database to be created by gdalcubes} -\item{dir_images}{Directory where the aggregated images will be written.} +\item{output_dir}{Directory where the aggregated images will be written.} \item{cloud_mask}{A \code{logical} corresponds to the use of the cloud band for aggregation.} diff --git a/man/dot-sits_gc_brick.Rd b/man/dot-gc_raster_cube.Rd similarity index 87% rename from man/dot-sits_gc_brick.Rd rename to man/dot-gc_raster_cube.Rd index 001ae4309..f590c4524 100644 --- a/man/dot-sits_gc_brick.Rd +++ b/man/dot-gc_raster_cube.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sits_gdalcubes.R -\name{.sits_gc_brick} -\alias{.sits_gc_brick} +\name{.gc_raster_cube} +\alias{.gc_raster_cube} \title{Create a raster_cube object} \usage{ -.sits_gc_brick(cube, img_col, cv, cloud_mask) +.gc_raster_cube(cube, img_col, cv, cloud_mask) } \arguments{ \item{cube}{Data cube from where data is to be retrieved.} diff --git a/man/dot-gc_update_metadata.Rd b/man/dot-gc_update_metadata.Rd new file mode 100644 index 000000000..0cbec5cdd --- /dev/null +++ b/man/dot-gc_update_metadata.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sits_gdalcubes.R +\name{.gc_update_metadata} +\alias{.gc_update_metadata} +\title{Update metadata from sits cube using gdalcubes metadata} +\usage{ +.gc_update_metadata(cube, cube_view) +} +\arguments{ +\item{cube}{Data cube from where data is to be retrieved.} + +\item{cv}{A \code{object} 'cube_view' with values from cube. +for aggregation.} +} +\value{ +a \code{sits_cube} object with updated metadata. +} +\description{ +Update metadata from sits cube using gdalcubes metadata +} +\keyword{internal} diff --git a/man/gdalcubes_format_col.Rd b/man/gdalcubes_format_col.Rd new file mode 100644 index 000000000..e4cb38223 --- /dev/null +++ b/man/gdalcubes_format_col.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sits_gdalcubes.R +\name{gdalcubes_format_col} +\alias{gdalcubes_format_col} +\alias{.gc_format_col} +\title{Internal function to handle with different file collection formats + for each provider.} +\usage{ +.gc_format_col(source, ...) +} +\arguments{ +\item{source}{A \code{character} value referring to a valid data source.} + +\item{...}{Additional parameters.} +} +\value{ +A \code{character} path with format collection. +} +\description{ +Generic function with the goal that each source implements its own way of +localizing the collection format file. +} +\keyword{internal} diff --git a/man/sits_cube.Rd b/man/sits_cube.Rd index 539a61797..99eb7a93f 100644 --- a/man/sits_cube.Rd +++ b/man/sits_cube.Rd @@ -6,7 +6,7 @@ \alias{sits_cube.bdc_cube} \alias{sits_cube.deafrica_cube} \alias{sits_cube.aws_cube} -\alias{sits_cube.awsod_cube} +\alias{sits_cube.opendata_cube} \alias{sits_cube.usgs_cube} \alias{sits_cube.local_cube} \alias{sits_cube.probs_cube} @@ -56,10 +56,10 @@ sits_cube(source, ...) end_date = NULL ) -\method{sits_cube}{awsod_cube}( - source = "AWSOD", +\method{sits_cube}{opendata_cube}( + source = "OPENDATA", ..., - name = "awsod_cube", + name = "opendata_cube", url = NULL, collection = "sentinel-s2-l2a-cogs", tiles = NULL, diff --git a/man/sits_regularize.Rd b/man/sits_regularize.Rd index a0185d33e..a0d836c0d 100644 --- a/man/sits_regularize.Rd +++ b/man/sits_regularize.Rd @@ -7,42 +7,54 @@ sits_regularize( cube, name, - dir_images, + output_dir, period = NULL, + res = NULL, roi = NULL, agg_method = NULL, - resampling = "bilinear", - cloud_mask = TRUE + cloud_mask = TRUE, + multicores = 1 ) } \arguments{ -\item{cube}{A cube whose spacing of observation times is -not constant and will be regularized by the -"gdalcubes" packges} +\item{cube}{A \code{sits_cube} object whose spacing of observation +times is not constant and will be regularized by the \code{gdalcubes} +package.} -\item{name}{Name of the output data cube} +\item{name}{A \code{character} with name of the output data cube} -\item{dir_images}{Directory where the regularized images will be -written by \code{gdalcubes}.} +\item{output_dir}{A \code{character} with a directory where the regularized +images will be written by \code{gdalcubes}.} -\item{period}{ISO8601 time period for regular data cubes -produced by \code{gdalcubes}, -with number and unit, e.g., "P16D" for 16 days. -Use "D", "M" and "Y" for days, month and year..} +\item{period}{A \code{character} with ISO8601 time period for regular +data cubes produced by \code{gdalcubes}, with number and unit, e.g., "P16D" +for 16 days. Use "D", "M" and "Y" for days, month and year.} -\item{roi}{A region of interest (see above)} +\item{res}{A \code{numeric} with spatial resolution of the image that +will be aggregated.} -\item{agg_method}{Method that will be applied by \code{gdalcubes} -for aggregation. Options: "min", "max", "mean", -"median" and "first".} +\item{roi}{A named \code{numeric} vector with a region of interest. +See above} -\item{resampling}{Method to be used by \code{gdalcubes} -for resampling in mosaic operation. -Options: "near", "bilinear", "bicubic" -or others supported by gdalwarp -(see https://gdal.org/programs/gdalwarp.html).} +\item{agg_method}{A \code{character} with method that will be applied by +\code{gdalcubes} for aggregation. +Options: \code{min}, \code{max}, \code{mean}, \code{median} and +\code{first}.} -\item{cloud_mask}{Use cloud band for aggregation by \code{gdalcubes}?} +\item{cloud_mask}{A \code{logical} to use cloud band for aggregation by +\code{gdalcubes}. Default is \code{TRUE}.} + +\item{multicores}{A \code{numeric} with the number of cores will be used in +the regularize. By default is used 1 core.} + +\item{resampling}{A \code{character} with method to be used by +\code{gdalcubes} for resampling in mosaic operation. +Options: \code{near}, \code{bilinear}, \code{bicubic} or others supported by +gdalwarp (see https://gdal.org/programs/gdalwarp.html). +By default is bilinear.} +} +\value{ +A \code{sits_cube} object with aggregated images. } \description{ Creates cubes with regular time intervals From fa2b54e7f8dda51b85ec0fa19a16d819ec7b23f0 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:40:15 +0000 Subject: [PATCH 32/45] update README --- README.Rmd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.Rmd b/README.Rmd index e55c45d8e..3a98bce73 100644 --- a/README.Rmd +++ b/README.Rmd @@ -121,13 +121,13 @@ one month period, as shown below. This can be done in SITS by the `sits_regularize` which use the [https://github.com/appelmar/gdalcubes](gdalcubes) package. For details in gdalcubes, please see Reference [4]. ```{r, eval = FALSE, echo = TRUE} -gc_cube <- sits_regularize(cube = s2_cube, +gc_cube <- sits_regularize(cube = s2_cube, name = "T20LKP_2018_2019_1M", - dir_images = tempdir(), + output_dir = tempdir(), period = "P1M", agg_method = "median", - resampling = "bilinear", - cloud_mask = TRUE) + cloud_mask = TRUE, + multicores = 2) ``` ### Accessing time series in data cubes From 5c8bfa90ade8b666e7445d3e09853ef0df0a71a9 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 18:40:50 -0300 Subject: [PATCH 33/45] update sits_config_list_collections to sits_list_collections --- R/sits_config.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sits_config.R b/R/sits_config.R index a45efc2cd..a62a5fd03 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -200,11 +200,11 @@ sits_config_show <- function(source = NULL, #' @rdname sits_configuration #' #' @return -#' \code{sits_config_list_collection()} prints the collections available in +#' \code{sits_list_collections()} prints the collections available in #' each cloud service supported by sits. #' #' @export -sits_config_list_collections <- function(source = NULL) { +sits_list_collections <- function(source = NULL) { # get sources available sources <- .sources(internal = FALSE) From 388508fa0917b7bc4e03a7ae1c24599e25144ddc Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 18:41:52 -0300 Subject: [PATCH 34/45] update function name sits_list_collections() --- NAMESPACE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NAMESPACE b/NAMESPACE index e64a850c0..ec8e34ea8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -203,7 +203,6 @@ export(sits_cluster_clean) export(sits_cluster_dendro) export(sits_cluster_frequency) export(sits_config) -export(sits_config_list_collections) export(sits_config_show) export(sits_create_folds) export(sits_cube) @@ -225,6 +224,7 @@ export(sits_labels) export(sits_labels_summary) export(sits_lda) export(sits_linear_interp) +export(sits_list_collections) export(sits_merge) export(sits_metadata_to_csv) export(sits_missing_values) From 99378fa5b1b81e644064bb4485c0eaa51aec0472 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 21:42:07 +0000 Subject: [PATCH 35/45] update documentation --- man/source_bands.Rd | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/man/source_bands.Rd b/man/source_bands.Rd index 388c62368..bb158570d 100644 --- a/man/source_bands.Rd +++ b/man/source_bands.Rd @@ -6,6 +6,7 @@ \alias{.source_bands_reap} \alias{.source_bands_band_name} \alias{.source_bands_resolutions} +\alias{.source_bands_resampling} \alias{.source_bands_to_sits} \alias{.source_bands_to_source} \alias{.source_cloud} @@ -38,6 +39,15 @@ add_cloud = TRUE ) +.source_bands_resampling( + source, + collection, + ..., + bands = NULL, + fn_filter = NULL, + add_cloud = TRUE +) + .source_bands_to_sits(source, collection, bands) .source_bands_to_source(source, collection, bands) @@ -89,6 +99,9 @@ found, \code{default} value is returned. containing \code{numeric} vectors with all supported resolutions of a band. +\code{.source_bands_resampling()} returns a \code{character} +vectors with the desired resampling method that should be used in the band. + \code{.source_bands_to_sits()} returns a \code{character} vector with all converted bands name. @@ -122,6 +135,9 @@ attribute of all bands filtered by its parameters. \code{.source_bands_resolutions()} returns the \code{resolutions} attribute of all bands filtered by its parameters. +\code{.source_bands_resampling()} returns the +\code{resampling} attribute of all bands filtered by its parameters. + \code{.source_bands_to_sits()} converts any bands to its sits name indicated in band entry. From 5ccf52c8992a418f50ea65a6ba8096fc8acbd7a4 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 18:42:18 -0300 Subject: [PATCH 36/45] update function documentation --- man/sits_configuration.Rd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/man/sits_configuration.Rd b/man/sits_configuration.Rd index fc49b8b18..527ee09f0 100644 --- a/man/sits_configuration.Rd +++ b/man/sits_configuration.Rd @@ -4,7 +4,7 @@ \alias{sits_configuration} \alias{sits_config} \alias{sits_config_show} -\alias{sits_config_list_collections} +\alias{sits_list_collections} \title{sits configuration} \usage{ sits_config( @@ -17,7 +17,7 @@ sits_config( sits_config_show(source = NULL, collection = NULL, palette = NULL) -sits_config_list_collections(source = NULL) +sits_list_collections(source = NULL) } \arguments{ \item{processing_bloat}{A \code{numeric} value to estimate @@ -53,7 +53,7 @@ configuration options. \code{sits_config_show()} returns a \code{list} containing the respective configuration printed in the console. -\code{sits_config_list_collection()} prints the collections available in +\code{sits_list_collections()} prints the collections available in each cloud service supported by sits. } \description{ From 1e8d65ec6ebb0ce8621ecbd261d04201d8b3120b Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 19:05:35 -0300 Subject: [PATCH 37/45] update sits_list_collection() --- R/sits_config.R | 1 - 1 file changed, 1 deletion(-) diff --git a/R/sits_config.R b/R/sits_config.R index ed80f30d8..ee3393d2d 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -223,7 +223,6 @@ sits_list_collections <- function(source = NULL) { purrr::map(sources, function(s){ - cat("====================\n") cat(paste0(s, ":\n")) collections <- .source_collections(source = s) purrr::map(collections, function(c){ From 071f9bbe473cc51b9ccfa96770748c868c62b4b3 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 19:07:42 -0300 Subject: [PATCH 38/45] update documentation on sits_list_collections --- R/sits_config.R | 2 +- man/sits_configuration.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sits_config.R b/R/sits_config.R index ee3393d2d..817f17b00 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -16,7 +16,7 @@ #' a source, a collection, or a palette, users can inform the corresponding #' keys to \code{source}, \code{collection}, and \code{palette} parameters. #' -#' \code{sits_config_list_collection()} prints the collections available +#' \code{sits_list_collection()} prints the collections available #' in each cloud service supported by sits. Users can select to get information #' only for a single service by using the \code{source} parameter. #' diff --git a/man/sits_configuration.Rd b/man/sits_configuration.Rd index d2bfbadc1..549e68cac 100644 --- a/man/sits_configuration.Rd +++ b/man/sits_configuration.Rd @@ -70,7 +70,7 @@ configuration options. To show specific configuration options for a source, a collection, or a palette, users can inform the corresponding keys to \code{source}, \code{collection}, and \code{palette} parameters. -\code{sits_config_list_collection()} prints the collections available +\code{sits_list_collection()} prints the collections available in each cloud service supported by sits. Users can select to get information only for a single service by using the \code{source} parameter. } From 1d486c9dd13e003bc314c47c38b46ebf3dbcc3fd Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 22:18:04 +0000 Subject: [PATCH 39/45] remove cloud from gdalcubes output write --- R/sits_gdalcubes.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sits_gdalcubes.R b/R/sits_gdalcubes.R index 51d8f892a..a84dd2421 100644 --- a/R/sits_gdalcubes.R +++ b/R/sits_gdalcubes.R @@ -48,7 +48,7 @@ res = numeric(), path = character()) - for (band in .cube_bands(tile)) { + for (band in .cube_bands(tile, add_cloud = FALSE)) { cv$resampling <- .source_bands_resampling(source = tile$source, From fd5b074a09378c4d83fa2210b5a3ff16b438bfd6 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 22:21:18 +0000 Subject: [PATCH 40/45] update tests --- tests/testthat/test-cube.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/testthat/test-cube.R b/tests/testthat/test-cube.R index 9651a09d2..4a05c1151 100644 --- a/tests/testthat/test-cube.R +++ b/tests/testthat/test-cube.R @@ -352,7 +352,7 @@ test_that("Creating cubes from AWS OPen Data and regularizing them", { file_info2 <- gc_cube$file_info[[1]] - expect_equal(nrow(file_info2), 4) + expect_equal(nrow(file_info2), 2) }) test_that("Creating cubes from classified images", { From 5e67afe4cf4e67060e78befda6f99e755cf6d096 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 22:24:42 +0000 Subject: [PATCH 41/45] update README --- README.md | 12 ++++++------ man/figures/README-unnamed-chunk-11-1.png | Bin 23651 -> 23500 bytes 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4c5eb1f46..6e503fa54 100644 --- a/README.md +++ b/README.md @@ -127,13 +127,13 @@ in SITS by the `sits_regularize` which use the in gdalcubes, please see Reference \[4\]. ``` r -gc_cube <- sits_regularize(cube = s2_cube, +gc_cube <- sits_regularize(cube = s2_cube, name = "T20LKP_2018_2019_1M", - dir_images = tempdir(), + output_dir = tempdir(), period = "P1M", agg_method = "median", - resampling = "bilinear", - cloud_mask = TRUE) + cloud_mask = TRUE, + multicores = 2) ``` ### Accessing time series in data cubes @@ -149,7 +149,7 @@ library(sits) #> To provide additional configurations, create an YAML file and inform its path to environment variable 'SITS_CONFIG_USER_FILE'. #> Using raster package: terra #> SITS - satellite image time series analysis. -#> Loaded sits v0.14.0. +#> Loaded sits v0.14.0-2. #> See ?sits for help, citation("sits") for use in publication. #> See demo(package = "sits") for examples. # create a cube from a local file @@ -175,7 +175,7 @@ points <- sits_get_data(raster_cube, file = csv_raster_file) # show the points points[1:3,] -#> # A tibble: 3 x 7 +#> # A tibble: 3 × 7 #> longitude latitude start_date end_date label cube time_series #> #> 1 -55.7 -11.8 2013-09-14 2014-08-29 Pasture sinop-2014 diff --git a/man/figures/README-unnamed-chunk-11-1.png b/man/figures/README-unnamed-chunk-11-1.png index f524f95029062eb96e053fc8d03d67a86106cf52..adadba47256ac5ae252ab72643283aa572b73874 100644 GIT binary patch literal 23500 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

FpML|F+rcc-#9 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 From 3dd862f7ba6beeed55ca17e7da587873aed399d6 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 19:29:41 -0300 Subject: [PATCH 42/45] update documentation --- R/sits_config.R | 2 +- man/sits_configuration.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sits_config.R b/R/sits_config.R index 817f17b00..30e37cf53 100644 --- a/R/sits_config.R +++ b/R/sits_config.R @@ -16,7 +16,7 @@ #' a source, a collection, or a palette, users can inform the corresponding #' keys to \code{source}, \code{collection}, and \code{palette} parameters. #' -#' \code{sits_list_collection()} prints the collections available +#' \code{sits_list_collections()} prints the collections available #' in each cloud service supported by sits. Users can select to get information #' only for a single service by using the \code{source} parameter. #' diff --git a/man/sits_configuration.Rd b/man/sits_configuration.Rd index 549e68cac..104ce2c47 100644 --- a/man/sits_configuration.Rd +++ b/man/sits_configuration.Rd @@ -70,7 +70,7 @@ configuration options. To show specific configuration options for a source, a collection, or a palette, users can inform the corresponding keys to \code{source}, \code{collection}, and \code{palette} parameters. -\code{sits_list_collection()} prints the collections available +\code{sits_list_collections()} prints the collections available in each cloud service supported by sits. Users can select to get information only for a single service by using the \code{source} parameter. } From 4a68b4e023f58586222a25c6594972ece0dbd985 Mon Sep 17 00:00:00 2001 From: Felipe Carvalho Date: Sun, 26 Sep 2021 22:52:56 +0000 Subject: [PATCH 43/45] update gitignore and add format collection --- .gitignore | 1 - inst/extdata/gdalcubes/s2la_aws_cogs.json | 84 +++++++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 inst/extdata/gdalcubes/s2la_aws_cogs.json diff --git a/.gitignore b/.gitignore index c5fd67e53..d277f0384 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,5 @@ Meta *.bkp Makevars Makevars.* -*.json *.gcda *.gcno diff --git a/inst/extdata/gdalcubes/s2la_aws_cogs.json b/inst/extdata/gdalcubes/s2la_aws_cogs.json new file mode 100644 index 000000000..e72e8c21d --- /dev/null +++ b/inst/extdata/gdalcubes/s2la_aws_cogs.json @@ -0,0 +1,84 @@ +{ + "description" : "Image collection format for Sentinel 2 Level 2A Open Data in AWS", + "references" : "https://roda.sentinel-hub.com/sentinel-s2-l2a/readme.html", + "example" : "/vsicurl/sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/59/W/MP/2021/9/S2A_59WMP_20210926_0_L2A/B01.tif", + "tags" : ["Sentinel", "Copernicus", "ESA", "TOA"], + "pattern" : ".+.tif", + "images" : { + "pattern" : ".*sentinel-s2-l2a-cogs((?:/[A-Za-z0-9_]+){6})/.*" + }, + "datetime" : { + "pattern" : ".*S2[A|B](?:_[A-Za-z0-9]+){1}_([A-Za-z0-9]+).*", + "format" : "%Y%m%d" + }, + "bands" : { + "B01" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B01\\.tif" + }, + "B02" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B02\\.tif" + }, + "B03" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B03\\.tif" + }, + "B04" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B04\\.tif" + }, + "B05" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B05\\.tif" + }, + "B06" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B06\\.tif" + }, + "B07" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B07\\.tif" + }, + "B08" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B08\\.tif" + }, + "B8A" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B8A\\.tif" + }, + "B09" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B09\\.tif" + }, + "B10" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B10\\.tif" + }, + "B11" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B11\\.tif" + }, + "B12" : { + "nodata" : 0, + "scale" : 0.0001, + "pattern" : ".+B12\\.tif" + }, + "CLOUD" : { + "pattern" : ".+SCL\\.tif" + } + } +} From 633cc27b6a2f086be5cdee70f98579e227dd0748 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 20:10:03 -0300 Subject: [PATCH 44/45] update NEWS for 0.14.1 --- NEWS.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/NEWS.md b/NEWS.md index 02352a30f..4439b6348 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,25 @@ We are preparing to release the package on CRAN and are making relevant changes in the development version. +# What's new in SITS version 0.14.1 + +### New features in SITS version 0.14.1 + +* Implement new function `sits_list_collections()` +* Update gdalcubes parameters +* Implement `.source_bands_resampling()` +* Remove name from demo file +* Improve `sits_som_clean_samples()` function +* Improve `sits_bands<-()` function +* Improve `sits_select()` function +* Error in cloud band of CBERS4 data example +* Include a function to list collections available in cloud services +* sits_cube_copy() does not include information on the tile +* Get spatial resolution from config file +* Fix partial merge configuration file +* Change bbox to roi in sits + + # What's new in SITS version 0.14.0 ### New features in SITS version 0.14.0-2 From 7682bd3cb35028e87b6a80c6389cce78c7bea949 Mon Sep 17 00:00:00 2001 From: Rolf Simoes Date: Sun, 26 Sep 2021 20:10:18 -0300 Subject: [PATCH 45/45] update version 0.14.1 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 5a3f8928a..45d2c81ea 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: sits Type: Package -Version: 0.14.0-2 +Version: 0.14.1 Title: Satellite Image Time Series Analysis for Remote Sensing Data Cubes Authors@R: c(person('Rolf', 'Simoes', role = c('aut'), email = 'rolf.simoes@inpe.br'), person('Gilberto', 'Camara', role = c('aut', 'cre'), email = 'gilberto.camara@inpe.br'),