From 408605f3daa4886d2d457cae2024ac5e02b9fb9c Mon Sep 17 00:00:00 2001 From: Hugh Graham Date: Tue, 21 Jan 2025 00:09:02 +0000 Subject: [PATCH 01/10] Add further error handling for downloads --- R/download.R | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/R/download.R b/R/download.R index c718bcc..378ecd0 100644 --- a/R/download.R +++ b/R/download.R @@ -128,11 +128,31 @@ rsi_download_rasters <- function(items, ) }, error = function(e) { - rlang::warn( - glue::glue( - "Failed to download {items$features[[which_item]]$id %||% 'UNKNOWN'} from {items$features[[which_item]]$properties$datetime %||% 'UNKNOWN'}" # nolint + # stop if failure occurs when merging. + if (merge) { + rlang::abort( + c("x" = glue::glue( + "GDAL warp failed when attempting to merge ", + "{length(unlist(feature_iter))} items" + )), + class = "download_warp_error", parent = e ) + } + + expr1 <- items$features[[which_item]]$id %||% "UNKNOWN" + expr2 <- items$features[[which_item]]$properties$datetime %||% "UNKNOWN" + + err_msg <- glue::glue( + "Failed to download {expr1} from {expr2}" # nolint ) + + # stop if failure occurs when there is only one item to download. + if (length(feature_iter) == 1) { + rlang::abort(err_msg, class = "download_warp_error", parent = e) + } + + # warn if failure occurs when multiple items are being downloaded. + rlang::warn(err_msg, parent = e) download_locations[which_item, ] <<- NA } ) From f244c22bce8736c13eefa5dcad431c614269f3a6 Mon Sep 17 00:00:00 2001 From: Hugh Graham Date: Tue, 21 Jan 2025 00:09:24 +0000 Subject: [PATCH 02/10] error when single point on geom with no extent is used to as aoi. --- R/get_stac_data.R | 83 ++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 34 deletions(-) diff --git a/R/get_stac_data.R b/R/get_stac_data.R index cd7368b..8990480 100644 --- a/R/get_stac_data.R +++ b/R/get_stac_data.R @@ -134,7 +134,7 @@ #' (i.e., to aggregate pixel values from multiple images into a single value). #' Options include "merge", which 'stamps' images on top of one another such that #' the "last" value downloaded for a pixel -- which isn't guaranteed to be the most -#' recent one -- will be the only value used, or any of "sum", "mean", "median", +#' recent one -- will be the only value used, or any of "sum", "mean", "median", #' "min", or "max", which consider all values available at each pixel. #' Set to `NULL` to not composite #' (i.e., to rescale and save each individual file independently). @@ -143,7 +143,7 @@ #' argument of [sf::gdal_utils()]. The same set of options are used for all #' downloaded data and the final output images; this means that some common #' options (for instance, `PREDICTOR=3`) may cause errors if bands are of -#' varying data types. The default values are provided by +#' varying data types. The default values are provided by #' [rsi_gdalwarp_options()]. #' @param gdal_config_options Options passed to `gdalwarp` through the #' `config_options` argument of [sf::gdal_utils()]. The default values are @@ -186,13 +186,13 @@ #' end_date = "2022-08-30", #' output_filename = tempfile(fileext = ".tif") #' ) -#' -#' landsat_image |> +#' +#' landsat_image |> #' terra::rast() |> #' terra::stretch() |> #' terra::plotRGB() -#' -#' # The `get_*_imagery()` functions will download +#' +#' # The `get_*_imagery()` functions will download #' # all available "data" assets by default #' # (usually including measured values, and excluding derived bands) #' sentinel1_data <- get_sentinel1_imagery( @@ -202,17 +202,17 @@ #' output_filename = tempfile(fileext = ".tif") #' ) #' names(terra::rast(sentinel1_data)) -#' +#' #' # You can see what bands will be downloaded by a function #' # by inspecting the corresponding `band_mapping` object: #' sentinel2_band_mapping$planetary_computer_v1 -#' +#' #' # And you can add additional assets using `c()`: #' c( #' sentinel2_band_mapping$planetary_computer_v1, #' "scl" #' ) -#' +#' #' # Or subset the assets downloaded using `[` or `[[`: #' sentinel2_imagery <- get_sentinel2_imagery( #' aoi, @@ -222,7 +222,7 @@ #' output_filename = tempfile(fileext = ".tif") #' ) #' names(terra::rast(sentinel2_imagery)) -#' +#' #' # If you're downloading data for a particularly large AOI, #' # and can't composite the resulting images or want to make #' # sure you can continue an interrupted download, @@ -239,7 +239,7 @@ #' ) #' } #' ) -#' # You'll get a list of tiles that you can then composite or +#' # You'll get a list of tiles that you can then composite or #' # work with however you wish: #' unlist(tiles) #' @@ -273,6 +273,17 @@ get_stac_data <- function(aoi, ) } + aoi_bbox <- sf::st_bbox(aoi) + if (aoi_bbox$xmin == aoi_bbox$xmax | aoi_bbox$ymin == aoi_bbox$ymax) { + rlang::abort( + c( + "`aoi` has no extent.", + "i" = "This can occur when `aoi` is a single point geometry." + ), + class = "rsi_aoi_is_point" + ) + } + if (sf::st_is_longlat(aoi) && !(is.null(pixel_x_size) || is.null(pixel_y_size)) && all(c(pixel_x_size, pixel_y_size) %in% c(10, 30))) { rlang::warn( c( @@ -360,13 +371,14 @@ get_stac_data <- function(aoi, if (is.null(asset_names)) { asset_names <- rstac::items_assets(items) if (length(asset_names) > 1) { - rlang::warn(c( - "`asset_names` was `NULL`, so rsi is attempting to download all assets in items in this collection.", - i = "This includes multiple assets, so rsi is attempting to download all of them using the same download function.", - i = "This might cause errors or not be what you want! Specify `asset_names` to fix this (and to silence this warning)." - ), - class = "rsi_missing_asset_names" - ) + rlang::warn( + c( + "`asset_names` was `NULL`, so rsi is attempting to download all assets in items in this collection.", + i = "This includes multiple assets, so rsi is attempting to download all of them using the same download function.", + i = "This might cause errors or not be what you want! Specify `asset_names` to fix this (and to silence this warning)." + ), + class = "rsi_missing_asset_names" + ) } } if (is.null(names(asset_names))) names(asset_names) <- asset_names @@ -412,6 +424,9 @@ get_stac_data <- function(aoi, if (!is.null(stats::na.action(download_results))) { items$features[stats::na.action(download_results)] <- NULL } + + temp_ras_files <- unlist(download_results) + on.exit(file.remove(temp_ras_files), add = TRUE) # mask if (!is.null(mask_band)) { download_results <- rsi_apply_masks( @@ -440,10 +455,7 @@ get_stac_data <- function(aoi, lapply(download_results, rescale_band, scale_strings) } - on.exit(file.remove(unlist(download_results)), add = TRUE) - if (drop_mask_band) items_urls[[mask_band]] <- NULL - mapply( function(in_bands, vrt) { stack_rasters( @@ -724,15 +736,17 @@ rsi_composite_bands <- function(download_locations, ) ) } else { - do.call( - terra::mosaic, - list( - x = terra::sprc(lapply(download_locations[[band_name]], terra::rast)), - fun = composite_function, - filename = out_file, - overwrite = TRUE + capture.output({ + do.call( + terra::mosaic, + list( + x = terra::sprc(lapply(download_locations[[band_name]], terra::rast)), + fun = composite_function, + filename = out_file, + overwrite = TRUE + ) ) - ) + }) } out_file @@ -845,11 +859,12 @@ get_rescaling_formula <- function(items, band_name, element) { ) if (length(unique(elements)) != 1) { - rlang::warn(c( - glue::glue("Images in band {band_name} have different {element}s."), - i = "Returning images without rescaling." - ), - class = "rsi_multiple_scaling_formulas" + rlang::warn( + c( + glue::glue("Images in band {band_name} have different {element}s."), + i = "Returning images without rescaling." + ), + class = "rsi_multiple_scaling_formulas" ) elements <- NA_real_ } From 5a11bca82aeaf2cda46b2a5af1214df94a068344 Mon Sep 17 00:00:00 2001 From: Hugh Graham Date: Tue, 21 Jan 2025 00:09:36 +0000 Subject: [PATCH 03/10] test error on single geom --- tests/testthat/test-get_stac_data.R | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/testthat/test-get_stac_data.R b/tests/testthat/test-get_stac_data.R index e28c5c1..1248d84 100644 --- a/tests/testthat/test-get_stac_data.R +++ b/tests/testthat/test-get_stac_data.R @@ -386,3 +386,16 @@ test_that("Providing no asset names fires the expected warning", { ) ) }) + +test_that("Providing a single point geometry throws an error", { + expect_error( + get_landsat_imagery( + aoi = sf::st_sfc(sf::st_point(c(-74.912131, 44.080410)), crs = 4326), + start_date = "2022-06-01", + end_date = "2022-08-01", + composite_function = NULL, + output_filename = tempfile(fileext = ".tif") + ), + class = "rsi_aoi_is_point" + ) +}) From 116aab254c5a184c28ea5c130af85301c2588420 Mon Sep 17 00:00:00 2001 From: Hugh Graham Date: Tue, 21 Jan 2025 00:09:51 +0000 Subject: [PATCH 04/10] update download function in band mapping --- data/alos_palsar_band_mapping.rda | Bin 4809 -> 6423 bytes data/dem_band_mapping.rda | Bin 6715 -> 8944 bytes data/landsat_band_mapping.rda | Bin 4831 -> 6892 bytes data/sentinel1_band_mapping.rda | Bin 4309 -> 5938 bytes data/sentinel2_band_mapping.rda | Bin 5760 -> 7807 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/alos_palsar_band_mapping.rda b/data/alos_palsar_band_mapping.rda index 6eb2567102d76d22ff9afaf6333dcd9d5f2fa6cf..183d66c06430e292b1250403ec443cbfc80f07de 100644 GIT binary patch literal 6423 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 literal 4809 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 diff --git a/data/dem_band_mapping.rda b/data/dem_band_mapping.rda index 0d70239d47c42f00ee6a73408155befcbd9c0043..7a44dda5185e6b372caac8a384ffd2b72688c36d 100644 GIT binary patch literal 8944 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 diff --git a/data/landsat_band_mapping.rda b/data/landsat_band_mapping.rda index 17de09e3b624201378ceb9a46de6166b03e75b25..01b6315bd9ec9aeb492f62ab0a3ae0aa57ba8357 100644 GIT binary patch literal 6892 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 FsMz+<1H}LU diff --git a/data/sentinel1_band_mapping.rda b/data/sentinel1_band_mapping.rda index 6ccf594d144d85af21fee05c53a3ae67ff0e867f..fba2c083fc538bb6c6530e01171f34ba2544e64a 100644 GIT binary patch literal 5938 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 UdGUTBv;W21kxmpO3P!wZfGNJq?f?J) literal 4309 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 Dul3UE diff --git a/data/sentinel2_band_mapping.rda b/data/sentinel2_band_mapping.rda index 67f64566f67c7a7d4a5cb19e899acf107ade346a..1a8b7530cf5c2c58e9192baa2d2b15e767684eb1 100644 GIT binary patch literal 7807 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 From 8040eb3aeffd4f373d166120b283fdbe5e6ef524 Mon Sep 17 00:00:00 2001 From: Hugh Graham Date: Tue, 21 Jan 2025 00:09:58 +0000 Subject: [PATCH 05/10] version bump --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 215694d..8acd75f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: rsi Title: Efficiently Retrieve and Process Satellite Imagery -Version: 0.3.1.9000 +Version: 0.3.2 Authors@R: c( person("Michael", "Mahoney", , "mike.mahoney.218@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-2402-304X")), From 7a3f067e1ce26c1922248a01392a0120acb7b784 Mon Sep 17 00:00:00 2001 From: Hugh Graham Date: Tue, 21 Jan 2025 10:10:42 +0000 Subject: [PATCH 06/10] remove pointless x from error statement --- R/download.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/download.R b/R/download.R index 378ecd0..1e0afe7 100644 --- a/R/download.R +++ b/R/download.R @@ -131,10 +131,10 @@ rsi_download_rasters <- function(items, # stop if failure occurs when merging. if (merge) { rlang::abort( - c("x" = glue::glue( + glue::glue( "GDAL warp failed when attempting to merge ", "{length(unlist(feature_iter))} items" - )), + ), class = "download_warp_error", parent = e ) } From 152303f127e1c673a3671bc9674919461e529dcd Mon Sep 17 00:00:00 2001 From: Hugh Graham Date: Tue, 21 Jan 2025 12:08:22 +0000 Subject: [PATCH 07/10] band mapping updates --- data/alos_palsar_band_mapping.rda | Bin 6423 -> 6365 bytes data/dem_band_mapping.rda | Bin 8944 -> 8871 bytes data/landsat_band_mapping.rda | Bin 6892 -> 6843 bytes data/sentinel1_band_mapping.rda | Bin 5938 -> 5903 bytes data/sentinel2_band_mapping.rda | Bin 7807 -> 7856 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/alos_palsar_band_mapping.rda b/data/alos_palsar_band_mapping.rda index 183d66c06430e292b1250403ec443cbfc80f07de..fec7a1a00c4cc537540d4df61009ffeb80bd98d5 100644 GIT binary patch literal 6365 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 diff --git a/data/dem_band_mapping.rda b/data/dem_band_mapping.rda index 7a44dda5185e6b372caac8a384ffd2b72688c36d..95ffc891ddd3a178d07d0c4a8ac2d20142186145 100644 GIT binary patch delta 8763 zcmXAP2{fD8`#&Oy>_QN+#1fjSCA1+Z6|r{F&?q&kiLGksgrd4e5)!pjovL=)5Tk^W zc2u=Boh4*a zXX-xNJ^LmK{`*(UXJZB0isOwEY3OJGE$O)$8vYs@bWI-(4Gkb&?TBjo|3gzlgYf@m zy15#fXgXA)p@A{*QEww^05vUgwf(lE8IT~2a?Of{nphV00=8z$V{2+5v)cMmsQFvg-Q%A+{B8#fYb0tn3N;iZL1*_ zq|1H}0&q2mofmhW;ksB4c4?J>fSZz+UGC|G4`kTu2*PZpjRYIRxv;G=?AL*8r2t&0&Hlw7h1CmrbA*5aXG zD_Lf$lmL*SA>7`3NXdtjGAR_263)RgmBXf})m0?i3<(B-P%0xZ;9T*15s3uTV71(4)iOIWyL4Wa75c&*?D}z~qxEI@bn^1ib#aTQGNLG=2-VYk zZI3kh_TWs=f7w-@Y-QG8Lu_^=>t+4c7n^QrzHDwcx8&bx77eL7NjU)=y&R9$@cg>> zEfhyKg;Xl%^C1FLQ&U5@xn=&~kFBQWBqg8U&h}`12$Lb3&qt!OQGMcF}2sc%

j)-b(9k#U14uZ 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 literal 6892 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 UdGUTBv;W21kxmpO3P!wZfGNJq?f?J) diff --git a/data/sentinel2_band_mapping.rda b/data/sentinel2_band_mapping.rda index 1a8b7530cf5c2c58e9192baa2d2b15e767684eb1..5202705563fb796525dc7a53f8d31e8a7069abe7 100644 GIT binary patch literal 7856 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 O_`8xR!i0f#mtk07Z~Jio literal 7807 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 RrZrRkF64@Ep& Date: Tue, 21 Jan 2025 12:25:05 +0000 Subject: [PATCH 08/10] add suffix for dduplicated date times (relevant for s2 images). --- R/get_stac_data.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/get_stac_data.R b/R/get_stac_data.R index 8990480..7ac9423 100644 --- a/R/get_stac_data.R +++ b/R/get_stac_data.R @@ -472,9 +472,10 @@ get_stac_data <- function(aoi, if (is.null(composite_function)) { app <- tryCatch(rstac::items_datetime(items), error = function(e) NA) - app <- gsub(":", "", app) # #29, #32 + app <- gsub(":", "", app) if (any(is.na(app))) app <- NULL - app <- app %||% seq_along(download_results) + app <- app %||% as.character(seq_along(download_results)) + app <- make.unique(app, sep = "_") output_filename <- paste0( tools::file_path_sans_ext(output_filename), From 589b55154d65bf87cf04be386686d224c4841c07 Mon Sep 17 00:00:00 2001 From: Michael Mahoney Date: Tue, 21 Jan 2025 13:56:01 -0500 Subject: [PATCH 09/10] Apply suggestions from code review --- R/download.R | 4 ++-- R/get_stac_data.R | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/download.R b/R/download.R index 1e0afe7..b974f21 100644 --- a/R/download.R +++ b/R/download.R @@ -135,7 +135,7 @@ rsi_download_rasters <- function(items, "GDAL warp failed when attempting to merge ", "{length(unlist(feature_iter))} items" ), - class = "download_warp_error", parent = e + class = "rsi_download_warp_error", parent = e ) } @@ -148,7 +148,7 @@ rsi_download_rasters <- function(items, # stop if failure occurs when there is only one item to download. if (length(feature_iter) == 1) { - rlang::abort(err_msg, class = "download_warp_error", parent = e) + rlang::abort(err_msg, class = "rsi_download_warp_error", parent = e) } # warn if failure occurs when multiple items are being downloaded. diff --git a/R/get_stac_data.R b/R/get_stac_data.R index 7ac9423..3858eb1 100644 --- a/R/get_stac_data.R +++ b/R/get_stac_data.R @@ -472,7 +472,7 @@ get_stac_data <- function(aoi, if (is.null(composite_function)) { app <- tryCatch(rstac::items_datetime(items), error = function(e) NA) - app <- gsub(":", "", app) + app <- gsub(":", "", app) # #29, #32 if (any(is.na(app))) app <- NULL app <- app %||% as.character(seq_along(download_results)) app <- make.unique(app, sep = "_") From af516d3cba8c9a9c4ed2044cfda97b802078a06a Mon Sep 17 00:00:00 2001 From: Mike Mahoney Date: Tue, 21 Jan 2025 14:06:41 -0500 Subject: [PATCH 10/10] Add NEWS --- NEWS.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NEWS.md b/NEWS.md index 21ba1d2..38dc0b0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,12 @@ # rsi (development version) +* Failed downloads and merges should now be handled a bit better. Thanks + to @h-a-graham for #89 and to @lucas-johnson for #81. + +* If `composite = NULL` and the resource has duplicated asset timestamps, + `get_stac_data()` will now generate unique filenames (rather than saving + multiple files to the same path). Thanks to @h-a-graham for #89 and #90. + # rsi 0.3.1 * A test that requires online resources is now skipped on CRAN. There are