From d2c5fce85977d593149e196f9553011038f84ce1 Mon Sep 17 00:00:00 2001 From: Insang Song Date: Mon, 24 Jun 2024 22:11:46 -0400 Subject: [PATCH 01/66] Quick patch - bluemarble -> blackmarble - process_nlcd: detect duplicated files after removing extension --- NAMESPACE | 5 ++- R/calculate_covariates.R | 10 ++--- R/process.R | 40 +++++++++++-------- man/calc_modis_daily.Rd | 2 +- man/calc_modis_par.Rd | 4 +- ...s_bluemarble.Rd => process_blackmarble.Rd} | 18 ++++----- ...ners.Rd => process_blackmarble_corners.Rd} | 14 +++---- man/process_covariates.Rd | 2 +- tests/testthat/test-calculate_covariates.R | 14 +++---- tests/testthat/test-process.R | 28 ++++++++----- 10 files changed, 76 insertions(+), 61 deletions(-) rename man/{process_bluemarble.Rd => process_blackmarble.Rd} (70%) rename man/{process_bluemarble_corners.Rd => process_blackmarble_corners.Rd} (66%) diff --git a/NAMESPACE b/NAMESPACE index 2595c1ff..530b264b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -70,8 +70,8 @@ export(generate_time_sequence) export(is_date_proper) export(list_stac_files) export(process_aqs) -export(process_bluemarble) -export(process_bluemarble_corners) +export(process_blackmarble) +export(process_blackmarble_corners) export(process_collection) export(process_conformity) export(process_covariates) @@ -212,6 +212,7 @@ importFrom(terra,vect) importFrom(terra,vector_layers) importFrom(testthat,expect_true) importFrom(tidyr,pivot_wider) +importFrom(tools,file_path_sans_ext) importFrom(utils,download.file) importFrom(utils,head) importFrom(utils,read.csv) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 3c1f03b2..21a71701 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -379,7 +379,7 @@ calc_nlcd <- function(from, nlcd_at_bufs <- nlcd_at_bufs[, nlcd_val_cols] } # fill NAs - nlcd_at_bufs[is.na(nlcd_at_bufs)] <- 0 + nlcd_at_bufs[is.na(nlcd_at_bufs), with = FALSE] <- 0 # change column names nlcd_names <- names(nlcd_at_bufs) @@ -533,7 +533,7 @@ calc_ecoregion <- #' the file names at users' discretion. #' @seealso #' * Preprocessing: [process_modis_merge()], [process_modis_swath()], -#' [process_bluemarble()] +#' [process_blackmarble()] #' * Parallelization: [calc_modis_par()] #' @author Insang Song #' @returns A data.frame object. @@ -676,7 +676,7 @@ calc_modis_daily <- function( #' e.g., `"^LST_"` #' * `process_modis_swath()`: Subdataset names. #' e.g., `c("Cloud_Fraction_Day", "Cloud_Fraction_Night")` -#' * `process_bluemarble()`: Subdataset number. +#' * `process_blackmarble()`: Subdataset number. #' e.g., for VNP46A2 product, 3L. #' Dates with less than 80 percent of the expected number of tiles, #' which are determined by the mode of the number of tiles, are removed. @@ -700,7 +700,7 @@ calc_modis_daily <- function( #' Also, for preprocessing, please refer to: #' * [`process_modis_merge()`] #' * [`process_modis_swath()`] -#' * [`process_bluemarble()`] +#' * [`process_blackmarble()`] #' @importFrom methods is #' @importFrom sf st_as_sf #' @importFrom sf st_drop_geometry @@ -731,7 +731,7 @@ calc_modis_par <- ) { if (!is.function(preprocess)) { stop("preprocess should be one of process_modis_merge, -process_modis_swath, or process_bluemarble.") +process_modis_swath, or process_blackmarble.") } # read all arguments # nolint start diff --git a/R/process.R b/R/process.R index adce2480..eda51e24 100644 --- a/R/process.R +++ b/R/process.R @@ -13,7 +13,7 @@ #' @seealso #' - [`process_modis_swath`]: `"modis_swath"` #' - [`process_modis_merge`]: `"modis_merge"` -#' - [`process_bluemarble`]: `"bluemarble"` +#' - [`process_blackmarble`]: `"blackmarble"` #' - [`process_koppen_geiger`]: `"koppen-geiger"`, `"koeppen-geiger"`, `"koppen"` #' - [`process_ecoregion`]: `"ecoregion"`, `"ecoregions"` #' - [`process_nlcd`]: `"nlcd"` @@ -42,7 +42,7 @@ process_covariates <- function( covariate = c("modis_swath", "modis_merge", "koppen-geiger", - "bluemarble", + "blackmarble", "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "hms", "smoke", @@ -65,7 +65,7 @@ process_covariates <- what_to_run <- switch(covariate, modis_merge = process_modis_merge, modis_swath = process_modis_swath, - bluemarble = process_bluemarble, + blackmarble = process_blackmarble, ecoregion = process_ecoregion, ecoregions = process_ecoregion, koppen = process_koppen_geiger, @@ -327,21 +327,21 @@ process_modis_merge <- function( # nolint start -#' Process Blue Marble corners +#' Process Black Marble corners #' @description -#' Tile corner generator for Blue Marble products. +#' Tile corner generator for Black Marble products. #' @param hrange integer(2). Both should be in 0-35. #' @param vrange integer(2). Both should be in 0-17. -#' @description Blue Marble products are in HDF5 format and are read without +#' @description Black Marble products are in HDF5 format and are read without #' georeference with typical R geospatial packages. #' This function generates a `data.frame` of corner coordinates for assignment. #' @returns `data.frame` with xmin, xmax, ymin, and ymax fields #' @author Insang Song #' @references -#' - [Wang, Z. (2022). Blue Marble User Guide (Version 1.3). NASA.](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf) +#' - [Wang, Z. (2022). Black Marble User Guide (Version 1.3). NASA.](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf) #' @export # nolint end -process_bluemarble_corners <- +process_blackmarble_corners <- function( hrange = c(5, 11), vrange = c(3, 6) @@ -381,15 +381,15 @@ process_bluemarble_corners <- # nolint start -#' Assign VIIRS Blue Marble products corner coordinates to retrieve a merged raster +#' Assign VIIRS Black Marble products corner coordinates to retrieve a merged raster #' @description This function will return a `SpatRaster` object with -#' georeferenced h5 files of Blue Marble product. Referencing corner coordinates +#' georeferenced h5 files of Black Marble product. Referencing corner coordinates #' are necessary as the original h5 data do not include such information. #' @param path character. Full paths of h5 files. #' @param date character(1). Date to query. #' @param tile_df data.frame. Contains four corner coordinates in fields named #' `c("xmin", "xmax", "ymin", "ymax")`. -#' See [`process_bluemarble_corners`] to generate a valid object for this argument. +#' See [`process_blackmarble_corners`] to generate a valid object for this argument. #' @param subdataset integer(1). Subdataset number to process. #' Default is 3L. #' @param crs character(1). terra::crs compatible CRS. @@ -400,9 +400,9 @@ process_bluemarble_corners <- #' @seealso #' * [`terra::describe`] #' * [`terra::merge`] -#' * [`process_bluemarble_corners`] +#' * [`process_blackmarble_corners`] #' @references -#' - [Wang, Z. (2022). Blue Marble User Guide (Version 1.3). NASA.](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf) +#' - [Wang, Z. (2022). Black Marble User Guide (Version 1.3). NASA.](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf) #' @importFrom terra rast #' @importFrom terra ext #' @importFrom terra crs @@ -410,10 +410,10 @@ process_bluemarble_corners <- #' @export # previously modis_preprocess_vnp46 # nolint end -process_bluemarble <- function( +process_blackmarble <- function( path = NULL, date = NULL, - tile_df = process_bluemarble_corners(), + tile_df = process_blackmarble_corners(), subdataset = 3L, crs = "EPSG:4326", ... @@ -690,8 +690,8 @@ process_koppen_geiger <- #' @returns a `SpatRaster` object #' @author Eva Marques, Insang Song #' @importFrom utils read.csv -#' @importFrom terra rast -#' @importFrom terra metags +#' @importFrom tools file_path_sans_ext +#' @importFrom terra rast metags #' @export process_nlcd <- function( @@ -717,6 +717,12 @@ process_nlcd <- pattern = paste0("nlcd_", year, "_.*.(tif|img)$"), full.names = TRUE ) + # check if name without extension is duplicated + nlcd_file_base <- basename(nlcd_file) + nlcd_file_base <- tools::file_path_sans_ext(nlcd_file_base) + if (any(duplicated(nlcd_file_base))) { + stop("Duplicated NLCD files are detected. Please remove duplicates.") + } if (length(nlcd_file) == 0) { stop("NLCD data not available for this year.") } diff --git a/man/calc_modis_daily.Rd b/man/calc_modis_daily.Rd index d92e1532..a67566fd 100644 --- a/man/calc_modis_daily.Rd +++ b/man/calc_modis_daily.Rd @@ -58,7 +58,7 @@ the file names at users' discretion. \seealso{ \itemize{ \item Preprocessing: \code{\link[=process_modis_merge]{process_modis_merge()}}, \code{\link[=process_modis_swath]{process_modis_swath()}}, -\code{\link[=process_bluemarble]{process_bluemarble()}} +\code{\link[=process_blackmarble]{process_blackmarble()}} \item Parallelization: \code{\link[=calc_modis_par]{calc_modis_par()}} } } diff --git a/man/calc_modis_par.Rd b/man/calc_modis_par.Rd index 1cf02d19..b506ca4d 100644 --- a/man/calc_modis_par.Rd +++ b/man/calc_modis_par.Rd @@ -100,7 +100,7 @@ depending on \code{preprocess} function: e.g., \code{"^LST_"} \item \code{process_modis_swath()}: Subdataset names. e.g., \code{c("Cloud_Fraction_Day", "Cloud_Fraction_Night")} -\item \code{process_bluemarble()}: Subdataset number. +\item \code{process_blackmarble()}: Subdataset number. e.g., for VNP46A2 product, 3L. Dates with less than 80 percent of the expected number of tiles, which are determined by the mode of the number of tiles, are removed. @@ -128,6 +128,6 @@ Also, for preprocessing, please refer to: \itemize{ \item \code{\link[=process_modis_merge]{process_modis_merge()}} \item \code{\link[=process_modis_swath]{process_modis_swath()}} -\item \code{\link[=process_bluemarble]{process_bluemarble()}} +\item \code{\link[=process_blackmarble]{process_blackmarble()}} } } diff --git a/man/process_bluemarble.Rd b/man/process_blackmarble.Rd similarity index 70% rename from man/process_bluemarble.Rd rename to man/process_blackmarble.Rd index 9c8c7a30..0138ea58 100644 --- a/man/process_bluemarble.Rd +++ b/man/process_blackmarble.Rd @@ -1,13 +1,13 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/process.R -\name{process_bluemarble} -\alias{process_bluemarble} -\title{Assign VIIRS Blue Marble products corner coordinates to retrieve a merged raster} +\name{process_blackmarble} +\alias{process_blackmarble} +\title{Assign VIIRS Black Marble products corner coordinates to retrieve a merged raster} \usage{ -process_bluemarble( +process_blackmarble( path = NULL, date = NULL, - tile_df = process_bluemarble_corners(), + tile_df = process_blackmarble_corners(), subdataset = 3L, crs = "EPSG:4326", ... @@ -20,7 +20,7 @@ process_bluemarble( \item{tile_df}{data.frame. Contains four corner coordinates in fields named \code{c("xmin", "xmax", "ymin", "ymax")}. -See \code{\link{process_bluemarble_corners}} to generate a valid object for this argument.} +See \code{\link{process_blackmarble_corners}} to generate a valid object for this argument.} \item{subdataset}{integer(1). Subdataset number to process. Default is 3L.} @@ -35,19 +35,19 @@ a \code{SpatRaster} object } \description{ This function will return a \code{SpatRaster} object with -georeferenced h5 files of Blue Marble product. Referencing corner coordinates +georeferenced h5 files of Black Marble product. Referencing corner coordinates are necessary as the original h5 data do not include such information. } \references{ \itemize{ -\item \href{https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document\%20Archive/Science\%20Data\%20Product\%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf}{Wang, Z. (2022). Blue Marble User Guide (Version 1.3). NASA.} +\item \href{https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document\%20Archive/Science\%20Data\%20Product\%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf}{Wang, Z. (2022). Black Marble User Guide (Version 1.3). NASA.} } } \seealso{ \itemize{ \item \code{\link[terra:describe]{terra::describe}} \item \code{\link[terra:merge]{terra::merge}} -\item \code{\link{process_bluemarble_corners}} +\item \code{\link{process_blackmarble_corners}} } } \author{ diff --git a/man/process_bluemarble_corners.Rd b/man/process_blackmarble_corners.Rd similarity index 66% rename from man/process_bluemarble_corners.Rd rename to man/process_blackmarble_corners.Rd index f44892a2..c1e4c2ff 100644 --- a/man/process_bluemarble_corners.Rd +++ b/man/process_blackmarble_corners.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/process.R -\name{process_bluemarble_corners} -\alias{process_bluemarble_corners} -\title{Process Blue Marble corners} +\name{process_blackmarble_corners} +\alias{process_blackmarble_corners} +\title{Process Black Marble corners} \usage{ -process_bluemarble_corners(hrange = c(5, 11), vrange = c(3, 6)) +process_blackmarble_corners(hrange = c(5, 11), vrange = c(3, 6)) } \arguments{ \item{hrange}{integer(2). Both should be in 0-35.} @@ -15,15 +15,15 @@ process_bluemarble_corners(hrange = c(5, 11), vrange = c(3, 6)) \code{data.frame} with xmin, xmax, ymin, and ymax fields } \description{ -Tile corner generator for Blue Marble products. +Tile corner generator for Black Marble products. -Blue Marble products are in HDF5 format and are read without +Black Marble products are in HDF5 format and are read without georeference with typical R geospatial packages. This function generates a \code{data.frame} of corner coordinates for assignment. } \references{ \itemize{ -\item \href{https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document\%20Archive/Science\%20Data\%20Product\%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf}{Wang, Z. (2022). Blue Marble User Guide (Version 1.3). NASA.} +\item \href{https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document\%20Archive/Science\%20Data\%20Product\%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf}{Wang, Z. (2022). Black Marble User Guide (Version 1.3). NASA.} } } \author{ diff --git a/man/process_covariates.Rd b/man/process_covariates.Rd index 20e34bb1..ee2abee8 100644 --- a/man/process_covariates.Rd +++ b/man/process_covariates.Rd @@ -5,7 +5,7 @@ \title{Process raw data wrapper function} \usage{ process_covariates( - covariate = c("modis_swath", "modis_merge", "koppen-geiger", "bluemarble", + covariate = c("modis_swath", "modis_merge", "koppen-geiger", "blackmarble", "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "hms", "smoke", "sedac_population", "population", "sedac_groads", "groads", "roads", "nlcd", "tri", "narr", "nei", "ecoregions", "ecoregion", "merra", "merra2", "gridmet", diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index e4050a0e..8ec2109c 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -293,10 +293,10 @@ testthat::test_that("calc_modis works well.", { full.names = TRUE ) testthat::expect_warning( - base_vnp <- process_bluemarble( + base_vnp <- process_blackmarble( path = path_vnp46, date = "2018-08-13", - tile_df = process_bluemarble_corners(c(9, 10), c(5, 5)) + tile_df = process_blackmarble_corners(c(9, 10), c(5, 5)) ) ) @@ -306,11 +306,11 @@ testthat::test_that("calc_modis works well.", { calc_modis_par( from = path_vnp46, locs = site_faux, - preprocess = process_bluemarble, + preprocess = process_blackmarble, name_covariates = c("MOD_NITLT_0_"), subdataset = 3L, nthreads = 1, - tile_df = process_bluemarble_corners(c(9, 10), c(5, 5)) + tile_df = process_blackmarble_corners(c(9, 10), c(5, 5)) ) ) ) @@ -419,11 +419,11 @@ testthat::test_that("calc_modis works well.", { calc_modis_par( from = path_vnp46, locs = site_faux, - preprocess = process_bluemarble, + preprocess = process_blackmarble, name_covariates = c("MOD_NITLT_0_", "MOD_K1_"), subdataset = 3L, nthreads = 2, - tile_df = process_bluemarble_corners(c(9, 10), c(5, 5)) + tile_df = process_blackmarble_corners(c(9, 10), c(5, 5)) ) ) testthat::expect_warning( @@ -431,7 +431,7 @@ testthat::test_that("calc_modis works well.", { from = path_vnp46, locs = site_faux, name_covariates = c("MOD_NITLT_0_"), - preprocess = process_bluemarble, + preprocess = process_blackmarble, subdataset = 3L, nthreads = 1, radius = c(-1000, 0L) diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index 02e655ca..8a254e63 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -37,10 +37,10 @@ testthat::test_that("test generic process_covariates", { full.names = TRUE ) - corn <- process_bluemarble_corners() + corn <- process_blackmarble_corners() testthat::expect_warning( bm_proc <- process_covariates( - covariate = "bluemarble", + covariate = "blackmarble", path = path_vnp46[1], tile_df = corn, date = "2018-08-13" @@ -48,7 +48,7 @@ testthat::test_that("test generic process_covariates", { ) testthat::expect_warning( process_covariates( - covariate = "Bluemarble", + covariate = "Blackmarble", path = path_vnp46[1], tile_df = corn, date = "2018-08-13" @@ -56,7 +56,7 @@ testthat::test_that("test generic process_covariates", { ) testthat::expect_warning( process_covariates( - covariate = "BLUEMARBLE", + covariate = "BLACKMARBLE", path = path_vnp46[1], tile_df = corn, date = "2018-08-13" @@ -66,7 +66,7 @@ testthat::test_that("test generic process_covariates", { covar_types <- c("modis_swath", "modis_merge", "koppen-geiger", - "bluemarble", + "blackmarble", "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "hms", "smoke", @@ -280,14 +280,14 @@ testthat::test_that("VNP46 preprocess tests", { ) testthat::expect_no_error( - corn <- process_bluemarble_corners() + corn <- process_blackmarble_corners() ) testthat::expect_error( - process_bluemarble_corners(hrange = c(99, 104)) + process_blackmarble_corners(hrange = c(99, 104)) ) testthat::expect_warning( - vnp46_proc <- process_bluemarble( + vnp46_proc <- process_blackmarble( path = path_vnp46[1], tile_df = corn, date = "2018-08-13" @@ -297,7 +297,7 @@ testthat::test_that("VNP46 preprocess tests", { testthat::expect_equal(terra::nlyr(vnp46_proc), 1L) testthat::expect_warning( - vnp46_proc2 <- process_bluemarble( + vnp46_proc2 <- process_blackmarble( path = path_vnp46[1], tile_df = corn, subdataset = c(3L, 5L), @@ -309,7 +309,7 @@ testthat::test_that("VNP46 preprocess tests", { testthat::expect_equal(terra::nlyr(vnp46_proc2), 2L) testthat::expect_error( - process_bluemarble( + process_blackmarble( path = path_vnp46[1], tile_df = corn, date = "2018~08~13" @@ -463,6 +463,14 @@ testthat::test_that("process_nlcd tests", { testthat::expect_error( process_nlcd(path_nlcd19, year = 2020) ) + # make duplicate with tif and img + tdir <- tempdir() + dir.create(paste0(tdir, "/nlcd_all")) + file.create(paste0(tdir, "/nlcd_all/nlcd_2019_land_cover_20240624.tif")) + file.create(paste0(tdir, "/nlcd_all/nlcd_2019_land_cover_20240624.img")) + testthat::expect_error( + process_nlcd(path = paste0(tdir, "/nlcd_all"), year = 2019) + ) }) From f2fc834f4405b1dfa299ed3abe1c006d3873b166 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Thu, 27 Jun 2024 08:54:12 -0400 Subject: [PATCH 02/66] download_narr --- NAMESPACE | 4 +- R/download.R | 181 +++--------------- R/download_auxiliary.R | 50 +++++ man/download_data.Rd | 11 +- ...load_narr_p_levels.Rd => download_narr.Rd} | 13 +- man/download_narr_monolevel.Rd | 51 ----- man/narr_variable.Rd | 22 +++ tests/testthat/test-download_functions.R | 88 ++------- 8 files changed, 130 insertions(+), 290 deletions(-) rename man/{download_narr_p_levels.Rd => download_narr.Rd} (72%) delete mode 100644 man/download_narr_monolevel.Rd create mode 100644 man/narr_variable.Rd diff --git a/NAMESPACE b/NAMESPACE index 2595c1ff..08583a1b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -45,8 +45,7 @@ export(download_huc) export(download_koppen_geiger) export(download_merra2) export(download_modis) -export(download_narr_monolevel) -export(download_narr_p_levels) +export(download_narr) export(download_nei) export(download_nlcd) export(download_olm) @@ -69,6 +68,7 @@ export(generate_date_sequence) export(generate_time_sequence) export(is_date_proper) export(list_stac_files) +export(narr_variable) export(process_aqs) export(process_bluemarble) export(process_bluemarble_corners) diff --git a/R/download.R b/R/download.R index 1edf5410..69c08965 100644 --- a/R/download.R +++ b/R/download.R @@ -23,9 +23,7 @@ #' * \code{\link{download_gmted}}: `"gmted"`, `"GMTED"` #' * \code{\link{download_koppen_geiger}}: `"koppen"`, `"koppengeiger"` #' * \code{\link{download_merra2}}: "merra2", `"merra"`, `"MERRA"`, `"MERRA2"` -#' * \code{\link{download_narr_monolevel}}: `"narr_monolevel"`, `"monolevel"` -#' * \code{\link{download_narr_p_levels}}: `"narr_p_levels"`, `"p_levels"`, -#' `"plevels"` +#' * \code{\link{download_narr}}: `"narr"` #' * \code{\link{download_nlcd}}: `"nlcd"`, `"NLCD"` #' * \code{\link{download_hms}}: `"noaa"`, `"smoke"`, `"hms"` #' * \code{\link{download_sedac_groads}}: `"sedac_groads"`, `"groads"` @@ -42,10 +40,10 @@ download_data <- function( dataset_name = c("aqs", "ecoregion", "ecoregions", "geos", "gmted", "koppen", - "koppengeiger", "merra2", "merra", "narr_monolevel", - "modis", "narr_p_levels", "nlcd", "noaa", "sedac_groads", + "koppengeiger", "merra2", "merra", + "modis", "narr", "nlcd", "noaa", "sedac_groads", "sedac_population", "groads", "population", "plevels", - "p_levels", "monolevel", "hms", "smoke", "tri", "nei", + "hms", "smoke", "tri", "nei", "gridmet", "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap"), directory_to_save = NULL, @@ -67,11 +65,7 @@ download_data <- koppengeiger = download_koppen_geiger, merra2 = download_merra2, merra = download_merra2, - narr_monolevel = download_narr_monolevel, - monolevel = download_narr_monolevel, - narr_p_levels = download_narr_p_levels, - p_levels = download_narr_p_levels, - plevels = download_narr_p_levels, + narr = download_narr, nlcd = download_nlcd, noaa = download_hms, smoke = download_hms, @@ -1000,9 +994,10 @@ download_merra2 <- function( # nolint end: cyclocomp # nolint start -#' Download meteorological data (monolevel) +#' Download meteorological data #' @description -#' The \code{download_narr_monolevel} function accesses and downloads monolevel meteorological data from [NOAA's North American Regional Reanalysis (NARR) model](https://psl.noaa.gov/data/gridded/data.narr.html). "Monolevel" variables contain a single value for the entire atmospheric column (ie. Variable: Convective cloud cover; Level: Entire atmosphere considered as a single layer), or represent a specific altitude associated with the variable (ie. Variable: Air temperature; Level: 2 m). +#' The \code{download_narr} function accesses and downloads daily meteorological data from [NOAA's North American Regional Reanalysis (NARR) model](https://psl.noaa.gov/data/gridded/data.narr.html). +#' @note "Pressure levels" variables contain variable values at 29 atmospheric levels, ranging from 1000 hPa to 100 hPa. All pressure levels data will be downloaded for each variable. #' @param variables character. Variable(s) name acronym. See [List of Variables in NARR Files](https://ftp.cpc.ncep.noaa.gov/NARR/fixed/merged_land_AWIP32corrected.pdf) #' for variable names and acronym codes. #' @param year_start integer(1). length of 4. Start of year range for @@ -1021,11 +1016,12 @@ download_merra2 <- function( #' Remove (\code{TRUE}) or keep (\code{FALSE}) #' the text file containing download commands. #' @author Mitchell Manware, Insang Song -#' @return NULL; netCDF (.nc) files will be stored in a variable-specific -#' folder within \code{directory_to_save}. +#' @return NULL; netCDF (.nc) files will be stored in +#' \code{directory_to_save}. #' @export # nolint end -download_narr_monolevel <- function( +# nolint start: cyclocomp +download_narr <- function( variables = NULL, year_start = 2022, year_end = 2022, @@ -1040,19 +1036,17 @@ download_narr_monolevel <- function( #### 3. directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) - #### 4. define years sequence + #### 4. define years and months sequence if (any(nchar(year_start) != 4, nchar(year_end) != 4)) { stop("year_start and year_end should be 4-digit integers.\n") } years <- seq(year_start, year_end, 1) #### 5. define variables variables_list <- as.vector(variables) - #### 6. define URL base - base <- "https://downloads.psl.noaa.gov/Datasets/NARR/Dailies/monolevel/" #### 7. initiate "..._curl_commands.txt" commands_txt <- paste0( directory_to_save, - "narr_monolevel_", + "narr_", year_start, "_", year_end, "_curl_commands.txt" ) @@ -1061,151 +1055,24 @@ download_narr_monolevel <- function( for (v in seq_along(variables_list)) { variable <- variables_list[v] folder <- paste0(directory_to_save, variable, "/") - if (!dir.exists(folder)) { - dir.create(folder, recursive = TRUE) - } - for (y in seq_along(years)) { - year <- years[y] - url <- paste0( - base, - variable, - ".", - year, - ".nc" - ) - if (y == 1) { - if (!(check_url_status(url))) { - sink() - file.remove(commands_txt) - stop(paste0( - "Invalid year returns HTTP code 404. ", - "Check `year_start` parameter.\n" - )) - } - } - destfile <- paste0( - directory_to_save, - variable, - "/", - variable, - ".", - year, - ".nc" - ) - command <- paste0( - "curl -s -o ", - destfile, - " --url ", - url, - "\n" - ) - if (!file.exists(destfile)) { - #### cat command only if file does not already exist - cat(command) - } - } - } - #### 9. finish "..._curl_commands.txt" - sink() - #### 10. build system command - system_command <- paste0( - ". ", - commands_txt, - "\n" - ) - #### 11. download data - download_run( - download = download, - system_command = system_command - ) - #### 12. remove command text file - download_remove_command( - commands_txt = commands_txt, - remove = remove_command - ) -} - -# nolint start -#' Download meteorological data (pressure levels) -#' @description -#' The \code{download_narr_p_levels} function accesses and downloads pressure levels meteorological data from [NOAA's North American Regional Reanalysis (NARR) model](https://psl.noaa.gov/data/gridded/data.narr.html). "Pressure levels" variables contain variable values at 29 atmospheric levels, ranging from 1000 hPa to 100 hPa. All pressure levels data will be downloaded for each variable. -#' @param variables character. Variable(s) name acronym. See [List of Variables in NARR Files](https://ftp.cpc.ncep.noaa.gov/NARR/fixed/merged_land_AWIP32corrected.pdf) -#' for variable names and acronym codes. -#' @param year_start integer(1). length of 4. Start of year range for -#' downloading data. -#' @param year_end integer(1). length of 4. End of year range for downloading -#' data. -#' @param directory_to_save character(1). Directory(s) to save downloaded data -#' files. -#' @param acknowledgement logical(1). By setting \code{TRUE} the -#' user acknowledges that the data downloaded using this function may be very -#' large and use lots of machine storage and memory. -#' @param download logical(1). \code{FALSE} will generate a *.txt file -#' containing all download commands. By setting \code{TRUE} the function -#' will download all of the requested data files. -#' @param remove_command logical(1). -#' Remove (\code{TRUE}) or keep (\code{FALSE}) -#' the text file containing download commands. -#' @author Mitchell Manware, Insang Song -#' @return NULL; netCDF (.nc) files will be stored in -#' \code{directory_to_save}. -#' @export -# nolint end -# nolint start: cyclocomp -download_narr_p_levels <- function( - variables = NULL, - year_start = 2022, - year_end = 2022, - directory_to_save = NULL, - acknowledgement = FALSE, - download = FALSE, - remove_command = FALSE) { - #### 1. check for data download acknowledgement - download_permit(acknowledgement = acknowledgement) - #### 2. check for null parameters - check_for_null_parameters(mget(ls())) - #### 3. directory setup - download_setup_dir(directory_to_save) - directory_to_save <- download_sanitize_path(directory_to_save) - #### 4. define years sequence - years <- seq(year_start, year_end, 1) - #### 5. define months sequence - months <- sprintf("%02d", seq(1, 12, by = 1)) - - #### 6. define variables - variables_list <- as.vector(variables) - #### 7. define URL base - base <- "https://downloads.psl.noaa.gov//Datasets/NARR/Dailies/pressure/" - #### 8. initiate "..._curl_commands.txt" - commands_txt <- paste0( - directory_to_save, - "narr_p_levels_", - year_start, - "_", - year_end, - "_curl_commands.txt" - ) - download_sink(commands_txt) - #### 9. concatenate download commands to "..._curl_commands.txt" - for (v in seq_along(variables_list)) { - variable <- variables_list[v] - folder <- paste0(directory_to_save, variable, "/") + # implement variable sorting function + base <- narr_variable(variable)[[1]] + months <- narr_variable(variable)[[2]] if (!dir.exists(folder)) { dir.create(folder, recursive = TRUE) } for (y in seq_along(years)) { year <- years[y] for (m in seq_along(months)) { - month <- months[m] url <- paste0( base, variable, ".", year, - month, + months[m], ".nc" ) - if (m == 1) { + if (y == 1) { if (!(check_url_status(url))) { sink() file.remove(commands_txt) @@ -1222,7 +1089,6 @@ download_narr_p_levels <- function( variable, ".", year, - month, ".nc" ) command <- paste0( @@ -1232,7 +1098,6 @@ download_narr_p_levels <- function( url, "\n" ) - #### cat command only if file does not already exist if (!file.exists(destfile)) { #### cat command only if file does not already exist cat(command) @@ -1240,20 +1105,20 @@ download_narr_p_levels <- function( } } } - #### 10. finish "..._curl_commands.txt" + #### 9. finish "..._curl_commands.txt" sink() - #### 11. build system command + #### 10. build system command system_command <- paste0( ". ", commands_txt, "\n" ) - #### 12. download data + #### 11. download data download_run( download = download, system_command = system_command ) - #### 13. Remove command file + #### 12. remove command text file download_remove_command( commands_txt = commands_txt, remove = remove_command diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index 2aa019a8..f478525a 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -520,3 +520,53 @@ list_stac_files <- return(list_assets) } + +#' Sort NOAA NARR variables +#' @description +#' Determine whether a NOAA NARR variable selected for download is a +#' monolevel or pressure level variable. Monolevel variables are derived +#' from https://downloads.psl.noaa.gov/Datasets/NARR/Dailies/monolevel/, +#' and pressure level variables are derived from +#' https://downloads.psl.noaa.gov//Datasets/NARR/Dailies/pressure/. +#' @param variable character(1). User-selected NARR variable +#' @returns list with URL base and vector of months (blank for monolevel) +#' @keywords auxiliary +#' @export +narr_variable <- function(variable) { + stopifnot(length(variable) == 1) + mono <- c( + "acpcp", "air.2m", "air.sfc", "albedo", "apcp", + "bgrun", "bmixl.hl1", "cape", "ccond", "cdcon", + "cdlyr", "cfrzr", "cicep", "cin", "cnwat", + "crain", "csnow", "dlwrf", "dpt.2m", "dswrf", + "evap", "gflux", "hcdc", "hgt.tropo", "hlcy", + "hpbl", "lcdc", "lftx4", "lhtfl", "mcdc", + "mconv.hl1", "mslet", "mstav", "pevap", "pottmp.hl1", + "pottmp.sfc", "prate", "pres.sfc", "pres.tropo", "prmsl", + "pr_wtr", "rcq", "rcs", "rcsol", "rct", + "rhum.2m", "shtfl", "shum.2m", "snod","snohf", + "snom", "snowc","soilm", "ssrun", "tcdc", + "tke.hl1", "ulwrf.ntat", "ulwrf.sfc", "ustm", "uswrf.ntat", + "uswrf.sfc", "uwnd.10m", "veg", "vis", "vstm", + "vvel.hl1", "vwnd.10m", "vwsh.tropo", "wcconv", "wcinc", + "wcuflx", "wcvflx", "weasd", "wvconv", "wvinc", + "wvuflx", "wvvflx" + ) + pressure <- c("air", "hgt", "omega", "shum", "tke", "uwnd", "vwnd") + if (variable %in% mono) { + base <- "https://downloads.psl.noaa.gov/Datasets/NARR/Dailies/monolevel/" + months <- "" + } else if (variable %in% pressure) { + base <- "https://downloads.psl.noaa.gov/Datasets/NARR/Dailies/pressure/" + months <- sprintf("%02d", seq(1, 12, by = 1)) + } else { + stop( + paste0( + "Selected variable \"", + variable, + "\" is not available.\n" + ) + ) + } + return(list(base, months)) +} \ No newline at end of file diff --git a/man/download_data.Rd b/man/download_data.Rd index d7da4c3e..1a1bba95 100644 --- a/man/download_data.Rd +++ b/man/download_data.Rd @@ -6,10 +6,9 @@ \usage{ download_data( dataset_name = c("aqs", "ecoregion", "ecoregions", "geos", "gmted", "koppen", - "koppengeiger", "merra2", "merra", "narr_monolevel", "modis", "narr_p_levels", - "nlcd", "noaa", "sedac_groads", "sedac_population", "groads", "population", - "plevels", "p_levels", "monolevel", "hms", "smoke", "tri", "nei", "gridmet", - "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap"), + "koppengeiger", "merra2", "merra", "modis", "narr", "nlcd", "noaa", "sedac_groads", + "sedac_population", "groads", "population", "plevels", "hms", "smoke", "tri", "nei", + "gridmet", "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap"), directory_to_save = NULL, acknowledgement = FALSE, ... @@ -45,9 +44,7 @@ Please refer to: \item \code{\link{download_gmted}}: \code{"gmted"}, \code{"GMTED"} \item \code{\link{download_koppen_geiger}}: \code{"koppen"}, \code{"koppengeiger"} \item \code{\link{download_merra2}}: "merra2", \code{"merra"}, \code{"MERRA"}, \code{"MERRA2"} -\item \code{\link{download_narr_monolevel}}: \code{"narr_monolevel"}, \code{"monolevel"} -\item \code{\link{download_narr_p_levels}}: \code{"narr_p_levels"}, \code{"p_levels"}, -\code{"plevels"} +\item \code{\link{download_narr}}: \code{"narr"} \item \code{\link{download_nlcd}}: \code{"nlcd"}, \code{"NLCD"} \item \code{\link{download_hms}}: \code{"noaa"}, \code{"smoke"}, \code{"hms"} \item \code{\link{download_sedac_groads}}: \code{"sedac_groads"}, \code{"groads"} diff --git a/man/download_narr_p_levels.Rd b/man/download_narr.Rd similarity index 72% rename from man/download_narr_p_levels.Rd rename to man/download_narr.Rd index ecb28eda..026e2a47 100644 --- a/man/download_narr_p_levels.Rd +++ b/man/download_narr.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/download.R -\name{download_narr_p_levels} -\alias{download_narr_p_levels} -\title{Download meteorological data (pressure levels)} +\name{download_narr} +\alias{download_narr} +\title{Download meteorological data} \usage{ -download_narr_p_levels( +download_narr( variables = NULL, year_start = 2022, year_end = 2022, @@ -44,7 +44,10 @@ NULL; netCDF (.nc) files will be stored in \code{directory_to_save}. } \description{ -The \code{download_narr_p_levels} function accesses and downloads pressure levels meteorological data from \href{https://psl.noaa.gov/data/gridded/data.narr.html}{NOAA's North American Regional Reanalysis (NARR) model}. "Pressure levels" variables contain variable values at 29 atmospheric levels, ranging from 1000 hPa to 100 hPa. All pressure levels data will be downloaded for each variable. +The \code{download_narr} function accesses and downloads daily meteorological data from \href{https://psl.noaa.gov/data/gridded/data.narr.html}{NOAA's North American Regional Reanalysis (NARR) model}. +} +\note{ +"Pressure levels" variables contain variable values at 29 atmospheric levels, ranging from 1000 hPa to 100 hPa. All pressure levels data will be downloaded for each variable. } \author{ Mitchell Manware, Insang Song diff --git a/man/download_narr_monolevel.Rd b/man/download_narr_monolevel.Rd deleted file mode 100644 index 7d4814f8..00000000 --- a/man/download_narr_monolevel.Rd +++ /dev/null @@ -1,51 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/download.R -\name{download_narr_monolevel} -\alias{download_narr_monolevel} -\title{Download meteorological data (monolevel)} -\usage{ -download_narr_monolevel( - variables = NULL, - year_start = 2022, - year_end = 2022, - directory_to_save = NULL, - acknowledgement = FALSE, - download = FALSE, - remove_command = FALSE -) -} -\arguments{ -\item{variables}{character. Variable(s) name acronym. See \href{https://ftp.cpc.ncep.noaa.gov/NARR/fixed/merged_land_AWIP32corrected.pdf}{List of Variables in NARR Files} -for variable names and acronym codes.} - -\item{year_start}{integer(1). length of 4. Start of year range for -downloading data.} - -\item{year_end}{integer(1). length of 4. End of year range for downloading -data.} - -\item{directory_to_save}{character(1). Directory(s) to save downloaded data -files.} - -\item{acknowledgement}{logical(1). By setting \code{TRUE} the -user acknowledges that the data downloaded using this function may be very -large and use lots of machine storage and memory.} - -\item{download}{logical(1). \code{FALSE} will generate a *.txt file -containing all download commands. By setting \code{TRUE} the function -will download all of the requested data files.} - -\item{remove_command}{logical(1). -Remove (\code{TRUE}) or keep (\code{FALSE}) -the text file containing download commands.} -} -\value{ -NULL; netCDF (.nc) files will be stored in a variable-specific -folder within \code{directory_to_save}. -} -\description{ -The \code{download_narr_monolevel} function accesses and downloads monolevel meteorological data from \href{https://psl.noaa.gov/data/gridded/data.narr.html}{NOAA's North American Regional Reanalysis (NARR) model}. "Monolevel" variables contain a single value for the entire atmospheric column (ie. Variable: Convective cloud cover; Level: Entire atmosphere considered as a single layer), or represent a specific altitude associated with the variable (ie. Variable: Air temperature; Level: 2 m). -} -\author{ -Mitchell Manware, Insang Song -} diff --git a/man/narr_variable.Rd b/man/narr_variable.Rd new file mode 100644 index 00000000..7ef23596 --- /dev/null +++ b/man/narr_variable.Rd @@ -0,0 +1,22 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/download_auxiliary.R +\name{narr_variable} +\alias{narr_variable} +\title{Sort NOAA NARR variables} +\usage{ +narr_variable(variable) +} +\arguments{ +\item{variable}{character(1). User-selected NARR variable} +} +\value{ +list with URL base and vector of months (blank for monolevel) +} +\description{ +Determine whether a NOAA NARR variable selected for download is a +monolevel or pressure level variable. Monolevel variables are derived +from https://downloads.psl.noaa.gov/Datasets/NARR/Dailies/monolevel/, +and pressure level variables are derived from +https://downloads.psl.noaa.gov//Datasets/NARR/Dailies/pressure/. +} +\keyword{auxiliary} diff --git a/tests/testthat/test-download_functions.R b/tests/testthat/test-download_functions.R index a7c113ae..22245906 100644 --- a/tests/testthat/test-download_functions.R +++ b/tests/testthat/test-download_functions.R @@ -2,10 +2,10 @@ testthat::test_that("Error when acknowledgement = FALSE", { download_datasets <- c("aqs", "ecoregion", "geos", "gmted", "koppen", - "koppengeiger", "merra2", "merra", "narr_monolevel", - "narr_p_levels", "nlcd", "noaa", "sedac_groads", - "sedac_population", "groads", "population", "plevels", - "p_levels", "monolevel", "hms", "smoke", "gridmet", + "koppengeiger", "merra2", "merra", "narr", + "nlcd", "noaa", "sedac_groads", + "sedac_population", "groads", "population", + "hms", "smoke", "gridmet", "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap") for (d in seq_along(download_datasets)) { @@ -20,10 +20,10 @@ testthat::test_that("Error when acknowledgement = FALSE", { testthat::test_that("Error when one parameter is NULL.", { download_datasets <- c("aqs", "ecoregion", "geos", "gmted", "koppen", - "koppengeiger", "merra2", "merra", "narr_monolevel", - "narr_p_levels", "nlcd", "noaa", "sedac_groads", - "sedac_population", "groads", "population", "plevels", - "p_levels", "monolevel", "hms", "smoke", "gridmet", + "koppengeiger", "merra2", "merra", "narr", + "nlcd", "noaa", "sedac_groads", + "sedac_population", "groads", "population", + "hms", "smoke", "gridmet", "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap") for (d in seq_along(download_datasets)) { @@ -55,21 +55,13 @@ testthat::test_that("Errors when temporal ranges invalid.", { ) ) expect_error( - download_narr_monolevel( + download_narr( year_start = 1900, variables = "air.sfc", acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata/", "") ) ) - expect_error( - download_narr_p_levels( - year_start = 1900, - variables = "omega", - acknowledgement = TRUE, - directory_to_save = testthat::test_path("..", "testdata/", "") - ) - ) expect_error( download_merra2( date_start = "1900-01-01", @@ -415,17 +407,17 @@ testthat::test_that("MERRA2 returns message with unrecognized collection.", { ) }) -## NARR Monolevel #### -testthat::test_that("NARR monolevel download URLs have HTTP status 200.", { +## NARR (monolevel and pressure level) +testthat::test_that("NARR download URLs have HTTP status 200.", { withr::local_package("httr") withr::local_package("stringr") # function parameters year_start <- 2018 year_end <- 2018 - variables <- c("weasd", "air.2m") + variables <- c("weasd", "omega") # includes monolevel and pressure levels directory_to_save <- testthat::test_path("..", "testdata/", "") # run download function - download_data(dataset_name = "narr_monolevel", + download_data(dataset_name = "narr", year_start = year_start, year_end = year_end, variables = variables, @@ -434,7 +426,7 @@ testthat::test_that("NARR monolevel download URLs have HTTP status 200.", { download = FALSE) # define path with commands commands_path <- paste0(directory_to_save, - "narr_monolevel_", + "narr_", year_start, "_", year_end, "_curl_commands.txt") # import commands @@ -451,10 +443,10 @@ testthat::test_that("NARR monolevel download URLs have HTTP status 200.", { file.remove(commands_path) }) -testthat::test_that("NARR monolevel error with invalid years.", { +testthat::test_that("NARR error with invalid years.", { testthat::expect_error( download_data( - dataset_name = "narr_monolevel", + dataset_name = "narr", variables = "weasd", year_start = 10, year_end = 11, @@ -464,49 +456,11 @@ testthat::test_that("NARR monolevel error with invalid years.", { ) }) -# NARR -- p-levels #### -testthat::test_that("NARR p-levels download URLs have HTTP status 200.", { - withr::local_package("httr") - withr::local_package("stringr") - # function parameters - year_start <- 2020 - year_end <- 2021 - variables <- c("shum", "omega") - directory_to_save <- testthat::test_path("..", "testdata/", "") - directory_to_save2 <- testthat::test_path("..", "testdata", "hej") - # run download function - download_data(dataset_name = "narr_p_levels", - year_start = year_start, - year_end = year_end, - variables = variables, - directory_to_save = directory_to_save, - acknowledgement = TRUE, - download = FALSE) - # define file path with commands - commands_path <- paste0(directory_to_save, - "narr_p_levels_", - year_start, "_", year_end, - "_curl_commands.txt") - # import commands - commands <- read_commands(commands_path = commands_path) - # extract urls - urls <- extract_urls(commands = commands, position = 6) - # check HTTP URL status - url_status <- check_urls(urls = urls, size = 10L, method = "HEAD") - # implement unit tests - test_download_functions(directory_to_save = directory_to_save, - commands_path = commands_path, - url_status = url_status) - download_data(dataset_name = "narr_p_levels", - year_start = year_start, - year_end = year_end, - variables = variables, - directory_to_save = directory_to_save2, - acknowledgement = TRUE, - remove_command = TRUE, - download = FALSE) - # remove file with commands after test - file.remove(commands_path) +#### NARR variable sorting function +testthat::test_that("narr_variable with unrecognized variable.", { + testthat::expect_error( + narr_variable("uNrEcOgNiZed") + ) }) testthat::test_that("NOAA HMS Smoke download URLs have HTTP status 200.", { From c9c2a4471f05b016898735e405f5efc70b3d4412 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Thu, 27 Jun 2024 09:35:40 -0400 Subject: [PATCH 03/66] download_narr destfile --- R/download.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/download.R b/R/download.R index 69c08965..09efc0d3 100644 --- a/R/download.R +++ b/R/download.R @@ -42,7 +42,7 @@ download_data <- "geos", "gmted", "koppen", "koppengeiger", "merra2", "merra", "modis", "narr", "nlcd", "noaa", "sedac_groads", - "sedac_population", "groads", "population", "plevels", + "sedac_population", "groads", "population", "hms", "smoke", "tri", "nei", "gridmet", "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap"), @@ -1089,6 +1089,7 @@ download_narr <- function( variable, ".", year, + months[m], ".nc" ) command <- paste0( From 3e28b35226d318f9fdcc1fdea7299d2ec327b3a3 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Thu, 27 Jun 2024 13:47:15 -0400 Subject: [PATCH 04/66] date & year params; tests --- R/download.R | 187 ++++++++++------------- tests/testthat/test-download_functions.R | 98 +++++------- 2 files changed, 115 insertions(+), 170 deletions(-) diff --git a/R/download.R b/R/download.R index 09efc0d3..19d1b6d3 100644 --- a/R/download.R +++ b/R/download.R @@ -117,10 +117,7 @@ download_data <- #' Currently, no value other than `"daily"` works. #' @param url_aqs_download character(1). #' URL to the AQS pre-generated datasets. -#' @param year_start integer(1). length of 4. -#' Start year for downloading data. -#' @param year_end integer(1). length of 4. -#' End year for downloading data. +#' @param year character(2). length of 4 each. Start/end years for downloading data. #' @param directory_to_save character(1). Directory to save data. Two #' sub-directories will be created for the downloaded zip files ("/zip_files") #' and the unzipped data files ("/data_files"). @@ -144,8 +141,7 @@ download_aqs <- function( parameter_code = 88101, resolution_temporal = "daily", - year_start = 2018, - year_end = 2022, + year = c(2018, 2022), url_aqs_download = "https://aqs.epa.gov/aqsweb/airdata/", directory_to_save = NULL, acknowledgement = FALSE, @@ -164,7 +160,7 @@ download_aqs <- directory_to_download <- directories[1] directory_to_save <- directories[2] #### 4. define year sequence - year_sequence <- seq(year_start, year_end, 1) + year_sequence <- seq(year[1], year[2], 1) #### 5. build URLs download_urls <- sprintf( paste(url_aqs_download, @@ -180,7 +176,7 @@ download_aqs <- if (!(check_url_status(download_urls[1]))) { stop(paste0( "Invalid year returns HTTP code 404. ", - "Check `year_start` parameter.\n" + "Check `year` parameter.\n" )) } #### 5. build download file name @@ -215,7 +211,7 @@ download_aqs <- "aqs_", parameter_code, "_", - year_start, "_", year_end, + year[1], "_", year[2], "_", resolution_temporal, "_curl_commands.txt" @@ -393,10 +389,8 @@ download_ecoregion <- function( #' atmospheric composition collections from [NASA's Global Earth Observing System (GEOS) model](https://gmao.gsfc.nasa.gov/GEOS_systems/). # nolint end #' @param collection character(1). GEOS-CF data collection file name. -#' @param date_start character(1). length of 10. Start date for downloading -#' data. Format YYYY-MM-DD (ex. September 1, 2023 = `"2023-09-01"`). -#' @param date_end character(1). length of 10. End date for downloading data. -#' Format YYYY-MM-DD (ex. September 1, 2023 = `"2023-09-01"`). +#' @param date character(2). length of 10 each. Start/end date for downloading data. +#' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). #' @param directory_to_save character(1). Directory to save data. #' Sub-directories will be created within \code{directory_to_save} for each #' GEOS-CF collection. @@ -421,8 +415,7 @@ download_geos <- function( "met_tavg_1hr_g1440x721_x1", "xgc_tavg_1hr_g1440x721_x1", "chm_inst_1hr_g1440x721_p23", "met_inst_1hr_g1440x721_p23" ), - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2018-01-01", "2018-01-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -438,8 +431,8 @@ download_geos <- function( collection <- match.arg(collection, several.ok = TRUE) #### 5. define date sequence date_sequence <- generate_date_sequence( - date_start, - date_end, + date[1], + date[2], sub_hyphen = TRUE ) #### 7. define URL base @@ -448,9 +441,9 @@ download_geos <- function( commands_txt <- paste0( directory_to_save, "geos_", - date_start, + date[1], "_", - date_end, + date[2], "_wget_commands.txt" ) download_sink(commands_txt) @@ -501,7 +494,7 @@ download_geos <- function( file.remove(commands_txt) stop(paste0( "Invalid date returns HTTP code 404. ", - "Check `date_start` parameter.\n" + "Check `date` parameter.\n" )) } } @@ -695,10 +688,8 @@ download_gmted <- function( #' The \code{download_merra2()} function accesses and downloads various #' meteorological and atmospheric collections from [NASA's Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2) model](https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/). #' @param collection character(1). MERRA-2 data collection file name. -#' @param date_start character(1). length of 10. Start date for downloading -#' data. Format YYYY-MM-DD (ex. September 1, 2023 is `"2023-09-01"`). -#' @param date_end character(1). length of 10. End date for downloading data. -#' Format YYYY-MM-DD (ex. September 1, 2023 is `"2023-09-01"`). +#' @param date character(2). length of 10 each. Start/end date for downloading data. +#' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). #' @param directory_to_save character(1). Directory to save data. #' @param acknowledgement logical(1). By setting \code{TRUE} the #' user acknowledges that the data downloaded using this function may be very @@ -731,8 +722,7 @@ download_merra2 <- function( "tavg3_3d_qdt_Np", "tavg3_3d_asm_Nv", "tavg3_3d_cld_Nv", "tavg3_3d_mst_Nv", "tavg3_3d_rad_Nv", "tavg3_2d_glc_Nx" ), - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2018-01-01", "2018-01-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -798,8 +788,8 @@ download_merra2 <- function( } #### define date sequence date_sequence <- generate_date_sequence( - date_start, - date_end, + date[1], + date[2], sub_hyphen = TRUE ) #### define year + month sequence @@ -808,9 +798,9 @@ download_merra2 <- function( commands_txt <- paste0( directory_to_save, "merra2_", - date_start, + date[1], "_", - date_end, + date[2], "_wget_commands.txt" ) download_sink(commands_txt) @@ -864,7 +854,7 @@ download_merra2 <- function( if (!(check_url_status(base_url))) { stop(paste0( "Invalid date returns HTTP code 404. ", - "Check `date_start` parameter.\n" + "Check `date` parameter.\n" )) } } @@ -1000,10 +990,7 @@ download_merra2 <- function( #' @note "Pressure levels" variables contain variable values at 29 atmospheric levels, ranging from 1000 hPa to 100 hPa. All pressure levels data will be downloaded for each variable. #' @param variables character. Variable(s) name acronym. See [List of Variables in NARR Files](https://ftp.cpc.ncep.noaa.gov/NARR/fixed/merged_land_AWIP32corrected.pdf) #' for variable names and acronym codes. -#' @param year_start integer(1). length of 4. Start of year range for -#' downloading data. -#' @param year_end integer(1). length of 4. End of year range for downloading -#' data. +#' @param year character(2). length of 4 each. Start/end years for downloading data. #' @param directory_to_save character(1). Directory(s) to save downloaded data #' files. #' @param acknowledgement logical(1). By setting \code{TRUE} the @@ -1023,8 +1010,7 @@ download_merra2 <- function( # nolint start: cyclocomp download_narr <- function( variables = NULL, - year_start = 2022, - year_end = 2022, + year = c(2018, 2022), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -1037,17 +1023,17 @@ download_narr <- function( download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) #### 4. define years and months sequence - if (any(nchar(year_start) != 4, nchar(year_end) != 4)) { - stop("year_start and year_end should be 4-digit integers.\n") + if (any(nchar(year[1]) != 4, nchar(year[2]) != 4)) { + stop("years should be 4-digit integers.\n") } - years <- seq(year_start, year_end, 1) + years <- seq(year[1], year[2], 1) #### 5. define variables variables_list <- as.vector(variables) #### 7. initiate "..._curl_commands.txt" commands_txt <- paste0( directory_to_save, "narr_", - year_start, "_", year_end, + year[1], "_", year[2], "_curl_commands.txt" ) download_sink(commands_txt) @@ -1062,13 +1048,13 @@ download_narr <- function( dir.create(folder, recursive = TRUE) } for (y in seq_along(years)) { - year <- years[y] + year_l <- years[y] for (m in seq_along(months)) { url <- paste0( base, variable, ".", - year, + year_l, months[m], ".nc" ) @@ -1078,7 +1064,7 @@ download_narr <- function( file.remove(commands_txt) stop(paste0( "Invalid year returns HTTP code 404. ", - "Check `year_start` parameter.\n" + "Check `year` parameter.\n" )) } } @@ -1088,7 +1074,7 @@ download_narr <- function( "/", variable, ".", - year, + year_l, months[m], ".nc" ) @@ -1598,10 +1584,7 @@ download_sedac_population <- function( #' wildfire smoke plume coverage data from [NOAA's Hazard Mapping System Fire and Smoke Product](https://www.ospo.noaa.gov/Products/land/hms.html#0). # nolint end #' @param data_format character(1). "Shapefile" or "KML". -#' @param date_start character(1). length of 10. Start date for downloading -#' data. Format YYYY-MM-DD (ex. September 1, 2023 is `"2023-09-01"`). -#' @param date_end character(1). length of 10. End date for downloading data. -#' Format YYYY-MM-DD (ex. September 10, 2023 is `"2023-09-10"`). +#' @param date character(2). length of 10 each. Start/end date for downloading data. #' @param directory_to_save character(1). Directory to save data. If #' `data_format = "Shapefile"`, two sub-directories will be created for the #' downloaded zip files ("/zip_files") and the unzipped shapefiles @@ -1631,8 +1614,7 @@ download_sedac_population <- function( # nolint start: cyclocomp download_hms <- function( data_format = "Shapefile", - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2018-01-01", "2018-01-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -1657,8 +1639,8 @@ download_hms <- function( } #### 5. define date sequence date_sequence <- generate_date_sequence( - date_start, - date_end, + date[1], + date[2], sub_hyphen = TRUE ) #### 6. define URL base @@ -1704,7 +1686,7 @@ download_hms <- function( file.remove(commands_txt) stop(paste0( "Invalid date returns HTTP code 404. ", - "Check `date_start` parameter.\n" + "Check `date` parameter.\n" )) } } @@ -1904,7 +1886,7 @@ download_koppen_geiger <- function( #' links. Download is only done at the queried horizontal-vertical tile number #' combinations. An exception is MOD06_L2 product, which is produced #' every five minutes every day. -#' @note \code{date_start} and \code{date_end} should be in the same year. +#' @note Both dates in \code{date} should be in the same year. #' Directory structure looks like #' input/modis/raw/\{version\}/\{product\}/\{year\}/\{day_of_year\} #' Please note that \code{date_start} and \code{date_end} are @@ -1921,10 +1903,8 @@ download_koppen_geiger <- function( #' trying running the function. #' @param mod06_links character(1). CSV file path to MOD06_L2 download links #' from NASA LPDAAC. Default is `NULL`. -#' @param date_start character(1). length of 10. Start date for downloading -#' data. Format YYYY-MM-DD (ex. September 1, 2023 is `"2023-09-01"`). -#' @param date_end character(1). length of 10. End date for downloading data. -#' Format YYYY-MM-DD (ex. September 1, 2023 is `"2023-09-01"`). +#' @param date character(2). length of 10 each. Start/end date for downloading data. +#' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). #' @param directory_to_save character(1). Directory to save data. #' @param acknowledgement logical(1). By setting \code{TRUE} the #' user acknowledges that the data downloaded using this function may be very @@ -1947,8 +1927,7 @@ download_modis <- function( vertical_tiles = c(3, 6), mod06_links = NULL, nasa_earth_data_token = NULL, - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2023-09-01", "2023-09-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -1966,9 +1945,9 @@ download_modis <- function( #### 4. check for product product <- match.arg(product) - if (substr(date_start, 1, 4) != substr(date_end, 1, 4)) { + if (substr(date[1], 1, 4) != substr(date[2], 1, 4)) { if (product != "MOD06_L2") { - stop("date_start and date_end should be in the same year.\n") + stop("dates should be in the same year.\n") } } @@ -2025,7 +2004,7 @@ download_modis <- function( mod06l2_url_template <- paste0(mod06l2_url1, mod06l2_url2, mod06l2_url3) mod06l2_full <- - sprintf(mod06l2_url_template, date_start, date_end) + sprintf(mod06l2_url_template, date[1], date[2]) if (is.null(mod06_links)) { stop(paste( @@ -2120,12 +2099,12 @@ download_modis <- function( #### 11. define date sequence date_sequence <- generate_date_sequence( - date_start, - date_end, + date[1], + date[2], sub_hyphen = FALSE ) # In a certain year, list all available dates - year <- as.character(substr(date_start, 1, 4)) + year <- as.character(substr(date[1], 1, 4)) filedir_year_url <- paste0( ladsurl, @@ -2148,8 +2127,8 @@ download_modis <- function( date_sequence <- list_available_d[!is.na(list_available_d)] date_sequence_i <- as.integer(date_sequence) # Queried dates to integer range - date_start_i <- as.integer(strftime(date_start, "%j")) - date_end_i <- as.integer(strftime(date_end, "%j")) + date_start_i <- as.integer(strftime(date[1], "%j")) + date_end_i <- as.integer(strftime(date[2], "%j")) date_range_julian <- seq(date_start_i, date_end_i) date_sequence_in <- (date_sequence_i %in% date_range_julian) @@ -2165,9 +2144,9 @@ download_modis <- function( directory_to_save, product, "_", - date_start, + date[1], "_", - date_end, + date[2], "_wget_commands.txt" ) @@ -2253,8 +2232,7 @@ download_modis <- function( #' @description #' The \code{download_tri()} function accesses and downloads toxic release data from the [U.S. Environmental Protection Agency's (EPA) Toxic Release Inventory (TRI) Program](https://www.epa.gov/toxics-release-inventory-tri-program/find-understand-and-use-tri). # nolint end -#' @param year_start integer(1). length of 4. Start year for downloading data. -#' @param year_end integer(1). length of 4. End year for downloading data. +#' @param year character(2). length of 4 each. Start/end years for downloading data. #' @param directory_to_save character(1). Directory to download files. #' @param acknowledgement logical(1). By setting \code{TRUE} the #' user acknowledges that the data downloaded using this function may be very @@ -2269,8 +2247,7 @@ download_modis <- function( #' \code{directory_to_save}. #' @export download_tri <- function( - year_start = 2018L, - year_end = 2022L, + year = c(2018L, 2022L), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -2284,7 +2261,7 @@ download_tri <- function( #### 3. define measurement data paths url_download <- "https://data.epa.gov/efservice/downloads/tri/mv_tri_basic_download/" - year_sequence <- seq(year_start, year_end, 1) + year_sequence <- seq(year[1], year[2], 1) download_urls <- sprintf( paste(url_download, "%.0f", "_US/csv", sep = ""), year_sequence @@ -2310,7 +2287,7 @@ download_tri <- function( commands_txt <- paste0( directory_to_save, "TRI_", - year_start, "_", year_end, + year[1], "_", year[2], "_", Sys.Date(), "_curl_commands.txt" @@ -2347,7 +2324,7 @@ download_tri <- function( #' 'extdata/cacert_gaftp_epa.pem' under the package installation path. #' @param certificate_url character(1). URL to certificate file. See notes for #' details. -#' @param year_target Available years of NEI data. +#' @param year Available years of NEI data. #' Default is \code{c(2017L, 2020L)}. #' @param directory_to_save character(1). Directory to save data. Two #' sub-directories will be created for the downloaded zip files ("/zip_files") @@ -2382,7 +2359,7 @@ download_nei <- function( package = "amadeus"), certificate_url = "http://cacerts.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt", - year_target = c(2017L, 2020L), + year = c(2017L, 2020L), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -2410,7 +2387,7 @@ download_nei <- function( "2020nei_onroad_byregion.zip") download_urls <- paste0( - sprintf(url_download_base, year_target), + sprintf(url_download_base, year), url_download_remain ) download_names_file <- @@ -2437,7 +2414,7 @@ download_nei <- function( commands_txt <- paste0( directory_original, "NEI_AADT_", - paste(year_target, collapse = "-"), + paste(year, collapse = "-"), "_", Sys.Date(), "_wget_commands.txt" @@ -3079,10 +3056,7 @@ download_prism <- function( #' @param variables character(1). Variable(s) name(s). See [gridMET Generate Wget File](https://www.climatologylab.org/wget-gridmet.html) #' for variable names and acronym codes. (Note: variable "Burning Index" has code "bi" and variable #' "Energy Release Component" has code "erc"). -#' @param year_start integer(1). length of 4. Start of year range for -#' downloading data. -#' @param year_end integer(1). length of 4. End of year range for downloading -#' data. +#' @param year character(2). length of 4 each. Start/end years for downloading data. #' @param directory_to_save character(1). Directory(s) to save downloaded data #' files. #' @param acknowledgement logical(1). By setting \code{TRUE} the @@ -3101,8 +3075,7 @@ download_prism <- function( # nolint end download_gridmet <- function( variables = NULL, - year_start = 2022, - year_end = 2022, + year = c(2018, 2022), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -3115,10 +3088,10 @@ download_gridmet <- function( download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) #### define years sequence - if (any(nchar(year_start) != 4, nchar(year_end) != 4)) { - stop("year_start and year_end should be 4-digit integers.\n") + if (any(nchar(year[1]) != 4, nchar(year[1]) != 4)) { + stop("years should be 4-digit integers.\n") } - years <- seq(year_start, year_end, 1) + years <- seq(year[1], year[1], 1) #### define variables variables_list <- process_variable_codes( variables = variables, @@ -3130,7 +3103,7 @@ download_gridmet <- function( commands_txt <- paste0( directory_to_save, "gridmet_", - year_start, "_", year_end, + year[1], "_", year[2], "_curl_commands.txt" ) download_sink(commands_txt) @@ -3142,12 +3115,12 @@ download_gridmet <- function( dir.create(folder) } for (y in seq_along(years)) { - year <- years[y] + year_l <- years[y] url <- paste0( base, variable, "_", - year, + year_l, ".nc" ) if (y == 1) { @@ -3156,7 +3129,7 @@ download_gridmet <- function( file.remove(commands_txt) stop(paste0( "Invalid year returns HTTP code 404. ", - "Check `year_start` parameter.\n" + "Check `year` parameter.\n" )) } } @@ -3166,7 +3139,7 @@ download_gridmet <- function( "/", variable, "_", - year, + year_l, ".nc" ) command <- paste0( @@ -3208,10 +3181,7 @@ download_gridmet <- function( #' The \code{download_terraclimate} function accesses and downloads climate and water balance data from the [University of California Merced Climatology Lab's TerraClimate dataset](https://www.climatologylab.org/terraclimate.html). #' @param variables character(1). Variable(s) name(s). See [TerraClimate Direct Downloads](https://climate.northwestknowledge.net/TERRACLIMATE/index_directDownloads.php) #' for variable names and acronym codes. -#' @param year_start integer(1). length of 4. Start of year range for -#' downloading data. -#' @param year_end integer(1). length of 4. End of year range for downloading -#' data. +#' @param year character(2). length of 4 each. Start/end years for downloading data. #' @param directory_to_save character(1). Directory(s) to save downloaded data #' files. #' @param acknowledgement logical(1). By setting \code{TRUE} the @@ -3230,8 +3200,7 @@ download_gridmet <- function( # nolint end download_terraclimate <- function( variables = NULL, - year_start = 2022, - year_end = 2022, + year = c(2018, 2022), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -3244,10 +3213,10 @@ download_terraclimate <- function( download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) #### define years sequence - if (any(nchar(year_start) != 4, nchar(year_end) != 4)) { - stop("year_start and year_end should be 4-digit integers.\n") + if (any(nchar(year[1]) != 4, nchar(year[2]) != 4)) { + stop("years should be 4-digit integers.\n") } - years <- seq(year_start, year_end, 1) + years <- seq(year[1], year[2], 1) #### define variables variables_list <- process_variable_codes( variables = variables, @@ -3260,7 +3229,7 @@ download_terraclimate <- function( commands_txt <- paste0( directory_to_save, "terraclimate_", - year_start, "_", year_end, + year[1], "_", year[2], "_curl_commands.txt" ) download_sink(commands_txt) @@ -3272,12 +3241,12 @@ download_terraclimate <- function( dir.create(folder) } for (y in seq_along(years)) { - year <- years[y] + year_l <- years[y] url <- paste0( base, variable, "_", - year, + year_l, ".nc" ) if (y == 1) { @@ -3286,7 +3255,7 @@ download_terraclimate <- function( file.remove(commands_txt) stop(paste0( "Invalid year returns HTTP code 404. ", - "Check `year_start` parameter.\n" + "Check `year` parameter.\n" )) } } @@ -3296,7 +3265,7 @@ download_terraclimate <- function( "/", variable, "_", - year, + year_l, ".nc" ) command <- paste0( diff --git a/tests/testthat/test-download_functions.R b/tests/testthat/test-download_functions.R index 22245906..b51d193d 100644 --- a/tests/testthat/test-download_functions.R +++ b/tests/testthat/test-download_functions.R @@ -41,6 +41,7 @@ testthat::test_that("Errors when temporal ranges invalid.", { expect_error( download_geos( date_start = "1900-01-01", + date = c("1900-01-01", "2018-01-01"), collection = "aqc_tavg_1hr_g1440x721_v1", acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata/", "") @@ -48,15 +49,14 @@ testthat::test_that("Errors when temporal ranges invalid.", { ) expect_error( download_aqs( - year_start = 1900, - year_end = 1919, + year = c(1900, 2022), acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata/", ""), ) ) expect_error( download_narr( - year_start = 1900, + year = c(1900, 2022), variables = "air.sfc", acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata/", "") @@ -64,7 +64,7 @@ testthat::test_that("Errors when temporal ranges invalid.", { ) expect_error( download_merra2( - date_start = "1900-01-01", + date = c("1900-01-01", "2023-09-01"), collection = "inst1_2d_asm_Nx", directory_to_save = testthat::test_path("..", "testdata/", ""), acknowledgement = TRUE, @@ -79,14 +79,14 @@ testthat::test_that("Errors when temporal ranges invalid.", { sink() expect_error( download_hms( - date_start = "1900-01-01", + date = c("1900-01-01", "2018-01-01"), directory_to_save = testthat::test_path("..", "testdata/", ""), acknowledgement = TRUE ) ) expect_error( download_gridmet( - year_start = 1900, + year = c(1900, 2022), variables = "Precipitation", acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata/", "") @@ -94,7 +94,7 @@ testthat::test_that("Errors when temporal ranges invalid.", { ) expect_error( download_terraclimate( - year_start = 1900, + year = c(1900, 2022), variables = "Wind Speed", acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata/", "") @@ -113,8 +113,7 @@ testthat::test_that("EPA AQS download URLs have HTTP status 200.", { directory_to_save <- testthat::test_path("..", "testdata", "aqs_temp") # run download function download_data(dataset_name = "aqs", - year_start = year_start, - year_end = year_end, + year = c(year_start, year_end), directory_to_save = directory_to_save, acknowledgement = TRUE, unzip = FALSE, @@ -234,8 +233,7 @@ testthat::test_that("GEOS-CF download URLs have HTTP status 200.", { # run download function testthat::expect_no_error( download_data(dataset_name = "geos", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), collection = collections, directory_to_save = directory_to_save, acknowledgement = TRUE, @@ -260,8 +258,7 @@ testthat::test_that("GEOS-CF download URLs have HTTP status 200.", { url_status = url_status) testthat::expect_no_error( download_data(dataset_name = "geos", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), collection = collections, directory_to_save = directory_to_save2, acknowledgement = TRUE, @@ -354,8 +351,7 @@ testthat::test_that("MERRA2 download URLs have HTTP status 200.", { # run download function testthat::expect_no_error( download_data(dataset_name = "merra2", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), collection = collections, directory_to_save = directory_to_save, acknowledgement = TRUE, @@ -380,8 +376,7 @@ testthat::test_that("MERRA2 download URLs have HTTP status 200.", { url_status = url_status) testthat::expect_no_error( download_data(dataset_name = "merra2", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), collection = collections, directory_to_save = directory_to_save2, acknowledgement = TRUE, @@ -418,8 +413,7 @@ testthat::test_that("NARR download URLs have HTTP status 200.", { directory_to_save <- testthat::test_path("..", "testdata/", "") # run download function download_data(dataset_name = "narr", - year_start = year_start, - year_end = year_end, + year = c(year_start, year_end), variables = variables, directory_to_save = directory_to_save, acknowledgement = TRUE, @@ -448,8 +442,7 @@ testthat::test_that("NARR error with invalid years.", { download_data( dataset_name = "narr", variables = "weasd", - year_start = 10, - year_end = 11, + year = c(10, 11), acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata/", "") ) @@ -474,8 +467,7 @@ testthat::test_that("NOAA HMS Smoke download URLs have HTTP status 200.", { for (d in seq_along(data_formats)) { # run download function download_data(dataset_name = "smoke", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), data_format = data_formats[d], directory_to_save = directory_to_save, acknowledgement = TRUE, @@ -847,8 +839,7 @@ testthat::test_that("MODIS-MOD09GA download URLs have HTTP status 200.", { date_end <- paste0(years[y], "-06-24") # run download function download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = version, horizontal_tiles = horizontal_tiles, @@ -899,8 +890,7 @@ testthat::test_that("MODIS-MOD06L2 download URLs have HTTP status 200.", { testthat::expect_error( kax <- download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = version, horizontal_tiles = horizontal_tiles, @@ -926,8 +916,7 @@ testthat::test_that("MODIS-MOD06L2 download URLs have HTTP status 200.", { write.csv(faux_urls, mod06_scenes, row.names = FALSE) download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = version, horizontal_tiles = horizontal_tiles, @@ -982,8 +971,7 @@ testthat::test_that("MODIS download error cases.", { # no token testthat::expect_no_error( download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = version, horizontal_tiles = horizontal_tiles, @@ -998,8 +986,7 @@ testthat::test_that("MODIS download error cases.", { # no token testthat::expect_error( download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = version, horizontal_tiles = horizontal_tiles, @@ -1014,8 +1001,7 @@ testthat::test_that("MODIS download error cases.", { # year difference between date_start and date_end testthat::expect_error( download_data(dataset_name = "modis", - date_start = date_start, - date_end = "2024-03-28", + date = c(date_start, "2024-03-28"), product = "MOD11A1", version = version, horizontal_tiles = horizontal_tiles, @@ -1030,8 +1016,7 @@ testthat::test_that("MODIS download error cases.", { # null version testthat::expect_error( download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = NULL, horizontal_tiles = horizontal_tiles, @@ -1046,8 +1031,7 @@ testthat::test_that("MODIS download error cases.", { # invalid tile range (horizontal) testthat::expect_error( download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = "61", horizontal_tiles = c(-13, -3), @@ -1062,8 +1046,7 @@ testthat::test_that("MODIS download error cases.", { # invalid tile range (horizontal) testthat::expect_error( download_data(dataset_name = "modis", - date_start = date_start, - date_end = date_end, + date = c(date_start, date_end), product = product, version = "61", horizontal_tiles = horizontal_tiles, @@ -1147,12 +1130,12 @@ testthat::test_that("EPA NEI (AADT) download URLs have HTTP status 200.", { certificate <- system.file("extdata/cacert_gaftp_epa.pem", package = "amadeus") # run download function - year_target <- c(2017L, 2020L) + year <- c(2017L, 2020L) download_data(dataset_name = "nei", directory_to_save = directory_to_save, acknowledgement = TRUE, download = FALSE, - year_target = year_target, + year = year, remove_command = FALSE, epa_certificate_path = certificate ) @@ -1168,7 +1151,7 @@ testthat::test_that("EPA NEI (AADT) download URLs have HTTP status 200.", { commands_path <- paste0( download_sanitize_path(directory_to_save), "NEI_AADT_", - paste(year_target, collapse = "-"), + paste(year, collapse = "-"), "_", Sys.Date(), "_wget_commands.txt" @@ -1206,13 +1189,13 @@ testthat::test_that("Test error cases in EPA gaftp sources 1", { } # run download function - year_target <- c(2017L) + year <- c(2017L) testthat::expect_message( download_data(dataset_name = "nei", directory_to_save = directory_to_save, acknowledgement = TRUE, download = FALSE, - year_target = year_target, + year = year, remove_command = FALSE, epa_certificate_path = certificate ) @@ -1221,7 +1204,7 @@ testthat::test_that("Test error cases in EPA gaftp sources 1", { commands_path <- paste0( directory_to_save, "NEI_AADT_", - paste(year_target, collapse = "-"), + paste(year, collapse = "-"), "_", Sys.Date(), "_wget_commands.txt" @@ -1320,8 +1303,7 @@ testthat::test_that("download_hms LIVE run.", { # run download function download_data( dataset_name = "hms", - date_start = date, - date_end = date, + date = c(date, date), directory_to_save = directory, acknowledgement = TRUE, download = TRUE, @@ -1352,8 +1334,7 @@ testthat::test_that("gridmet download URLs have HTTP status 200.", { testthat::test_path("..", "testdata", "gridmet", "tmp") # run download function download_data(dataset_name = "gridmet", - year_start = year_start, - year_end = year_end, + year = c(year_start, year_end), variables = variables, directory_to_save = directory_to_save, acknowledgement = TRUE, @@ -1384,8 +1365,7 @@ testthat::test_that("gridmet error with invalid years.", { download_data( dataset_name = "gridmet", variables = "Precipitation", - year_start = 10, - year_end = 11, + year = c(10, 11), acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata", "gridmet", "tmp") @@ -1398,8 +1378,7 @@ testthat::test_that("gridmet error with invalid variables", { download_data( dataset_name = "gridmet", variables = "temp", - year_start = 2018, - year_end = 2018, + year = c(2018, 2018), acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata", "gridmet", "tmp") @@ -1418,8 +1397,7 @@ testthat::test_that("terraclimate download URLs have HTTP status 200.", { testthat::test_path("..", "testdata", "terraclimate", "tmp") # run download function download_data(dataset_name = "terraclimate", - year_start = year_start, - year_end = year_end, + year = c(year_start, year_end), variables = variables, directory_to_save = directory_to_save, acknowledgement = TRUE, @@ -1450,8 +1428,7 @@ testthat::test_that("terraclimate error with invalid years.", { download_data( dataset_name = "terraclimate", variables = "Precipitation", - year_start = 10, - year_end = 11, + year = c(10, 11), acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata", "terraclimate", "tmp") @@ -1464,8 +1441,7 @@ testthat::test_that("terraclimate error with invalid variables", { download_data( dataset_name = "gridmet", variables = "temp", - year_start = 2018, - year_end = 2018, + year = c(2018, 2018), acknowledgement = TRUE, directory_to_save = testthat::test_path("..", "testdata", "terraclimate", "tmp") From 17ed941693786d8e7c49e7346d76956ada17326d Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Thu, 27 Jun 2024 14:39:47 -0400 Subject: [PATCH 05/66] calc_prepare_locs --- R/calculate_covariates.R | 8 +++++- R/calculate_covariates_auxiliary.R | 39 ++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 3c1f03b2..8b048e97 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -1593,8 +1593,14 @@ calc_narr <- function( ... ) calc_check_time(covar = sites_extracted, POSIXt = TRUE) + sites_return <- calc_return_locs( + covar = sites_extracted, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame - return(data.frame(sites_extracted)) + return(sites_return) } diff --git a/R/calculate_covariates_auxiliary.R b/R/calculate_covariates_auxiliary.R index 39b63d0f..afb50527 100644 --- a/R/calculate_covariates_auxiliary.R +++ b/R/calculate_covariates_auxiliary.R @@ -490,3 +490,42 @@ calc_worker <- function( #### return data.frame return(data.frame(sites_extracted)) } + +#' Prepare covariates for return +#' @description +#' Check the time column for proper class and, if `geom = TRUE`, +#' transform `data.frame` into a `SpatVector` object. +#' @param covar data.frame(1). Calculated covariates `data.frame`. +#' @param POSIXt logical(1). Should the time values in `covar` be of class +#' `POSIXt`? If `FALSE`, the time values will be checked for integer class +#' (year and year-month). +#' @param geom logical(1). Should `covar` be returned as a +#' `data.frame`? Default is `FALSE`. +#' @param crs terra::crs(1). Coordinate reference system (inherited from +#' `from`). +#' @importFrom terra vect +#' @keywords auxiliary +#' @author Mitchell Manware +#' @export +# nolint start +calc_return_locs <- function( + covar, + POSIXt = TRUE, + geom, + crs +) { + # time value check + calc_check_time(covar = covar, POSIXt = POSIXt) + # if geom, convert to and return SpatVector + if (geom) { + covar_return <- terra::vect( + covar, + geom = "geometry", + crs = crs + ) + return(covar_return) + } else { + return(data.frame(covar)) + } +} +# nolint end \ No newline at end of file From 4e33a76b8741b2d861a7d2d2747afed1b870340c Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Thu, 27 Jun 2024 15:25:53 -0400 Subject: [PATCH 06/66] remove redundant calc_check_time --- R/calculate_covariates.R | 1 - 1 file changed, 1 deletion(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 8b048e97..407c0067 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -1592,7 +1592,6 @@ calc_narr <- function( level = narr_level, ... ) - calc_check_time(covar = sites_extracted, POSIXt = TRUE) sites_return <- calc_return_locs( covar = sites_extracted, POSIXt = TRUE, From ec126b9d912afe5c3eb761af5e2c9565db6a12fa Mon Sep 17 00:00:00 2001 From: Insang Song Date: Thu, 27 Jun 2024 19:25:23 -0400 Subject: [PATCH 07/66] calc_nlcd fix - with = FALSE option removed --- R/calculate_covariates.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 21a71701..ce957dbc 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -379,7 +379,7 @@ calc_nlcd <- function(from, nlcd_at_bufs <- nlcd_at_bufs[, nlcd_val_cols] } # fill NAs - nlcd_at_bufs[is.na(nlcd_at_bufs), with = FALSE] <- 0 + nlcd_at_bufs[is.na(nlcd_at_bufs), ] <- 0 # change column names nlcd_names <- names(nlcd_at_bufs) From 3d95d2a6a76790a14562ac1dbb861e52969db06c Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 1 Jul 2024 12:08:08 -0400 Subject: [PATCH 08/66] parameter --- R/calculate_covariates.R | 284 ++++++++++++--------- R/calculate_covariates_auxiliary.R | 11 +- tests/testthat/test-calculate_covariates.R | 197 ++++++++++++-- 3 files changed, 357 insertions(+), 135 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 407c0067..a6d252f8 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -22,7 +22,7 @@ #' - [`calc_koppen_geiger`]: `"koppen-geiger"`, `"koeppen-geiger"`, `"koppen"` #' - [`calc_ecoregion`]: `"ecoregion"`, `"ecoregions"` #' - [`calc_temporal_dummies`]: `"dummies"` -#' - [`calc_hms`]: `"hms"`, `"noaa"`, `"smoke"` +#' - [`calc_hms`]: `"hms"`, `"smoke"` #' - [`calc_gmted`]: `"gmted"` #' - [`calc_narr`]: `"narr"` #' - [`calc_geos`]: `"geos"`, `"geos_cf"` @@ -34,7 +34,7 @@ #' - [`calc_merra2`]: `"merra"`, `"MERRA"`, `"merra2"`, `"MERRA2"` #' - [`calc_gridmet`]: `"gridMET"`, `"gridmet"` #' - [`calc_terraclimate`]: `"terraclimate"`, `"TerraClimate"` -#' @returns Calculated covariates. Mainly data.frame object. +#' @return Calculated covariates as a data.frame or SpatVector object #' @author Insang Song #' @export # nolint end @@ -44,7 +44,7 @@ calc_covariates <- "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "sedac_groads", "groads", "roads", - "ecoregions", "ecoregion", "hms", "noaa", "smoke", + "ecoregions", "ecoregion", "hms", "smoke", "gmted", "narr", "geos", "sedac_population", "population", "nlcd", "merra", "merra2", "gridmet", "terraclimate", @@ -68,7 +68,6 @@ calc_covariates <- koppen = calc_koppen_geiger, narr = calc_narr, nlcd = calc_nlcd, - noaa = calc_hms, smoke = calc_hms, hms = calc_hms, sedac_groads = calc_sedac_groads, @@ -120,16 +119,13 @@ calc_covariates <- #' @param locs sf/SpatVector. Unique locs. Should include #' a unique identifier field named `locs_id` #' @param locs_id character(1). Name of unique identifier. -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @seealso [`process_koppen_geiger`] -#' @returns a data.frame object -#' @note The returned `data.frame` object contains a +#' @return a data.frame or SpatVector object +#' @note The returned object contains a #' `$description` column to represent the temporal range covered by the #' dataset. For more information, see #' . @@ -226,10 +222,18 @@ calc_koppen_geiger <- names(kg_extracted)[1] <- locs_id if (geom) { names(kg_extracted)[2:3] <- c("geometry", "description") + sites_return <- calc_return_locs( + covar = kg_extracted, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) + #### return data.frame + return(sites_return) } else { names(kg_extracted)[2] <- "description" + return(kg_extracted) } - return(kg_extracted) } @@ -251,12 +255,9 @@ calc_koppen_geiger <- #' Maximum possible value is `2^31 - 1`. Only valid when #' `mode = "exact"`. #' See [`exactextractr::exact_extract`] for details. -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param nthreads integer(1). Number of threads to be used #' @param ... Placeholders. #' @note NLCD is available in U.S. only. Users should be aware of @@ -267,7 +268,7 @@ calc_koppen_geiger <- #' but uses more memory as it will account for the partial overlap #' with the buffer. #' @seealso [`process_nlcd`] -#' @returns a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom utils read.csv #' @importFrom methods is #' @importFrom terra rast @@ -402,7 +403,12 @@ calc_nlcd <- function(from, } else { names(new_data_vect)[1:2] <- c(locs_id, "time") } - calc_check_time(covar = new_data_vect, POSIXt = FALSE) + new_data_vect <- calc_return_locs( + covar = new_data_vect, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) future::plan(future::sequential) return(new_data_vect) } @@ -419,15 +425,13 @@ calc_nlcd <- function(from, #' @param locs sf/SpatVector. Unique locs. Should include #' a unique identifier field named `locs_id` #' @param locs_id character(1). Name of unique identifier. -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @seealso [`process_ecoregion`] -#' @returns a data.frame object with dummy variables and attributes of: +#' @return a data.frame or SpatVector object object with dummy variables and +#' attributes of: #' - `attr(., "ecoregion2_code")`: Ecoregion lv.2 code and key #' - `attr(., "ecoregion3_code")`: Ecoregion lv.3 code and key #' @author Insang Song @@ -496,13 +500,19 @@ calc_ecoregion <- df_lv2, df_lv3 ) if (geom) { - names(locs_ecoreg)[3] <- "description" + locs_return <- calc_return_locs( + covar = locs_ecoreg, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) } else { names(locs_ecoreg)[2] <- "description" + locs_return <- locs_ecoreg } - attr(locs_ecoreg, "ecoregion2_code") <- sort(unique(from$L2_KEY)) - attr(locs_ecoreg, "ecoregion3_code") <- sort(unique(from$L3_KEY)) - return(locs_ecoreg) + attr(locs_return, "ecoregion2_code") <- sort(unique(from$L2_KEY)) + attr(locs_return, "ecoregion3_code") <- sort(unique(from$L3_KEY)) + return(locs_return) } @@ -536,7 +546,7 @@ calc_ecoregion <- #' [process_bluemarble()] #' * Parallelization: [calc_modis_par()] #' @author Insang Song -#' @returns A data.frame object. +#' @return A data.frame object. #' @importFrom terra extract #' @importFrom terra project #' @importFrom terra vect @@ -683,7 +693,7 @@ calc_modis_daily <- function( #' Users will be informed of the dates with insufficient tiles. #' The result data.frame will have an attribute with the dates with #' insufficient tiles. -#' @returns A data.frame with an attribute: +#' @return A data.frame with an attribute: #' * `attr(., "dates_dropped")`: Dates with insufficient tiles. #' Note that the dates mean the dates with insufficient tiles, #' not the dates without available tiles. @@ -884,7 +894,7 @@ process_modis_swath, or process_bluemarble.") #' @param year integer. Year domain to dummify. #' Default is \code{seq(2018L, 2022L)} #' @param ... Placeholders. -#' @returns a data.frame object +#' @return a data.frame object #' @author Insang Song #' @importFrom methods is #' @importFrom data.table year @@ -964,7 +974,7 @@ calc_temporal_dummies <- #' Distance at which the source concentration is reduced to #' `exp(-3)` (approximately -95 %) #' @param target_fields character(varying). Field names in characters. -#' @returns a data.frame (tibble) object with input field names with +#' @return a data.frame (tibble) object with input field names with #' a suffix \code{"_sedc"} where the sums of EDC are stored. #' Additional attributes are attached for the EDC information. #' - `attr(result, "sedc_bandwidth")``: the bandwidth where @@ -1113,7 +1123,7 @@ The result may not be accurate.\n", #' Default is \code{c(1000, 10000, 50000)} (meters) #' @param ... Placeholders. #' @author Insang Song, Mariana Kassien -#' @returns a data.frame object +#' @return a data.frame object #' @note U.S. context. #' @seealso [`calc_sedc`], [`process_tri`] #' @importFrom terra vect @@ -1191,7 +1201,7 @@ calc_tri <- function( #' @param ... Placeholders. #' @author Insang Song, Ranadeep Daw #' @seealso [`process_nei`] -#' @returns a data.frame object +#' @return a data.frame object #' @importFrom terra vect #' @importFrom methods is #' @importFrom terra project @@ -1231,6 +1241,9 @@ calc_nei <- function( #' containing identifier for each unique coordinate location. #' @param radius integer(1). Circular buffer distance around site locations. #' (Default = 0). +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @seealso [process_hms()] #' @author Mitchell Manware @@ -1247,6 +1260,7 @@ calc_hms <- function( locs, locs_id = NULL, radius = 0, + geom = FALSE, ...) { #### check for null parameters check_for_null_parameters(mget(ls())) @@ -1295,7 +1309,8 @@ calc_hms <- function( from = from, locs = locs, locs_id = locs_id, - radius = radius + radius = radius, + geom = geom ) sites_e <- sites_list[[1]] sites_id <- sites_list[[2]] @@ -1346,18 +1361,28 @@ calc_hms <- function( layer_date, sites_extracted_layer ) - #### define column names - colnames(sites_extracted_layer) <- c( - locs_id, - "time", - paste0( + binary_colname <- paste0( tolower( layer_name ), "_", radius ) - ) + #### define column names + if (geom) { + colnames(sites_extracted_layer) <- c( + locs_id, + "geometry", + "time", + binary_colname + ) + } else { + colnames(sites_extracted_layer) <- c( + locs_id, + "time", + binary_colname + ) + } #### merge with empty sites_extracted sites_extracted <- rbind( sites_extracted, @@ -1396,7 +1421,8 @@ calc_hms <- function( } } #### coerce binary to integer - sites_extracted[, 3] <- as.integer(sites_extracted[, 3]) + sites_extracted[[binary_colname]] <- + as.integer(sites_extracted[[binary_colname]]) #### date to POSIXct sites_extracted$time <- as.POSIXct(sites_extracted$time) #### order by date @@ -1408,7 +1434,12 @@ calc_hms <- function( layer_name, " covariates.\n" )) - calc_check_time(covar = sites_extracted_ordered, POSIXt = TRUE) + sites_extracted_ordered <- calc_return_locs( + covar = sites_extracted, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame return(sites_extracted_ordered) } @@ -1428,16 +1459,13 @@ calc_hms <- function( #' (Default = 0). #' @param fun character(1). Function used to summarize multiple raster cells #' within sites location buffer (Default = `mean`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders #' @author Mitchell Manware #' @seealso [`process_gmted()`] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom terra as.data.frame #' @importFrom terra time @@ -1514,9 +1542,14 @@ calc_gmted <- function( sites_extracted[, 3] <- as.numeric(sites_extracted[, 3]) names(sites_extracted) <- c(locs_id, "time", variable_name) } - calc_check_time(covar = sites_extracted, POSIXt = FALSE) + sites_return <- calc_return_locs( + covar = sites_extracted, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame - return(data.frame(sites_extracted)) + return(sites_return) } @@ -1535,16 +1568,13 @@ calc_gmted <- function( #' (Default = 0). #' @param fun character(1). Function used to summarize multiple raster cells #' within sites location buffer (Default = `mean`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders #' @author Mitchell Manware #' @seealso [`process_narr`] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom terra as.data.frame #' @importFrom terra time @@ -1618,16 +1648,13 @@ calc_narr <- function( #' (Default = 0). #' @param fun character(1). Function used to summarize multiple raster cells #' within sites location buffer (Default = `mean`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @author Mitchell Manware #' @seealso [process_geos()] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom terra buffer #' @importFrom terra as.data.frame @@ -1668,9 +1695,14 @@ calc_geos <- function( level = 2, ... ) - calc_check_time(covar = sites_extracted, POSIXt = TRUE) + sites_return <- calc_return_locs( + covar = sites_extracted, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame - return(data.frame(sites_extracted)) + return(sites_return) } #' Calculate population density covariates @@ -1687,16 +1719,13 @@ calc_geos <- function( #' (Default = 0). #' @param fun character(1). Function used to summarize multiple raster cells #' within sites location buffer (Default = `mean`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders #' @author Mitchell Manware #' @seealso [process_sedac_population()] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom methods is #' @export calc_sedac_population <- function( @@ -1751,9 +1780,14 @@ calc_sedac_population <- function( time_type = "year", ... ) - calc_check_time(covar = sites_extracted, POSIXt = FALSE) + sites_return <- calc_return_locs( + covar = sites_extracted, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame - return(data.frame(sites_extracted)) + return(sites_return) } @@ -1773,12 +1807,9 @@ calc_sedac_population <- function( #' (Default = 1000). #' @param fun function(1). Function used to summarize the length of roads #' within sites location buffer (Default is `sum`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. # nolint start #' @note Unit is km / sq km. The returned `data.frame` object contains a @@ -1787,7 +1818,7 @@ calc_sedac_population <- function( # nolint end #' @author Insang Song #' @seealso [`process_sedac_groads`] -#' @return a data.frame object with three columns. +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom stats aggregate #' @importFrom stats setNames @@ -1863,7 +1894,14 @@ calc_sedac_groads <- function( #### reorder from_clip_reorder <- from_clip[, c(1, 4, 2, 3)] } - return(from_clip_reorder) + sites_return <- calc_return_locs( + covar = from_clip_reorder, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) + #### return data.frame + return(sites_return) } #' Calculate meteorological and atmospheric covariates @@ -1880,16 +1918,13 @@ calc_sedac_groads <- function( #' (Default = 0). #' @param fun character(1). Function used to summarize multiple raster cells #' within sites location buffer (Default = `mean`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders #' @author Mitchell Manware #' @seealso [calc_geos()], [process_merra2()] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom terra buffer #' @importFrom terra as.data.frame @@ -1938,9 +1973,14 @@ calc_merra2 <- function( level = merra2_level, ... ) - calc_check_time(covar = sites_extracted, POSIXt = TRUE) + sites_return <- calc_return_locs( + covar = sites_extracted, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame - return(data.frame(sites_extracted)) + return(sites_return) } #' Calculate gridMET covariates @@ -1956,16 +1996,13 @@ calc_merra2 <- function( #' (Default = 0). #' @param fun character(1). Function used to summarize multiple raster cells #' within sites location buffer (Default = `mean`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @author Mitchell Manware #' @seealso [`process_gridmet()`] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom terra as.data.frame #' @importFrom terra time @@ -2004,9 +2041,14 @@ calc_gridmet <- function( time_type = "date", ... ) - calc_check_time(covar = sites_extracted, POSIXt = TRUE) + sites_return <- calc_return_locs( + covar = sites_extracted, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame - return(data.frame(sites_extracted)) + return(sites_return) } #' Calculate TerraClimate covariates @@ -2023,12 +2065,9 @@ calc_gridmet <- function( #' (Default = 0). #' @param fun character(1). Function used to summarize multiple raster cells #' within sites location buffer (Default = `mean`). -#' @param geom logical(1). Should the geometry of `locs` be returned in the -#' `data.frame`? Default is `FALSE`. If `geom = TRUE` and `locs` contain -#' polygon geometries, the `$geometry` column in the returned data frame may -#' make the `data.frame` difficult to read due to long geometry strings. The -#' coordinate reference system of the `$geometry` is the coordinate -#' reference system of `from`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @note #' TerraClimate data has monthly temporal resolution, so the `$time` column @@ -2036,7 +2075,7 @@ calc_gridmet <- function( #' 201801). #' @author Mitchell Manware #' @seealso [`process_terraclimate()`] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom terra as.data.frame #' @importFrom terra time @@ -2075,9 +2114,14 @@ calc_terraclimate <- function( time_type = "yearmonth", ... ) - calc_check_time(covar = sites_extracted, POSIXt = FALSE) + sites_return <- calc_return_locs( + covar = sites_extracted, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) #### return data.frame - return(data.frame(sites_extracted)) + return(sites_return) } #' Calculate temporally lagged covariates @@ -2112,6 +2156,14 @@ calc_lagged <- function( locs_id, time_id = "time") { #### check input data types + if ("SpatVector" %in% class(from)) { + cat( + paste0( + "`calc_lagged` for `SpatVector` objects is under construction.", + " Returning `NULL`.\n" + ) + ) + } stopifnot(methods::is(from, "data.frame")) #### check if time_id is not null stopifnot(!is.null(time_id)) diff --git a/R/calculate_covariates_auxiliary.R b/R/calculate_covariates_auxiliary.R index afb50527..40bf0637 100644 --- a/R/calculate_covariates_auxiliary.R +++ b/R/calculate_covariates_auxiliary.R @@ -11,8 +11,9 @@ #' padded to 5 digits. If provided a buffer radius greater than 5 digits, #' \code{calc_setcolumns()} will expand to the number of digits. (ie. buffer #' radius of 100km = CCC_CCCCC_I_100000). -#' @param from data.frame(1). Calculated covariates as returned from -#' \code{calc_covariates()} or a source specific covariate function. +#' @param from data.frame(1) or SpatVector(1). Calculated covariates as +#' returned from \code{calc_covariates()} or a source specific covariate +#' function. #' @param lag integer(1). Temporal lag. #' @param dataset character(1). Covariate parent dataset. #' @param locs_id character(1). Column containing identifier for each unique @@ -26,7 +27,7 @@ calc_setcolumns <- function( dataset, locs_id) { #### check from is data.frame - stopifnot(is.data.frame(from)) + stopifnot(class(from) %in% c("data.frame", "SpatVector")) #### original names names_from <- colnames(from) #### copy @@ -515,7 +516,9 @@ calc_return_locs <- function( crs ) { # time value check - calc_check_time(covar = covar, POSIXt = POSIXt) + if ("time" %in% names(covar)) { + calc_check_time(covar = covar, POSIXt = POSIXt) + } # if geom, convert to and return SpatVector if (geom) { covar_return <- terra::vect( diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index e4050a0e..4f11eda2 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -46,8 +46,8 @@ testthat::test_that("calc_koppen_geiger works well", { geom = TRUE ) ) - testthat::expect_equal(ncol(kg_geom), 8) - testthat::expect_true("geometry" %in% names(kg_geom)) + testthat::expect_equal(ncol(kg_geom), 7) + testthat::expect_true("SpatVector" %in% class(kg_geom)) }) ## 2. Temporal Dummies #### @@ -169,10 +169,10 @@ testthat::test_that("calc_ecoregion works well", { ) ) testthat::expect_equal( - ncol(ecor_geom), 5 + ncol(ecor_geom), 4 ) testthat::expect_true( - "geometry" %in% names(ecor_geom) + "SpatVector" %in% class(ecor_geom) ) }) @@ -612,10 +612,10 @@ testthat::test_that("Check calc_nlcd works", { ) # with geometry will have 12 columns testthat::expect_equal( - ncol(output_geom), 16 + ncol(output_geom), 15 ) testthat::expect_true( - "geometry" %in% names(output_geom) + "SpatVector" %in% class(output_geom) ) }) @@ -856,7 +856,8 @@ testthat::test_that("calc_hms returns expected.", { from = hms, locs = ncp, locs_id = "site_id", - radius = radii[r] + radius = radii[r], + geom = FALSE ) # set column names hms_covariate <- calc_setcolumns( @@ -889,6 +890,33 @@ testthat::test_that("calc_hms returns expected.", { } }) +testthat::test_that("calc_hms with geom = TRUE", { + ncp <- data.frame(lon = -78.8277, lat = 35.95013) + ncp$site_id <- "3799900018810101" + hms_dir <- testthat::test_path( + "..", "testdata", "hms" + ) + hms <- process_hms( + date = c("2022-06-10", "2022-06-13"), + variable = "light", + path = hms_dir + ) + hms_covariate_geom <- calc_hms( + from = hms, + locs = ncp, + locs_id = "site_id", + radius = 0, + geom = TRUE + ) + # with geometry will have 3 columns + testthat::expect_equal( + ncol(output_geom), 3 + ) + testthat::expect_true( + "SpatVector" %in% class(output_geom) + ) +}) + testthat::test_that("calc_hms returns expected with missing polygons.", { withr::local_package("terra") densities <- c( @@ -920,7 +948,8 @@ testthat::test_that("calc_hms returns expected with missing polygons.", { from = hms, locs = ncp, locs_id = "site_id", - radius = radii[r] + radius = radii[r], + geom = FALSE ) # set column names hms_covariate <- calc_setcolumns( @@ -1031,10 +1060,10 @@ testthat::test_that("calc_gmted returns expected.", { ) ) testthat::expect_equal( - ncol(gmted_geom), 4 + ncol(gmted_geom), 3 ) testthat::expect_true( - "geometry" %in% names(gmted_geom) + "SpatVector" %in% class(gmted_geom) ) }) @@ -1111,6 +1140,23 @@ testthat::test_that("calc_narr returns expected.", { ) } } + # with geometry + testthat::expect_no_error( + narr_covariate_geom <- calc_narr( + from = narr, + locs = ncp, + locs_id = "site_id", + radius = 0, + fun = "mean", + geom = TRUE + ) + ) + testthat::expect_equal( + ncol(narr_covariate_geom), 4 # 4 columns because omega has pressure levels + ) + testthat::expect_true( + "SpatVector" %in% class(narr_covariate_geom) + ) }) ## 11. GEOS-CF #### @@ -1176,6 +1222,23 @@ testthat::test_that("calc_geos returns as expected.", { ) } } + # with included geometry + testthat::expect_no_error( + geos_covariate_geom <- calc_geos( + from = geos, + locs = ncp, + locs_id = "site_id", + radius = 0, + fun = "mean", + geom = TRUE + ) + ) + testthat::expect_equal( + ncol(geos_covariate_geom), 4 + ) + testthat::expect_true( + "SpatVector" %in% class(geos_covariate_geom) + ) }) ## 12. SEDAC: Population #### @@ -1232,6 +1295,23 @@ testthat::test_that("calc_sedac_population returns as expected.", { ) } } + # with included geometry + testthat::expect_no_error( + pop_covariate_geom <- calc_sedac_population( + from = pop, + locs = ncp, + locs_id = "site_id", + radius = 0, + fun = "mean", + geom = TRUE + ) + ) + testthat::expect_equal( + ncol(pop_covariate_geom), 3 + ) + testthat::expect_true( + "SpatVector" %in% class(pop_covariate_geom) + ) }) ## 13. SEDAC: Global Roads #### @@ -1283,10 +1363,10 @@ testthat::test_that("groads calculation works", { ) ) testthat::expect_equal( - ncol(groads_geom), 5 + ncol(groads_geom), 4 ) testthat::expect_true( - "geometry" %in% names(groads_geom) + "SpatVector" %in% class(groads_geom) ) }) @@ -1374,6 +1454,23 @@ testthat::test_that("calc_merra2 returns as expected.", { ) } } + # with included geometry + testthat::expect_no_error( + merra2_covariate_geom <- calc_merra2( + from = merra2, + locs = ncp, + locs_id = "site_id", + radius = 0, + fun = "mean", + geom = TRUE + ) + ) + testthat::expect_equal( + ncol(merra2_covariate_geom), 4 + ) + testthat::expect_true( + "SpatVector" %in% class(merra2_covariate_geom) + ) }) ## 15. GRIDMET #### @@ -1385,7 +1482,7 @@ testthat::test_that("calc_gridmet returns as expected.", { ncp$site_id <- "3799900018810101" # expect function expect_true( - is.function(calc_terraclimate) + is.function(calc_gridmet) ) for (r in seq_along(radii)) { gridmet <- @@ -1432,6 +1529,23 @@ testthat::test_that("calc_gridmet returns as expected.", { "POSIXt" %in% class(gridmet_covariate$time) ) } + # with included geometry + testthat::expect_no_error( + gridmet_covariate_geom <- calc_gridmet( + from = gridmet, + locs = ncp, + locs_id = "site_id", + radius = 0, + fun = "mean", + geom = TRUE + ) + ) + testthat::expect_equal( + ncol(gridmet_covariate_geom), 3 + ) + testthat::expect_true( + "SpatVector" %in% class(gridmet_covariate_geom) + ) }) ## 16. TerraClimate #### @@ -1490,6 +1604,23 @@ testthat::test_that("calc_terraclimate returns as expected.", { nchar(terraclimate_covariate$time)[1] == 6 ) } + # with included geometry + testthat::expect_no_error( + terraclimate_covariate_geom <- calc_terraclimate( + from = terraclimate, + locs = ncp, + locs_id = "site_id", + radius = 0, + fun = "mean", + geom = TRUE + ) + ) + testthat::expect_equal( + ncol(terraclimate_covariate_geom), 3 + ) + testthat::expect_true( + "SpatVector" %in% class(terraclimate_covariate_geom) + ) }) ## 17. Lagged variables #### @@ -1571,6 +1702,41 @@ testthat::test_that("calc_lagged returns as expected.", { } }) +## 17.1 calc_lag with SpatVector +testthat::test_that("calc_lagged error with SpatVector.", { + withr::local_package("terra") + withr::local_package("data.table") + ncp <- data.frame(lon = -78.8277, lat = 35.95013) + ncp$site_id <- "3799900018810101" + # expect function + testthat::expect_true( + is.function(calc_lagged) + ) + narr <- + process_narr( + date = c("2018-01-01", "2018-01-10"), + variable = "weasd", + path = + testthat::test_path( + "..", + "testdata", + "narr", + "weasd" + ) + ) + narr_covariate_geom <- + calc_narr( + from = narr, + locs = ncp, + locs_id = "site_id", + radius = 0, + fun = "mean", + geom = TRUE + ) + testthat::expect_error( + calc_lagged(from = narr_covariate_geom) + ) +}) ## 18. Wrapper #### testthat::test_that("calc_covariates wrapper works", { @@ -1585,7 +1751,7 @@ testthat::test_that("calc_covariates wrapper works", { "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "sedac_groads", "groads", "roads", - "ecoregions", "ecoregion", "hms", "noaa", "smoke", + "ecoregions", "ecoregion", "hms","smoke", "gmted", "narr", "geos", "sedac_population", "population", "nlcd", "merra", "MERRA", "merra2", "MERRA2", @@ -1633,7 +1799,7 @@ testthat::test_that("calc_covariates wrapper works", { "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "sedac_groads", "groads", "roads", - "ecoregions", "ecoregion", "hms", "noaa", "smoke", + "ecoregions", "ecoregion", "hms", "smoke", "gmted", "narr", "geos", "sedac_population", "population", "nlcd", "merra", "merra2", @@ -1646,6 +1812,7 @@ testthat::test_that("calc_covariates wrapper works", { } }) +# calc check time testthat::test_that("calc_check_time identifies missing `time` column.", { testthat::expect_error( # provide integer instead of data.frame to provoke error From d7bef4419e7e5f05d8df2d5744461cad069911e9 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 2 Jul 2024 09:34:57 -0400 Subject: [PATCH 09/66] download_narr soil variables --- R/download_auxiliary.R | 30 ++++++++++++++---------- tests/testthat/test-download_functions.R | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index f478525a..818f08bf 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -544,8 +544,8 @@ narr_variable <- function(variable) { "mconv.hl1", "mslet", "mstav", "pevap", "pottmp.hl1", "pottmp.sfc", "prate", "pres.sfc", "pres.tropo", "prmsl", "pr_wtr", "rcq", "rcs", "rcsol", "rct", - "rhum.2m", "shtfl", "shum.2m", "snod","snohf", - "snom", "snowc","soilm", "ssrun", "tcdc", + "rhum.2m", "shtfl", "shum.2m", "snod", "snohf", + "snom", "snowc", "soilm", "ssrun", "tcdc", "tke.hl1", "ulwrf.ntat", "ulwrf.sfc", "ustm", "uswrf.ntat", "uswrf.sfc", "uwnd.10m", "veg", "vis", "vstm", "vvel.hl1", "vwnd.10m", "vwsh.tropo", "wcconv", "wcinc", @@ -553,20 +553,26 @@ narr_variable <- function(variable) { "wvuflx", "wvvflx" ) pressure <- c("air", "hgt", "omega", "shum", "tke", "uwnd", "vwnd") + soil <- c("soill", "soilw", "tsoil") + base <- "https://psl.noaa.gov/thredds/catalog/Datasets/NARR/Dailies/" if (variable %in% mono) { - base <- "https://downloads.psl.noaa.gov/Datasets/NARR/Dailies/monolevel/" + base <- paste0(base, "monolevel/") months <- "" - } else if (variable %in% pressure) { - base <- "https://downloads.psl.noaa.gov/Datasets/NARR/Dailies/pressure/" - months <- sprintf("%02d", seq(1, 12, by = 1)) } else { - stop( - paste0( - "Selected variable \"", - variable, - "\" is not available.\n" + months <- sprintf("%02d", seq(1, 12, by = 1)) + if (variable %in% pressure) { + base <- paste0(base, "pressure/") + } else if (variable %in% soil) { + base <- paste0(base, "subsurface/") + } else { + stop( + paste0( + "Selected variable \"", + variable, + "\" is not available.\n" + ) ) - ) + } } return(list(base, months)) } \ No newline at end of file diff --git a/tests/testthat/test-download_functions.R b/tests/testthat/test-download_functions.R index b51d193d..9d5c9383 100644 --- a/tests/testthat/test-download_functions.R +++ b/tests/testthat/test-download_functions.R @@ -409,7 +409,7 @@ testthat::test_that("NARR download URLs have HTTP status 200.", { # function parameters year_start <- 2018 year_end <- 2018 - variables <- c("weasd", "omega") # includes monolevel and pressure levels + variables <- c("weasd", "omega", "soill") # includes monolevel, pressure level, subsurface directory_to_save <- testthat::test_path("..", "testdata/", "") # run download function download_data(dataset_name = "narr", From 0fdbdff1225e6556e4dc4b970a8828fff281e889 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 2 Jul 2024 12:28:52 -0400 Subject: [PATCH 10/66] update download_narr() --- .gitignore | 3 + R/download.R | 16 +-- R/process.R | 123 --------------------- tests/testthat/test-calculate_covariates.R | 4 +- 4 files changed, 11 insertions(+), 135 deletions(-) diff --git a/.gitignore b/.gitignore index 3a3bd8a3..634233d9 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,6 @@ rsconnect/ # custom linter dev \.github/linters + +# development work +scratch.R diff --git a/R/download.R b/R/download.R index 19d1b6d3..4dbcf373 100644 --- a/R/download.R +++ b/R/download.R @@ -1026,6 +1026,12 @@ download_narr <- function( if (any(nchar(year[1]) != 4, nchar(year[2]) != 4)) { stop("years should be 4-digit integers.\n") } + stopifnot( + all( + seq(year[1], year[2], 1) %in% + seq(1979, as.numeric(substr(Sys.Date(), 1, 4))) + ) + ) years <- seq(year[1], year[2], 1) #### 5. define variables variables_list <- as.vector(variables) @@ -1058,16 +1064,6 @@ download_narr <- function( months[m], ".nc" ) - if (y == 1) { - if (!(check_url_status(url))) { - sink() - file.remove(commands_txt) - stop(paste0( - "Invalid year returns HTTP code 404. ", - "Check `year` parameter.\n" - )) - } - } destfile <- paste0( directory_to_save, variable, diff --git a/R/process.R b/R/process.R index adce2480..86ad4a70 100644 --- a/R/process.R +++ b/R/process.R @@ -1938,129 +1938,6 @@ process_geos <- return(data_return) } - - - - -#' Process GEOS-CF and MERRA2 collection codes -#' @description -#' Identify the GEOS-CF or MERRA2 collection based on the file path. -#' @param path character(1). File path to data file. -#' @param source character(1). "geos" for GEOS-CF or "merra2" for MERRA2 -#' @param collection logical(1). Identifies and returns collection -#' name(s) based on provided file path(s). -#' @param date logical(1). Identifies and returns date sequence (YYYYMMDD) based -#' on provided file path(s). -#' @param datetime logical(1). Identifies and returns date time sequence -#' (YYYYMoMoDDHHMiMi) based on provided file path(s). -#' @keywords auxillary -#' @return character -#' @export -process_collection <- - function( - path, - source, - collection = FALSE, - date = FALSE, - datetime = FALSE) { - #### check for more than one true - parameters <- c(collection, date, datetime) - if (length(parameters[parameters == TRUE]) > 1) { - stop( - paste0( - "Select one of 'collection', 'date', or 'datetime'.\n" - ) - ) - } - #### source names - geos <- c("geos", "GEOS", "geos-cf", "GEOS-CF") - merra2 <- c("merra", "merra2", "MERRA", "MERRA2") - #### string split point - if (source %in% merra2) { - code <- "MERRA2_400." - } else if (source %in% geos) { - code <- "GEOS-CF.v01.rpl." - } - #### split full file path based on unique GEOS-CF character - split_source <- unlist( - strsplit( - path, - code - ) - ) - #### split file path into collection, datetime, and "nc4" - split_period <- unlist( - strsplit( - split_source[ - which( - endsWith(split_source, ".nc4") - ) - ], - "\\." - ) - ) - #### remove "nc4" - split_wo_nc4 <- split_period[!split_period == "nc4"] - #### return merra2 collection information - if (source %in% merra2) { - #### return only collection name - if (collection == TRUE) { - return(split_wo_nc4[1]) - } - #### return date sequence - if (date == TRUE) { - return(split_wo_nc4[2]) - } - } - #### create data frame - split_df <- data.frame( - split_wo_nc4[ - which( - !(endsWith( - split_wo_nc4, - "z" - )) - ) - ], - split_wo_nc4[ - which( - endsWith( - split_wo_nc4, - "z" - ) - ) - ] - ) - #### colnames - colnames(split_df) <- c("collection", "datetime") - #### return only collection name - if (collection == TRUE) { - return(split_df$collection) - } - #### return date sequence - if (date == TRUE) { - split_dates <- substr( - split_df$datetime, - 1, - 8 - ) - return(split_dates) - } - #### return datetime sequence - if (datetime == TRUE) { - split_datetime <- gsub( - "_", - "", - gsub( - "z", - "", - split_df$datetime - ) - ) - return(split_datetime) - } - } - #' Process meteorological and atmospheric data #' @description #' The \code{process_merra2()} function imports and cleans raw atmospheric diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index 4f11eda2..8a56f1b1 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -910,10 +910,10 @@ testthat::test_that("calc_hms with geom = TRUE", { ) # with geometry will have 3 columns testthat::expect_equal( - ncol(output_geom), 3 + ncol(hms_covariate_geom), 3 ) testthat::expect_true( - "SpatVector" %in% class(output_geom) + "SpatVector" %in% class(hms_covariate_geom) ) }) From 25220a8c97460348fe068aa8f53a0c0f7c5ae956 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 8 Jul 2024 15:28:13 -0400 Subject: [PATCH 11/66] process_*(extent =) tests --- R/download.R | 2 +- R/download_auxiliary.R | 3 + R/process.R | 92 +++++++++-- tests/testthat/test-process.R | 298 +++++++++++++++++++--------------- 4 files changed, 251 insertions(+), 144 deletions(-) diff --git a/R/download.R b/R/download.R index 4dbcf373..59463d78 100644 --- a/R/download.R +++ b/R/download.R @@ -1029,7 +1029,7 @@ download_narr <- function( stopifnot( all( seq(year[1], year[2], 1) %in% - seq(1979, as.numeric(substr(Sys.Date(), 1, 4))) + seq(1979, as.numeric(substr(Sys.Date(), 1, 4)), 1) ) ) years <- seq(year[1], year[2], 1) diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index 818f08bf..90db0324 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -222,6 +222,9 @@ download_remove_zips <- check_for_null_parameters <- function( parameters) { + if ("extent" %in% names(parameters)) { + parameters <- parameters[-grep("extent", names(parameters))] + } parameters_status <- any(unlist(lapply(parameters, is.null))) if (parameters_status) { stop(paste0("One or more parameters are NULL\n")) diff --git a/R/process.R b/R/process.R index 86ad4a70..6a07cceb 100644 --- a/R/process.R +++ b/R/process.R @@ -650,6 +650,8 @@ process_modis_swath <- #' @param path character(1). Path to Koppen-Geiger #' climate zone raster file #' @param year data year. Not applicable for this function. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @returns a `SpatRaster` object #' @author Insang Song @@ -659,10 +661,11 @@ process_koppen_geiger <- function( path = NULL, year = NULL, + extent = NULL, ... ) { # import data - kg_rast <- terra::rast(path) + kg_rast <- terra::rast(path, win = extent) # identify time period period <- strsplit( names(kg_rast), @@ -731,6 +734,8 @@ process_nlcd <- #' The [`process_ecoregion`] function imports and cleans raw ecoregion #' data, returning a `SpatVector` object. #' @param path character(1). Path to Ecoregion Shapefiles +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @note The function will fix Tukey's bridge in Portland, ME. #' This fix will ensure that the EPA air quality monitoring sites @@ -744,6 +749,7 @@ process_nlcd <- process_ecoregion <- function( path = NULL, + extent = NULL, ... ) { ecoreg <- sf::st_read(path) @@ -767,7 +773,12 @@ process_ecoregion <- "1997 - ", data.table::year(Sys.time()) ) ecoreg <- terra::vect(ecoreg) - return(ecoreg) + if (!is.null(extent)) { + ecoreg_crop <- terra::crop(ecoreg, extent) + return(ecoreg_crop) + } else { + return(ecoreg) + } } @@ -1161,6 +1172,8 @@ process_aqs <- #' The \code{process_secac_population()} function imports and cleans raw #' population density data, returning a single `SpatRaster` object. #' @param path character(1). Path to GeoTIFF (.tif) or netCDF (.nc) file. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @author Mitchell Manware #' @return a `SpatRaster` object @@ -1169,6 +1182,7 @@ process_aqs <- # nolint end process_sedac_population <- function( path = NULL, + extent = NULL, ...) { if (substr(path, nchar(path) - 2, nchar(path)) == ".nc") { cat(paste0("netCDF functionality for SEDAC data is under construction.\n")) @@ -1177,7 +1191,7 @@ process_sedac_population <- function( #### check for variable check_for_null_parameters(mget(ls())) #### import data - data <- terra::rast(path) + data <- terra::rast(path, win = extent) #### identify names names_raw <- names(data) #### create new names @@ -1225,6 +1239,8 @@ process_sedac_population <- function( #' The \code{process_sedac_groads()} function imports and cleans raw road data, #' returning a single `SpatVector` object. #' @param path character(1). Path to geodatabase or shapefiles. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @note U.S. context. The returned `SpatVector` object contains a #' `$description` column to represent the temporal range covered by the @@ -1236,6 +1252,7 @@ process_sedac_population <- function( # nolint end process_sedac_groads <- function( path = NULL, + extent = NULL, ...) { #### check for variable check_for_null_parameters(mget(ls())) @@ -1243,7 +1260,7 @@ process_sedac_groads <- function( stop("Input is not in expected format.\n") } #### import data - data <- terra::vect(path) + data <- terra::vect(path, extent = extent) #### time period data$description <- "1980 - 2010" return(data) @@ -1260,6 +1277,8 @@ process_sedac_groads <- function( #' Format YYYY-MM-DD (ex. September 1, 2023 = "2023-09-01"). #' @param variable character(1). "Light", "Medium", or "Heavy". #' @param path character(1). Directory with downloaded NOAA HMS data files. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @note #' \code{process_hms()} will return a character object if there are no wildfire @@ -1283,6 +1302,7 @@ process_hms <- function( date = c("2018-01-01", "2018-01-01"), variable = c("Light", "Medium", "Heavy"), path = NULL, + extent = NULL, ...) { #### directory setup path <- download_sanitize_path(path) @@ -1324,7 +1344,7 @@ process_hms <- function( #### process data data_return <- terra::vect() for (d in seq_along(data_paths)) { - data_date <- terra::vect(data_paths[d]) + data_date <- terra::vect(data_paths[d], extent = extent) data_date_p <- terra::project( data_date, "EPSG:4326" @@ -1448,6 +1468,8 @@ process_hms <- function( #' * Resolution options: "30 arc-seconds", "15 arc-seconds", "7.5 arc-seconds" #' @param path character(1). Directory with downloaded GMTED "*_grd" #' folder containing .adf files. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @author Mitchell Manware #' @note @@ -1460,6 +1482,7 @@ process_hms <- function( process_gmted <- function( variable = NULL, path = NULL, + extent = NULL, ...) { #### directory setup path <- download_sanitize_path(path) @@ -1515,7 +1538,7 @@ process_gmted <- function( ) data_path <- data_paths[grep("(_grd$|w001001.adf)", data_paths)] #### import data - data <- terra::rast(data_path) + data <- terra::rast(data_path, win = extent) #### layer name names(data) <- paste0( "elevation_", @@ -1552,6 +1575,8 @@ process_gmted <- function( #' @param variable character(1). Variable name acronym. See [List of Variables in NARR Files](https://ftp.cpc.ncep.noaa.gov/NARR/fixed/merged_land_AWIP32corrected.pdf) #' for variable names and acronym codes. #' @param path character(1). Directory with downloaded netCDF (.nc) files. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @note #' Layer names of the returned `SpatRaster` object contain the variable acronym, @@ -1568,6 +1593,7 @@ process_narr <- function( date = c("2023-09-01", "2023-09-01"), variable = NULL, path = NULL, + extent = NULL, ...) { #### directory setup path <- download_sanitize_path(path) @@ -1635,7 +1661,7 @@ process_narr <- function( data_full <- terra::rast() for (p in seq_along(data_paths_ym)) { #### import data - data_year <- terra::rast(data_paths_ym[p]) + data_year <- terra::rast(data_paths_ym[p], win = extent) cat(paste0( "Cleaning ", variable, @@ -1769,6 +1795,8 @@ process_narr <- function( #' @param date character(2). length of 10. Format "YYYY-MM-DD". #' @param variable character(1). GEOS-CF variable name(s). #' @param path character(1). Directory with downloaded netCDF (.nc4) files. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @note #' Layer names of the returned `SpatRaster` object contain the variable, @@ -1785,6 +1813,7 @@ process_geos <- function(date = c("2018-01-01", "2018-01-01"), variable = NULL, path = NULL, + extent = NULL, ...) { #### directory setup path <- download_sanitize_path(path) @@ -1945,6 +1974,8 @@ process_geos <- #' @param date character(2). length of 10. Format "YYYY-MM-DD". #' @param variable character(1). MERRA2 variable name(s). #' @param path character(1). Directory with downloaded netCDF (.nc4) files. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @note #' Layer names of the returned `SpatRaster` object contain the variable, @@ -1963,6 +1994,7 @@ process_merra2 <- function(date = c("2018-01-01", "2018-01-01"), variable = NULL, path = NULL, + extent = NULL, ...) { #### directory setup path <- download_sanitize_path(path) @@ -2012,7 +2044,7 @@ process_merra2 <- data_return <- terra::rast() for (p in seq_along(data_paths)) { #### import .nc4 data - data_raw <- terra::rast(data_paths[p]) + data_raw <- terra::rast(data_paths[p], win = extent) data_date <- process_collection( data_paths[p], source = "merra2", @@ -2123,6 +2155,9 @@ process_merra2 <- #' for variable names and acronym codes. (Note: variable "Burning Index" has code "bi" and variable #' "Energy Release Component" has code "erc"). #' @param path character(1). Directory with downloaded netCDF (.nc) files. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded +#' @param ... Placeholders. #' @note #' Layer names of the returned `SpatRaster` object contain the variable acronym, #' and date. @@ -2136,7 +2171,9 @@ process_merra2 <- process_gridmet <- function( date = c("2023-09-01", "2023-09-01"), variable = NULL, - path = NULL) { + path = NULL, + extent = NULL, + ...) { #### directory setup path <- download_sanitize_path(path) #### check for variable @@ -2187,7 +2224,7 @@ process_gridmet <- function( data_full <- terra::rast() for (p in seq_along(data_paths)) { #### import data - data_year <- terra::rast(data_paths[p]) + data_year <- terra::rast(data_paths[p], win = extent) cat(paste0( "Cleaning daily ", variable_checked, @@ -2271,6 +2308,9 @@ process_gridmet <- function( #' @param variable character(1). Variable name or acronym code. See [TerraClimate Direct Downloads](https://climate.northwestknowledge.net/TERRACLIMATE/index_directDownloads.php) #' for variable names and acronym codes. #' @param path character(1). Directory with downloaded netCDF (.nc) files. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded +#' @param ... Placeholders. #' @note #' Layer names of the returned `SpatRaster` object contain the variable acronym, year, #' and month. @@ -2287,7 +2327,9 @@ process_gridmet <- function( process_terraclimate <- function( date = c("2023-09-01", "2023-09-01"), variable = NULL, - path = NULL) { + path = NULL, + extent = NULL, + ...) { #### directory setup path <- download_sanitize_path(path) #### check for variable @@ -2345,7 +2387,7 @@ process_terraclimate <- function( data_full <- terra::rast() for (p in seq_along(data_paths)) { #### import data - data_year <- terra::rast(data_paths[p]) + data_year <- terra::rast(data_paths[p], win = extent) cat(paste0( "Cleaning monthly ", variable_checked_long, @@ -2439,6 +2481,8 @@ process_terraclimate <- function( #' @param huc_level character(1). Field name of HUC level #' @param huc_header character(1). The upper level HUC code header to extract #' lower level HUCs. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Arguments passed to `nhdplusTools::get_huc()` #' @returns a `SpatVector` object #' @seealso [`nhdplusTools::get_huc`] @@ -2478,6 +2522,7 @@ process_huc <- layer_name = NULL, huc_level = NULL, huc_header = NULL, + extent = NULL, ... ) { # exclude the coverage due to write permission related to memoization @@ -2512,7 +2557,13 @@ process_huc <- ) } - hucpoly <- try(terra::vect(path, query = querybase)) + hucpoly <- try( + terra::vect( + path, + query = querybase, + extent = extent + ) + ) } return(hucpoly) } @@ -2525,6 +2576,8 @@ process_huc <- #' returning a single `SpatRaster` object. #' @param path character giving CropScape data path #' @param year numeric giving the year of CropScape data used +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @description Reads CropScape file of selected `year`. #' @returns a `SpatRaster` object @@ -2537,6 +2590,7 @@ process_cropscape <- function( path = NULL, year = 2021, + extent = NULL, ... ) { # check inputs @@ -2557,7 +2611,7 @@ process_cropscape <- } else { cdl_file <- path } - cdl <- terra::rast(cdl_file) + cdl <- terra::rast(cdl_file, win = extent) terra::metags(cdl) <- c(year = year) return(cdl) } @@ -2573,6 +2627,8 @@ process_cropscape <- #' @param time character(1). PRISM time name. #' Should be character in length of 2, 4, 6, or 8. #' "annual" is acceptable. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @description Reads time series or 30-year normal PRISM data. #' @returns a `SpatRaster` object with metadata of time and element. @@ -2588,6 +2644,7 @@ process_prism <- path = NULL, element = NULL, time = NULL, + extent = NULL, ... ) { # check inputs @@ -2616,7 +2673,7 @@ process_prism <- } else { prism_file <- path } - prism <- terra::rast(prism_file) + prism <- terra::rast(prism_file, win = extent) terra::metags(prism) <- c(time = time, element = element) return(prism) } @@ -2625,6 +2682,8 @@ process_prism <- #' Process OpenLandMap data #' @param path character giving OpenLandMap data path +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @returns a `SpatRaster` object #' @author Insang Song @@ -2633,12 +2692,13 @@ process_prism <- process_olm <- function( path = NULL, + extent = NULL, ... ) { # check inputs if (!is.character(path) || is.null(path)) { stop("path is not a character.") } - olm <- terra::rast(path) + olm <- terra::rast(path, win = extent) return(olm) } diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index 02e655ca..6aaea0c4 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -415,9 +415,13 @@ testthat::test_that("read ecoregion", { path_eco <- testthat::test_path("..", "testdata", "eco_l3_clip.gpkg") testthat::expect_no_error( - process_ecoregion(path_eco) + eco <- process_ecoregion(path_eco) ) + # test with cropping extent + testthat::expect_no_error( + process_ecoregion(path_eco, extent = terra::ext(eco)) + ) ecotemp <- sf::st_read(path_eco) # nolint start addpoly <- @@ -447,6 +451,14 @@ testthat::test_that("process_nlcd tests", { testthat::expect_no_error( nlcd19 <- process_nlcd(path = path_nlcd19, year = 2019) ) + # test with extent cropping + testthat::expect_no_error( + nlcd19_ext <- process_nlcd( + path = path_nlcd19, + year = 2019, + extent = terra::ext(-1580000, -1520000, 1920000, 1980000) + ) + ) testthat::expect_s4_class(nlcd19, "SpatRaster") testthat::expect_equal(unname(terra::metags(nlcd19, name = "year")), "2019") @@ -477,6 +489,14 @@ testthat::test_that("process_koppen_geiger tests", { kgeiger <- process_koppen_geiger(path_kgeiger) ) + # test with cropping extent + testthat::expect_no_error( + kgeiger_ext <- process_koppen_geiger( + path_kgeiger, + extent = terra::ext(kgeiger) + ) + ) + testthat::expect_s4_class(kgeiger, "SpatRaster") }) @@ -489,6 +509,15 @@ testthat::test_that("process_tri tests", { tri_r <- process_tri(path = path_tri) ) testthat::expect_s4_class(tri_r, "SpatVector") + + # test with cropping extent + testthat::expect_no_error( + tri_r_ext <- process_tri( + path = path_tri, + extent = terra::ext(tri_r) + ) + ) + testthat::expect_s4_class(tri_r, "SpatVector") }) # test NEI #### @@ -602,6 +631,13 @@ testthat::test_that("process_sedac_population returns expected.", { any(c(0, 1) %in% dim(pop)[1:2]) ) } + # test with cropping extent + testthat::expect_no_error( + pop_ext <- process_sedac_population( + paths[1], + extent = terra::ext(pop) + ) + ) }) testthat::test_that("process_sedac_population returns null for netCDF.", { @@ -632,9 +668,9 @@ testthat::test_that("sedac_codes", { testthat::test_that("process_hms returns expected.", { withr::local_package("terra") densities <- c( - "Light", "Medium", - "Heavy" + "Heavy", + "Light" ) # expect function testthat::expect_true( @@ -679,6 +715,19 @@ testthat::test_that("process_hms returns expected.", { ) } } + # test with cropping extent + testthat::expect_no_error( + hms_ext <- process_hms( + date = c("2022-06-10", "2022-06-11"), + variable = "light", + path = testthat::test_path( + "..", + "testdata", + "hms" + ), + extent = terra::ext(hms) + ) + ) }) # test GMTED #### @@ -739,6 +788,21 @@ testthat::test_that("process_gmted returns expected.", { ) } } + # test with cropping extent + testthat::expect_no_error( + gmted_ext <- + process_gmted( + variable = c("Breakline Emphasis", "7.5 arc-seconds"), + path = + testthat::test_path( + "..", + "testdata", + "gmted", + "be75_grd" + ), + ext = terra::ext(gmted) + ) + ) }) testthat::test_that("import_gmted returns error with non-vector variable.", { @@ -835,6 +899,22 @@ testthat::test_that("process_narr returns expected.", { ) } } + # test with cropping extent + testthat::expect_no_error( + narr_ext <- + process_narr( + date = c("2018-01-01", "2018-01-01"), + variable = "omega", + path = + testthat::test_path( + "..", + "testdata", + "narr", + "omega" + ), + extent = terra::ext(narr) + ) + ) }) # test GEOS-CF #### @@ -901,6 +981,21 @@ testthat::test_that("process_geos returns expected.", { ) } } + # test with cropping extent + testthat::expect_no_error( + geos_ext <- process_geos( + date = c("2018-01-01", "2018-01-01"), + variable = "O3", + path = + testthat::test_path( + "..", + "testdata", + "geos", + "c" + ), + extent = terra::ext(geos) + ) + ) }) testthat::test_that("process_geos expected errors.", { @@ -1209,6 +1304,13 @@ testthat::test_that("test process_sedac_groads", { testthat::expect_error( process_sedac_groads(path = 1L) ) + # test with cropping extent + testthat::expect_no_error( + groads_ext <- process_sedac_groads( + path = testthat::test_path("../testdata/groads_test.shp"), + extent = terra::ext(groads) + ) + ) }) # test MERRA2 #### @@ -1244,12 +1346,6 @@ testthat::test_that("process_merra2 returns as expected.", { merra2_df$collection[c] ) ) - cat( - paste0( - names(merra2), - "\n" - ) - ) # expect output is SpatRaster expect_true( class(merra2)[1] == "SpatRaster" @@ -1283,6 +1379,22 @@ testthat::test_that("process_merra2 returns as expected.", { all(dim(merra2) == c(2, 3, 1)) ) } + class(merra2) + # test with cropping extent + testthat::expect_no_error( + merra2_ext <- process_merra2( + date = c("2018-01-01", "2018-01-01"), + variable = "CPT", + path = + testthat::test_path( + "..", + "testdata", + "merra2", + "inst1_2d_int_Nx" + ), + extent = terra::ext(merra2) + ) + ) }) # test GridMET #### @@ -1329,6 +1441,21 @@ testthat::test_that("process_gridmet returns expected.", { expect_true( dim(gridmet)[3] == 1 ) + # test with cropping extent + testthat::expect_no_error( + gridmet_ext <- process_gridmet( + date = c("2018-01-03", "2018-01-03"), + variable = "Precipitation", + path = + testthat::test_path( + "..", + "testdata", + "gridmet", + "pr" + ), + extent = terra::ext(gridmet) + ) + ) }) # test TerraClimate #### @@ -1375,131 +1502,20 @@ testthat::test_that("process_terraclimate returns expected.", { expect_true( dim(terraclimate)[3] == 1 ) -}) - -testthat::test_that("gridmet and terraclimate auxiliary functions.", { - # gridmet - gc1 <- process_gridmet_codes("all") - expect_true(ncol(gc1) == 2) - gc2 <- process_gridmet_codes("sph", invert = TRUE) - expect_true(class(gc2) == "character") - expect_true(nchar(gc2) > 7) - gc3 <- process_gridmet_codes("Near-Surface Specific Humidity") - expect_true(class(gc3) == "character") - expect_true(nchar(gc3) < 7) - # terraclimate - tc1 <- process_terraclimate_codes("all") - expect_true(ncol(gc1) == 2) - tc2 <- process_terraclimate_codes("aet", invert = TRUE) - expect_true(class(gc2) == "character") - expect_true(nchar(gc2) > 7) - tc3 <- process_terraclimate_codes("Actual Evapotranspiration") - expect_true(class(gc3) == "character") - expect_true(nchar(gc3) < 7) - # process_variable_codes - expect_no_error(process_variable_codes("sph", "gridmet")) - expect_no_error( - process_variable_codes("Near-Surface Specific Humidity", "gridmet") - ) - expect_error( - process_variable_codes("error", "gridmet") - ) - expect_no_error(process_variable_codes("aet", "terraclimate")) - expect_no_error( - process_variable_codes("Actual Evapotranspiration", "terraclimate") - ) - expect_error( - process_variable_codes("error", "terraclimate") - ) -}) - -testthat::test_that("process_gridmet returns expected.", { - withr::local_package("terra") - variable <- "Precipitation" - # expect function - expect_true( - is.function(process_gridmet) - ) - gridmet <- - process_gridmet( - date = c("2018-01-03", "2018-01-03"), - variable = variable, - path = - testthat::test_path( - "..", - "testdata", - "gridmet", - "pr" - ) - ) - # expect output is SpatRaster - expect_true( - class(gridmet)[1] == "SpatRaster" - ) - # expect values - expect_true( - terra::hasValues(gridmet) - ) - # expect non-null coordinate reference system - expect_false( - is.null(terra::crs(gridmet)) - ) - # expect lon and lat dimensions to be > 1 - expect_false( - any(c(0, 1) %in% dim(gridmet)[1:2]) - ) - # expect non-numeric and non-empty time - expect_false( - any(c("", 0) %in% terra::time(gridmet)) - ) - # expect dimensions according to levels - expect_true( - dim(gridmet)[3] == 1 - ) -}) - -testthat::test_that("process_terraclimate returns expected.", { - withr::local_package("terra") - variable <- "ppt" - # expect function - expect_true( - is.function(process_terraclimate) - ) - terraclimate <- - process_terraclimate( + # test with cropping extent + testthat::expect_no_error( + terraclimate_ext <- process_terraclimate( date = c("2018-01-01", "2018-01-01"), - variable = variable, + variable = "ppt", path = testthat::test_path( "..", "testdata", "terraclimate", "ppt" - ) + ), + extent = terra::ext(terraclimate) ) - # expect output is SpatRaster - expect_true( - class(terraclimate)[1] == "SpatRaster" - ) - # expect values - expect_true( - terra::hasValues(terraclimate) - ) - # expect non-null coordinate reference system - expect_false( - is.null(terra::crs(terraclimate)) - ) - # expect lon and lat dimensions to be > 1 - expect_false( - any(c(0, 1) %in% dim(terraclimate)[1:2]) - ) - # expect non-numeric and non-empty time - expect_false( - any(c("", 0) %in% terra::time(terraclimate)) - ) - # expect dimensions according to levels - expect_true( - dim(terraclimate)[3] == 1 ) }) @@ -1539,7 +1555,6 @@ testthat::test_that("gridmet and terraclimate auxiliary functions.", { ) }) - # test PRISM #### testthat::test_that( "process_prism returns a SpatRaster object with correct metadata", @@ -1581,6 +1596,12 @@ testthat::test_that( ) testthat::expect_error(process_prism(path_dir, element_bad, time)) testthat::expect_error(process_prism(path_dir, element, time_bad)) + + # test with cropping extent + testthat::expect_no_error( + result_ext <- process_prism(path, element, time, + extent = terra::ext(result)) + ) } ) @@ -1599,6 +1620,13 @@ testthat::test_that( testthat::expect_no_error(result <- process_cropscape(filepath, year)) testthat::expect_no_error(process_cropscape(dirpath, year)) + # test with cropping extent + testthat::expect_no_error( + result_ext <- process_cropscape( + filepath, year, extent = terra::ext(result) + ) + ) + # Check the return type testthat::expect_true(inherits(result, "SpatRaster")) @@ -1669,6 +1697,17 @@ testthat::test_that("process_huc", # Call the function and expect an error testthat::expect_error(process_huc(path2)) + + # test with cropping extent + testthat::expect_no_error( + huc_ext <- process_huc( + path, + layer_name = "NHDPlus_test", + huc_level = "HUC_12", + huc_header = "030202", + extent = terra::ext(result) + ) + ) } ) @@ -1685,6 +1724,11 @@ testthat::test_that("process_olm", { testthat::expect_error( process_olm(path = 1L) ) + + # test with cropping extent + testthat::expect_no_error( + olm_ext <- process_olm(path = tmwm, extent = terra::ext(olm)) + ) }) # nolint end From 472e5877d2443ed8f5f10dd2e37eed68929349db Mon Sep 17 00:00:00 2001 From: Insang Song Date: Mon, 8 Jul 2024 17:24:29 -0400 Subject: [PATCH 12/66] 0.2.2 - process_aqs argument options changed (#98) - apply_extent: internal function to apply extent to sf/terra class objects - Tests are updated following the changes --- DESCRIPTION | 6 ++-- NAMESPACE | 1 + R/calculate_covariates.R | 7 ++-- R/process.R | 34 ++++++++++++------ R/process_auxiliary.R | 22 ++++++++++++ man/apply_extent.Rd | 21 +++++++++++ man/process_aqs.Rd | 26 +++++++++----- tests/testthat/test-process.R | 65 ++++++++++++++++++++++++++++++----- 8 files changed, 150 insertions(+), 32 deletions(-) create mode 100644 man/apply_extent.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 3442e503..284c8eee 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: amadeus Title: AMADEUS: A Machine for Data, Environments, and User Setup for common environmental and climate health datasets -Version: 0.2.0 +Version: 0.2.2 Authors@R: c( person("Kyle", "Messier", , "kyle.messier@nih.gov", role = c("aut", "cre"), comment = c(ORCID = "0000-0001-9508-9623")), person("Mitchell", "Manware", role = c("aut", "ctb"), comment = c(ORCID = "0009-0003-6440-6106")), @@ -17,9 +17,9 @@ Suggests: covr, withr, knitr, rmarkdown, lwgeom, FNN, doRNG Encoding: UTF-8 VignetteBuilder: knitr, rmarkdown Roxygen: list(markdown = TRUE) -RoxygenNote: 7.3.1 +RoxygenNote: 7.3.2 Config/Needs/website: tidyverse/tidytemplate Config/testhat/edition: 3 License: MIT + file LICENSE URL: https://github.com/NIEHS/amadeus, -https://niehs.github.io/amadeus/ +https: //niehs.github.io/amadeus/ diff --git a/NAMESPACE b/NAMESPACE index 530b264b..56650d2a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -165,6 +165,7 @@ importFrom(rstac,read_items) importFrom(rstac,read_stac) importFrom(sf,st_as_sf) importFrom(sf,st_as_sfc) +importFrom(sf,st_bbox) importFrom(sf,st_crs) importFrom(sf,st_drop_geometry) importFrom(sf,st_geometry) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index ce957dbc..24e0dfb6 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -356,8 +356,8 @@ calc_nlcd <- function(from, class_query <- "value" # ratio of each nlcd class per buffer bufs_polx <- bufs_pol[terra::ext(from), ] |> - sf::st_as_sf() |> - sf::st_geometry() + sf::st_as_sf()# |> + # sf::st_geometry() nlcd_at_bufs <- future.apply::future_Map( function(i) { exactextractr::exact_extract( @@ -366,6 +366,7 @@ calc_nlcd <- function(from, fun = "frac", force_df = TRUE, progress = FALSE, + append_cols = locs_id, max_cells_in_memory = max_cells ) }, seq_len(length(bufs_polx)), @@ -379,7 +380,7 @@ calc_nlcd <- function(from, nlcd_at_bufs <- nlcd_at_bufs[, nlcd_val_cols] } # fill NAs - nlcd_at_bufs[is.na(nlcd_at_bufs), ] <- 0 + nlcd_at_bufs[is.na(nlcd_at_bufs)] <- 0 # change column names nlcd_names <- names(nlcd_at_bufs) diff --git a/R/process.R b/R/process.R index eda51e24..6088c2fd 100644 --- a/R/process.R +++ b/R/process.R @@ -979,10 +979,11 @@ process_nei <- function( } # nolint start -#' Process unique U.S. EPA AQS sites +#' Process U.S. EPA AQS daily CSV data #' @description #' The \code{process_aqs()} function cleans and imports raw air quality -#' monitoring sites, returning a single `SpatVector` or sf object. +#' monitoring sites from pre-generated daily CSV files, returning a single +#' `SpatVector` or `sf` object. #' `date` is used to filter the raw data read from csv files. #' Filtered rows are then processed according to `mode` argument. #' Some sites report multiple measurements per day with and without @@ -992,11 +993,15 @@ process_nei <- function( #' @param path character(1). Directory path to daily measurement data. #' @param date character(2). Start and end date. #' Should be in `"YYYY-MM-DD"` format and sorted. -#' @param mode character(1). One of "full" (all dates * all locations) -#' or "sparse" (date-location pairs with available data) or -#' "location" (unique locations). +#' @param mode character(1). One of +#' * "date-location" (all dates * all locations) +#' * "available-data" (date-location pairs with available data) +#' * "location" (unique locations). #' @param data_field character(1). Data field to extract. #' @param return_format character(1). `"terra"` or `"sf"` or `"data.table"`. +#' @param extent numeric(4). Spatial extent of the resulting object. +#' The order should be `c(xmin, xmax, ymin, ymax)`. +#' The coordinate system should be WGS84 (EPSG:4326). #' @param ... Placeholders. #' @seealso #' * [`download_aqs()`] @@ -1009,16 +1014,18 @@ process_nei <- function( #' @importFrom sf st_as_sf #' @importFrom dplyr group_by ungroup filter mutate select distinct #' @note Choose `date` and `mode` values with caution. -#' The function may return a massive data.table, resulting in -#' a long processing time or even a crash. +#' The function may return a massive data.table depending on the time range, +#' resulting in a long processing time or even a crash if data is too large +#' for your computing environment to process. #' @export process_aqs <- function( path = NULL, date = c("2018-01-01", "2022-12-31"), - mode = c("full", "sparse", "location"), + mode = c("date-location", "available-data", "location"), data_field = "Arithmetic.Mean", return_format = c("terra", "sf", "data.table"), + extent = NULL, ... ) { mode <- match.arg(mode) @@ -1124,7 +1131,7 @@ process_aqs <- final_sites <- final_sites[, grep("Datum", names(final_sites), invert = TRUE), with = FALSE] - if (mode == "full") { + if (mode == "date-location") { final_sites <- split(date_sequence, date_sequence) |> lapply(function(x) { @@ -1134,7 +1141,7 @@ process_aqs <- }) final_sites <- data.table::rbindlist(final_sites, fill = TRUE) } - if (mode == "sparse") { + if (mode == "available-data") { final_sites <- unique(final_sites) } @@ -1157,6 +1164,13 @@ process_aqs <- ), data.table = final_sites ) + if (!is.null(extent)) { + if (return_format == "data.table") { + warning("Extent is not applicable for data.table. Returning data.table...\n") + return(final_sites) + } + final_sites <- apply_extent(final_sites, extent) + } return(final_sites) } diff --git a/R/process_auxiliary.R b/R/process_auxiliary.R index 851dd70e..75cc563a 100644 --- a/R/process_auxiliary.R +++ b/R/process_auxiliary.R @@ -536,3 +536,25 @@ is_date_proper <- function( \"YYYY-MM-DD\".\n", names(argnames)[2])) } } + + +#' Apply extent to the processed data +#' +#' User-defined extent is used to filter the data. +#' +#' @param data sf/terra object. +#' @param extent numeric(4). Extent to filter the data. +#' Should be ordered as c(xmin, xmax, ymin, ymax). +#' @importFrom sf st_as_sfc st_bbox st_crs +#' @importFrom terra ext +#' @returns sf/terra object with the extent applied. +#' @keywords internal +apply_extent <- + function(data, extent) { + extent <- terra::ext(extent) + if (inherits(data, "sf")) { + extent <- sf::st_as_sfc(sf::st_bbox(extent), crs = sf::st_crs(data)) + } + data <- data[extent, ] + return(data) + } diff --git a/man/apply_extent.Rd b/man/apply_extent.Rd new file mode 100644 index 00000000..6b3a6fbe --- /dev/null +++ b/man/apply_extent.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/process_auxiliary.R +\name{apply_extent} +\alias{apply_extent} +\title{Apply extent to the processed data} +\usage{ +apply_extent(data, extent) +} +\arguments{ +\item{data}{sf/terra object.} + +\item{extent}{numeric(4). Extent to filter the data. +Should be ordered as c(xmin, xmax, ymin, ymax).} +} +\value{ +sf/terra object with the extent applied. +} +\description{ +User-defined extent is used to filter the data. +} +\keyword{internal} diff --git a/man/process_aqs.Rd b/man/process_aqs.Rd index f8c7fa29..71a6ccbe 100644 --- a/man/process_aqs.Rd +++ b/man/process_aqs.Rd @@ -2,14 +2,15 @@ % Please edit documentation in R/process.R \name{process_aqs} \alias{process_aqs} -\title{Process unique U.S. EPA AQS sites} +\title{Process U.S. EPA AQS daily CSV data} \usage{ process_aqs( path = NULL, date = c("2018-01-01", "2022-12-31"), - mode = c("full", "sparse", "location"), + mode = c("date-location", "available-data", "location"), data_field = "Arithmetic.Mean", return_format = c("terra", "sf", "data.table"), + extent = NULL, ... ) } @@ -19,14 +20,21 @@ process_aqs( \item{date}{character(2). Start and end date. Should be in \code{"YYYY-MM-DD"} format and sorted.} -\item{mode}{character(1). One of "full" (all dates * all locations) -or "sparse" (date-location pairs with available data) or -"location" (unique locations).} +\item{mode}{character(1). One of +\itemize{ +\item "date-location" (all dates * all locations) +\item "available-data" (date-location pairs with available data) +\item "location" (unique locations). +}} \item{data_field}{character(1). Data field to extract.} \item{return_format}{character(1). \code{"terra"} or \code{"sf"} or \code{"data.table"}.} +\item{extent}{numeric(4). Spatial extent of the resulting object. +The order should be \code{c(xmin, xmax, ymin, ymax)}. +The coordinate system should be WGS84 (EPSG:4326).} + \item{...}{Placeholders.} } \value{ @@ -34,7 +42,8 @@ a SpatVector, sf, or data.table object depending on the \code{return_format} } \description{ The \code{process_aqs()} function cleans and imports raw air quality -monitoring sites, returning a single \code{SpatVector} or sf object. +monitoring sites from pre-generated daily CSV files, returning a single +\code{SpatVector} or \code{sf} object. \code{date} is used to filter the raw data read from csv files. Filtered rows are then processed according to \code{mode} argument. Some sites report multiple measurements per day with and without @@ -44,8 +53,9 @@ are multiple event types per site-time. } \note{ Choose \code{date} and \code{mode} values with caution. -The function may return a massive data.table, resulting in -a long processing time or even a crash. +The function may return a massive data.table depending on the time range, +resulting in a long processing time or even a crash if data is too large +for your computing environment to process. } \seealso{ \itemize{ diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index 8a254e63..27f2a65f 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -1048,6 +1048,9 @@ testthat::test_that("process_locs_vector vector data and missing columns.", { testthat::test_that("process_aqs", { withr::local_package("terra") withr::local_package("data.table") + withr::local_package("sf") + withr::local_package("dplyr") + withr::local_options(list(sf_use_s2 = FALSE)) aqssub <- testthat::test_path( "..", @@ -1063,7 +1066,7 @@ testthat::test_that("process_aqs", { aqsft <- process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), - mode = "full", + mode = "date-location", return_format = "terra" ) ) @@ -1071,7 +1074,7 @@ testthat::test_that("process_aqs", { aqsst <- process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), - mode = "sparse", + mode = "available-data", return_format = "terra" ) ) @@ -1093,7 +1096,7 @@ testthat::test_that("process_aqs", { aqsfs <- process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), - mode = "full", + mode = "date-location", return_format = "sf" ) ) @@ -1101,7 +1104,7 @@ testthat::test_that("process_aqs", { aqsss <- process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), - mode = "sparse", + mode = "available-data", return_format = "sf" ) ) @@ -1121,7 +1124,7 @@ testthat::test_that("process_aqs", { aqsfd <- process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), - mode = "full", + mode = "date-location", return_format = "data.table" ) ) @@ -1129,7 +1132,7 @@ testthat::test_that("process_aqs", { aqssd <- process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), - mode = "sparse", + mode = "available-data", return_format = "data.table" ) ) @@ -1137,7 +1140,7 @@ testthat::test_that("process_aqs", { aqssdd <- process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), - mode = "sparse", + mode = "available-data", data_field = "Arithmetic.Mean", return_format = "data.table" ) @@ -1199,6 +1202,21 @@ testthat::test_that("process_aqs", { testthat::expect_error( process_aqs(path = aqssub, date = c("2021-08-15")) ) + testthat::expect_error( + process_aqs( + path = aqssub, date = c("2022-02-04", "2022-02-28"), + mode = "available-data", return_format = "sf", + extent = c(-79, 33, -78, 36) + ) + ) + testthat::expect_warning( + process_aqs( + path = aqssub, date = c("2022-02-04", "2022-02-28"), + mode = "available-data", return_format = "data.table", + extent = c(-79, -78, 33, 36) + ), + "Extent is not applicable for data.table. Returning data.table..." + ) }) # test SEDAC GRoads #### @@ -1696,7 +1714,7 @@ testthat::test_that("process_olm", { }) # nolint end -## AUX tests #### +# AUX tests #### testthat::test_that("loc_radius tests", { withr::local_package("terra") withr::local_package("sf") @@ -1764,3 +1782,34 @@ testthat::test_that("process_locs_vector tests", { testthat::expect_true(terra::geomtype(dfdftr) == "points") testthat::expect_true(terra::geomtype(dfdftrb) == "polygons") }) + +# apply_extent +testthat::test_that("apply_extent tests", { + withr::local_package("terra") + withr::local_package("sf") + withr::local_options(list(sf_use_s2 = FALSE)) + + lon <- seq(-112, -101, length.out = 5) # create lon sequence + lat <- seq(33.5, 40.9, length.out = 5) # create lat sequence + df <- expand.grid("lon" = lon, "lat" = lat) # expand to regular grid + dfsf <- sf::st_as_sf( + df, + coords = c("lon", "lat"), + crs = "EPSG:4326", + remove = FALSE + ) + dftr <- terra::vect(dfsf) + + testthat::expect_no_error( + dftr1 <- apply_extent(dftr, c(-112, -101, 33.5, 40.9)) + ) + testthat::expect_no_error( + dfsftr <- apply_extent(dfsf, c(-112, -101, 33.5, 40.9)) + ) + testthat::expect_no_error( + dfdftr <- apply_extent(df, c(-112, -101, 33.5, 40.9)) + ) + testthat::expect_s4_class(dftr1, "SpatVector") + testthat::expect_s4_class(dfsftr, "SpatVector") + testthat::expect_s4_class(dfdftr, "SpatVector") +}) From c47bac1643c72a963ac7cd675b616ca751bba2b2 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 08:52:49 -0400 Subject: [PATCH 13/66] update vignettes --- README.md | 6 +- vignettes/download_functions.Rmd | 420 ++++++------------------------- vignettes/protected_datasets.Rmd | 280 +++++++++++++++++++++ 3 files changed, 363 insertions(+), 343 deletions(-) create mode 100644 vignettes/protected_datasets.Rmd diff --git a/README.md b/README.md index 43e5694c..7cda2b39 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,7 @@ Example use of `download_data` using NOAA NCEP North American Regional Reanalysi > directory <- "/ EXAMPLE / FILE / PATH /" > download_data( + dataset_name = "narr_monolevel", -+ year_start = 2022, -+ year_end = 2022, ++ year = c(2022, 2022), + variable = "weasd", + directory_to_save = directory, + acknowledgement = TRUE, @@ -90,7 +89,8 @@ Example use of `process_covariates` using the downloaded "weasd" data. + covariate = "narr", + date = c("2022-01-01", "2022-01-05"), + variable = "weasd", -+ path = paste0(directory, "weasd") ++ path = paste0(directory, "weasd"), ++ extent = NULL + ) Cleaning weasd data for January, 2022... Detected monolevel data... diff --git a/vignettes/download_functions.Rmd b/vignettes/download_functions.Rmd index f180a70a..5101f5fb 100644 --- a/vignettes/download_functions.Rmd +++ b/vignettes/download_functions.Rmd @@ -1,11 +1,11 @@ --- -title: "download_data and NASA EarthData Account" +title: "download_data" output: rmarkdown::html_vignette vignette: > - %\VignetteIndexEntry{download_data and NASA EarthData Account} + %\VignetteIndexEntry{download_data} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} -date: "2024-05-02" +date: "2024-07-09" author: "Mitchell Manware" --- @@ -20,23 +20,37 @@ devtools::load_all("../") ## Motivation -The `data_download` function was developed to improve researchers' access to publicly available geospatial datasets. Although the data are already available online, using a web browser to manually download hundreds or thousands of data files is slow, arduous, and not efficiently repeatable. A function which downloads raw data files onto the user's machine allows for re +The `download_data` function was developed to improve researchers' access to publicly available environmental data. +Although the data are already available online, using a web browser to manually download hundreds or thousands of data files is slow, arduous, and not efficiently repeatable. +Additionally, as users may not be familiar with creating download recipes in Bash (Unix shell), `download_data` allows researchers to download data directly with `R`, a common coding language in the field of environmental health research. +Finally, function-izing data downloads is useful for repeated code or automated analysis pipelines. -Additionally, as users may not be familiar with creating download recipes in Bash (Unix shell), `data_download` allows researchers to download data directly with R, a common coding language in the field of environmental health research. Finally, function-izing data downloads is useful for repeated code or automated analysis pipelines. +## download_data -## data_download - -`data_download` is capable of accessing and downloading geospatial datasets, collections, and variables from a variety of sources. This wrapper function calls on source-specific data download functions, each utilizing a unique combination of input parameters, host URL, naming convention, and data formats. +`download_data` is acccesses and downloads environmental datasets, collections, and variables from a variety of sources. +This wrapper function calls source-specific data download functions, each utilizing a unique combination of input parameters, host URL, naming convention, and data formats. ```{r, echo = FALSE} functions <- c( - "download_aqs", "download_ecoregion", - "download_geos_cf_data", "download_gmted", - "download_koppen_geiger", "download_merra2", - "download_narr_monolevel", "download_narr_p_levels", - "download_nlcd", "download_hms", - "download_sedac_groads", "download_sedac_population", - "download_modis" + "download_aqs", + "download_ecoregion", + "download_geos_data", + "download_gmted", + "download_koppen_geiger", + "download_merra2", + "download_narr", + "download_nlcd", + "download_hms", + "download_sedac_groads", + "download_sedac_population", + "download_modis", + "download_terraclimate", + "download_gridmet", + "download_osm", + "download_prism", + "download_nei", + "download_tri", + "download_huc" ) source <- c( "US EPA Air Data Pre-Generated Data Files", @@ -48,16 +62,19 @@ source <- c( "NASA Modern-Era Retrospective analysis for Research and ", "Applications, Version 2 (MERRA-2)" ), - "NOAA NCEP North American Regional Reanalysis (NARR) (monolevel variables)", - paste0( - "NOAA NCEP North American Regional Reanalysis (NARR) (pressure ", - "levels variables)" - ), + "NOAA NCEP North American Regional Reanalysis (NARR)", "MRLC Consortium National Land Cover Database (NLCD)", "NOAA Hazard Mapping System Fire and Smoke Product", "NASA SEDAC Global Roads Open Access Data Set", "NASA SEDAC UN WPP-Adjusted Population Density", - "NASA Moderate Resolution Imaging Spectroradiometer (MODIS)" + "NASA Moderate Resolution Imaging Spectroradiometer (MODIS)", + "Climatology Lab TerraClimate", + "Climatology Lab GridMet", + "OpenGeoHub Foundation OpenLandMap", + "Parameter Elevation Regression on Independent Slopes Model (PRISM)", + "US EPA National Emissions Inventory (NEI)", + "US EPA Toxic Release Inventory (TRI) Program", + "USGS National Hydrography Dataset (NHD)" ) link <- c( @@ -68,7 +85,6 @@ link <- c( "https://www.nature.com/articles/sdata2018214", "https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/", "https://psl.noaa.gov/data/gridded/data.narr.html", - "https://psl.noaa.gov/data/gridded/data.narr.html", "https://www.mrlc.gov/data", "https://www.ospo.noaa.gov/Products/land/hms.html#0", paste0( @@ -80,8 +96,22 @@ link <- c( "population-density-adjusted-to-2015-unwpp-country-", "totals-rev11" ), - "https://modis.gsfc.nasa.gov/data/" + "https://modis.gsfc.nasa.gov/data/", + "https://www.climatologylab.org/terraclimate.html", + "https://www.climatologylab.org/gridmet.html", + "https://opengeohub.org/about-openlandmap/", + paste0( + "https://elibrary.asabe.org/abstract.asp??JID=3&", + "AID=3101&CID=t2000&v=43&i=6&T=1" + ), + "https://www.epa.gov/air-emissions-inventories", + paste0( + "https://www.epa.gov/toxics-release-inventory-tri-program/", + "tri-basic-data-files-calendar-years-1987-present" + ), + "https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9" ) + source <- paste0( "[", source, @@ -91,14 +121,15 @@ source <- paste0( ) functions_sources <- data.frame(functions, source) -colnames(functions_sources) <- c("Function", "Source") -kable(functions_sources, +functions_sources_sorted <- functions_sources[order(functions_sources$source), ] +colnames(functions_sources_sorted) <- c("Download Function", "Data Source") +kable(functions_sources_sorted, caption = - "Source-Specific Download Functions and Sources" + "Source-specific download functions and data sources" ) ``` -It is important to note that `data_download` calls a source-specific function based on the `dataset_name` parameter. Using the source-specific function directly will return the exact same data (**if the parameters are the same**), but the error messages produced by each differ slightly/ +It is important to note that `download_data` calls a source-specific function based on the `dataset_name` parameter. Using the source-specific function directly will return the same data **if the parameters are the same**, but the error messages produced by each differ slightly. ### Parameters @@ -106,10 +137,10 @@ User-defined parameters differ based on the data source. Required parameters for ```{r} names(formals(download_hms)) -names(formals(download_narr_monolevel)) +names(formals(download_narr)) ``` -The two functions have different required parameters because `download_hms` uses a daily temporal resolution while `download_narr_monolevel` uses yearly, but they share some common, standard parameters. +The two functions have different required parameters because `download_hms` uses a daily temporal resolution while `download_narr` uses yearly, but they share some common, standard parameters. #### Standard parameters @@ -119,7 +150,8 @@ Four parameters are included in all of the data download functions. parameter <- c( "directory_to_save", "acknowledgement", - "download", "remove_command" + "download", + "remove_command" ) type <- c("Character", "Logical", "Logical", "Logical") description <- c( @@ -148,7 +180,7 @@ colnames(parameter_descriptions) <- c("Parameter", "Type", "Description") kable(parameter_descriptions) ``` -Additionally, the `dataset_name` parameter must be specified when using `data_download`, but is assumed when using a source-specific download function. +Additionally, the `dataset_name` parameter must be specified when using `download_data`, but is assumed when using a source-specific download function. ### Function Structure @@ -176,14 +208,13 @@ Cleaning the user-defined parameters is highly dependent on the parameters thems ```{r} # user defined parameters -date_start <- "2023-12-28" -date_end <- "2024-01-02" +dates <- c("2023-12-28", "2024-01-02") ``` ```{r} date_sequence <- seq( - as.Date(date_start, format = "%Y-%m-%d"), - as.Date(date_end, format = "%Y-%m-%d"), + as.Date(dates[1], format = "%Y-%m-%d"), + as.Date(dates[2], format = "%Y-%m-%d"), "day" ) date_sequence <- gsub("-", "", as.character(date_sequence)) @@ -326,7 +357,7 @@ system_command <- paste0( system_command ``` -Running the `system_command` deploys a "helper function", `download_run`, a function created to reduce repeated code across the source-specific download functions. The function takes two parameters, `system_command`, which indicates the command to be run, and `download`, a user-defined logical parameter. +Running the `system_command` deploys an "auxiliary" function, `download_run`, a function created to reduce repeated code across the source-specific download functions. The function takes two parameters, `system_command`, which indicates the command to be run, and `download`, a user-defined logical parameter. ```{r} download_run <- function( @@ -365,7 +396,7 @@ paste0("hms_smoke_Shapefile_", date_sequence, ".zip") #### 8. Zip files (if applicable) {#zip-files-if-applicable} -All of the source-specific data download functions follow this general pattern, but those functions which download zip files require additional steps to inflate and remove the downloaded zip files, if desired. Each of these two steps are run by helper functions, and they are run by the user-defined `unzip` and `remove_zip` parameters in `data_download`. +All of the source-specific data download functions follow this general pattern, but those functions which download zip files require additional steps to inflate and remove the downloaded zip files, if desired. Each of these two steps are run by helper functions, and they are run by the user-defined `unzip` and `remove_zip` parameters in `download_data`. `download_unzip` inflates zip files if `unzip = TRUE`, and skips inflation if `unzip = FALSE`. @@ -548,9 +579,8 @@ testthat::test_that( test_directory <- "./data/" # download download_data( - dataset_name = "noaa", - date_start = test_start, - date_end = test_end, + dataset_name = "hms", + date = c(test_start, test_end), data_format = "Shapefile", directory_to_save = test_directory, acknowledgement = TRUE, @@ -588,9 +618,8 @@ testthat::test_that( test_directory <- "../inst/extdata/" # download download_data( - dataset_name = "noaa", - date_start = test_start, - date_end = test_end, + dataset_name = "hms", + date = c(test_start, test_end), data_format = "Shapefile", directory_to_save = test_directory, acknowledgement = TRUE, @@ -619,10 +648,9 @@ testthat::test_that( ) ``` - Although the `testthat::test_that(...)` chunk contains 32 lines of code, the unit test is performed by `expect_true(all(url_status))`. In words, this line is expecting (`expect_true`) that all (`all`) of the sampled URLs return HTTP response status 200 (`url_status`). Since this expectation was met, the test passed! -For an alternate example, we can use a start and end date that are known to not have data. As the URLs associated with these dates do not exist, we expect the function will fail. This test utilizes `expect_error()` because the `data_download` wrapper function returns an error message if the underlying source-specific download function returns an error. +For an alternate example, we can use a start and end date that are known to not have data. As the URLs associated with these dates do not exist, we expect the function will fail. This test utilizes `expect_error()` because the `download_data` wrapper function returns an error message if the underlying source-specific download function returns an error. ```{r} testthat::test_that( @@ -635,9 +663,8 @@ testthat::test_that( # test for error testthat::expect_error( download_data( - dataset_name = "noaa", - date_start = test_start, - date_end = test_end, + dataset_name = "hms", + date = c(test_start, test_end), data_format = "Shapefile", directory_to_download = test_directory, directory_to_save = test_directory, @@ -653,7 +680,7 @@ testthat::test_that( ``` -This test utilizes `testthat::expect_error` because the `data_download` wrapper function returns an error message if the underlying source-specific download function returns an error. If we directly used the `download_hms` function, we would expect and receive an error. +This test utilizes `testthat::expect_error` because the `download_data` wrapper function returns an error message if the underlying source-specific download function returns an error. If we directly used the `download_hms` function, we would expect and receive an error. ```{r} testthat::test_that( @@ -666,8 +693,7 @@ testthat::test_that( # test for error testthat::expect_error( download_hms( - date_start = test_start, - date_end = test_end, + date = c(test_start, test_end), data_format = "Shapefile", directory_to_download = test_directory, directory_to_save = test_directory, @@ -701,8 +727,7 @@ names(formals(download_hms)) Define the parameters. ```{r} -date_start <- "2023-12-28" -date_end <- "2024-01-02" +dates <- c("2023-12-28", "2024-01-02") data_format <- "Shapefile" data_directory <- "./download_example/" acknowledgement <- TRUE @@ -717,9 +742,7 @@ Download the data. ```{r, eval = FALSE} download_data( dataset_name = "hms", - date_start = date_start, - date_end = date_end, - directory_to_download = data_directory, + date = dates, directory_to_save = data_directory, acknowledgement = acknowledgement, download = download, @@ -766,290 +789,7 @@ for (s in seq_along(date_sequence)) { zips ``` -## NASA EarthData Account - -As mentioned in [Motivation], `data_download` provides access to publicly available geospatial data. Although publicly available, some of the NASA data sources require a NASA EarthData Account. - -For example, the UN WPP-Adjusted population density data from NASA Socioeconomic Data and Applications Center (SEDAC) requires an EarthData account. Without an EarthData Account and the prerequisite files prepared, the data download functions will return an error. - -```{r, eval = FALSE} -download_data( - dataset_name = "sedac_population", - year = "2020", - data_format = "GeoTIFF", - data_resolution = "60 minute", - directory_to_download = "./sedac_population/", - directory_to_save = "./sedac_population", - acknowledgement = TRUE, - download = TRUE, - unzip = TRUE, - remove_zip = FALSE, - remove_command = TRUE -) -``` - -```{r, echo = FALSE} -to_cat <- - paste0( - "Downloading requested files...\n", - "Requested files have been downloaded.\n", - "Unzipping files...\n\n", - "Warning in unzip(file_name, exdir = directory_to_unzip): ", - "error 1 in extracting from zip file\n\n", - "Files unzipped and saved in ./sedac_population/.\n\n" - ) -cat(to_cat) -``` - -The downloaded file cannot be unzipped because the data was not downloaded properly. - -### Register or log in - -Visit [https://urs.earthdata.nasa.gov/](http://urs.earthdata.nasa.gov) to register for or log into a NASA EarthData account. - -![NASA EarthData Account Landing Page](images/NASA_EarthData_login.png) - -Account registration provides access to NASA's Earth Observing System Data and Information System (EOSDIS) and its twelve Distributed Active Archive Centers (DAAC), including: - -- Alaska Satellite Facility (ASF) DAAC -- Atmospheric Science Data Center (ASDC) -- Crustal Dynamics Data Information System (CDDIS) -- Global Hydrometeorology Resource Center (GHRC) -- Goddard Earth Sciences Data and Information Services Center (GES DISC) -- Land Processes DAAC (LP DAAC) -- Level 1 and Atmosphere Archive and Distribution System (LAADS) DAAC -- National Snow and Ice Data Center (NSIDC) DAAC -- Oak Ridge National Laboratory (ORNL) DAAC -- Ocean Biology DAAC (OB.DAAC) -- Physical Oceanography DAAC (PO.DAAC) -- Socioeconomic Data and Applications Center (SEDAC) - -See for more information. - -### Approved applications - -After creating an account, navigate to "My Profile"(https://urs.earthdata.nasa.gov/profile), and then to "Applications \> Authorized Apps". This "Authorized Apps" page specifies which NASA EarthData applications can use your login credentials. For this example, ensure that authorization is enabled for "SEDAC Website", "SEDAC Website (Alpha)", and "SEDAC Website (Beta)". - -![NASA EarthData Approved Applications](images/NASA_EarthData_applications.png) - -### Prerequisite files - -With a NASA EarthData Account and the required applications authorized to use the credentials, it is time to create the prerequisite files. - -**Note** As the steps to produce the prerequisite files is very specific, much of the code used is adopted from [How to Generate Earthdata Prerequisite Files](https://disc.gsfc.nasa.gov/information/howto?title=How%20to%20Generate%20Earthdata%20Prerequisite%20Files) on NASA GES DISC's "How-To's" webpage ([link](https://disc.gsfc.nasa.gov/information/howto)). - -#### `.netrc` - -The following commands create the `.netrc` file, which contains your NASA EarthData Account credentials. - -First, set your working directory to the home directory. Setting a working directory differs between Mac/Linux and Windows machines. - -```{r, eval = FALSE} -if (.Platform$OS.type == "unix") { - setwd("~/") -} else if (.Platform$OS.type == "windows") { - setwd("C:/") -} -``` - -Create a file named `.netrc` with `file.create`. - -```{r, eval = FALSE} -file.create(".netrc") -``` - -Open a connection to `.netrc` with `sink`. Write the line `machine urs...` replacing `YOUR_USERNAME` and `YOUR_PASSWORD` with your NASA EarthData username and password, respectively. After writing the line, close the connection with `sink` again. - -```{r, eval = FALSE} -sink(".netrc") -writeLines( - "machine urs.earthdata.nasa.gov login YOUR_USERNAME password YOUR_PASSWORD" -) -sink() -``` - -Edit the settings so only you, the owner of the file, can read and write `.netrc`. - -```{r, eval = FALSE} -system("chmod 0600 .netrc") -``` - -After, check to ensure the file was created properly. - -```{r, eval = FALSE} -file.exists(".netrc") -``` - -```{r, echo = FALSE} -TRUE -``` - -```{r, eval = FALSE} -readLines(".netrc") -``` - -```{r, echo = FALSE} -paste0( - "machine urs.earthdata.nasa.gov login YOUR_USERNAME password YOUR_PASSWORD" -) -``` - - -#### `.urs_cookies` - -The following commands create the `.urs_cookies` file. - -First, set your working directory to the home directory. - -```{r, eval = FALSE} -if (.Platform$OS.type == "unix") { - setwd("~/") -} else if (.Platform$OS.type == "windows") { - setwd("C:/") -} -``` - -Create a file named `.netrc` with `file.create`. - -```{r, eval = FALSE} -file.create(".urs_cookies") -``` - -After, check to ensure the file was created properly. - -```{r, eval = FALSE} -file.exists(".urs_cookies") -``` - -```{r, echo = FALSE} -TRUE -``` - -#### `.dodsrc` - -The following commands create the `.urs_cookies` file. - -First, set your working directory to the home directory. - -```{r, eval = FALSE} -if (.Platform$OS.type == "unix") { - setwd("~/") -} else if (.Platform$OS.type == "windows") { - setwd("C:/") -} -``` - -Create a file named ".dodsrc" with `file.create`. - -```{r, eval = FALSE} -file.create(".dodsrc") -``` - -Open a connection to `.dodsrc` with `sink`. Write the lines beginning with `HTTP.`, replacing `YOUR_USERNAME` and `YOUR_PASSWORD` with your NASA EarthData username and password, respectively. After writing the line, close the connection with `sink` again. - -```{r, eval = FALSE} -sink(".dodsrc") -writeLines( - paste0( - "HTTP.NETRC=YOUR_HOME_DIRECTORY/.netrc\n", - "HTTP.COOKIE.JAR=YOUR_HOME_DIRECTORY/.urs_cookies" - ) -) -sink() -``` - -After, check to ensure the file was created properly. - -```{r, eval = FALSE} -file.exists(".dodsrc") -``` - -```{r, echo = FALSE} -TRUE -``` - -```{r, eval = FALSE} -readLines(".dodsrc") -``` - -```{r, echo = FALSE} -paste0( - c( - "HTTP.NETRC=YOUR_HOME_DIRECTORY/.netrc", - "HTTP.COOKIE.JAR=YOUR_HOME_DIRECTORY/.urs_cookies" - ) -) -``` - -If working on a Windows machine, copy the `.dodsrc` file to the project working directory. Replace `YOUR_WORKING_DIRECTORY` with the absolute path to the project working directory. - -```{r} -if (.Platform$OS.type == "windows") { - file.copy( - "C:/.dodsrc", - "YOUR_WORKING_DIRECTORY/.dodsrc" - ) -} -``` - -It is important to ensure that these commands, as well as your username, password, and home directory, are typed without error, as a single problem with any of these files will result in a failed download. - -If the files have been created correctly, the UN WPP-Adjusted population density data from NASA Socioeconomic Data and Applications Center (SEDAC) will be downloaded and unzipped without returning an error. - -```{r, eval = FALSE} -download_data( - dataset_name = "sedac_population", - year = "2020", - data_format = "GeoTIFF", - data_resolution = "60 minute", - directory_to_save = "./sedac_population", - acknowledgement = TRUE, - download = TRUE, - unzip = TRUE, - remove_zip = FALSE, - remove_command = TRUE -) -``` - -```{r, echo = FALSE} -to_cat <- - paste0( - "Downloading requested files...\n", - "Requested files have been downloaded.\n", - "Unzipping files...\n", - "Files unzipped and saved in ./sedac_population/.\n" - ) -cat(to_cat) -``` - -```{r, eval = FALSE} -list.files("./sedac_population") -``` - -```{r, echo = FALSE} -sedac_files <- c( - paste0( - "gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_", - "rev11_2020_1_deg_tif_readme.txt" - ), - paste0( - "gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_", - "rev11_2020_1_deg_tif.zip" - ), - paste0( - "gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_", - "rev11_2020_1_deg.tif" - ) -) -sedac_files -``` - -## References - -- EOSDIS Distributed Active Archive Centers (DAAC). *National Aeronautics and Space Administration (NASA)*. Date accessed: January 3, 2024. [https://www.earthdata.nasa.gov/eosdis/daacs](). -- How to Generate Earthdata Prerequisite Files. *National Aeronautics and Space Administration (NASA)*. Date accessed: January 3, 2024. [https://disc.gsfc.nasa.gov/information/howto?title=How%20to%20Generate%20Earthdata%20Prerequisite%20Files](). - -## Code Example +## `download_hms` function code The following is the entire R code used to create `download_hms`. diff --git a/vignettes/protected_datasets.Rmd b/vignettes/protected_datasets.Rmd new file mode 100644 index 00000000..41d3d226 --- /dev/null +++ b/vignettes/protected_datasets.Rmd @@ -0,0 +1,280 @@ +--- +title: "Protected Data Sources" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Protected Data Sources} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +date: "2024-07-09" +author: "Mitchell Manware" +--- + +The `download_data` function from `amadeus` provides access to a variety of publicly available environmental data sources. +Although publicly available, certain data sources are protected and require users to provide login credentials before accessing and downloading the data. +Datasets from the National Aeronautics and Space Administration (NASA), for example, require users to have and provide credentials for a NASA EarthData account. +Manually downloading data from the web while logged into a NASA EarthData Account will automatically reference the user's credentials, but accessing data via the `download_data` function requires "prerequiste files" which store user credentials. + +## Motivation + +This vignette will demonstrate how to create and log into a NASA EarthData Account, and how to generate the prerequisite files with R code. + +## NASA EarthData Account + +Visit [https://urs.earthdata.nasa.gov/](http://urs.earthdata.nasa.gov) to register for or log into a NASA EarthData account. + +![NASA EarthData Account Landing Page](images/NASA_EarthData_login.png) + +Account registration provides access to NASA's Earth Observing System Data and Information System (EOSDIS) and its twelve Distributed Active Archive Centers (DAAC), including: + +- Alaska Satellite Facility (ASF) DAAC +- Atmospheric Science Data Center (ASDC) +- Crustal Dynamics Data Information System (CDDIS) +- Global Hydrometeorology Resource Center (GHRC) +- Goddard Earth Sciences Data and Information Services Center (GES DISC) +- Land Processes DAAC (LP DAAC) +- Level 1 and Atmosphere Archive and Distribution System (LAADS) DAAC +- National Snow and Ice Data Center (NSIDC) DAAC +- Oak Ridge National Laboratory (ORNL) DAAC +- Ocean Biology DAAC (OB.DAAC) +- Physical Oceanography DAAC (PO.DAAC) +- Socioeconomic Data and Applications Center (SEDAC) + +See for more information. + +### Approved applications + +After creating an account, navigate to "My Profile"(https://urs.earthdata.nasa.gov/profile), and then to "Applications \> Authorized Apps". This "Authorized Apps" page specifies which NASA EarthData applications can use your login credentials. For this example, ensure that authorization is enabled for "SEDAC Website", "SEDAC Website (Alpha)", and "SEDAC Website (Beta)". + +![NASA EarthData Approved Applications](images/NASA_EarthData_applications.png) + +## Prerequisite files + +With a NASA EarthData Account and the required applications authorized to use the credentials, it is time to create the prerequisite files. +The following examples will utilize the [UN WPP-Adjusted population density data from NASA Socioeconomic Data and Applications Center (SEDAC)](https://sedac.ciesin.columbia.edu/data/collection/gpw-v4/united-nations-adjusted). + +Before generating the prerequisite, try to download the population data with `download_data`. + +```{r, eval = FALSE} +download_data( + dataset_name = "sedac_population", + year = "2020", + data_format = "GeoTIFF", + data_resolution = "60 minute", + directory_to_save = "./sedac_population", + acknowledgement = TRUE, + download = TRUE, + unzip = TRUE, + remove_zip = FALSE, + remove_command = TRUE +) +``` + +```{r, echo = FALSE} +to_cat <- + paste0( + "Downloading requested files...\n", + "Requested files have been downloaded.\n", + "Unzipping files...\n\n", + "Warning in unzip(file_name, exdir = directory_to_unzip): ", + "error 1 in extracting from zip file\n\n", + "Files unzipped and saved in ./sedac_population/.\n\n" + ) +cat(to_cat) +``` + +As the error message indicates, the downloaded file cannot be unzipped because the data file was not accessed properly. +To be able to download protected NASA data with `download_data`, the `.netrc`, `.urs_cookies`, and `.dodsrc` must be generated. + +**Note** The following code has been adopted from [How to Generate Earthdata Prerequisite Files](https://disc.gsfc.nasa.gov/information/howto?title=How%20to%20Generate%20Earthdata%20Prerequisite%20Files) on NASA GES DISC's ["How-To's" webpage](https://disc.gsfc.nasa.gov/information/howto). + +**The folowing steps assume a Mac or Linux operating system. Instructions for generating prerequisite files on Windows operating system in R is being developed.** + +### `.netrc` + +The following commands create the `.netrc` file, which contains your NASA EarthData Account credentials. + +First, set your working directory to the home directory. + +```{r, eval = FALSE} +setwd("~/") +``` + +Create a file named `.netrc` with `file.create`. + +```{r, eval = FALSE} +file.create(".netrc") +``` + +Open a connection to `.netrc` with `sink`. Write the line `machine urs...` replacing `YOUR_USERNAME` and `YOUR_PASSWORD` with your NASA EarthData username and password, respectively. After writing the line, close the connection with `sink` again. + +```{r, eval = FALSE} +sink(".netrc") +writeLines( + "machine urs.earthdata.nasa.gov login YOUR_USERNAME password YOUR_PASSWORD" +) +sink() +``` + +Edit the settings so only you, the owner of the file, can read and write `.netrc`. + +```{r, eval = FALSE} +system("chmod 0600 .netrc") +``` + +After, check to ensure the file was created properly. + +```{r, eval = FALSE} +file.exists(".netrc") +``` + +```{r, echo = FALSE} +TRUE +``` + +```{r, eval = FALSE} +readLines(".netrc") +``` + +```{r, echo = FALSE} +paste0( + "machine urs.earthdata.nasa.gov login YOUR_USERNAME password YOUR_PASSWORD" +) +``` + +### `.urs_cookies` + +The following commands create the `.urs_cookies` file. + +First, set your working directory to the home directory. + +```{r, eval = FALSE} +setwd("~/") +``` + +Create a file named `.netrc` with `file.create`. + +```{r, eval = FALSE} +file.create(".urs_cookies") +``` + +After, check to ensure the file was created properly. + +```{r, eval = FALSE} +file.exists(".urs_cookies") +``` + +```{r, echo = FALSE} +TRUE +``` + +### `.dodsrc` + +The following commands create the `.urs_cookies` file. + +First, set your working directory to the home directory. + +```{r, eval = FALSE} +setwd("~/") +``` + +Create a file named ".dodsrc" with `file.create`. + +```{r, eval = FALSE} +file.create(".dodsrc") +``` + +Open a connection to `.dodsrc` with `sink`. Write the lines beginning with `HTTP.`, replacing `YOUR_USERNAME` and `YOUR_PASSWORD` with your NASA EarthData username and password, respectively. After writing the line, close the connection with `sink` again. + +```{r, eval = FALSE} +sink(".dodsrc") +writeLines( + paste0( + "HTTP.NETRC=YOUR_HOME_DIRECTORY/.netrc\n", + "HTTP.COOKIE.JAR=YOUR_HOME_DIRECTORY/.urs_cookies" + ) +) +sink() +``` + +After, check to ensure the file was created properly. + +```{r, eval = FALSE} +file.exists(".dodsrc") +``` + +```{r, echo = FALSE} +TRUE +``` + +```{r, eval = FALSE} +readLines(".dodsrc") +``` + +```{r, echo = FALSE} +paste0( + c( + "HTTP.NETRC=YOUR_HOME_DIRECTORY/.netrc", + "HTTP.COOKIE.JAR=YOUR_HOME_DIRECTORY/.urs_cookies" + ) +) +``` + +It is important to ensure that these commands, as well as your username, password, and home directory, are typed without error, as a single problem with any of these files will result in a failed download. +If the files have been created correctly, the UN WPP-Adjusted population density data from NASA Socioeconomic Data and Applications Center (SEDAC) will be downloaded and unzipped without returning an error. + +```{r, eval = FALSE} +download_data( + dataset_name = "sedac_population", + year = "2020", + data_format = "GeoTIFF", + data_resolution = "60 minute", + directory_to_save = "./sedac_population", + acknowledgement = TRUE, + download = TRUE, + unzip = TRUE, + remove_zip = FALSE, + remove_command = TRUE +) +``` + +```{r, echo = FALSE} +to_cat <- + paste0( + "Downloading requested files...\n", + "Requested files have been downloaded.\n", + "Unzipping files...\n", + "Files unzipped and saved in ./sedac_population/.\n" + ) +cat(to_cat) +``` + +Check the downloaded data files. + +```{r, eval = FALSE} +list.files("./sedac_population") +``` + +```{r, echo = FALSE} +sedac_files <- c( + paste0( + "gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_", + "rev11_2020_1_deg_tif_readme.txt" + ), + paste0( + "gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_", + "rev11_2020_1_deg_tif.zip" + ), + paste0( + "gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_", + "rev11_2020_1_deg.tif" + ) +) +sedac_files +``` + +As indicated by the files in `./sedac_population`, the data files have been downloaded properly. + +## References + +- EOSDIS Distributed Active Archive Centers (DAAC). *National Aeronautics and Space Administration (NASA)*. Date accessed: January 3, 2024. [https://www.earthdata.nasa.gov/eosdis/daacs](). +- How to Generate Earthdata Prerequisite Files. *National Aeronautics and Space Administration (NASA)*. Date accessed: January 3, 2024. [https://disc.gsfc.nasa.gov/information/howto?title=How%20to%20Generate%20Earthdata%20Prerequisite%20Files](). From 410f40d6630a3df1873ed258072608a135cb1fc5 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 08:59:42 -0400 Subject: [PATCH 14/66] README.md 1 --- README.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7cda2b39..92742e9c 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,101 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors | [US EPA Ecoregions](https://www.epa.gov/eco-research/ecoregion) | Shapefile | Climate Regions | | [USGS Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | +```{r, echo = FALSE, message = FALSE} +library(knitr); library(kableExtra) +source <- c( + "Climatology Lab TerraClimate", + "Climatology Lab GridMet", + "Köppen-Geiger Climate Classification", + "MRLC\\footnote{Multi-Resolution Land Characteristics} Consortium National Land Cover Database (NLCD)", + "NASA Moderate Resolution Imaging Spectroradiometer (MODIS)", + "NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2)", + "NASA SEDAC\\footnote{Socioeconomic Data and Applications Center} UN WPP-Adjusted Population Density", + "NASA SEDAC Global Roads Open Access Data Set", + "NASA Goddard Earth Observing System Composition Forecasting (GEOS-CF)", + "NOAA Hazard Mapping System Fire and Smoke Product", + "NOAA NCEP\\footnote{National Centers for Environmental Protection} North American Regional Reanalysis (NARR)", + "OpenGeoHub Foundation OpenLandMap", + "Parameter Elevation Regression on Independent Slopes Model (PRISM)", + "US EPA\\footnote{United States Environmental Protection Agency} Air Data Pre-Generated Data Files", + "US EPA Ecoregions", + "US EPA National Emissions Inventory (NEI)", + "US EPA Toxic Release Inventory (TRI) Program", + "USGS\\footnote{United States Geological Survey} Global Multi-Resolution Terrain Elevation Data (GMTED2010)", + "USGS National Hydrography Dataset (NHD)" +) +link <- c( + "https://aqs.epa.gov/aqsweb/airdata/download_files.html", + "https://www.epa.gov/eco-research/ecoregions", + "https://gmao.gsfc.nasa.gov/GEOS_systems/", + "https://www.usgs.gov/coastal-changes-and-impacts/gmted2010", + "https://www.nature.com/articles/sdata2018214", + "https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/", + "https://psl.noaa.gov/data/gridded/data.narr.html", + "https://www.mrlc.gov/data", + "https://www.ospo.noaa.gov/Products/land/hms.html#0", + paste0( + "https://sedac.ciesin.columbia.edu/data/set/groads-", + "global-roads-open-access-v1/data-download" + ), + paste0( + "https://sedac.ciesin.columbia.edu/data/set/gpw-v4-", + "population-density-adjusted-to-2015-unwpp-country-", + "totals-rev11" + ), + "https://modis.gsfc.nasa.gov/data/", + "https://www.climatologylab.org/terraclimate.html", + "https://www.climatologylab.org/gridmet.html", + "https://opengeohub.org/about-openlandmap/", + paste0( + "https://elibrary.asabe.org/abstract.asp??JID=3&", + "AID=3101&CID=t2000&v=43&i=6&T=1" + ), + "https://www.epa.gov/air-emissions-inventories", + paste0( + "https://www.epa.gov/toxics-release-inventory-tri-program/", + "tri-basic-data-files-calendar-years-1987-present" + ), + "https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9" +) +source_link <- paste0( + "[", + source, + "](", + link, + ")" +) +type <- linebreak(c( + "netCDF", "netCDF", "GeoTIFF", "GeoTIFF", "HDF", "netCDF", "GeoTIFF\nnetCDF", + "Shapefile\nGeodatabase", "netCDF", "Shapefile\nKML", "netCDF", "GeoTIFF", + "BIL\\footnote{binary interleaved by line}\nASCII\\footnote{American Standard Code for Information Interchange}", + "CSV", "Shapefile", "CSV", "CSV", "ESRI ASCII Grid", "Geopackage\nGeodatabase" +)) +compress <- c( + "No", "No", "Yes", "Yes", "No", "No", "Yes", "Yes", "No", "Yes", + "No", "No", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes" +) +genre <- linebreak(c( + "Meteorology", "Climate\nWater", "Climate Classification", + "Land Use", "Atmosphere\nMeteorology\nLand Use\nSatellite", + "Atmosphere\nMeteorology", "Population", "Roadways", + "Atmosphere\nMeteorology", "Wildfire Smoke", "Atmosphere\nMeteorology", + "Climate\nElevation\nSoil\nLand Use\nSatellite", "Climate", + "Air Pollution", "Climate Regions", "Emissions", "Chemicals\nPollution", "Elevation", + "Hydrography" +)) +tds <- data.frame(source_link, type, compress, genre) +colnames(tds) <- c( + "Data Source", + "File Type", + "Zip File\\footnote{Indicates whether the data file is downloaded from the web URL as a zip file}", + "Data Genre" +) +kable( + tds, + booktabs = TRUE +) +``` See the "download_data and NASA EarthData Account" vignette for a detailed description of source-specific download functions. @@ -63,7 +158,7 @@ Example use of `download_data` using NOAA NCEP North American Regional Reanalysi ``` > directory <- "/ EXAMPLE / FILE / PATH /" > download_data( -+ dataset_name = "narr_monolevel", ++ dataset_name = "narr", + year = c(2022, 2022), + variable = "weasd", + directory_to_save = directory, From d5cea79acf4027f4b31ab25e3894ada9f1368318 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 09:01:05 -0400 Subject: [PATCH 15/66] README.md 2 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92742e9c..ebaa45cb 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors | [US EPA Ecoregions](https://www.epa.gov/eco-research/ecoregion) | Shapefile | Climate Regions | | [USGS Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | -```{r, echo = FALSE, message = FALSE} +```r, echo = FALSE, message = FALSE library(knitr); library(kableExtra) source <- c( "Climatology Lab TerraClimate", From 0af04a0cea333e2bbb16527de3b603ec54d0bbbc Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 09:08:05 -0400 Subject: [PATCH 16/66] README.md 3 --- README.md | 121 +++++++++++------------------------------------------- 1 file changed, 24 insertions(+), 97 deletions(-) diff --git a/README.md b/README.md index ebaa45cb..82a7fc85 100644 --- a/README.md +++ b/README.md @@ -55,103 +55,30 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors | [US EPA Ecoregions](https://www.epa.gov/eco-research/ecoregion) | Shapefile | Climate Regions | | [USGS Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | -```r, echo = FALSE, message = FALSE -library(knitr); library(kableExtra) -source <- c( - "Climatology Lab TerraClimate", - "Climatology Lab GridMet", - "Köppen-Geiger Climate Classification", - "MRLC\\footnote{Multi-Resolution Land Characteristics} Consortium National Land Cover Database (NLCD)", - "NASA Moderate Resolution Imaging Spectroradiometer (MODIS)", - "NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2)", - "NASA SEDAC\\footnote{Socioeconomic Data and Applications Center} UN WPP-Adjusted Population Density", - "NASA SEDAC Global Roads Open Access Data Set", - "NASA Goddard Earth Observing System Composition Forecasting (GEOS-CF)", - "NOAA Hazard Mapping System Fire and Smoke Product", - "NOAA NCEP\\footnote{National Centers for Environmental Protection} North American Regional Reanalysis (NARR)", - "OpenGeoHub Foundation OpenLandMap", - "Parameter Elevation Regression on Independent Slopes Model (PRISM)", - "US EPA\\footnote{United States Environmental Protection Agency} Air Data Pre-Generated Data Files", - "US EPA Ecoregions", - "US EPA National Emissions Inventory (NEI)", - "US EPA Toxic Release Inventory (TRI) Program", - "USGS\\footnote{United States Geological Survey} Global Multi-Resolution Terrain Elevation Data (GMTED2010)", - "USGS National Hydrography Dataset (NHD)" -) -link <- c( - "https://aqs.epa.gov/aqsweb/airdata/download_files.html", - "https://www.epa.gov/eco-research/ecoregions", - "https://gmao.gsfc.nasa.gov/GEOS_systems/", - "https://www.usgs.gov/coastal-changes-and-impacts/gmted2010", - "https://www.nature.com/articles/sdata2018214", - "https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/", - "https://psl.noaa.gov/data/gridded/data.narr.html", - "https://www.mrlc.gov/data", - "https://www.ospo.noaa.gov/Products/land/hms.html#0", - paste0( - "https://sedac.ciesin.columbia.edu/data/set/groads-", - "global-roads-open-access-v1/data-download" - ), - paste0( - "https://sedac.ciesin.columbia.edu/data/set/gpw-v4-", - "population-density-adjusted-to-2015-unwpp-country-", - "totals-rev11" - ), - "https://modis.gsfc.nasa.gov/data/", - "https://www.climatologylab.org/terraclimate.html", - "https://www.climatologylab.org/gridmet.html", - "https://opengeohub.org/about-openlandmap/", - paste0( - "https://elibrary.asabe.org/abstract.asp??JID=3&", - "AID=3101&CID=t2000&v=43&i=6&T=1" - ), - "https://www.epa.gov/air-emissions-inventories", - paste0( - "https://www.epa.gov/toxics-release-inventory-tri-program/", - "tri-basic-data-files-calendar-years-1987-present" - ), - "https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9" -) -source_link <- paste0( - "[", - source, - "](", - link, - ")" -) -type <- linebreak(c( - "netCDF", "netCDF", "GeoTIFF", "GeoTIFF", "HDF", "netCDF", "GeoTIFF\nnetCDF", - "Shapefile\nGeodatabase", "netCDF", "Shapefile\nKML", "netCDF", "GeoTIFF", - "BIL\\footnote{binary interleaved by line}\nASCII\\footnote{American Standard Code for Information Interchange}", - "CSV", "Shapefile", "CSV", "CSV", "ESRI ASCII Grid", "Geopackage\nGeodatabase" -)) -compress <- c( - "No", "No", "Yes", "Yes", "No", "No", "Yes", "Yes", "No", "Yes", - "No", "No", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes" -) -genre <- linebreak(c( - "Meteorology", "Climate\nWater", "Climate Classification", - "Land Use", "Atmosphere\nMeteorology\nLand Use\nSatellite", - "Atmosphere\nMeteorology", "Population", "Roadways", - "Atmosphere\nMeteorology", "Wildfire Smoke", "Atmosphere\nMeteorology", - "Climate\nElevation\nSoil\nLand Use\nSatellite", "Climate", - "Air Pollution", "Climate Regions", "Emissions", "Chemicals\nPollution", "Elevation", - "Hydrography" -)) -tds <- data.frame(source_link, type, compress, genre) -colnames(tds) <- c( - "Data Source", - "File Type", - "Zip File\\footnote{Indicates whether the data file is downloaded from the web URL as a zip file}", - "Data Genre" -) -kable( - tds, - booktabs = TRUE -) -``` - -See the "download_data and NASA EarthData Account" vignette for a detailed description of source-specific download functions. +| Data Source | File Type | Zip File\footnote{Indicates whether the data file is downloaded from the web URL as a zip file} | Data Genre | +|-----------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|-------------------------------------------------------------| +| Climatology Lab TerraClimate | netCDF | No | Meteorology | +| Climatology Lab GridMet | netCDF | No | \makecell[l]{Climate\\Water} | +| Köppen-Geiger Climate Classification | GeoTIFF | Yes | Climate Classification | +| MRLC\footnote{Multi-Resolution Land Characteristics} Consortium National Land Cover Database (NLCD) | GeoTIFF | Yes | Land Use | +| NASA Moderate Resolution Imaging Spectroradiometer (MODIS) | HDF | No | \makecell[l]{Atmosphere\\Meteorology\\Land Use\\Satellite} | +| NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2) | netCDF | No | \makecell[l]{Atmosphere\\Meteorology} | +| NASA SEDAC\footnote{Socioeconomic Data and Applications Center} UN WPP-Adjusted Population Density | \makecell[l]{GeoTIFF\\netCDF} | Yes | Population | +| NASA SEDAC Global Roads Open Access Data Set | \makecell[l]{Shapefile\\Geodatabase} | Yes | Roadways | +| NASA Goddard Earth Observing System Composition Forecasting (GEOS-CF) | netCDF | No | \makecell[l]{Atmosphere\\Meteorology} | +| NOAA Hazard Mapping System Fire and Smoke Product | \makecell[l]{Shapefile\\KML} | Yes | Wildfire Smoke | +| NOAA NCEP North American Regional Reanalysis (NARR) | netCDF | No | \makecell[l]{Atmosphere\\Meteorology} | +| OpenGeoHub Foundation OpenLandMap | GeoTIFF | No | \makecell[l]{Climate\\Elevation\\Soil\\Land Use\\Satellite} | +| Parameter Elevation Regression on Independent Slopes Model (PRISM) | \makecell[l]{BIL\footnote{binary interleaved by line}\\ASCII\footnote{American Standard Code for Information Interchange}} | Yes | Climate | +| US EPA Air Data Pre-Generated Data Files | CSV | Yes | Air Pollution | +| US EPA Ecoregions | Shapefile | Yes | Climate Regions | +| US EPA National Emissions Inventory (NEI) | CSV | Yes | Emissions | +| US EPA Toxic Release Inventory (TRI) Program | CSV | No | \makecell[l]{Chemicals\\Pollution} | +| USGS Global Multi-Resolution Terrain Elevation Data (GMTED2010) | ESRI ASCII Grid | Yes | Elevation | +| USGS National Hydrography Dataset (NHD) | \makecell[l]{Geopackage\\Geodatabase} | Yes | Hydrography | + + +See the "download_data" vignette for a detailed description of source-specific download functions. Example use of `download_data` using NOAA NCEP North American Regional Reanalysis's (NARR) "weasd" (Daily Accumulated Snow at Surface) variable. From 8e8687436f11bde5478fe9eda19b442c4a34846f Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 09:57:21 -0400 Subject: [PATCH 17/66] README.md 4 --- README.md | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 82a7fc85..7180aea4 100644 --- a/README.md +++ b/README.md @@ -51,32 +51,14 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors | [NASA Goddard Earth Observing System Composition Forcasting (GEOS-CF)](https://gmao.gsfc.nasa.gov/GEOS_systems/) | netCDF | Atmosphere, Meteorology | | [NOAA Hazard Mapping System Fire and Smoke Product](https://www.ospo.noaa.gov/Products/land/hms.html#0) | Shapefile, KML | Wildfire Smoke | | [NOAA NCEP North American Regional Reanalysis (NARR)](https://psl.noaa.gov/data/gridded/data.narr.html) | netCDF | Atmosphere, Meteorology | +| [OpenGeoHub Foundation OpenLandMap](https://opengeohub.org/about-openlandmap/) | GeoTIFF | Climate, Elevation, Soil, Land Use, Satellite | +| [Parameter Elevation Regression on Independent Slopes Model (PRISM)](https://elibrary.asabe.org/abstract.asp??JID=3&AID=3101&CID=t2000&v=43&i=6&T=1) | BIL, ASCII | Climate | | [US EPA Air Data Pre-Generated Data Files](https://aqs.epa.gov/aqsweb/airdata/download_files.html) | CSV | Air Pollution | | [US EPA Ecoregions](https://www.epa.gov/eco-research/ecoregion) | Shapefile | Climate Regions | +| [US EPA National Emissions Inventory (NEI)](https://www.epa.gov/air-emissions-inventories) | CSV | Emissions | +| [US EPA Toxic Release Inventory (TRI) Program](https://www.epa.gov/toxics-release-inventory-tri-program/tri-basic-data-files-calendar-years-1987-present) | CSV | Chemicals, Pollution | | [USGS Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | - -| Data Source | File Type | Zip File\footnote{Indicates whether the data file is downloaded from the web URL as a zip file} | Data Genre | -|-----------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|-------------------------------------------------------------| -| Climatology Lab TerraClimate | netCDF | No | Meteorology | -| Climatology Lab GridMet | netCDF | No | \makecell[l]{Climate\\Water} | -| Köppen-Geiger Climate Classification | GeoTIFF | Yes | Climate Classification | -| MRLC\footnote{Multi-Resolution Land Characteristics} Consortium National Land Cover Database (NLCD) | GeoTIFF | Yes | Land Use | -| NASA Moderate Resolution Imaging Spectroradiometer (MODIS) | HDF | No | \makecell[l]{Atmosphere\\Meteorology\\Land Use\\Satellite} | -| NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2) | netCDF | No | \makecell[l]{Atmosphere\\Meteorology} | -| NASA SEDAC\footnote{Socioeconomic Data and Applications Center} UN WPP-Adjusted Population Density | \makecell[l]{GeoTIFF\\netCDF} | Yes | Population | -| NASA SEDAC Global Roads Open Access Data Set | \makecell[l]{Shapefile\\Geodatabase} | Yes | Roadways | -| NASA Goddard Earth Observing System Composition Forecasting (GEOS-CF) | netCDF | No | \makecell[l]{Atmosphere\\Meteorology} | -| NOAA Hazard Mapping System Fire and Smoke Product | \makecell[l]{Shapefile\\KML} | Yes | Wildfire Smoke | -| NOAA NCEP North American Regional Reanalysis (NARR) | netCDF | No | \makecell[l]{Atmosphere\\Meteorology} | -| OpenGeoHub Foundation OpenLandMap | GeoTIFF | No | \makecell[l]{Climate\\Elevation\\Soil\\Land Use\\Satellite} | -| Parameter Elevation Regression on Independent Slopes Model (PRISM) | \makecell[l]{BIL\footnote{binary interleaved by line}\\ASCII\footnote{American Standard Code for Information Interchange}} | Yes | Climate | -| US EPA Air Data Pre-Generated Data Files | CSV | Yes | Air Pollution | -| US EPA Ecoregions | Shapefile | Yes | Climate Regions | -| US EPA National Emissions Inventory (NEI) | CSV | Yes | Emissions | -| US EPA Toxic Release Inventory (TRI) Program | CSV | No | \makecell[l]{Chemicals\\Pollution} | -| USGS Global Multi-Resolution Terrain Elevation Data (GMTED2010) | ESRI ASCII Grid | Yes | Elevation | -| USGS National Hydrography Dataset (NHD) | \makecell[l]{Geopackage\\Geodatabase} | Yes | Hydrography | - +| [USGS National Hydrography Dataset (NHD)](https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9) | Geopackage\nGeodatabase | Hydrography | See the "download_data" vignette for a detailed description of source-specific download functions. From a8accb3ba79600983d5e253f93eed12caaef465d Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 10:04:32 -0400 Subject: [PATCH 18/66] README.md 5 --- README.md | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 7180aea4..32b06122 100644 --- a/README.md +++ b/README.md @@ -43,24 +43,24 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors | [Climatology Lab TerraClimate](https://www.climatologylab.org/terraclimate.html) | netCDF | Climate, Water | | [Climatology Lab GridMet](https://www.climatologylab.org/gridmet.html) | netCDF | Meteorology | | [Köppen-Geiger Climate Classification (Beck et al., 2018)](https://www.nature.com/articles/sdata2018214) | GeoTIFF | Climate Classification | -| [MRLC Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | +| [MRLC[^1] Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | | [NASA Moderate Resolution Imaging Spectroradiometer (MODIS)](https://modis.gsfc.nasa.gov/data/) | HDF | Atmosphere, Meteorology, Land Use, Satellite | | [NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2)](https://www.nature.com/articles/sdata2018214) | netCDF | Atmosphere, Meteorology | -| [NASA SEDAC UN WPP-Adjusted Population Density](https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11) | GeoTIFF, netCDF | Population | +| [NASA SEDAC[^2] UN WPP-Adjusted Population Density](https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11) | GeoTIFF, netCDF | Population | | [NASA SEDAC Global Roads Open Access Data Set](https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1/data-download) | Shapefile, Geodatabase | Roadways | | [NASA Goddard Earth Observing System Composition Forcasting (GEOS-CF)](https://gmao.gsfc.nasa.gov/GEOS_systems/) | netCDF | Atmosphere, Meteorology | | [NOAA Hazard Mapping System Fire and Smoke Product](https://www.ospo.noaa.gov/Products/land/hms.html#0) | Shapefile, KML | Wildfire Smoke | -| [NOAA NCEP North American Regional Reanalysis (NARR)](https://psl.noaa.gov/data/gridded/data.narr.html) | netCDF | Atmosphere, Meteorology | +| [NOAA NCEP[^3] North American Regional Reanalysis (NARR)](https://psl.noaa.gov/data/gridded/data.narr.html) | netCDF | Atmosphere, Meteorology | | [OpenGeoHub Foundation OpenLandMap](https://opengeohub.org/about-openlandmap/) | GeoTIFF | Climate, Elevation, Soil, Land Use, Satellite | | [Parameter Elevation Regression on Independent Slopes Model (PRISM)](https://elibrary.asabe.org/abstract.asp??JID=3&AID=3101&CID=t2000&v=43&i=6&T=1) | BIL, ASCII | Climate | -| [US EPA Air Data Pre-Generated Data Files](https://aqs.epa.gov/aqsweb/airdata/download_files.html) | CSV | Air Pollution | +| [US EPA[^4] Air Data Pre-Generated Data Files](https://aqs.epa.gov/aqsweb/airdata/download_files.html) | CSV | Air Pollution | | [US EPA Ecoregions](https://www.epa.gov/eco-research/ecoregion) | Shapefile | Climate Regions | | [US EPA National Emissions Inventory (NEI)](https://www.epa.gov/air-emissions-inventories) | CSV | Emissions | | [US EPA Toxic Release Inventory (TRI) Program](https://www.epa.gov/toxics-release-inventory-tri-program/tri-basic-data-files-calendar-years-1987-present) | CSV | Chemicals, Pollution | -| [USGS Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | -| [USGS National Hydrography Dataset (NHD)](https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9) | Geopackage\nGeodatabase | Hydrography | +| [USGS[^5] Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | +| [USGS National Hydrography Dataset (NHD)](https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9) | Geopackage
Geodatabase | Hydrography | -See the "download_data" vignette for a detailed description of source-specific download functions. +See the "[download_data](https://niehs.github.io/amadeus/articles/download_functions.html)" vignette for a detailed description of source-specific download functions. Example use of `download_data` using NOAA NCEP North American Regional Reanalysis's (NARR) "weasd" (Daily Accumulated Snow at Surface) variable. @@ -154,9 +154,14 @@ The following R packages can also be used to access climate and weather data in | [`dataRetrieval`](https://cran.r-project.org/web/packages/dataRetrieval/index.html) | [USGS Hydrological Data](https://www.usgs.gov/mission-areas/water-resources/data) and [EPA Water Quality Data](https://www.epa.gov/waterdata/water-quality-data) | | [`daymetr`](https://cran.r-project.org/web/packages/daymetr/index.html) | [Daymet](https://daac.ornl.gov/cgi-bin/dataset_lister.pl?p=32) | | [`ecmwfr`](https://cran.r-project.org/web/packages/ecmwfr/index.html) | [ECMWF Reanalysis v5 (ERA5)](https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5) | -| [`RClimChange`[^1]](https://github.com/hllauca/RClimChange/) | [NASA Earth Exchange Global Daily Downscaled Projections (NEX-GDDP-CMIP6)](https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6) | +| [`RClimChange`[^6]](https://github.com/hllauca/RClimChange/) | [NASA Earth Exchange Global Daily Downscaled Projections (NEX-GDDP-CMIP6)](https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6) | | [`rNOMADS`](https://cran.r-project.org/web/packages/rNOMADS/) | [NOAA Operational Model Archive and Distribution System](https://nomads.ncep.noaa.gov/) | -| [`sen2r`[^2]](https://github.com/ranghetti/sen2r) | [Sentinel-2](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-2) | - -[^1]: Last updated more than two years ago. -[^2]: Archived; no longer maintained. +| [`sen2r`[^7]](https://github.com/ranghetti/sen2r) | [Sentinel-2](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-2) | + +[^1]: Multi-Resolution Land Characteristics +[^2]: Socioeconomic Data and Applications Center +[^3]: National Centers for Environmental Prediction +[^4]: United States Environmental Protection Agency +[^5]: United States Geological Survey +[^6]: Last updated more than two years ago. +[^7]: Archived; no longer maintained. From e2042ccf9e37e089c9e3c2b91ed084b2ca2ae2b9 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 10:11:29 -0400 Subject: [PATCH 19/66] README.md 6 --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 32b06122..176a8942 100644 --- a/README.md +++ b/README.md @@ -39,24 +39,24 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors `download_data` accesses and downloads raw geospatial data from a variety of open source data repositories. The function is a wrapper that calls source-specific download functions, each of which account for the source's unique combination of URL, file naming conventions, and data types. Download functions cover the following sources: | Source | Data Type | Genre | -| :--- | :--- | :--- | -| [Climatology Lab TerraClimate](https://www.climatologylab.org/terraclimate.html) | netCDF | Climate, Water | -| [Climatology Lab GridMet](https://www.climatologylab.org/gridmet.html) | netCDF | Meteorology | -| [Köppen-Geiger Climate Classification (Beck et al., 2018)](https://www.nature.com/articles/sdata2018214) | GeoTIFF | Climate Classification | +| :---- | :-- | :--- | +| [Climatology Lab TerraClimate](https://www.climatologylab.org/terraclimate.html) | netCDF | Meteorology | +| [Climatology Lab GridMet](https://www.climatologylab.org/gridmet.html) | netCDF | Cliamte
Water | +| [Köppen-Geiger Climate Classification](https://www.nature.com/articles/sdata2018214) | GeoTIFF | Climate Classification | | [MRLC[^1] Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | -| [NASA Moderate Resolution Imaging Spectroradiometer (MODIS)](https://modis.gsfc.nasa.gov/data/) | HDF | Atmosphere, Meteorology, Land Use, Satellite | -| [NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2)](https://www.nature.com/articles/sdata2018214) | netCDF | Atmosphere, Meteorology | -| [NASA SEDAC[^2] UN WPP-Adjusted Population Density](https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11) | GeoTIFF, netCDF | Population | -| [NASA SEDAC Global Roads Open Access Data Set](https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1/data-download) | Shapefile, Geodatabase | Roadways | -| [NASA Goddard Earth Observing System Composition Forcasting (GEOS-CF)](https://gmao.gsfc.nasa.gov/GEOS_systems/) | netCDF | Atmosphere, Meteorology | -| [NOAA Hazard Mapping System Fire and Smoke Product](https://www.ospo.noaa.gov/Products/land/hms.html#0) | Shapefile, KML | Wildfire Smoke | -| [NOAA NCEP[^3] North American Regional Reanalysis (NARR)](https://psl.noaa.gov/data/gridded/data.narr.html) | netCDF | Atmosphere, Meteorology | -| [OpenGeoHub Foundation OpenLandMap](https://opengeohub.org/about-openlandmap/) | GeoTIFF | Climate, Elevation, Soil, Land Use, Satellite | -| [Parameter Elevation Regression on Independent Slopes Model (PRISM)](https://elibrary.asabe.org/abstract.asp??JID=3&AID=3101&CID=t2000&v=43&i=6&T=1) | BIL, ASCII | Climate | +| [NASA Moderate Resolution Imaging Spectroradiometer (MODIS)](https://modis.gsfc.nasa.gov/data/) | HDF | Atmosphere
Meteorology
Land Use
Satellite | +| [NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2)](https://www.nature.com/articles/sdata2018214) | netCDF | Atmosphere
Meteorology | +| [NASA SEDAC[^2] UN WPP-Adjusted Population Density](https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11) | GeoTIFF
netCDF | Population | +| [NASA SEDAC Global Roads Open Access Data Set](https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1/data-download) | Shapefile
Geodatabase | Roadways | +| [NASA Goddard Earth Observing System Composition Forcasting (GEOS-CF)](https://gmao.gsfc.nasa.gov/GEOS_systems/) | netCDF | Atmosphere
Meteorology | +| [NOAA Hazard Mapping System Fire and Smoke Product](https://www.ospo.noaa.gov/Products/land/hms.html#0) | Shapefile
KML | Wildfire Smoke | +| [NOAA NCEP[^3] North American Regional Reanalysis (NARR)](https://psl.noaa.gov/data/gridded/data.narr.html) | netCDF | Atmosphere
Meteorology | +| [OpenGeoHub Foundation OpenLandMap](https://opengeohub.org/about-openlandmap/) | GeoTIFF | Climate
Elevation
Soil
Land Use
Satellite | +| [Parameter Elevation Regression on Independent Slopes Model (PRISM)](https://elibrary.asabe.org/abstract.asp??JID=3&AID=3101&CID=t2000&v=43&i=6&T=1) | BIL
ASCII | Climate | | [US EPA[^4] Air Data Pre-Generated Data Files](https://aqs.epa.gov/aqsweb/airdata/download_files.html) | CSV | Air Pollution | | [US EPA Ecoregions](https://www.epa.gov/eco-research/ecoregion) | Shapefile | Climate Regions | | [US EPA National Emissions Inventory (NEI)](https://www.epa.gov/air-emissions-inventories) | CSV | Emissions | -| [US EPA Toxic Release Inventory (TRI) Program](https://www.epa.gov/toxics-release-inventory-tri-program/tri-basic-data-files-calendar-years-1987-present) | CSV | Chemicals, Pollution | +| [US EPA Toxic Release Inventory (TRI) Program](https://www.epa.gov/toxics-release-inventory-tri-program/tri-basic-data-files-calendar-years-1987-present) | CSV | Chemicals
Pollution | | [USGS[^5] Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | | [USGS National Hydrography Dataset (NHD)](https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9) | Geopackage
Geodatabase | Hydrography | From 7045a98c9e5cec3bbfb380c3e8a7ee35fc6774bf Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 10:15:31 -0400 Subject: [PATCH 20/66] README.md 7 --- README.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 176a8942..b682fb0d 100644 --- a/README.md +++ b/README.md @@ -38,26 +38,26 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors `download_data` accesses and downloads raw geospatial data from a variety of open source data repositories. The function is a wrapper that calls source-specific download functions, each of which account for the source's unique combination of URL, file naming conventions, and data types. Download functions cover the following sources: -| Source | Data Type | Genre | +| Data Source | File Type | Data Genre | | :---- | :-- | :--- | | [Climatology Lab TerraClimate](https://www.climatologylab.org/terraclimate.html) | netCDF | Meteorology | | [Climatology Lab GridMet](https://www.climatologylab.org/gridmet.html) | netCDF | Cliamte
Water | | [Köppen-Geiger Climate Classification](https://www.nature.com/articles/sdata2018214) | GeoTIFF | Climate Classification | -| [MRLC[^1] Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | -| [NASA Moderate Resolution Imaging Spectroradiometer (MODIS)](https://modis.gsfc.nasa.gov/data/) | HDF | Atmosphere
Meteorology
Land Use
Satellite | +| [MRLC\[^1\] Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | +| [NASA[^2] Moderate Resolution Imaging Spectroradiometer (MODIS)](https://modis.gsfc.nasa.gov/data/) | HDF | Atmosphere
Meteorology
Land Use
Satellite | | [NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2)](https://www.nature.com/articles/sdata2018214) | netCDF | Atmosphere
Meteorology | -| [NASA SEDAC[^2] UN WPP-Adjusted Population Density](https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11) | GeoTIFF
netCDF | Population | +| [NASA SEDAC[^3] UN WPP-Adjusted Population Density](https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11) | GeoTIFF
netCDF | Population | | [NASA SEDAC Global Roads Open Access Data Set](https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1/data-download) | Shapefile
Geodatabase | Roadways | | [NASA Goddard Earth Observing System Composition Forcasting (GEOS-CF)](https://gmao.gsfc.nasa.gov/GEOS_systems/) | netCDF | Atmosphere
Meteorology | | [NOAA Hazard Mapping System Fire and Smoke Product](https://www.ospo.noaa.gov/Products/land/hms.html#0) | Shapefile
KML | Wildfire Smoke | -| [NOAA NCEP[^3] North American Regional Reanalysis (NARR)](https://psl.noaa.gov/data/gridded/data.narr.html) | netCDF | Atmosphere
Meteorology | +| [NOAA NCEP[^4] North American Regional Reanalysis (NARR)](https://psl.noaa.gov/data/gridded/data.narr.html) | netCDF | Atmosphere
Meteorology | | [OpenGeoHub Foundation OpenLandMap](https://opengeohub.org/about-openlandmap/) | GeoTIFF | Climate
Elevation
Soil
Land Use
Satellite | | [Parameter Elevation Regression on Independent Slopes Model (PRISM)](https://elibrary.asabe.org/abstract.asp??JID=3&AID=3101&CID=t2000&v=43&i=6&T=1) | BIL
ASCII | Climate | -| [US EPA[^4] Air Data Pre-Generated Data Files](https://aqs.epa.gov/aqsweb/airdata/download_files.html) | CSV | Air Pollution | +| [US EPA[^5] Air Data Pre-Generated Data Files](https://aqs.epa.gov/aqsweb/airdata/download_files.html) | CSV | Air Pollution | | [US EPA Ecoregions](https://www.epa.gov/eco-research/ecoregion) | Shapefile | Climate Regions | | [US EPA National Emissions Inventory (NEI)](https://www.epa.gov/air-emissions-inventories) | CSV | Emissions | | [US EPA Toxic Release Inventory (TRI) Program](https://www.epa.gov/toxics-release-inventory-tri-program/tri-basic-data-files-calendar-years-1987-present) | CSV | Chemicals
Pollution | -| [USGS[^5] Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | +| [USGS[^6] Global Multi-resolution Terrain Elevation Data (GMTED2010)](https://www.usgs.gov/coastal-changes-and-impacts/gmted2010) | ESRI ASCII Grid | Elevation | | [USGS National Hydrography Dataset (NHD)](https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9) | Geopackage
Geodatabase | Hydrography | See the "[download_data](https://niehs.github.io/amadeus/articles/download_functions.html)" vignette for a detailed description of source-specific download functions. @@ -154,14 +154,15 @@ The following R packages can also be used to access climate and weather data in | [`dataRetrieval`](https://cran.r-project.org/web/packages/dataRetrieval/index.html) | [USGS Hydrological Data](https://www.usgs.gov/mission-areas/water-resources/data) and [EPA Water Quality Data](https://www.epa.gov/waterdata/water-quality-data) | | [`daymetr`](https://cran.r-project.org/web/packages/daymetr/index.html) | [Daymet](https://daac.ornl.gov/cgi-bin/dataset_lister.pl?p=32) | | [`ecmwfr`](https://cran.r-project.org/web/packages/ecmwfr/index.html) | [ECMWF Reanalysis v5 (ERA5)](https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5) | -| [`RClimChange`[^6]](https://github.com/hllauca/RClimChange/) | [NASA Earth Exchange Global Daily Downscaled Projections (NEX-GDDP-CMIP6)](https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6) | +| [`RClimChange`[^7]](https://github.com/hllauca/RClimChange/) | [NASA Earth Exchange Global Daily Downscaled Projections (NEX-GDDP-CMIP6)](https://www.nccs.nasa.gov/services/data-collections/land-based-products/nex-gddp-cmip6) | | [`rNOMADS`](https://cran.r-project.org/web/packages/rNOMADS/) | [NOAA Operational Model Archive and Distribution System](https://nomads.ncep.noaa.gov/) | -| [`sen2r`[^7]](https://github.com/ranghetti/sen2r) | [Sentinel-2](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-2) | +| [`sen2r`[^8]](https://github.com/ranghetti/sen2r) | [Sentinel-2](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-2) | [^1]: Multi-Resolution Land Characteristics -[^2]: Socioeconomic Data and Applications Center -[^3]: National Centers for Environmental Prediction -[^4]: United States Environmental Protection Agency -[^5]: United States Geological Survey -[^6]: Last updated more than two years ago. -[^7]: Archived; no longer maintained. +[^2]: National Aeronautics and Space Administration +[^3]: Socioeconomic Data and Applications Center +[^4]: National Centers for Environmental Prediction +[^5]: United States Environmental Protection Agency +[^6]: United States Geological Survey +[^7]: Last updated more than two years ago. +[^8]: Archived; no longer maintained. From c07dbf5eda04d91cad8da43e54701bffdfa48811 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 10:17:36 -0400 Subject: [PATCH 21/66] README.md 8 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b682fb0d..f967997d 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors | [Climatology Lab TerraClimate](https://www.climatologylab.org/terraclimate.html) | netCDF | Meteorology | | [Climatology Lab GridMet](https://www.climatologylab.org/gridmet.html) | netCDF | Cliamte
Water | | [Köppen-Geiger Climate Classification](https://www.nature.com/articles/sdata2018214) | GeoTIFF | Climate Classification | -| [MRLC\[^1\] Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | +| [MRLC[^1] Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | | [NASA[^2] Moderate Resolution Imaging Spectroradiometer (MODIS)](https://modis.gsfc.nasa.gov/data/) | HDF | Atmosphere
Meteorology
Land Use
Satellite | | [NASA Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2)](https://www.nature.com/articles/sdata2018214) | netCDF | Atmosphere
Meteorology | | [NASA SEDAC[^3] UN WPP-Adjusted Population Density](https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11) | GeoTIFF
netCDF | Population | @@ -114,7 +114,7 @@ time : 2022-01-01 to 2022-01-05 UTC ## Calculate Covariates -`calc_covariates` stems from the `beethoven` package's need for various types of data extracted at precise locations. `calc_covariates`, therefore, extracts data from the "cleaned" `SpatRaster` or `SpatVector` object at user defined locations. Users can choose to buffer the locations. The function returns a `data.frame` with data extracted at all locations for each layer or row in the `SpatRaster` or `SpatVector` object, respectively. +`calc_covariates` stems from the [`beethoven`](https://github.com/NIEHS/beethoven) project's need for various types of data extracted at precise locations. `calc_covariates`, therefore, extracts data from the "cleaned" `SpatRaster` or `SpatVector` object at user defined locations. Users can choose to buffer the locations. The function returns a `data.frame` or `SpatVector` with data extracted at all locations for each layer or row in the `SpatRaster` or `SpatVector` object, respectively. Example of `calc_covariates` using processed "weasd" data. From 87a0388b0e429d6099c22f2dc96a03b524608aa9 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 10:19:43 -0400 Subject: [PATCH 22/66] README.md 9 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f967997d..d0be9ba6 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors | Data Source | File Type | Data Genre | | :---- | :-- | :--- | | [Climatology Lab TerraClimate](https://www.climatologylab.org/terraclimate.html) | netCDF | Meteorology | -| [Climatology Lab GridMet](https://www.climatologylab.org/gridmet.html) | netCDF | Cliamte
Water | +| [Climatology Lab GridMet](https://www.climatologylab.org/gridmet.html) | netCDF | Climate
Water | | [Köppen-Geiger Climate Classification](https://www.nature.com/articles/sdata2018214) | GeoTIFF | Climate Classification | | [MRLC[^1] Consortium National Land Cover Database (NLCD)](https://www.mrlc.gov/data) | GeoTIFF | Land Use | | [NASA[^2] Moderate Resolution Imaging Spectroradiometer (MODIS)](https://modis.gsfc.nasa.gov/data/) | HDF | Atmosphere
Meteorology
Land Use
Satellite | From a7fef09cb3402fb9a92999c485e7fd4cc884d20a Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 9 Jul 2024 13:00:43 -0400 Subject: [PATCH 23/66] core functions examples --- NAMESPACE | 1 + R/calculate_covariates.R | 196 ++++++++++++++++++++++++++ R/download.R | 235 +++++++++++++++++++++++++++++-- R/process.R | 138 +++++++++++++++++- man/calc_covariates.Rd | 20 ++- man/calc_ecoregion.Rd | 23 ++- man/calc_geos.Rd | 24 +++- man/calc_gmted.Rd | 24 +++- man/calc_gridmet.Rd | 24 +++- man/calc_hms.Rd | 18 ++- man/calc_koppen_geiger.Rd | 24 ++-- man/calc_lagged.Rd | 20 +++ man/calc_merra2.Rd | 24 +++- man/calc_narr.Rd | 24 +++- man/calc_nei.Rd | 10 ++ man/calc_nlcd.Rd | 23 ++- man/calc_return_locs.Rd | 29 ++++ man/calc_sedac_groads.Rd | 24 +++- man/calc_sedac_population.Rd | 24 +++- man/calc_setcolumns.Rd | 5 +- man/calc_temporal_dummies.Rd | 10 ++ man/calc_terraclimate.Rd | 24 +++- man/calc_tri.Rd | 11 ++ man/download_aqs.Rd | 22 ++- man/download_cropscape.Rd | 6 +- man/download_data.Rd | 17 ++- man/download_ecoregion.Rd | 10 ++ man/download_geos.Rd | 22 ++- man/download_gmted.Rd | 12 ++ man/download_gridmet.Rd | 21 ++- man/download_hms.Rd | 21 ++- man/download_huc.Rd | 12 +- man/download_koppen_geiger.Rd | 12 ++ man/download_merra2.Rd | 22 ++- man/download_modis.Rd | 28 ++-- man/download_narr.Rd | 21 ++- man/download_nei.Rd | 15 +- man/download_nlcd.Rd | 12 ++ man/download_olm.Rd | 12 ++ man/download_prism.Rd | 2 +- man/download_sedac_groads.Rd | 12 ++ man/download_sedac_population.Rd | 13 ++ man/download_terraclimate.Rd | 21 ++- man/download_tri.Rd | 18 ++- man/process_aqs.Rd | 10 ++ man/process_collection.Rd | 15 +- man/process_covariates.Rd | 10 ++ man/process_cropscape.Rd | 13 +- man/process_ecoregion.Rd | 12 +- man/process_geos.Rd | 13 ++ man/process_gmted.Rd | 13 +- man/process_gridmet.Rd | 18 ++- man/process_hms.Rd | 6 +- man/process_huc.Rd | 12 +- man/process_koppen_geiger.Rd | 12 +- man/process_merra2.Rd | 13 ++ man/process_narr.Rd | 13 ++ man/process_nei.Rd | 9 ++ man/process_nlcd.Rd | 8 ++ man/process_olm.Rd | 15 +- man/process_prism.Rd | 14 +- man/process_sedac_groads.Rd | 12 +- man/process_sedac_population.Rd | 12 +- man/process_terraclimate.Rd | 18 ++- man/process_tri.Rd | 9 ++ 65 files changed, 1345 insertions(+), 198 deletions(-) create mode 100644 man/calc_return_locs.Rd diff --git a/NAMESPACE b/NAMESPACE index 08583a1b..060ddc9a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -18,6 +18,7 @@ export(calc_narr) export(calc_nei) export(calc_nlcd) export(calc_prepare_locs) +export(calc_return_locs) export(calc_sedac_groads) export(calc_sedac_population) export(calc_sedc) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index a6d252f8..f12cc7d4 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -36,6 +36,17 @@ #' - [`calc_terraclimate`]: `"terraclimate"`, `"TerraClimate"` #' @return Calculated covariates as a data.frame or SpatVector object #' @author Insang Song +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_covariates( +#' covariate = "narr", +#' from = narr, # derived from process_covariates() example +#' locs = loc, +#' locs_id = "id", +#' geom = FALSE +#' ) +#' } #' @export # nolint end calc_covariates <- @@ -138,6 +149,16 @@ calc_covariates <- #' @importFrom terra coltab #' @importFrom terra merge #' @importFrom methods is +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_koppen_geiger( +#' from = kg, # derived from process_koppen_geiger() example +#' locs = loc, +#' locs_id = "id", +#' geom = FALSE +#' ) +#' } #' @export # locs (locs), from (from), locs_id (id_col), variables calc_koppen_geiger <- @@ -285,6 +306,17 @@ calc_koppen_geiger <- #' @importFrom future plan multicore sequential #' @importFrom future.apply future_Map #' @importFrom collapse rowbind +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_nlcd( +#' from = nlcd, # derived from process_nlcd() example +#' locs = loc, +#' locs_id = "id", +#' mode = "exact", +#' geom = FALSE +#' ) +#' } #' @export calc_nlcd <- function(from, locs, @@ -437,6 +469,16 @@ calc_nlcd <- function(from, #' @author Insang Song #' @importFrom terra extract #' @importFrom data.table year +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_ecoregion( +#' from = ecoregion, # derived from process_ecoregion() example +#' locs = loc, +#' locs_id = "id", +#' geom = FALSE +#' ) +#' } #' @export calc_ecoregion <- function( @@ -900,6 +942,15 @@ process_modis_swath, or process_bluemarble.") #' @importFrom data.table year #' @importFrom data.table month #' @importFrom data.table as.data.table +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_temporal_dummies( +#' locs = loc, +#' locs_id = "id", +#' year = seq(2018L, 2022L) +#' ) +#' } #' @export calc_temporal_dummies <- function( @@ -1141,6 +1192,16 @@ The result may not be accurate.\n", #' @importFrom dplyr group_by #' @importFrom dplyr ungroup #' @importFrom dplyr summarize +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_tri( +#' from = tri, # derived from process_tri() example +#' locs = loc, +#' locs_id = "id", +#' radius = c(1e3L, 1e4L, 5e4L) +#' ) +#' } #' @export calc_tri <- function( from = NULL, @@ -1206,6 +1267,15 @@ calc_tri <- function( #' @importFrom methods is #' @importFrom terra project #' @importFrom terra intersect +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_nei( +#' from = nei, # derived from process_nei example, +#' locs = loc, +#' locs_id = "id" +#' ) +#' } #' @export calc_nei <- function( from = NULL, @@ -1254,6 +1324,17 @@ calc_nei <- function( #' @importFrom terra extract #' @importFrom terra nlyr #' @importFrom terra crs +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_hms( +#' from = hms, # derived from process_hms() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' geom = FALSE +#' ) +#' } #' @export calc_hms <- function( from, @@ -1472,6 +1553,18 @@ calc_hms <- function( #' @importFrom terra extract #' @importFrom terra nlyr #' @importFrom terra crs +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_gmted( +#' from = gmted, # derived from process_gmted() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' } #' @export calc_gmted <- function( from, @@ -1581,6 +1674,18 @@ calc_gmted <- function( #' @importFrom terra extract #' @importFrom terra nlyr #' @importFrom terra crs +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_narr( +#' from = narr, # derived from process_narr() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' } #' @export calc_narr <- function( from, @@ -1662,6 +1767,18 @@ calc_narr <- function( #' @importFrom terra extract #' @importFrom terra nlyr #' @importFrom terra crs +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_geos( +#' from = geos, # derived from process_geos() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' } #' @export calc_geos <- function( from, @@ -1727,6 +1844,18 @@ calc_geos <- function( #' @seealso [process_sedac_population()] #' @return a data.frame or SpatVector object #' @importFrom methods is +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_sedac_population( +#' from = pop, # derived from process_sedac_population() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' } #' @export calc_sedac_population <- function( from, @@ -1830,6 +1959,18 @@ calc_sedac_population <- function( #' @importFrom terra expanse #' @importFrom terra linearUnits #' @importFrom methods is +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_sedac_groads( +#' from = groads, # derived from process_sedac_groads() example +#' locs = loc, +#' locs_id = "id", +#' radius = 1000, +#' fun = "sum", +#' geom = FALSE +#' ) +#' } #' @export calc_sedac_groads <- function( from = NULL, @@ -1932,6 +2073,18 @@ calc_sedac_groads <- function( #' @importFrom terra extract #' @importFrom terra nlyr #' @importFrom terra crs +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_merra2( +#' from = merra2, # derived from process_merra2() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' } #' @export calc_merra2 <- function( from, @@ -2009,6 +2162,18 @@ calc_merra2 <- function( #' @importFrom terra extract #' @importFrom terra nlyr #' @importFrom terra crs +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_gridmet( +#' from = gridmet, # derived from process_gridmet() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' } #' @export calc_gridmet <- function( from, @@ -2082,6 +2247,18 @@ calc_gridmet <- function( #' @importFrom terra extract #' @importFrom terra nlyr #' @importFrom terra crs +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' calc_terraclimate( +#' from = terraclimate, # derived from process_terraclimate() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' } #' @export calc_terraclimate <- function( from = NULL, @@ -2148,6 +2325,25 @@ calc_terraclimate <- function( #' lag, buffer radius format adopted in \code{calc_setcolumns()}. #' @return a `data.frame` object #' @importFrom dplyr lag +#' @examples +#' \dontrun{ +#' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +#' terracliamte_covar <- calc_terraclimate( +#' from = terraclimate, # derived from process_terraclimate() example +#' locs = loc, +#' locs_id = "id", +#' radius = 0, +#' fun = "mean", +#' geom = FALSE +#' ) +#' calc_lagged( +#' from = terracliamte_covar, +#' locs_id = "id", +#' date = c("2023-01-02", "2023-01-10"), +#' lag = 1, +#' time_id = "time" +#' ) +#' } #' @export calc_lagged <- function( from, diff --git a/R/download.R b/R/download.R index 59463d78..cf2c13c2 100644 --- a/R/download.R +++ b/R/download.R @@ -35,6 +35,18 @@ #' * \code{\link{download_gridmet}}: `"gridMET"`, `"gridmet"` #' * \code{\link{download_terraclimate}}: `"TerraClimate"`, `"terraclimate"` #' @returns NULL +#' @examples +#' \dontrun{ +#' download_data( +#' dataset_name = "narr", +#' variables = "weasd", +#' year = c(2023, 2023), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_commands = TRUE +#' ) +#' } #' @export download_data <- function( @@ -111,7 +123,6 @@ download_data <- #' @param parameter_code integer(1). length of 5. #' EPA pollutant parameter code. For details, please refer to #' [AQS parameter codes](https://aqs.epa.gov/aqsweb/documents/codetables/parameters.html) -# nolint end #' @param resolution_temporal character(1). #' Name of column containing POC values. #' Currently, no value other than `"daily"` works. @@ -136,6 +147,19 @@ download_data <- #' @author Mariana Kassien, Insang Song, Mitchell Manware #' @returns NULL; Zip and/or data files will be downloaded and stored in #' \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_aqs( +#' parameter_code = 88101, +#' resolution_temporal = "daily", +#' year = c(2022, 2023), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } +# nolint end #' @export download_aqs <- function( @@ -290,6 +314,15 @@ download_aqs <- #' @returns NULL; Zip and/or data files will be downloaded and stored in #' \code{directory_to_save}. #' @importFrom utils download.file +#' @examples +#' \dontrun{ +#' download_ecoregion( +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_ecoregion <- function( epa_certificate_path = @@ -387,7 +420,6 @@ download_ecoregion <- function( #' @description #' The \code{download_geos()} function accesses and downloads various #' atmospheric composition collections from [NASA's Global Earth Observing System (GEOS) model](https://gmao.gsfc.nasa.gov/GEOS_systems/). -# nolint end #' @param collection character(1). GEOS-CF data collection file name. #' @param date character(2). length of 10 each. Start/end date for downloading data. #' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). @@ -406,7 +438,19 @@ download_ecoregion <- function( #' @author Mitchell Manware, Insang Song #' @return NULL; netCDF (.nc4) files will be stored in a #' collection-specific folder within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_geos( +#' collection = "aqc_tavg_1hr_g1440x721_v1", +#' date = c("2024-01-01", "2024-01-05"), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export +# nolint end # nolint start: cyclocomp download_geos <- function( collection = @@ -565,6 +609,17 @@ download_geos <- function( # nolint end #' @returns NULL; Zip and/or data files will be downloaded and stored in #' \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_gmted( +#' statistic = "Breakline Emphasis", +#' resolution = "7.5 arc-seconds", +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_gmted <- function( statistic = c( @@ -703,6 +758,17 @@ download_gmted <- function( #' @author Mitchell Manware, Insang Song #' @return NULL; netCDF (.nc4) files will be stored in a #' collection-specific folder within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_merra2( +#' collection = "inst1_2d_int_Nx", +#' date = c("2024-01-01", "2024-01-05"), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export # nolint end # nolint start: cyclocomp @@ -1005,6 +1071,17 @@ download_merra2 <- function( #' @author Mitchell Manware, Insang Song #' @return NULL; netCDF (.nc) files will be stored in #' \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_narr( +#' variables = c("weasd", "omega"), +#' year = c(2022, 2023), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export # nolint end # nolint start: cyclocomp @@ -1139,6 +1216,17 @@ download_narr <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_nlcd( +#' collection = "Coterminous United States", +#' year = 2021, +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_nlcd <- function( collection = "Coterminous United States", @@ -1283,6 +1371,17 @@ download_nlcd <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_sedac_groads( +#' data_region = "Americas", +#' data_format = "Shapefile", +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_sedac_groads <- function( data_region = c("Americas", "Global", "Africa", "Asia", "Europe", "Oceania East", "Oceania West"), @@ -1427,6 +1526,18 @@ download_sedac_groads <- function( # nolint end #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_sedac_population( +#' data_resolution = "30 second", +#' data_format = "GeoTIFF", +#' year = "2020", +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_sedac_population <- function( data_resolution = "60 minute", @@ -1578,9 +1689,9 @@ download_sedac_population <- function( #' @description #' The \code{download_hms()} function accesses and downloads #' wildfire smoke plume coverage data from [NOAA's Hazard Mapping System Fire and Smoke Product](https://www.ospo.noaa.gov/Products/land/hms.html#0). -# nolint end #' @param data_format character(1). "Shapefile" or "KML". #' @param date character(2). length of 10 each. Start/end date for downloading data. +# nolint end #' @param directory_to_save character(1). Directory to save data. If #' `data_format = "Shapefile"`, two sub-directories will be created for the #' downloaded zip files ("/zip_files") and the unzipped shapefiles @@ -1604,8 +1715,19 @@ download_sedac_population <- function( #' @importFrom utils head #' @importFrom utils tail #' @author Mitchell Manware, Insang Song -##' @returns NULL; Zip and/or data files will be downloaded and stored in +#' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_hms( +#' data_format = "Shapefile", +#' date = c("2024-01-01", "2024-01-05"), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export # nolint start: cyclocomp download_hms <- function( @@ -1778,6 +1900,18 @@ download_hms <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_koppen_geiger( +#' data_resolution = "0.0083", +#' time_period = "Present", +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } +# nolint end #' @export download_koppen_geiger <- function( data_resolution = c("0.0083", "0.083", "0.5"), @@ -1875,7 +2009,7 @@ download_koppen_geiger <- function( #' Download MODIS product files -# nolint end +# nolint start #' @description Need maintenance for the directory path change #' in NASA EOSDIS. This function first retrieves the all hdf download links #' on a certain day, then only selects the relevant tiles from the retrieved @@ -1901,6 +2035,7 @@ download_koppen_geiger <- function( #' from NASA LPDAAC. Default is `NULL`. #' @param date character(2). length of 10 each. Start/end date for downloading data. #' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). +# nolint end #' @param directory_to_save character(1). Directory to save data. #' @param acknowledgement logical(1). By setting \code{TRUE} the #' user acknowledges that the data downloaded using this function may be very @@ -1912,6 +2047,21 @@ download_koppen_geiger <- function( #' @import rvest #' @return NULL; HDF (.hdf) files will be stored in #' \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_modis( +#' product = "MOD09GA", +#' version = "61", +#' horizontal_tiles = c(8, 10), +#' vertical_tiles = c(4, 5), +#' date = c("2024-01-01", "2024-01-10"), +#' nasa_earth_data_token = readLines("~/pre_generated_token.txt"), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_modis <- function( product = c( @@ -2227,8 +2377,8 @@ download_modis <- function( #' Download toxic release data #' @description #' The \code{download_tri()} function accesses and downloads toxic release data from the [U.S. Environmental Protection Agency's (EPA) Toxic Release Inventory (TRI) Program](https://www.epa.gov/toxics-release-inventory-tri-program/find-understand-and-use-tri). -# nolint end #' @param year character(2). length of 4 each. Start/end years for downloading data. +# nolint end #' @param directory_to_save character(1). Directory to download files. #' @param acknowledgement logical(1). By setting \code{TRUE} the #' user acknowledges that the data downloaded using this function may be very @@ -2241,6 +2391,16 @@ download_modis <- function( #' @author Mariana Kassien, Insang Song #' @returns NULL; Comma-separated value (CSV) files will be stored in #' \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_tri( +#' year = c(2020L, 2021L), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_tri <- function( year = c(2018L, 2022L), @@ -2348,6 +2508,16 @@ download_tri <- function( #' certificate updates in the future. #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_nei( +#' year = c(2017L, 2020L), +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export download_nei <- function( epa_certificate_path = @@ -2549,6 +2719,17 @@ download_nei <- function( #' @returns NULL; GeoTIFF (.tif) files will be stored in #' \code{directory_to_save}. #' @seealso [list_stac_files] +#' @examples +#' \dontrun{ +#' download_olm( +#' product = "no2_s5p.l3.trop.tmwm", +#' format = "tif", +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export # nolint end download_olm <- function( @@ -2647,10 +2828,14 @@ download_olm <- function( #' @author Insang Song #' @examples #' \dontrun{ -#' download_huc("Lower48", "Seamless", "/data" -#' acknowledgement = TRUE, -#' download = TRUE, -#' unzip = TRUE) +#' download_huc( +#' region = "Lower48", +#' type = "Seamless", +#' directory_to_save = "./data", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) #' } #' @export # @importFrom archive archive_extract @@ -2791,10 +2976,12 @@ download_huc <- #' @examples #' \dontrun{ #' download_cropscape( -#' 2020, "~/data", +#' year = 2020, +#' source = "USDA", +#' directory_to_save = "./data", #' acknowledgement = TRUE, #' download = TRUE, -#' unzip = TRUE +#' remove_command = TRUE #' ) #' } #' @importFrom archive archive_extract @@ -2941,7 +3128,7 @@ download_cropscape <- function( #' element = "ppt", #' data_type = "ts", #' format = "nc", -#' directory_to_save = "~/data", +#' directory_to_save = "./data", #' acknowledgement = TRUE, #' download = TRUE, #' remove_command = TRUE @@ -3067,6 +3254,17 @@ download_prism <- function( #' @author Mitchell Manware #' @return NULL; netCDF (.nc) files will be stored in a variable-specific #' folder within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_gridmet( +#' variables = "Precipitation", +#' year = c(2023, 2024), +#' directory_to_save = "./data" +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export # nolint end download_gridmet <- function( @@ -3192,6 +3390,17 @@ download_gridmet <- function( #' @author Mitchell Manware, Insang Song #' @return NULL; netCDF (.nc) files will be stored in a variable-specific #' folder within \code{directory_to_save}. +#' @examples +#' \dontrun{ +#' download_gridmet( +#' variables = "Precipitation", +#' year = c(2023, 2024), +#' directory_to_save = "./data" +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' } #' @export # nolint end download_terraclimate <- function( diff --git a/R/process.R b/R/process.R index 6a07cceb..fa27639b 100644 --- a/R/process.R +++ b/R/process.R @@ -36,6 +36,15 @@ #' @returns `SpatVector`, `SpatRaster`, `sf`, or `character` depending on #' covariate type and selections. #' @author Insang Song +#' @examples +#' \dontrun{ +#' narr <- process_covariates( +#' covariate = "narr", +#' date = c("2023-01-01", "2023-01-10"), +#' variable = "weasd", +#' path = "./data/weasd" +#' ) +#' } #' @export # nolint end process_covariates <- @@ -656,6 +665,12 @@ process_modis_swath <- #' @returns a `SpatRaster` object #' @author Insang Song #' @importFrom terra rast +#' @examples +#' \dontrun{ +#' kg <- process_koppen_geiger( +#' path = "./data/koppen_geiger_data.tif" +#' ) +#' } #' @export process_koppen_geiger <- function( @@ -695,6 +710,13 @@ process_koppen_geiger <- #' @importFrom utils read.csv #' @importFrom terra rast #' @importFrom terra metags +#' @examples +#' \dontrun{ +#' nlcd <- process_nlcd( +#' path = "./data/", +#' year = 2021 +#' ) +#' } #' @export process_nlcd <- function( @@ -745,6 +767,12 @@ process_nlcd <- #' @importFrom terra vect #' @importFrom sf st_read st_crs st_as_sfc st_transform st_intersects st_union #' @importFrom data.table year +#' @examples +#' \dontrun{ +#' ecoregion <- process_ecoregion( +#' path = "./data/epa_ecoregion.gpkg" +#' ) +#' } #' @export process_ecoregion <- function( @@ -815,6 +843,14 @@ process_ecoregion <- #' @importFrom dplyr summarize #' @importFrom tidyr pivot_wider #' @importFrom stats setNames +#' @examples +#' \dontrun{ +#' tri <- process_tri( +#' path = "./data", +#' year = 2020, +#' variables = c(1, 13, 12, 14, 20, 34, 36, 47, 48, 49) +#' ) +#' } # nolint end #' @export process_tri <- function( @@ -910,6 +946,14 @@ process_tri <- function( #' @importFrom data.table .SD #' @importFrom data.table fread #' @importFrom data.table rbindlist +#' @examples +#' \dontrun{ +#' nei <- process_nei( +#' path = "./data", +#' county = system.file("gpkg/nc.gpkg", package = "sf"), +#' year = 2017 +#' ) +#' } #' @export # nolint end process_nei <- function( @@ -1016,6 +1060,15 @@ process_nei <- function( #' @note Choose `date` and `mode` values with caution. #' The function may return a massive data.table, resulting in #' a long processing time or even a crash. +#' @examples +#' \dontrun{ +#' aqs <- process_aqs( +#' path = "./data/aqs_daily_example.csv", +#' date = c("2022-12-01", "2023-01-31"), +#' mode = "full", +#' return_format = "terra" +#' ) +#' } #' @export process_aqs <- function( @@ -1178,6 +1231,12 @@ process_aqs <- #' @author Mitchell Manware #' @return a `SpatRaster` object #' @importFrom terra rast +#' @examples +#' \dontrun{ +#' pop <- process_sedac_population( +#' path = "./data/sedac_population_example.tif" +#' ) +#' } #' @export # nolint end process_sedac_population <- function( @@ -1248,6 +1307,12 @@ process_sedac_population <- function( #' @author Insang Song #' @returns a `SpatVector` object #' @importFrom terra vect +#' @examples +#' \dontrun{ +#' groads <- process_sedac_groads( +#' path = "./data/groads_example.shp" +#' ) +#' } #' @export # nolint end process_sedac_groads <- function( @@ -1286,7 +1351,7 @@ process_sedac_groads <- function( #' character will contain the selected density value and the sequence of dates #' for which no wildfire smoke plumes were detected (see "Examples"). #' @examples -#' process_hms( +#' hms <- process_hms( #' date = c("2018-12-30", "2019-01-01"), #' variable = "Light", #' path = "../tests/testdata/hms/" @@ -1478,6 +1543,13 @@ process_hms <- function( #' @return a `SpatRaster` object #' @importFrom terra rast #' @importFrom terra varnames +#' @examples +#' \dontrun{ +#' gmted <- process_gmted( +#' variable = c("Breakline Emphasis", "7.5 arc-seconds"), +#' path = "./data/be75_grd" +#' ) +#' } #' @export process_gmted <- function( variable = NULL, @@ -1587,6 +1659,14 @@ process_gmted <- function( #' @importFrom terra time #' @importFrom terra subset #' @importFrom stringi stri_pad +#' @examples +#' \dontrun{ +#' narr <- process_narr( +#' date = c("2022-01-01", "2022-01-10"), +#' variable = "weasd", +#' path = "./data/weasd" +#' ) +#' } #' @export # nolint end process_narr <- function( @@ -1808,6 +1888,14 @@ process_narr <- function( #' @importFrom terra varnames #' @importFrom terra crs #' @importFrom terra subset +#' @examples +#' \dontrun{ +#' geos <- process_geos( +#' date = c("2024-01-01", "2024-01-10"), +#' variable = "O3", +#' path = "./data/aqc_tavg_1hr_g1440x721_v1" +#' ) +#' } #' @export process_geos <- function(date = c("2018-01-01", "2018-01-01"), @@ -1989,6 +2077,14 @@ process_geos <- #' @importFrom terra names #' @importFrom terra crs #' @importFrom terra subset +#' @examples +#' \dontrun{ +#' merra2 <- process_merra2( +#' date = c("2024-01-01", "2024-01-10"), +#' variable = "CPT", +#' path = "./data/inst1_2d_int_Nx" +#' ) +#' } #' @export process_merra2 <- function(date = c("2018-01-01", "2018-01-01"), @@ -2166,6 +2262,14 @@ process_merra2 <- #' @importFrom terra rast #' @importFrom terra time #' @importFrom terra subset +#' @examples +#' \dontrun{ +#' gridmet <- process_gridmet( +#' date = c("2023-01-01", "2023-01-10"), +#' variable = "Precipitation", +#' path = "./data/pr" +#' ) +#' } #' @export # nolint end process_gridmet <- function( @@ -2322,6 +2426,14 @@ process_gridmet <- function( #' @importFrom terra rast #' @importFrom terra time #' @importFrom terra subset +#' @examples +#' \dontrun{ +#' terraclimate <- process_terraclimate( +#' date = c("2023-01-01", "2023-01-10"), +#' variable = "Precipitation", +#' path = "./data/ppt" +#' ) +#' } #' @export # nolint end process_terraclimate <- function( @@ -2585,6 +2697,13 @@ process_huc <- #' @importFrom utils read.csv #' @importFrom terra rast #' @importFrom terra metags +#' @examples +#' \dontrun{ +#' cropscape <- process_cropscape( +#' path = "./data/cropscape_example.tif", +#' year = 2020 +#' ) +#' } #' @export process_cropscape <- function( @@ -2637,6 +2756,14 @@ process_cropscape <- #' @importFrom utils read.csv #' @importFrom terra rast #' @importFrom terra metags +#' @examples +#' \dontrun{ +#' prism <- process_prism( +#' path = "./data/PRISM_ppt_stable_4kmM3_202104_nc.nc", +#' element = "ppt", +#' time = "202104" +#' ) +#' } #' @export # nolint start process_prism <- @@ -2688,6 +2815,15 @@ process_prism <- #' @returns a `SpatRaster` object #' @author Insang Song #' @importFrom terra rast +#' @examples +#' \dontrun{ +#' olm <- process_olm( +#' path = paste0( +#' "./data/no2_s5p.l3.trop.tmwm.p50_p90_2km_a_", +#' "20180501_20221130_go_epsg.4326_v20221219.tif" +#' ) +#' ) +#' } #' @export process_olm <- function( diff --git a/man/calc_covariates.Rd b/man/calc_covariates.Rd index 189b8251..d71cc83e 100644 --- a/man/calc_covariates.Rd +++ b/man/calc_covariates.Rd @@ -7,8 +7,8 @@ calc_covariates( covariate = c("modis", "koppen-geiger", "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "sedac_groads", "groads", "roads", "ecoregions", "ecoregion", - "hms", "noaa", "smoke", "gmted", "narr", "geos", "sedac_population", "population", - "nlcd", "merra", "merra2", "gridmet", "terraclimate", "tri", "nei"), + "hms", "smoke", "gmted", "narr", "geos", "sedac_population", "population", "nlcd", + "merra", "merra2", "gridmet", "terraclimate", "tri", "nei"), from, locs, locs_id = "site_id", @@ -30,7 +30,7 @@ Default is \code{"site_id"}.} function.} } \value{ -Calculated covariates. Mainly data.frame object. +Calculated covariates as a data.frame or SpatVector object } \description{ The \code{calculate_covariates()} function extracts values at point @@ -44,13 +44,25 @@ SpatRaster or SpatVector objects before passing to \note{ \code{covariate} argument value is converted to lowercase. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_covariates( + covariate = "narr", + from = narr, # derived from process_covariates() example + locs = loc, + locs_id = "id", + geom = FALSE +) +} +} \seealso{ \itemize{ \item \code{\link{calc_modis_par}}: \code{"modis"}, \code{"MODIS"} \item \code{\link{calc_koppen_geiger}}: \code{"koppen-geiger"}, \code{"koeppen-geiger"}, \code{"koppen"} \item \code{\link{calc_ecoregion}}: \code{"ecoregion"}, \code{"ecoregions"} \item -\item \code{\link{calc_hms}}: \code{"hms"}, \code{"noaa"}, \code{"smoke"} +\item \code{\link{calc_hms}}: \code{"hms"}, \code{"smoke"} \item \item \item \code{\link{calc_geos}}: \code{"geos"}, \code{"geos_cf"} diff --git a/man/calc_ecoregion.Rd b/man/calc_ecoregion.Rd index 21d14855..65930eff 100644 --- a/man/calc_ecoregion.Rd +++ b/man/calc_ecoregion.Rd @@ -14,17 +14,15 @@ a unique identifier field named \code{locs_id}} \item{locs_id}{character(1). Name of unique identifier.} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object with dummy variables and attributes of: +a data.frame or SpatVector object object with dummy variables and +attributes of: \itemize{ \item \code{attr(., "ecoregion2_code")}: Ecoregion lv.2 code and key \item \code{attr(., "ecoregion3_code")}: Ecoregion lv.3 code and key @@ -36,6 +34,17 @@ locations. Returns a \code{data.frame} object containing \code{locs_id} and binary (0 = point not in ecoregion; 1 = point in ecoregion) variables for each ecoregion. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_ecoregion( + from = ecoregion, # derived from process_ecoregion() example + locs = loc, + locs_id = "id", + geom = FALSE +) +} +} \seealso{ \code{\link{process_ecoregion}} } diff --git a/man/calc_geos.Rd b/man/calc_geos.Rd index 804fc856..cf2c6844 100644 --- a/man/calc_geos.Rd +++ b/man/calc_geos.Rd @@ -28,17 +28,14 @@ containing identifier for each unique coordinate location.} \item{fun}{character(1). Function used to summarize multiple raster cells within sites location buffer (Default = \code{mean}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract atmospheric composition values at point locations. Returns a @@ -47,6 +44,19 @@ pressure level, and atmospheric composition variable. Atmospheric composition variable column name reflects variable and circular buffer radius. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_geos( + from = geos, # derived from process_geos() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +} +} \seealso{ \code{\link[=process_geos]{process_geos()}} } diff --git a/man/calc_gmted.Rd b/man/calc_gmted.Rd index 58c19e32..b9ae2523 100644 --- a/man/calc_gmted.Rd +++ b/man/calc_gmted.Rd @@ -28,17 +28,14 @@ containing identifier for each unique coordinate location.} \item{fun}{character(1). Function used to summarize multiple raster cells within sites location buffer (Default = \code{mean}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract elevation values at point locations. Returns a \code{data.frame} @@ -47,6 +44,19 @@ Elevation variable column name reflects the elevation statistic, spatial resolution of \code{from}, and circular buffer radius (ie. Breakline Emphasis at 7.5 arc-second resolution with 0 meter buffer: breakline_emphasis_r75_0). } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_gmted( + from = gmted, # derived from process_gmted() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +} +} \seealso{ \code{\link[=process_gmted]{process_gmted()}} } diff --git a/man/calc_gridmet.Rd b/man/calc_gridmet.Rd index 2a28b10a..9dcfa1d2 100644 --- a/man/calc_gridmet.Rd +++ b/man/calc_gridmet.Rd @@ -28,23 +28,33 @@ containing identifier for each unique coordinate location.} \item{fun}{character(1). Function used to summarize multiple raster cells within sites location buffer (Default = \code{mean}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract gridMET values at point locations. Returns a \code{data.frame} object containing \code{locs_id} and gridMET variable. gridMET variable column name reflects the gridMET variable and circular buffer radius. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_gridmet( + from = gridmet, # derived from process_gridmet() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +} +} \seealso{ \code{\link[=process_gridmet]{process_gridmet()}} } diff --git a/man/calc_hms.Rd b/man/calc_hms.Rd index f1fc2588..885962ea 100644 --- a/man/calc_hms.Rd +++ b/man/calc_hms.Rd @@ -4,7 +4,7 @@ \alias{calc_hms} \title{Calculate wildfire smoke covariates} \usage{ -calc_hms(from, locs, locs_id = NULL, radius = 0, ...) +calc_hms(from, locs, locs_id = NULL, radius = 0, geom = FALSE, ...) } \arguments{ \item{from}{SpatVector(1). Output of \code{process_hms()}.} @@ -17,6 +17,10 @@ containing identifier for each unique coordinate location.} \item{radius}{integer(1). Circular buffer distance around site locations. (Default = 0).} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} + \item{...}{Placeholders.} } \value{ @@ -28,6 +32,18 @@ Extract wildfire smoke plume values at point locations. Returns a for wildfire smoke plume density inherited from \code{from} (0 = point not covered by wildfire smoke plume; 1 = point covered by wildfire smoke plume). } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_hms( + from = hms, # derived from process_hms() example + locs = loc, + locs_id = "id", + radius = 0, + geom = FALSE +) +} +} \seealso{ \code{\link[=process_hms]{process_hms()}} } diff --git a/man/calc_koppen_geiger.Rd b/man/calc_koppen_geiger.Rd index 23b08083..101ced2d 100644 --- a/man/calc_koppen_geiger.Rd +++ b/man/calc_koppen_geiger.Rd @@ -20,17 +20,14 @@ a unique identifier field named \code{locs_id}} \item{locs_id}{character(1). Name of unique identifier.} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract climate classification values at point locations. Returns a @@ -39,11 +36,22 @@ binary (0 = point not in climate region; 1 = point in climate region) variables for each climate classification region. } \note{ -The returned \code{data.frame} object contains a +The returned object contains a \verb{$description} column to represent the temporal range covered by the dataset. For more information, see \url{https://www.nature.com/articles/sdata2018214}. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_koppen_geiger( + from = kg, # derived from process_koppen_geiger() example + locs = loc, + locs_id = "id", + geom = FALSE +) +} +} \seealso{ \code{\link{process_koppen_geiger}} } diff --git a/man/calc_lagged.Rd b/man/calc_lagged.Rd index b067859b..6005a5b2 100644 --- a/man/calc_lagged.Rd +++ b/man/calc_lagged.Rd @@ -37,6 +37,26 @@ with geometry features of the same name. \code{locs_id}, and fixed columns of "lat" and "lon", follow the genre, variable, lag, buffer radius format adopted in \code{calc_setcolumns()}. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +terracliamte_covar <- calc_terraclimate( + from = terraclimate, # derived from process_terraclimate() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +calc_lagged( + from = terracliamte_covar, + locs_id = "id", + date = c("2023-01-02", "2023-01-10"), + lag = 1, + time_id = "time" +) +} +} \seealso{ \code{\link[=calc_covariates]{calc_covariates()}} } diff --git a/man/calc_merra2.Rd b/man/calc_merra2.Rd index 9a8e86ff..87a09842 100644 --- a/man/calc_merra2.Rd +++ b/man/calc_merra2.Rd @@ -28,17 +28,14 @@ containing identifier for each unique coordinate location.} \item{fun}{character(1). Function used to summarize multiple raster cells within sites location buffer (Default = \code{mean}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract meteorological and atmospheric values at point locations. Returns a @@ -46,6 +43,19 @@ Extract meteorological and atmospheric values at point locations. Returns a pressure level, and meteorological or atmospheric variable. Variable column name reflects variable and circular buffer radius. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_merra2( + from = merra2, # derived from process_merra2() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +} +} \seealso{ \code{\link[=calc_geos]{calc_geos()}}, \code{\link[=process_merra2]{process_merra2()}} } diff --git a/man/calc_narr.Rd b/man/calc_narr.Rd index ae6701b6..67c6d665 100644 --- a/man/calc_narr.Rd +++ b/man/calc_narr.Rd @@ -28,17 +28,14 @@ containing identifier for each unique coordinate location.} \item{fun}{character(1). Function used to summarize multiple raster cells within sites location buffer (Default = \code{mean}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract meteorological values at point locations. Returns a \code{data.frame} @@ -46,6 +43,19 @@ object containing \code{locs_id}, date, vertical pressure level, and meteorological variable. Meteorological variable column name reflects variable and circular buffer radius. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_narr( + from = narr, # derived from process_narr() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +} +} \seealso{ \code{\link{process_narr}} } diff --git a/man/calc_nei.Rd b/man/calc_nei.Rd index f66e6113..8d02c7b3 100644 --- a/man/calc_nei.Rd +++ b/man/calc_nei.Rd @@ -22,6 +22,16 @@ a data.frame object \description{ Calculate road emissions covariates } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_nei( + from = nei, # derived from process_nei example, + locs = loc, + locs_id = "id" +) +} +} \seealso{ \code{\link{process_nei}} } diff --git a/man/calc_nlcd.Rd b/man/calc_nlcd.Rd index 237a6bc3..321ab858 100644 --- a/man/calc_nlcd.Rd +++ b/man/calc_nlcd.Rd @@ -36,19 +36,16 @@ Maximum possible value is \code{2^31 - 1}. Only valid when \code{mode = "exact"}. See \code{\link[exactextractr:exact_extract]{exactextractr::exact_extract}} for details.} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{nthreads}{integer(1). Number of threads to be used} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Compute ratio of land cover class in circle buffers around points. Returns @@ -64,6 +61,18 @@ intersecting with the buffer. The \code{"exact"} may be more accurate but uses more memory as it will account for the partial overlap with the buffer. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_nlcd( + from = nlcd, # derived from process_nlcd() example + locs = loc, + locs_id = "id", + mode = "exact", + geom = FALSE +) +} +} \seealso{ \code{\link{process_nlcd}} } diff --git a/man/calc_return_locs.Rd b/man/calc_return_locs.Rd new file mode 100644 index 00000000..5a01955b --- /dev/null +++ b/man/calc_return_locs.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/calculate_covariates_auxiliary.R +\name{calc_return_locs} +\alias{calc_return_locs} +\title{Prepare covariates for return} +\usage{ +calc_return_locs(covar, POSIXt = TRUE, geom, crs) +} +\arguments{ +\item{covar}{data.frame(1). Calculated covariates \code{data.frame}.} + +\item{POSIXt}{logical(1). Should the time values in \code{covar} be of class +\code{POSIXt}? If \code{FALSE}, the time values will be checked for integer class +(year and year-month).} + +\item{geom}{logical(1). Should \code{covar} be returned as a +\code{data.frame}? Default is \code{FALSE}.} + +\item{crs}{terra::crs(1). Coordinate reference system (inherited from +\code{from}).} +} +\description{ +Check the time column for proper class and, if \code{geom = TRUE}, +transform \code{data.frame} into a \code{SpatVector} object. +} +\author{ +Mitchell Manware +} +\keyword{auxiliary} diff --git a/man/calc_sedac_groads.Rd b/man/calc_sedac_groads.Rd index 2d23b4f2..e2332317 100644 --- a/man/calc_sedac_groads.Rd +++ b/man/calc_sedac_groads.Rd @@ -28,17 +28,14 @@ containing identifier for each unique coordinate location.} \item{fun}{function(1). Function used to summarize the length of roads within sites location buffer (Default is \code{sum}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object with three columns. +a data.frame or SpatVector object } \description{ Prepared groads data is clipped with the buffer polygons @@ -52,6 +49,19 @@ Unit is km / sq km. The returned \code{data.frame} object contains a \verb{$time} column to represent the temporal range covered by the dataset. For more information, see \url{https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1/metadata}. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_sedac_groads( + from = groads, # derived from process_sedac_groads() example + locs = loc, + locs_id = "id", + radius = 1000, + fun = "sum", + geom = FALSE +) +} +} \seealso{ \code{\link{process_sedac_groads}} } diff --git a/man/calc_sedac_population.Rd b/man/calc_sedac_population.Rd index 764b42a3..193792e4 100644 --- a/man/calc_sedac_population.Rd +++ b/man/calc_sedac_population.Rd @@ -28,17 +28,14 @@ containing identifier for each unique coordinate location.} \item{fun}{character(1). Function used to summarize multiple raster cells within sites location buffer (Default = \code{mean}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract population density values at point locations. Returns a @@ -46,6 +43,19 @@ Extract population density values at point locations. Returns a density variable. Population density variable column name reflects spatial resolution of \code{from} and circular buffer radius. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_sedac_population( + from = pop, # derived from process_sedac_population() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +} +} \seealso{ \code{\link[=process_sedac_population]{process_sedac_population()}} } diff --git a/man/calc_setcolumns.Rd b/man/calc_setcolumns.Rd index 449abd50..a86a9cc6 100644 --- a/man/calc_setcolumns.Rd +++ b/man/calc_setcolumns.Rd @@ -7,8 +7,9 @@ calc_setcolumns(from, lag, dataset, locs_id) } \arguments{ -\item{from}{data.frame(1). Calculated covariates as returned from -\code{calc_covariates()} or a source specific covariate function.} +\item{from}{data.frame(1) or SpatVector(1). Calculated covariates as +returned from \code{calc_covariates()} or a source specific covariate +function.} \item{lag}{integer(1). Temporal lag.} diff --git a/man/calc_temporal_dummies.Rd b/man/calc_temporal_dummies.Rd index f786829d..0b6fd452 100644 --- a/man/calc_temporal_dummies.Rd +++ b/man/calc_temporal_dummies.Rd @@ -25,6 +25,16 @@ Calculate temporal dummy covariates at point locations. Returns a \code{data.frame} object with \code{locs_id}, year binary variable for each value in \code{year}, and month and day of week binary variables. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_temporal_dummies( + locs = loc, + locs_id = "id", + year = seq(2018L, 2022L) +) +} +} \author{ Insang Song } diff --git a/man/calc_terraclimate.Rd b/man/calc_terraclimate.Rd index 4f97714d..c038ae7f 100644 --- a/man/calc_terraclimate.Rd +++ b/man/calc_terraclimate.Rd @@ -28,17 +28,14 @@ containing identifier for each unique coordinate location.} \item{fun}{character(1). Function used to summarize multiple raster cells within sites location buffer (Default = \code{mean}).} -\item{geom}{logical(1). Should the geometry of \code{locs} be returned in the -\code{data.frame}? Default is \code{FALSE}. If \code{geom = TRUE} and \code{locs} contain -polygon geometries, the \verb{$geometry} column in the returned data frame may -make the \code{data.frame} difficult to read due to long geometry strings. The -coordinate reference system of the \verb{$geometry} is the coordinate -reference system of \code{from}.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract TerraClimate values at point locations. Returns a \code{data.frame} @@ -51,6 +48,19 @@ TerraClimate data has monthly temporal resolution, so the \verb{$time} column will contain the year and month in YYYYMM format (ie. January, 2018 = 201801). } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_terraclimate( + from = terraclimate, # derived from process_terraclimate() example + locs = loc, + locs_id = "id", + radius = 0, + fun = "mean", + geom = FALSE +) +} +} \seealso{ \code{\link[=process_terraclimate]{process_terraclimate()}} } diff --git a/man/calc_tri.Rd b/man/calc_tri.Rd index 9395eadd..e7aa46ed 100644 --- a/man/calc_tri.Rd +++ b/man/calc_tri.Rd @@ -36,6 +36,17 @@ object containing \code{locs_id} and variables for each chemical in \note{ U.S. context. } +\examples{ +\dontrun{ +loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) +calc_tri( + from = tri, # derived from process_tri() example + locs = loc, + locs_id = "id", + radius = c(1e3L, 1e4L, 5e4L) +) +} +} \seealso{ \code{\link{calc_sedc}}, \code{\link{process_tri}} } diff --git a/man/download_aqs.Rd b/man/download_aqs.Rd index 22500b67..33884b97 100644 --- a/man/download_aqs.Rd +++ b/man/download_aqs.Rd @@ -7,8 +7,7 @@ download_aqs( parameter_code = 88101, resolution_temporal = "daily", - year_start = 2018, - year_end = 2022, + year = c(2018, 2022), url_aqs_download = "https://aqs.epa.gov/aqsweb/airdata/", directory_to_save = NULL, acknowledgement = FALSE, @@ -27,11 +26,7 @@ EPA pollutant parameter code. For details, please refer to Name of column containing POC values. Currently, no value other than \code{"daily"} works.} -\item{year_start}{integer(1). length of 4. -Start year for downloading data.} - -\item{year_end}{integer(1). length of 4. -End year for downloading data.} +\item{year}{character(2). length of 4 each. Start/end years for downloading data.} \item{url_aqs_download}{character(1). URL to the AQS pre-generated datasets.} @@ -64,6 +59,19 @@ NULL; Zip and/or data files will be downloaded and stored in \description{ The \code{download_aqs()} function accesses and downloads Air Quality System (AQS) data from the \href{https://aqs.epa.gov/aqsweb/airdata/download_files.html}{U.S. Environmental Protection Agency's (EPA) Pre-Generated Data Files}. } +\examples{ +\dontrun{ +download_aqs( + parameter_code = 88101, + resolution_temporal = "daily", + year = c(2022, 2023), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mariana Kassien, Insang Song, Mitchell Manware } diff --git a/man/download_cropscape.Rd b/man/download_cropscape.Rd index 82b6e0fa..88f56aac 100644 --- a/man/download_cropscape.Rd +++ b/man/download_cropscape.Rd @@ -56,10 +56,12 @@ JSON files should be found at STAC catalog of OpenLandMap \examples{ \dontrun{ download_cropscape( - 2020, "~/data", + year = 2020, + source = "USDA", + directory_to_save = "./data", acknowledgement = TRUE, download = TRUE, - unzip = TRUE + remove_command = TRUE ) } } diff --git a/man/download_data.Rd b/man/download_data.Rd index 1a1bba95..59285b77 100644 --- a/man/download_data.Rd +++ b/man/download_data.Rd @@ -7,8 +7,8 @@ download_data( dataset_name = c("aqs", "ecoregion", "ecoregions", "geos", "gmted", "koppen", "koppengeiger", "merra2", "merra", "modis", "narr", "nlcd", "noaa", "sedac_groads", - "sedac_population", "groads", "population", "plevels", "hms", "smoke", "tri", "nei", - "gridmet", "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap"), + "sedac_population", "groads", "population", "hms", "smoke", "tri", "nei", "gridmet", + "terraclimate", "huc", "cropscape", "cdl", "prism", "olm", "openlandmap"), directory_to_save = NULL, acknowledgement = FALSE, ... @@ -34,6 +34,19 @@ The \code{download_data()} function accesses and downloads atmospheric, meteorol \item All download function names are in \code{download_*} formats } } +\examples{ +\dontrun{ +download_data( + dataset_name = "narr", + variables = "weasd", + year = c(2023, 2023), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_commands = TRUE +) +} +} \seealso{ For details of each download function per dataset, Please refer to: diff --git a/man/download_ecoregion.Rd b/man/download_ecoregion.Rd index bd7d71d0..fca9530b 100644 --- a/man/download_ecoregion.Rd +++ b/man/download_ecoregion.Rd @@ -64,6 +64,16 @@ in wget command) file in ./inst/extdata. The instruction above is for certificate updates in the future. } } +\examples{ +\dontrun{ +download_ecoregion( + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Insang Song } diff --git a/man/download_geos.Rd b/man/download_geos.Rd index 766cfc67..d9a9bc24 100644 --- a/man/download_geos.Rd +++ b/man/download_geos.Rd @@ -8,8 +8,7 @@ download_geos( collection = c("aqc_tavg_1hr_g1440x721_v1", "chm_tavg_1hr_g1440x721_v1", "met_tavg_1hr_g1440x721_x1", "xgc_tavg_1hr_g1440x721_x1", "chm_inst_1hr_g1440x721_p23", "met_inst_1hr_g1440x721_p23"), - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2018-01-01", "2018-01-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -19,11 +18,8 @@ download_geos( \arguments{ \item{collection}{character(1). GEOS-CF data collection file name.} -\item{date_start}{character(1). length of 10. Start date for downloading -data. Format YYYY-MM-DD (ex. September 1, 2023 = \code{"2023-09-01"}).} - -\item{date_end}{character(1). length of 10. End date for downloading data. -Format YYYY-MM-DD (ex. September 1, 2023 = \code{"2023-09-01"}).} +\item{date}{character(2). length of 10 each. Start/end date for downloading data. +Format "YYYY-MM-DD" (ex. January 1, 2018 = \code{"2018-01-01"}).} \item{directory_to_save}{character(1). Directory to save data. Sub-directories will be created within \code{directory_to_save} for each @@ -49,6 +45,18 @@ collection-specific folder within \code{directory_to_save}. The \code{download_geos()} function accesses and downloads various atmospheric composition collections from \href{https://gmao.gsfc.nasa.gov/GEOS_systems/}{NASA's Global Earth Observing System (GEOS) model}. } +\examples{ +\dontrun{ +download_geos( + collection = "aqc_tavg_1hr_g1440x721_v1", + date = c("2024-01-01", "2024-01-05"), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_gmted.Rd b/man/download_gmted.Rd index ce6440e6..f2f48d77 100644 --- a/man/download_gmted.Rd +++ b/man/download_gmted.Rd @@ -54,6 +54,18 @@ The \code{download_gmted()} function accesses and downloads Global Multi-resolution Terrain Elevation Data (GMTED2010) from \href{https://www.usgs.gov/coastal-changes-and-impacts/gmted2010}{U.S. Geological Survey and National Geospatial-Intelligence Agency}. } +\examples{ +\dontrun{ +download_gmted( + statistic = "Breakline Emphasis", + resolution = "7.5 arc-seconds", + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_gridmet.Rd b/man/download_gridmet.Rd index 4ef5c8cc..60125634 100644 --- a/man/download_gridmet.Rd +++ b/man/download_gridmet.Rd @@ -6,8 +6,7 @@ \usage{ download_gridmet( variables = NULL, - year_start = 2022, - year_end = 2022, + year = c(2018, 2022), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -19,11 +18,7 @@ download_gridmet( for variable names and acronym codes. (Note: variable "Burning Index" has code "bi" and variable "Energy Release Component" has code "erc").} -\item{year_start}{integer(1). length of 4. Start of year range for -downloading data.} - -\item{year_end}{integer(1). length of 4. End of year range for downloading -data.} +\item{year}{character(2). length of 4 each. Start/end years for downloading data.} \item{directory_to_save}{character(1). Directory(s) to save downloaded data files.} @@ -47,6 +42,18 @@ folder within \code{directory_to_save}. \description{ The \code{download_gridmet} function accesses and downloads gridded surface meteorological data from the \href{https://www.climatologylab.org/gridmet.html}{University of California Merced Climatology Lab's gridMET dataset}. } +\examples{ +\dontrun{ +download_gridmet( + variables = "Precipitation", + year = c(2023, 2024), + directory_to_save = "./data" + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware } diff --git a/man/download_hms.Rd b/man/download_hms.Rd index 91c8930c..75b0a664 100644 --- a/man/download_hms.Rd +++ b/man/download_hms.Rd @@ -6,8 +6,7 @@ \usage{ download_hms( data_format = "Shapefile", - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2018-01-01", "2018-01-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -19,11 +18,7 @@ download_hms( \arguments{ \item{data_format}{character(1). "Shapefile" or "KML".} -\item{date_start}{character(1). length of 10. Start date for downloading -data. Format YYYY-MM-DD (ex. September 1, 2023 is \code{"2023-09-01"}).} - -\item{date_end}{character(1). length of 10. End date for downloading data. -Format YYYY-MM-DD (ex. September 10, 2023 is \code{"2023-09-10"}).} +\item{date}{character(2). length of 10 each. Start/end date for downloading data.} \item{directory_to_save}{character(1). Directory to save data. If \code{data_format = "Shapefile"}, two sub-directories will be created for the @@ -59,6 +54,18 @@ respective sub-directories within \code{directory_to_save}. The \code{download_hms()} function accesses and downloads wildfire smoke plume coverage data from \href{https://www.ospo.noaa.gov/Products/land/hms.html#0}{NOAA's Hazard Mapping System Fire and Smoke Product}. } +\examples{ +\dontrun{ +download_hms( + data_format = "Shapefile", + date = c("2024-01-01", "2024-01-05"), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_huc.Rd b/man/download_huc.Rd index ec3c2e7e..4d013279 100644 --- a/man/download_huc.Rd +++ b/man/download_huc.Rd @@ -53,10 +53,14 @@ please visit \href{https://www.epa.gov/waterdata/get-nhdplus-national-hydrograph } \examples{ \dontrun{ -download_huc("Lower48", "Seamless", "/data" - acknowledgement = TRUE, - download = TRUE, - unzip = TRUE) +download_huc( + region = "Lower48", + type = "Seamless", + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) } } \author{ diff --git a/man/download_koppen_geiger.Rd b/man/download_koppen_geiger.Rd index 926cd4f5..e7bba6ba 100644 --- a/man/download_koppen_geiger.Rd +++ b/man/download_koppen_geiger.Rd @@ -55,6 +55,18 @@ climate classification data from the \emph{Present and future Köppen-Geiger climate classification maps at 1-km resolution}(\href{https://www.nature.com/articles/sdata2018214}{link for article}; \href{https://figshare.com/articles/dataset/Present_and_future_K_ppen-Geiger_climate_classification_maps_at_1-km_resolution/6396959/2}{link for data}). } +\examples{ +\dontrun{ +download_koppen_geiger( + data_resolution = "0.0083", + time_period = "Present", + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_merra2.Rd b/man/download_merra2.Rd index 070dc701..9a8e815a 100644 --- a/man/download_merra2.Rd +++ b/man/download_merra2.Rd @@ -16,8 +16,7 @@ download_merra2( "tavg3_3d_mst_Np", "tavg3_3d_rad_Np", "tavg3_3d_tdt_Np", "tavg3_3d_trb_Np", "tavg3_3d_udt_Np", "tavg3_3d_odt_Np", "tavg3_3d_qdt_Np", "tavg3_3d_asm_Nv", "tavg3_3d_cld_Nv", "tavg3_3d_mst_Nv", "tavg3_3d_rad_Nv", "tavg3_2d_glc_Nx"), - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2018-01-01", "2018-01-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -27,11 +26,8 @@ download_merra2( \arguments{ \item{collection}{character(1). MERRA-2 data collection file name.} -\item{date_start}{character(1). length of 10. Start date for downloading -data. Format YYYY-MM-DD (ex. September 1, 2023 is \code{"2023-09-01"}).} - -\item{date_end}{character(1). length of 10. End date for downloading data. -Format YYYY-MM-DD (ex. September 1, 2023 is \code{"2023-09-01"}).} +\item{date}{character(2). length of 10 each. Start/end date for downloading data. +Format "YYYY-MM-DD" (ex. January 1, 2018 = \code{"2018-01-01"}).} \item{directory_to_save}{character(1). Directory to save data.} @@ -55,6 +51,18 @@ collection-specific folder within \code{directory_to_save}. The \code{download_merra2()} function accesses and downloads various meteorological and atmospheric collections from \href{https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/}{NASA's Modern-Era Retrospective analysis for Research and Applications, Version 2 (MERRA-2) model}. } +\examples{ +\dontrun{ +download_merra2( + collection = "inst1_2d_int_Nx", + date = c("2024-01-01", "2024-01-05"), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_modis.Rd b/man/download_modis.Rd index 85e56764..df00db3b 100644 --- a/man/download_modis.Rd +++ b/man/download_modis.Rd @@ -11,8 +11,7 @@ download_modis( vertical_tiles = c(3, 6), mod06_links = NULL, nasa_earth_data_token = NULL, - date_start = "2023-09-01", - date_end = "2023-09-01", + date = c("2023-09-01", "2023-09-01"), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -38,11 +37,8 @@ from NASA LPDAAC. Default is \code{NULL}.} Token for downloading data from NASA. Should be set before trying running the function.} -\item{date_start}{character(1). length of 10. Start date for downloading -data. Format YYYY-MM-DD (ex. September 1, 2023 is \code{"2023-09-01"}).} - -\item{date_end}{character(1). length of 10. End date for downloading data. -Format YYYY-MM-DD (ex. September 1, 2023 is \code{"2023-09-01"}).} +\item{date}{character(2). length of 10 each. Start/end date for downloading data. +Format "YYYY-MM-DD" (ex. January 1, 2018 = \code{"2018-01-01"}).} \item{directory_to_save}{character(1). Directory to save data.} @@ -68,12 +64,28 @@ combinations. An exception is MOD06_L2 product, which is produced every five minutes every day. } \note{ -\code{date_start} and \code{date_end} should be in the same year. +Both dates in \code{date} should be in the same year. Directory structure looks like input/modis/raw/\{version\}/\{product\}/\{year\}/\{day_of_year\} Please note that \code{date_start} and \code{date_end} are ignored if \code{product == 'MOD06_L2'}. } +\examples{ +\dontrun{ +download_modis( + product = "MOD09GA", + version = "61", + horizontal_tiles = c(8, 10), + vertical_tiles = c(4, 5), + date = c("2024-01-01", "2024-01-10"), + nasa_earth_data_token = readLines("~/pre_generated_token.txt"), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_narr.Rd b/man/download_narr.Rd index 026e2a47..91b68ff6 100644 --- a/man/download_narr.Rd +++ b/man/download_narr.Rd @@ -6,8 +6,7 @@ \usage{ download_narr( variables = NULL, - year_start = 2022, - year_end = 2022, + year = c(2018, 2022), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -18,11 +17,7 @@ download_narr( \item{variables}{character. Variable(s) name acronym. See \href{https://ftp.cpc.ncep.noaa.gov/NARR/fixed/merged_land_AWIP32corrected.pdf}{List of Variables in NARR Files} for variable names and acronym codes.} -\item{year_start}{integer(1). length of 4. Start of year range for -downloading data.} - -\item{year_end}{integer(1). length of 4. End of year range for downloading -data.} +\item{year}{character(2). length of 4 each. Start/end years for downloading data.} \item{directory_to_save}{character(1). Directory(s) to save downloaded data files.} @@ -49,6 +44,18 @@ The \code{download_narr} function accesses and downloads daily meteorological da \note{ "Pressure levels" variables contain variable values at 29 atmospheric levels, ranging from 1000 hPa to 100 hPa. All pressure levels data will be downloaded for each variable. } +\examples{ +\dontrun{ +download_narr( + variables = c("weasd", "omega"), + year = c(2022, 2023), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_nei.Rd b/man/download_nei.Rd index 5b842b01..3ef8ea7f 100644 --- a/man/download_nei.Rd +++ b/man/download_nei.Rd @@ -8,7 +8,7 @@ download_nei( epa_certificate_path = system.file("extdata/cacert_gaftp_epa.pem", package = "amadeus"), certificate_url = "http://cacerts.digicert.com/DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt", - year_target = c(2017L, 2020L), + year = c(2017L, 2020L), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -24,7 +24,7 @@ for EPA DataCommons. Default is \item{certificate_url}{character(1). URL to certificate file. See notes for details.} -\item{year_target}{Available years of NEI data. +\item{year}{Available years of NEI data. Default is \code{c(2017L, 2020L)}.} \item{directory_to_save}{character(1). Directory to save data. Two @@ -65,6 +65,17 @@ in wget command) file in ./inst/extdata. The instruction above is for certificate updates in the future. } } +\examples{ +\dontrun{ +download_nei( + year = c(2017L, 2020L), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Ranadeep Daw, Insang Song } diff --git a/man/download_nlcd.Rd b/man/download_nlcd.Rd index 521b1ad0..d8445cc5 100644 --- a/man/download_nlcd.Rd +++ b/man/download_nlcd.Rd @@ -53,6 +53,18 @@ The \code{download_nlcd()} function accesses and downloads land cover data from the \href{https://www.mrlc.gov/data}{Multi-Resolution Land Characteristics (MRLC) Consortium's National Land Cover Database (NLCD) products data base}. } +\examples{ +\dontrun{ +download_nlcd( + collection = "Coterminous United States", + year = 2021, + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_olm.Rd b/man/download_olm.Rd index e02d965d..7c56aa50 100644 --- a/man/download_olm.Rd +++ b/man/download_olm.Rd @@ -120,6 +120,18 @@ Accesses and downloads OpenLandMap data from the \href{https://www.openlandmap.o Users may want to check the available assets to download data directly. For developers: JSON files should be found at STAC catalog of OpenLandMap when updated. } +\examples{ +\dontrun{ +download_olm( + product = "no2_s5p.l3.trop.tmwm", + format = "tif", + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \seealso{ \link{list_stac_files} } diff --git a/man/download_prism.Rd b/man/download_prism.Rd index 3dadecf5..4ba33d09 100644 --- a/man/download_prism.Rd +++ b/man/download_prism.Rd @@ -77,7 +77,7 @@ download_prism( element = "ppt", data_type = "ts", format = "nc", - directory_to_save = "~/data", + directory_to_save = "./data", acknowledgement = TRUE, download = TRUE, remove_command = TRUE diff --git a/man/download_sedac_groads.Rd b/man/download_sedac_groads.Rd index cda88773..33b7932b 100644 --- a/man/download_sedac_groads.Rd +++ b/man/download_sedac_groads.Rd @@ -52,6 +52,18 @@ respective sub-directories within \code{directory_to_save}. The \code{download_sedac_groads()} function accesses and downloads roads data from \href{https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1/data-download}{NASA's Global Roads Open Access Data Set (gROADS), v1 (1980-2010)}. } +\examples{ +\dontrun{ +download_sedac_groads( + data_region = "Americas", + data_format = "Shapefile", + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_sedac_population.Rd b/man/download_sedac_population.Rd index 73840a15..9016ed97 100644 --- a/man/download_sedac_population.Rd +++ b/man/download_sedac_population.Rd @@ -56,6 +56,19 @@ respective sub-directories within \code{directory_to_save}. The \code{download_sedac_population()} function accesses and downloads population density data from \href{https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11}{NASA's UN WPP-Adjusted Population Density, v4.11}. } +\examples{ +\dontrun{ +download_sedac_population( + data_resolution = "30 second", + data_format = "GeoTIFF", + year = "2020", + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_terraclimate.Rd b/man/download_terraclimate.Rd index 1f1f35de..d68e63e9 100644 --- a/man/download_terraclimate.Rd +++ b/man/download_terraclimate.Rd @@ -6,8 +6,7 @@ \usage{ download_terraclimate( variables = NULL, - year_start = 2022, - year_end = 2022, + year = c(2018, 2022), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -18,11 +17,7 @@ download_terraclimate( \item{variables}{character(1). Variable(s) name(s). See \href{https://climate.northwestknowledge.net/TERRACLIMATE/index_directDownloads.php}{TerraClimate Direct Downloads} for variable names and acronym codes.} -\item{year_start}{integer(1). length of 4. Start of year range for -downloading data.} - -\item{year_end}{integer(1). length of 4. End of year range for downloading -data.} +\item{year}{character(2). length of 4 each. Start/end years for downloading data.} \item{directory_to_save}{character(1). Directory(s) to save downloaded data files.} @@ -46,6 +41,18 @@ folder within \code{directory_to_save}. \description{ The \code{download_terraclimate} function accesses and downloads climate and water balance data from the \href{https://www.climatologylab.org/terraclimate.html}{University of California Merced Climatology Lab's TerraClimate dataset}. } +\examples{ +\dontrun{ +download_gridmet( + variables = "Precipitation", + year = c(2023, 2024), + directory_to_save = "./data" + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_tri.Rd b/man/download_tri.Rd index 56ea0435..31aed815 100644 --- a/man/download_tri.Rd +++ b/man/download_tri.Rd @@ -5,8 +5,7 @@ \title{Download toxic release data} \usage{ download_tri( - year_start = 2018L, - year_end = 2022L, + year = c(2018L, 2022L), directory_to_save = NULL, acknowledgement = FALSE, download = FALSE, @@ -14,9 +13,7 @@ download_tri( ) } \arguments{ -\item{year_start}{integer(1). length of 4. Start year for downloading data.} - -\item{year_end}{integer(1). length of 4. End year for downloading data.} +\item{year}{character(2). length of 4 each. Start/end years for downloading data.} \item{directory_to_save}{character(1). Directory to download files.} @@ -38,6 +35,17 @@ NULL; Comma-separated value (CSV) files will be stored in \description{ The \code{download_tri()} function accesses and downloads toxic release data from the \href{https://www.epa.gov/toxics-release-inventory-tri-program/find-understand-and-use-tri}{U.S. Environmental Protection Agency's (EPA) Toxic Release Inventory (TRI) Program}. } +\examples{ +\dontrun{ +download_tri( + year = c(2020L, 2021L), + directory_to_save = "./data", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +} +} \author{ Mariana Kassien, Insang Song } diff --git a/man/process_aqs.Rd b/man/process_aqs.Rd index f8c7fa29..e6161f8c 100644 --- a/man/process_aqs.Rd +++ b/man/process_aqs.Rd @@ -47,6 +47,16 @@ Choose \code{date} and \code{mode} values with caution. The function may return a massive data.table, resulting in a long processing time or even a crash. } +\examples{ +\dontrun{ +aqs <- process_aqs( + path = "./data/aqs_daily_example.csv", + date = c("2022-12-01", "2023-01-31"), + mode = "full", + return_format = "terra" +) +} +} \seealso{ \itemize{ \item \code{\link[=download_aqs]{download_aqs()}} diff --git a/man/process_collection.Rd b/man/process_collection.Rd index dc9f206e..d94e6685 100644 --- a/man/process_collection.Rd +++ b/man/process_collection.Rd @@ -1,17 +1,9 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/process.R, R/process_auxiliary.R +% Please edit documentation in R/process_auxiliary.R \name{process_collection} \alias{process_collection} \title{Process GEOS-CF and MERRA2 collection codes} \usage{ -process_collection( - path, - source, - collection = FALSE, - date = FALSE, - datetime = FALSE -) - process_collection( path, source, @@ -35,14 +27,9 @@ on provided file path(s).} (YYYYMoMoDDHHMiMi) based on provided file path(s).} } \value{ -character - character } \description{ -Identify the GEOS-CF or MERRA2 collection based on the file path. - Identify the GEOS-CF or MERRA2 collection based on the file path. } \keyword{auxiliary} -\keyword{auxillary} diff --git a/man/process_covariates.Rd b/man/process_covariates.Rd index 20e34bb1..049a361f 100644 --- a/man/process_covariates.Rd +++ b/man/process_covariates.Rd @@ -33,6 +33,16 @@ the underlying source-specific processing functions have been designed to operate on the raw data files. To avoid errors, \strong{do not edit the raw data files before passing to \code{process_covariates}}. } +\examples{ +\dontrun{ +narr <- process_covariates( + covariate = "narr", + date = c("2023-01-01", "2023-01-10"), + variable = "weasd", + path = "./data/weasd" +) +} +} \seealso{ \itemize{ \item diff --git a/man/process_cropscape.Rd b/man/process_cropscape.Rd index 040faaef..cb11ef73 100644 --- a/man/process_cropscape.Rd +++ b/man/process_cropscape.Rd @@ -4,13 +4,16 @@ \alias{process_cropscape} \title{Process CropScape data} \usage{ -process_cropscape(path = NULL, year = 2021, ...) +process_cropscape(path = NULL, year = 2021, extent = NULL, ...) } \arguments{ \item{path}{character giving CropScape data path} \item{year}{numeric giving the year of CropScape data used} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -22,6 +25,14 @@ returning a single \code{SpatRaster} object. Reads CropScape file of selected \code{year}. } +\examples{ +\dontrun{ +cropscape <- process_cropscape( + path = "./data/cropscape_example.tif", + year = 2020 +) +} +} \author{ Insang Song } diff --git a/man/process_ecoregion.Rd b/man/process_ecoregion.Rd index dc74c786..e69f5bd7 100644 --- a/man/process_ecoregion.Rd +++ b/man/process_ecoregion.Rd @@ -4,11 +4,14 @@ \alias{process_ecoregion} \title{Process ecoregion data} \usage{ -process_ecoregion(path = NULL, ...) +process_ecoregion(path = NULL, extent = NULL, ...) } \arguments{ \item{path}{character(1). Path to Ecoregion Shapefiles} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -23,6 +26,13 @@ The function will fix Tukey's bridge in Portland, ME. This fix will ensure that the EPA air quality monitoring sites will be located within the ecoregion. } +\examples{ +\dontrun{ +ecoregion <- process_ecoregion( + path = "./data/epa_ecoregion.gpkg" +) +} +} \author{ Insang Song } diff --git a/man/process_geos.Rd b/man/process_geos.Rd index fdf9b5dc..d4ad60a3 100644 --- a/man/process_geos.Rd +++ b/man/process_geos.Rd @@ -8,6 +8,7 @@ process_geos( date = c("2018-01-01", "2018-01-01"), variable = NULL, path = NULL, + extent = NULL, ... ) } @@ -18,6 +19,9 @@ process_geos( \item{path}{character(1). Directory with downloaded netCDF (.nc4) files.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -31,6 +35,15 @@ composition data, returning a single \code{SpatRaster} object. Layer names of the returned \code{SpatRaster} object contain the variable, pressure level, date, and hour. } +\examples{ +\dontrun{ +geos <- process_geos( + date = c("2024-01-01", "2024-01-10"), + variable = "O3", + path = "./data/aqc_tavg_1hr_g1440x721_v1" +) +} +} \author{ Mitchell Manware } diff --git a/man/process_gmted.Rd b/man/process_gmted.Rd index c26eeab0..0a03a98e 100644 --- a/man/process_gmted.Rd +++ b/man/process_gmted.Rd @@ -4,7 +4,7 @@ \alias{process_gmted} \title{Process elevation data} \usage{ -process_gmted(variable = NULL, path = NULL, ...) +process_gmted(variable = NULL, path = NULL, extent = NULL, ...) } \arguments{ \item{variable}{vector(1). Vector containing the GMTED statistic first and @@ -20,6 +20,9 @@ the resolution second. (Example: variable = c("Breakline Emphasis", \item{path}{character(1). Directory with downloaded GMTED "*_grd" folder containing .adf files.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -33,6 +36,14 @@ returning a single \code{SpatRaster} object. \code{SpatRaster} layer name indicates selected variable and resolution, and year of release (2010). } +\examples{ +\dontrun{ +gmted <- process_gmted( + variable = c("Breakline Emphasis", "7.5 arc-seconds"), + path = "./data/be75_grd" +) +} +} \author{ Mitchell Manware } diff --git a/man/process_gridmet.Rd b/man/process_gridmet.Rd index 11b23d3c..0b17d39b 100644 --- a/man/process_gridmet.Rd +++ b/man/process_gridmet.Rd @@ -7,7 +7,9 @@ process_gridmet( date = c("2023-09-01", "2023-09-01"), variable = NULL, - path = NULL + path = NULL, + extent = NULL, + ... ) } \arguments{ @@ -20,6 +22,11 @@ for variable names and acronym codes. (Note: variable "Burning Index" has code " "Energy Release Component" has code "erc").} \item{path}{character(1). Directory with downloaded netCDF (.nc) files.} + +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + +\item{...}{Placeholders.} } \value{ a \code{SpatRaster} object @@ -32,6 +39,15 @@ data, returning a single \code{SpatRaster} object. Layer names of the returned \code{SpatRaster} object contain the variable acronym, and date. } +\examples{ +\dontrun{ +gridmet <- process_gridmet( + date = c("2023-01-01", "2023-01-10"), + variable = "Precipitation", + path = "./data/pr" +) +} +} \author{ Mitchell Manware } diff --git a/man/process_hms.Rd b/man/process_hms.Rd index 3f110427..41163eeb 100644 --- a/man/process_hms.Rd +++ b/man/process_hms.Rd @@ -8,6 +8,7 @@ process_hms( date = c("2018-01-01", "2018-01-01"), variable = c("Light", "Medium", "Heavy"), path = NULL, + extent = NULL, ... ) } @@ -20,6 +21,9 @@ Format YYYY-MM-DD (ex. September 1, 2023 = "2023-09-01").} \item{path}{character(1). Directory with downloaded NOAA HMS data files.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -36,7 +40,7 @@ character will contain the selected density value and the sequence of dates for which no wildfire smoke plumes were detected (see "Examples"). } \examples{ -process_hms( +hms <- process_hms( date = c("2018-12-30", "2019-01-01"), variable = "Light", path = "../tests/testdata/hms/" diff --git a/man/process_huc.Rd b/man/process_huc.Rd index ca1b2700..19b7d637 100644 --- a/man/process_huc.Rd +++ b/man/process_huc.Rd @@ -4,7 +4,14 @@ \alias{process_huc} \title{Retrieve Hydrologic Unit Code (HUC) data} \usage{ -process_huc(path, layer_name = NULL, huc_level = NULL, huc_header = NULL, ...) +process_huc( + path, + layer_name = NULL, + huc_level = NULL, + huc_header = NULL, + extent = NULL, + ... +) } \arguments{ \item{path}{character. Path to the file or the directory containing HUC data.} @@ -16,6 +23,9 @@ process_huc(path, layer_name = NULL, huc_level = NULL, huc_header = NULL, ...) \item{huc_header}{character(1). The upper level HUC code header to extract lower level HUCs.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Arguments passed to \code{nhdplusTools::get_huc()}} } \value{ diff --git a/man/process_koppen_geiger.Rd b/man/process_koppen_geiger.Rd index 8e25a3d2..e185990b 100644 --- a/man/process_koppen_geiger.Rd +++ b/man/process_koppen_geiger.Rd @@ -4,7 +4,7 @@ \alias{process_koppen_geiger} \title{Process climate classification data} \usage{ -process_koppen_geiger(path = NULL, year = NULL, ...) +process_koppen_geiger(path = NULL, year = NULL, extent = NULL, ...) } \arguments{ \item{path}{character(1). Path to Koppen-Geiger @@ -12,6 +12,9 @@ climate zone raster file} \item{year}{data year. Not applicable for this function.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -21,6 +24,13 @@ a \code{SpatRaster} object The \code{process_koppen_geiger()} function imports and cleans raw climate classification data, returning a single \code{SpatRaster} object. } +\examples{ +\dontrun{ +kg <- process_koppen_geiger( + path = "./data/koppen_geiger_data.tif" +) +} +} \author{ Insang Song } diff --git a/man/process_merra2.Rd b/man/process_merra2.Rd index c4f173a9..42cb08f7 100644 --- a/man/process_merra2.Rd +++ b/man/process_merra2.Rd @@ -8,6 +8,7 @@ process_merra2( date = c("2018-01-01", "2018-01-01"), variable = NULL, path = NULL, + extent = NULL, ... ) } @@ -18,6 +19,9 @@ process_merra2( \item{path}{character(1). Directory with downloaded netCDF (.nc4) files.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -33,6 +37,15 @@ pressure level, date, and hour. Pressure level values utilized for layer names are taken directly from raw data and are not edited to retain pressure level information. } +\examples{ +\dontrun{ +merra2 <- process_merra2( + date = c("2024-01-01", "2024-01-10"), + variable = "CPT", + path = "./data/inst1_2d_int_Nx" +) +} +} \author{ Mitchell Manware } diff --git a/man/process_narr.Rd b/man/process_narr.Rd index 9764b1c3..fd674088 100644 --- a/man/process_narr.Rd +++ b/man/process_narr.Rd @@ -8,6 +8,7 @@ process_narr( date = c("2023-09-01", "2023-09-01"), variable = NULL, path = NULL, + extent = NULL, ... ) } @@ -21,6 +22,9 @@ for variable names and acronym codes.} \item{path}{character(1). Directory with downloaded netCDF (.nc) files.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -34,6 +38,15 @@ data, returning a single \code{SpatRaster} object. Layer names of the returned \code{SpatRaster} object contain the variable acronym, pressure level, and date. } +\examples{ +\dontrun{ +narr <- process_narr( + date = c("2022-01-01", "2022-01-10"), + variable = "weasd", + path = "./data/weasd" +) +} +} \author{ Mitchell Manware } diff --git a/man/process_nei.Rd b/man/process_nei.Rd index cfc6a522..fe8a46bd 100644 --- a/man/process_nei.Rd +++ b/man/process_nei.Rd @@ -35,6 +35,15 @@ or by using \code{tigris} package. This function does not reproject census bound Users should be aware of the coordinate system of census boundary data for other analyses. } +\examples{ +\dontrun{ +nei <- process_nei( + path = "./data", + county = system.file("gpkg/nc.gpkg", package = "sf"), + year = 2017 +) +} +} \author{ Insang Song } diff --git a/man/process_nlcd.Rd b/man/process_nlcd.Rd index 472012f4..c9d5cb7d 100644 --- a/man/process_nlcd.Rd +++ b/man/process_nlcd.Rd @@ -25,6 +25,14 @@ returning a single \code{SpatRaster} object. Reads NLCD file of selected \code{year}. } +\examples{ +\dontrun{ +nlcd <- process_nlcd( + path = "./data/", + year = 2021 +) +} +} \author{ Eva Marques, Insang Song } diff --git a/man/process_olm.Rd b/man/process_olm.Rd index 73980c52..422ae211 100644 --- a/man/process_olm.Rd +++ b/man/process_olm.Rd @@ -4,11 +4,14 @@ \alias{process_olm} \title{Process OpenLandMap data} \usage{ -process_olm(path = NULL, ...) +process_olm(path = NULL, extent = NULL, ...) } \arguments{ \item{path}{character giving OpenLandMap data path} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -17,6 +20,16 @@ a \code{SpatRaster} object \description{ Process OpenLandMap data } +\examples{ +\dontrun{ +olm <- process_olm( + path = paste0( + "./data/no2_s5p.l3.trop.tmwm.p50_p90_2km_a_", + "20180501_20221130_go_epsg.4326_v20221219.tif" + ) +) +} +} \author{ Insang Song } diff --git a/man/process_prism.Rd b/man/process_prism.Rd index 3be6500c..a329fa9f 100644 --- a/man/process_prism.Rd +++ b/man/process_prism.Rd @@ -4,7 +4,7 @@ \alias{process_prism} \title{Process PRISM data} \usage{ -process_prism(path = NULL, element = NULL, time = NULL, ...) +process_prism(path = NULL, element = NULL, time = NULL, extent = NULL, ...) } \arguments{ \item{path}{character giving PRISM data path @@ -16,6 +16,9 @@ Both file and directory path are acceptable.} Should be character in length of 2, 4, 6, or 8. "annual" is acceptable.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -27,6 +30,15 @@ returning a single \code{SpatRaster} object. Reads time series or 30-year normal PRISM data. } +\examples{ +\dontrun{ +prism <- process_prism( + path = "./data/PRISM_ppt_stable_4kmM3_202104_nc.nc", + element = "ppt", + time = "202104" +) +} +} \seealso{ \code{\link[terra:rast]{terra::rast}}, \code{\link[terra:metags]{terra::metags}} } diff --git a/man/process_sedac_groads.Rd b/man/process_sedac_groads.Rd index 38c03e8d..21418032 100644 --- a/man/process_sedac_groads.Rd +++ b/man/process_sedac_groads.Rd @@ -4,11 +4,14 @@ \alias{process_sedac_groads} \title{Process roads data} \usage{ -process_sedac_groads(path = NULL, ...) +process_sedac_groads(path = NULL, extent = NULL, ...) } \arguments{ \item{path}{character(1). Path to geodatabase or shapefiles.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -23,6 +26,13 @@ U.S. context. The returned \code{SpatVector} object contains a \verb{$description} column to represent the temporal range covered by the dataset. For more information, see \url{https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1/metadata}. } +\examples{ +\dontrun{ +groads <- process_sedac_groads( + path = "./data/groads_example.shp" +) +} +} \author{ Insang Song } diff --git a/man/process_sedac_population.Rd b/man/process_sedac_population.Rd index 4664e97f..1eeb3d0e 100644 --- a/man/process_sedac_population.Rd +++ b/man/process_sedac_population.Rd @@ -4,11 +4,14 @@ \alias{process_sedac_population} \title{Process population density data} \usage{ -process_sedac_population(path = NULL, ...) +process_sedac_population(path = NULL, extent = NULL, ...) } \arguments{ \item{path}{character(1). Path to GeoTIFF (.tif) or netCDF (.nc) file.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ @@ -18,6 +21,13 @@ a \code{SpatRaster} object The \code{process_secac_population()} function imports and cleans raw population density data, returning a single \code{SpatRaster} object. } +\examples{ +\dontrun{ +pop <- process_sedac_population( + path = "./data/sedac_population_example.tif" +) +} +} \author{ Mitchell Manware } diff --git a/man/process_terraclimate.Rd b/man/process_terraclimate.Rd index f752a022..bda3d6ca 100644 --- a/man/process_terraclimate.Rd +++ b/man/process_terraclimate.Rd @@ -7,7 +7,9 @@ process_terraclimate( date = c("2023-09-01", "2023-09-01"), variable = NULL, - path = NULL + path = NULL, + extent = NULL, + ... ) } \arguments{ @@ -19,6 +21,11 @@ Format YYYY-MM-DD (ex. September 1, 2023 = "2023-09-01").} for variable names and acronym codes.} \item{path}{character(1). Directory with downloaded netCDF (.nc) files.} + +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + +\item{...}{Placeholders.} } \value{ a \code{SpatRaster} object @@ -34,6 +41,15 @@ and month. TerraClimate data has monthly temporal resolution, so the first day of each month is used as a placeholder temporal value. } +\examples{ +\dontrun{ +terraclimate <- process_terraclimate( + date = c("2023-01-01", "2023-01-10"), + variable = "Precipitation", + path = "./data/ppt" +) +} +} \author{ Mitchell Manware } diff --git a/man/process_tri.Rd b/man/process_tri.Rd index f6cc34b1..9441525d 100644 --- a/man/process_tri.Rd +++ b/man/process_tri.Rd @@ -32,6 +32,15 @@ returning a single \code{SpatVector} (points) object for the selected \code{year Visit \href{https://www.epa.gov/toxics-release-inventory-tri-program/tri-data-and-tools}{TRI Data and Tools} to view the available years and variables. } +\examples{ +\dontrun{ +tri <- process_tri( + path = "./data", + year = 2020, + variables = c(1, 13, 12, 14, 20, 34, 36, 47, 48, 49) +) +} +} \references{ https://www.epa.gov/toxics-release-inventory-tri-program/tri-data-and-tools } From aa7d29bf7de264735e8e5998e25d2c59b6276fa6 Mon Sep 17 00:00:00 2001 From: Insang Song Date: Tue, 9 Jul 2024 23:31:08 -0400 Subject: [PATCH 24/66] README.md test - language definition in markdown code blocks --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 43e5694c..2eb613a7 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ devtools::install_github("NIEHS/amadeus") ``` -``` +```r remotes::install_github("NIEHS/amadeus") ``` -``` +```r pak::pak("NIEHS/amadeus") ``` @@ -60,7 +60,7 @@ See the "download_data and NASA EarthData Account" vignette for a detailed descr Example use of `download_data` using NOAA NCEP North American Regional Reanalysis's (NARR) "weasd" (Daily Accumulated Snow at Surface) variable. -``` +```r > directory <- "/ EXAMPLE / FILE / PATH /" > download_data( + dataset_name = "narr_monolevel", @@ -85,7 +85,7 @@ To avoid errors when using `process_covariates`, **do not edit the raw downloade Example use of `process_covariates` using the downloaded "weasd" data. -``` +```r > weasd <- process_covariates( + covariate = "narr", + date = c("2022-01-01", "2022-01-05"), @@ -114,7 +114,7 @@ time : 2022-01-01 to 2022-01-05 UTC Example of `calc_covariates` using processed "weasd" data. -``` +```r > locs <- data.frame(lon = -78.8277, lat = 35.95013) > locs$id <- "0001" > weasd_covar <- calc_covariates( From 144df6245089dbc1f53341096e6e48e8f4ab73a0 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Wed, 10 Jul 2024 07:35:05 -0400 Subject: [PATCH 25/66] README.md 10 --- README.md | 76 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index d0be9ba6..080d161f 100644 --- a/README.md +++ b/README.md @@ -65,18 +65,24 @@ See the "[download_data](https://niehs.github.io/amadeus/articles/download_funct Example use of `download_data` using NOAA NCEP North American Regional Reanalysis's (NARR) "weasd" (Daily Accumulated Snow at Surface) variable. ``` -> directory <- "/ EXAMPLE / FILE / PATH /" -> download_data( -+ dataset_name = "narr", -+ year = c(2022, 2022), -+ variable = "weasd", -+ directory_to_save = directory, -+ acknowledgement = TRUE, -+ download = TRUE -+ ) +directory <- "/ EXAMPLE / FILE / PATH /" +download_data( + dataset_name = "narr", + year = c(2022, 2022), + variable = "weasd", + directory_to_save = directory, + acknowledgement = TRUE, + download = TRUE +) +``` Downloading requested files... Requested files have been downloaded. -> list.files(paste0(directory, "weasd")) +``` + +``` +list.files(paste0(directory, "weasd")) +``` +``` [1] "weasd.2022.nc" ``` @@ -89,17 +95,23 @@ To avoid errors when using `process_covariates`, **do not edit the raw downloade Example use of `process_covariates` using the downloaded "weasd" data. ``` -> weasd <- process_covariates( -+ covariate = "narr", -+ date = c("2022-01-01", "2022-01-05"), -+ variable = "weasd", -+ path = paste0(directory, "weasd"), -+ extent = NULL -+ ) +weasd <- process_covariates( + covariate = "narr", + date = c("2022-01-01", "2022-01-05"), + variable = "weasd", + path = paste0(directory, "weasd"), + extent = NULL +) +``` +``` Cleaning weasd data for January, 2022... Detected monolevel data... Returning daily weasd data from 2022-01-01 to 2022-01-05. -> weasd +``` +``` +weasd +``` +``` class : SpatRaster dimensions : 277, 349, 5 (nrow, ncol, nlyr) resolution : 32462.99, 32463 (x, y) @@ -119,16 +131,18 @@ time : 2022-01-01 to 2022-01-05 UTC Example of `calc_covariates` using processed "weasd" data. ``` -> locs <- data.frame(lon = -78.8277, lat = 35.95013) -> locs$id <- "0001" -> weasd_covar <- calc_covariates( -+ covariate = "narr", -+ from = weasd_process, -+ locs = locs, -+ locs_id = "id", -+ radius = 0, -+ geom = FALSE -+ ) +locs <- data.frame(lon = -78.8277, lat = 35.95013) +locs$id <- "0001" +weasd_covar <- calc_covariates( + covariate = "narr", + from = weasd_process, + locs = locs, + locs_id = "id", + radius = 0, + geom = FALSE +) +``` +``` Detected `data.frame` extraction locations... Calculating weasd covariates for 2022-01-01... Calculating weasd covariates for 2022-01-02... @@ -136,7 +150,11 @@ Calculating weasd covariates for 2022-01-03... Calculating weasd covariates for 2022-01-04... Calculating weasd covariates for 2022-01-05... Returning extracted covariates. -> weasd_covar +``` +``` +weasd_covar +``` +``` id time weasd_0 1 0001 2022-01-01 0.000000000 2 0001 2022-01-02 0.000000000 From 3e7b410ceb57e45daeaf344267c5e307ff337d11 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Wed, 10 Jul 2024 07:36:40 -0400 Subject: [PATCH 26/66] README.md 11 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 080d161f..48a034a0 100644 --- a/README.md +++ b/README.md @@ -75,10 +75,10 @@ download_data( download = TRUE ) ``` +``` Downloading requested files... Requested files have been downloaded. ``` - ``` list.files(paste0(directory, "weasd")) ``` From 2967113fe6f8659a25431fd2fc18b8d81e01f3e5 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Wed, 10 Jul 2024 09:24:44 -0400 Subject: [PATCH 27/66] README.md 12 --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 48a034a0..c63f365c 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ See the "[download_data](https://niehs.github.io/amadeus/articles/download_funct Example use of `download_data` using NOAA NCEP North American Regional Reanalysis's (NARR) "weasd" (Daily Accumulated Snow at Surface) variable. -``` +```r directory <- "/ EXAMPLE / FILE / PATH /" download_data( dataset_name = "narr", @@ -79,7 +79,7 @@ download_data( Downloading requested files... Requested files have been downloaded. ``` -``` +```r list.files(paste0(directory, "weasd")) ``` ``` @@ -94,7 +94,7 @@ To avoid errors when using `process_covariates`, **do not edit the raw downloade Example use of `process_covariates` using the downloaded "weasd" data. -``` +```r weasd <- process_covariates( covariate = "narr", date = c("2022-01-01", "2022-01-05"), @@ -108,7 +108,7 @@ Cleaning weasd data for January, 2022... Detected monolevel data... Returning daily weasd data from 2022-01-01 to 2022-01-05. ``` -``` +```r weasd ``` ``` @@ -130,7 +130,7 @@ time : 2022-01-01 to 2022-01-05 UTC Example of `calc_covariates` using processed "weasd" data. -``` +```r locs <- data.frame(lon = -78.8277, lat = 35.95013) locs$id <- "0001" weasd_covar <- calc_covariates( @@ -151,7 +151,7 @@ Calculating weasd covariates for 2022-01-04... Calculating weasd covariates for 2022-01-05... Returning extracted covariates. ``` -``` +```r weasd_covar ``` ``` From 67128cf666177f113814be452facbceba6bb0475 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 15 Jul 2024 13:29:01 -0400 Subject: [PATCH 28/66] modis function examples --- R/calculate_covariates.R | 31 ++++++++++++++ R/download.R | 49 ++++++++++++++++----- R/process.R | 69 ++++++++++++++++++++++++++++-- man/calc_modis_daily.Rd | 15 +++++++ man/calc_modis_par.Rd | 18 ++++++++ man/download_modis.Rd | 37 +++++++++++++--- man/process_blackmarble.Rd | 13 ++++++ man/process_blackmarble_corners.Rd | 3 ++ man/process_flatten_sds.Rd | 10 +++++ man/process_modis_merge.Rd | 11 +++++ man/process_modis_sds.Rd | 3 ++ man/process_modis_swath.Rd | 15 +++++++ man/process_modis_warp.Rd | 18 ++++++++ 13 files changed, 273 insertions(+), 19 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index fab8c44c..d8f8d3cc 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -598,6 +598,20 @@ calc_ecoregion <- #' @importFrom methods is #' @importFrom sf st_as_sf #' @importFrom sf st_drop_geometry +#' @examples +#' \dontrun{ +#' locs <- data.frame(lon = -78.8277, lat = 35.95013, id = "001") +#' calc_modis_daily( +#' from = mod06l2_warp, +#' locs = locs, +#' locs_id = "id", +#' radius = 0, +#' date = "2024-01-01", +#' name_extracted = "cloud_fraction_0", +#' fun_summary = "mean", +#' max_cells = 3e7 +#' ) +#' } #' @export calc_modis_daily <- function( from = NULL, @@ -765,6 +779,23 @@ calc_modis_daily <- function( #' @importFrom future cluster #' @importFrom future.apply future_lapply #' @importFrom parallelly availableWorkers +#' @examples +#' /dontrun{ +#' locs <- data.frame(lon = -78.8277, lat = 35.95013, id = "001") +#' locs <- terra::vect(locs, geom = c("lon", "lat"), crs = "EPSG:4326") +#' calc_modis_par( +#' from = +#' list.files("./data", pattern = "VNP46A2.", full.names = TRUE), +#' locs = locs, +#' locs_id = "site_id", +#' radius = c(0L, 1000L), +#' preprocess = process_modis_merge, +#' name_covariates = "cloud_fraction_0", +#' subdataset = "Cloud_Fraction", +#' fun_summary = "mean", +#' nthreads = 1 +#' ) +#' } #' @export calc_modis_par <- function( diff --git a/R/download.R b/R/download.R index cf2c13c2..444ce28e 100644 --- a/R/download.R +++ b/R/download.R @@ -436,7 +436,7 @@ download_ecoregion <- function( #' Remove (\code{TRUE}) or keep (\code{FALSE}) #' the text file containing download commands. #' @author Mitchell Manware, Insang Song -#' @return NULL; netCDF (.nc4) files will be stored in a +#' @returns NULL; netCDF (.nc4) files will be stored in a #' collection-specific folder within \code{directory_to_save}. #' @examples #' \dontrun{ @@ -756,7 +756,7 @@ download_gmted <- function( #' Remove (\code{TRUE}) or keep (\code{FALSE}) #' the text file containing download commands. #' @author Mitchell Manware, Insang Song -#' @return NULL; netCDF (.nc4) files will be stored in a +#' @returns NULL; netCDF (.nc4) files will be stored in a #' collection-specific folder within \code{directory_to_save}. #' @examples #' \dontrun{ @@ -1069,7 +1069,7 @@ download_merra2 <- function( #' Remove (\code{TRUE}) or keep (\code{FALSE}) #' the text file containing download commands. #' @author Mitchell Manware, Insang Song -#' @return NULL; netCDF (.nc) files will be stored in +#' @returns NULL; netCDF (.nc) files will be stored in #' \code{directory_to_save}. #' @examples #' \dontrun{ @@ -2018,9 +2018,7 @@ download_koppen_geiger <- function( #' every five minutes every day. #' @note Both dates in \code{date} should be in the same year. #' Directory structure looks like -#' input/modis/raw/\{version\}/\{product\}/\{year\}/\{day_of_year\} -#' Please note that \code{date_start} and \code{date_end} are -#' ignored if \code{product == 'MOD06_L2'}. +#' input/modis/raw/\{version\}/\{product\}/\{year\}/\{day_of_year\}. #' @param product character(1). #' One of `c("MOD09GA", "MOD11A1", "MOD06_L2", "MCD19A2", "MOD13A2", "VNP46A2")` #' @param version character(1). Default is `"61"`, meaning v061. @@ -2034,7 +2032,8 @@ download_koppen_geiger <- function( #' @param mod06_links character(1). CSV file path to MOD06_L2 download links #' from NASA LPDAAC. Default is `NULL`. #' @param date character(2). length of 10 each. Start/end date for downloading data. -#' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). +#' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). Note: ignored if +#' \code{product == "MOD06_L2"}. # nolint end #' @param directory_to_save character(1). Directory to save data. #' @param acknowledgement logical(1). By setting \code{TRUE} the @@ -2045,10 +2044,11 @@ download_koppen_geiger <- function( #' the text file containing download commands. #' @author Mitchell Manware, Insang Song #' @import rvest -#' @return NULL; HDF (.hdf) files will be stored in +#' @returns NULL; HDF (.hdf) files will be stored in #' \code{directory_to_save}. #' @examples #' \dontrun{ +#' # example with MOD0GA product #' download_modis( #' product = "MOD09GA", #' version = "61", @@ -2056,7 +2056,34 @@ download_koppen_geiger <- function( #' vertical_tiles = c(4, 5), #' date = c("2024-01-01", "2024-01-10"), #' nasa_earth_data_token = readLines("~/pre_generated_token.txt"), -#' directory_to_save = "./data", +#' directory_to_save = "./data/mod09ga", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' # example with MOD06_L2 product +#' download_modis( +#' product = "MOD06_L2", +#' version = "61", +#' horizontal_tiles = c(8, 10), +#' vertical_tiles = c(4, 5), +#' mod06_links = "~/LAADS_query.2024-07-15T12_17.csv", +#' date = c("2024-01-01", "2024-01-10"), +#' nasa_earth_data_token = readLines("~/pre_generated_token.txt"), +#' directory_to_save = "./data/mod06l2", +#' acknowledgement = TRUE, +#' download = TRUE, +#' remove_command = TRUE +#' ) +#' # example with VNP46A2 product +#' download_modis( +#' product = "VNP46A2", +#' version = "61", +#' horizontal_tiles = c(8, 10), +#' vertical_tiles = c(4, 5), +#' date = c("2024-01-01", "2024-01-10"), +#' nasa_earth_data_token = readLines("~/pre_generated_token.txt"), +#' directory_to_save = "./data/vnp46a2", #' acknowledgement = TRUE, #' download = TRUE, #' remove_command = TRUE @@ -3252,7 +3279,7 @@ download_prism <- function( #' Remove (\code{TRUE}) or keep (\code{FALSE}) #' the text file containing download commands. #' @author Mitchell Manware -#' @return NULL; netCDF (.nc) files will be stored in a variable-specific +#' @returns NULL; netCDF (.nc) files will be stored in a variable-specific #' folder within \code{directory_to_save}. #' @examples #' \dontrun{ @@ -3388,7 +3415,7 @@ download_gridmet <- function( #' Remove (\code{TRUE}) or keep (\code{FALSE}) #' the text file containing download commands. #' @author Mitchell Manware, Insang Song -#' @return NULL; netCDF (.nc) files will be stored in a variable-specific +#' @returns NULL; netCDF (.nc) files will be stored in a variable-specific #' folder within \code{directory_to_save}. #' @examples #' \dontrun{ diff --git a/R/process.R b/R/process.R index e1807c91..a1cfc799 100644 --- a/R/process.R +++ b/R/process.R @@ -152,6 +152,8 @@ process_covariates <- #' @returns A character object that conforms to the regular #' expression. Details of regular expression in R can be found in [regexp]. #' @seealso [calc_modis_par] +#' @examples +#' process_modis_sds(product = "MOD09GA") #' @export # previously modis_prefilter_sds process_modis_sds <- @@ -213,6 +215,15 @@ process_modis_sds <- #' @importFrom terra nlyr #' @importFrom terra tapp #' @importFrom terra is.rotated +#' @examples +#' /dontrun{ +#' mod09ga_flatten <- process_flatten_sds( +#' path = +#' list.files("./data", pattern = "MOD09GA.", full.names = TRUE)[1], +#' subdataset = process_modis_sds("MOD09GA"), +#' fun_agg = "mean" +#' ) +#' } #' @export # previously modis_aggregate_sds process_flatten_sds <- @@ -288,6 +299,16 @@ the input then flatten it manually.") #' @seealso [`download_data`] #' @author Insang Song #' @returns a `SpatRaster` object +#' @examples +#' /dontrun{ +#' mod09ga_merge <- process_modis_merge( +#' path = +#' list.files("./data", pattern = "MOD09GA.", full.names = TRUE), +#' date = "2024-01-01", +#' subdataset = "sur_refl_b01_1", +#' fun_agg = "mean" +#' ) +#' } #' @export # nolint end # previously modis_get_vrt @@ -348,6 +369,8 @@ process_modis_merge <- function( #' @author Insang Song #' @references #' - [Wang, Z. (2022). Black Marble User Guide (Version 1.3). NASA.](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf) +#' @examples +#' process_blackmarble_corners(hrange = c(1, 2), vrange = c(1, 2)) #' @export # nolint end process_blackmarble_corners <- @@ -416,6 +439,18 @@ process_blackmarble_corners <- #' @importFrom terra ext #' @importFrom terra crs #' @importFrom terra merge +#' @examples +#' /dontrun{ +#' vnp46a2 <- process_blackmarble( +#' path = +#' list.files("./data", pattern = "VNP46A2.", full.names = TRUE), +#' date = "2024-01-01", +#' tile_df = +#' process_blackmarble_corners(hrange = c(8, 10), vrange = c(4, 5)) +#' subdataset = 3L, +#' crs = "EPSG:4326" +#' ) +#' } #' @export # previously modis_preprocess_vnp46 # nolint end @@ -495,6 +530,23 @@ process_blackmarble <- function( #' @seealso [`terra::rectify`] #' @importFrom stars st_warp #' @importFrom stars read_stars +#' @examples +#' \dontrun{ +#' mod06l2_warp <- process_modis_warp( +#' path = paste0( +#' "HDF4_EOS:EOS_SWATH:", +#' list.files( +#' "./data/mod06l2", +#' full.names = TRUE, +#' pattern = ".hdf" +#' )[1], +#' ":mod06:Cloud_Fraction" +#' ), +#' cellsize = 0.1, +#' threshold = 0.4, +#' crs = 4326 +#' ) +#' } #' @export # previously modis_warp_stars process_modis_warp <- @@ -557,6 +609,20 @@ process_modis_warp <- #' @importFrom stars st_mosaic #' @importFrom terra values #' @importFrom terra sprc +#' @examples +#' \dontrun{ +#' mod06l2_swath <- process_modis_swath( +#' path = list.files( +#' "./data/mod06l2", +#' full.names = TRUE, +#' pattern = ".hdf" +#' ), +#' date = "2024-01-01", +#' subdataset = "Cloud_Fraction", +#' suffix = ":mod06:", +#' resolution = 0.05 +#' ) +#' } #' @export # nolint end # previously modis_mosaic_mod06 @@ -649,9 +715,6 @@ process_modis_swath <- } - -# Process downloaded raw data - #' Process climate classification data #' @description #' The \code{process_koppen_geiger()} function imports and cleans raw climate diff --git a/man/calc_modis_daily.Rd b/man/calc_modis_daily.Rd index a67566fd..50fa00e9 100644 --- a/man/calc_modis_daily.Rd +++ b/man/calc_modis_daily.Rd @@ -55,6 +55,21 @@ Please note that this function does not provide a function to filter swaths or tiles, so it is strongly recommended to check and pre-filter the file names at users' discretion. } +\examples{ +\dontrun{ +locs <- data.frame(lon = -78.8277, lat = 35.95013, id = "001") +calc_modis_daily( + from = mod06l2_warp, + locs = locs, + locs_id = "id", + radius = 0, + date = "2024-01-01", + name_extracted = "cloud_fraction_0", + fun_summary = "mean", + max_cells = 3e7 +) +} +} \seealso{ \itemize{ \item Preprocessing: \code{\link[=process_modis_merge]{process_modis_merge()}}, \code{\link[=process_modis_swath]{process_modis_swath()}}, diff --git a/man/calc_modis_par.Rd b/man/calc_modis_par.Rd index b506ca4d..f89605d3 100644 --- a/man/calc_modis_par.Rd +++ b/man/calc_modis_par.Rd @@ -109,6 +109,24 @@ The result data.frame will have an attribute with the dates with insufficient tiles. } } +\examples{ +/dontrun{ +locs <- data.frame(lon = -78.8277, lat = 35.95013, id = "001") +locs <- terra::vect(locs, geom = c("lon", "lat"), crs = "EPSG:4326") +calc_modis_par( + from = + list.files("./data", pattern = "VNP46A2.", full.names = TRUE), + locs = locs, + locs_id = "site_id", + radius = c(0L, 1000L), + preprocess = process_modis_merge, + name_covariates = "cloud_fraction_0", + subdataset = "Cloud_Fraction", + fun_summary = "mean", + nthreads = 1 +) +} +} \seealso{ See details for setting parallelization: \itemize{ diff --git a/man/download_modis.Rd b/man/download_modis.Rd index df00db3b..2cc508ed 100644 --- a/man/download_modis.Rd +++ b/man/download_modis.Rd @@ -38,7 +38,8 @@ Token for downloading data from NASA. Should be set before trying running the function.} \item{date}{character(2). length of 10 each. Start/end date for downloading data. -Format "YYYY-MM-DD" (ex. January 1, 2018 = \code{"2018-01-01"}).} +Format "YYYY-MM-DD" (ex. January 1, 2018 = \code{"2018-01-01"}). Note: ignored if +\code{product == "MOD06_L2"}.} \item{directory_to_save}{character(1). Directory to save data.} @@ -66,12 +67,11 @@ every five minutes every day. \note{ Both dates in \code{date} should be in the same year. Directory structure looks like -input/modis/raw/\{version\}/\{product\}/\{year\}/\{day_of_year\} -Please note that \code{date_start} and \code{date_end} are -ignored if \code{product == 'MOD06_L2'}. +input/modis/raw/\{version\}/\{product\}/\{year\}/\{day_of_year\}. } \examples{ \dontrun{ +# example with MOD0GA product download_modis( product = "MOD09GA", version = "61", @@ -79,7 +79,34 @@ download_modis( vertical_tiles = c(4, 5), date = c("2024-01-01", "2024-01-10"), nasa_earth_data_token = readLines("~/pre_generated_token.txt"), - directory_to_save = "./data", + directory_to_save = "./data/mod09ga", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +# example with MOD06_L2 product +download_modis( + product = "MOD06_L2", + version = "61", + horizontal_tiles = c(8, 10), + vertical_tiles = c(4, 5), + mod06_links = "~/LAADS_query.2024-07-15T12_17.csv", + date = c("2024-01-01", "2024-01-10"), + nasa_earth_data_token = readLines("~/pre_generated_token.txt"), + directory_to_save = "./data/mod06l2", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE +) +# example with VNP46A2 product +download_modis( + product = "VNP46A2", + version = "61", + horizontal_tiles = c(8, 10), + vertical_tiles = c(4, 5), + date = c("2024-01-01", "2024-01-10"), + nasa_earth_data_token = readLines("~/pre_generated_token.txt"), + directory_to_save = "./data/vnp46a2", acknowledgement = TRUE, download = TRUE, remove_command = TRUE diff --git a/man/process_blackmarble.Rd b/man/process_blackmarble.Rd index 0138ea58..f4655501 100644 --- a/man/process_blackmarble.Rd +++ b/man/process_blackmarble.Rd @@ -38,6 +38,19 @@ This function will return a \code{SpatRaster} object with georeferenced h5 files of Black Marble product. Referencing corner coordinates are necessary as the original h5 data do not include such information. } +\examples{ +/dontrun{ +vnp46a2 <- process_blackmarble( + path = + list.files("./data", pattern = "VNP46A2.", full.names = TRUE), + date = "2024-01-01", + tile_df = + process_blackmarble_corners(hrange = c(8, 10), vrange = c(4, 5)) + subdataset = 3L, + crs = "EPSG:4326" +) +} +} \references{ \itemize{ \item \href{https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document\%20Archive/Science\%20Data\%20Product\%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf}{Wang, Z. (2022). Black Marble User Guide (Version 1.3). NASA.} diff --git a/man/process_blackmarble_corners.Rd b/man/process_blackmarble_corners.Rd index c1e4c2ff..e3ccca3b 100644 --- a/man/process_blackmarble_corners.Rd +++ b/man/process_blackmarble_corners.Rd @@ -21,6 +21,9 @@ Black Marble products are in HDF5 format and are read without georeference with typical R geospatial packages. This function generates a \code{data.frame} of corner coordinates for assignment. } +\examples{ +process_blackmarble_corners(hrange = c(1, 2), vrange = c(1, 2)) +} \references{ \itemize{ \item \href{https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document\%20Archive/Science\%20Data\%20Product\%20Documentation/VIIRS_Black_Marble_UG_v1.3_Sep_2022.pdf}{Wang, Z. (2022). Black Marble User Guide (Version 1.3). NASA.} diff --git a/man/process_flatten_sds.Rd b/man/process_flatten_sds.Rd index 9dcef5a1..cf79c009 100644 --- a/man/process_flatten_sds.Rd +++ b/man/process_flatten_sds.Rd @@ -38,6 +38,16 @@ information about MODIS sub-datasets, consider running list of sub-datasets in the input file then consult the documentation of MODIS product. } +\examples{ +/dontrun{ +mod09ga_flatten <- process_flatten_sds( + path = + list.files("./data", pattern = "MOD09GA.", full.names = TRUE)[1], + subdataset = process_modis_sds("MOD09GA"), + fun_agg = "mean" +) +} +} \seealso{ \link[terra:tapp]{terra::tapp}, \link[terra:rast]{terra::rast}, \link[terra:describe]{terra::describe} } diff --git a/man/process_modis_merge.Rd b/man/process_modis_merge.Rd index 4b16875c..257fc136 100644 --- a/man/process_modis_merge.Rd +++ b/man/process_modis_merge.Rd @@ -41,6 +41,17 @@ MODIS products downloaded by functions in \code{amadeus}, \href{https://cran.r-project.org/web/packages/MODISTools/index.html}{MODISTools}, and \href{https://github.com/rspatial/luna}{luna} are accepted. } +\examples{ +/dontrun{ +mod09ga_merge <- process_modis_merge( + path = + list.files("./data", pattern = "MOD09GA.", full.names = TRUE), + date = "2024-01-01", + subdataset = "sur_refl_b01_1", + fun_agg = "mean" +) +} +} \seealso{ \code{\link{download_data}} } diff --git a/man/process_modis_sds.Rd b/man/process_modis_sds.Rd index 71153dd1..a2b21c0e 100644 --- a/man/process_modis_sds.Rd +++ b/man/process_modis_sds.Rd @@ -44,6 +44,9 @@ When utilizing a product code from this "Short Name" column, \strong{do not include} the version number following the period. For example, if "Short Name" = MCD12C1.006, then \code{product = "MCD12C1"}. } +\examples{ +process_modis_sds(product = "MOD09GA") +} \seealso{ \link{calc_modis_par} } diff --git a/man/process_modis_swath.Rd b/man/process_modis_swath.Rd index a04244c6..9b4a372c 100644 --- a/man/process_modis_swath.Rd +++ b/man/process_modis_swath.Rd @@ -49,6 +49,21 @@ Users need to select a subdataset to process. The full path looks like \code{"HDF4_EOS:EOS_SWATH:{file_path}:mod06:subdataset"}, where file_path is the full path to the hdf file. } +\examples{ +\dontrun{ +mod06l2_swath <- process_modis_swath( + path = list.files( + "./data/mod06l2", + full.names = TRUE, + pattern = ".hdf" + ), + date = "2024-01-01", + subdataset = "Cloud_Fraction", + suffix = ":mod06:", + resolution = 0.05 +) +} +} \seealso{ \itemize{ \item \code{\link[=process_modis_warp]{process_modis_warp()}}, \code{\link[stars:read_stars]{stars::read_stars()}}, \code{\link[stars:st_warp]{stars::st_warp()}} diff --git a/man/process_modis_warp.Rd b/man/process_modis_warp.Rd index abf290d5..36566b0f 100644 --- a/man/process_modis_warp.Rd +++ b/man/process_modis_warp.Rd @@ -43,6 +43,24 @@ grid points. \note{ This function handles one file at a time. } +\examples{ +\dontrun{ +mod06l2_warp <- process_modis_warp( + path = paste0( + "HDF4_EOS:EOS_SWATH:", + list.files( + "./data/mod06l2", + full.names = TRUE, + pattern = ".hdf" + )[1], + ":mod06:Cloud_Fraction" + ), + cellsize = 0.1, + threshold = 0.4, + crs = 4326 +) +} +} \seealso{ \code{\link[terra:rectify]{terra::rectify}} } From 198498fa17c7eaaabf4d0b069934796ca15af3ab Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 15 Jul 2024 16:02:35 -0400 Subject: [PATCH 29/66] process_tri(extent = ...) --- R/process.R | 11 +++++++++-- man/process_tri.Rd | 4 ++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/R/process.R b/R/process.R index a1cfc799..6159c6dd 100644 --- a/R/process.R +++ b/R/process.R @@ -887,6 +887,8 @@ process_ecoregion <- #' @param path character(1). Path to the directory with TRI CSV files #' @param year integer(1). Single year to select. #' @param variables integer. Column index of TRI data. +#' @param extent numeric(4) or SpatExtent giving the extent of the raster +#' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. #' @author Insang Song, Mariana Kassien #' @returns a `SpatVector` object (points) in `year` @@ -926,6 +928,7 @@ process_tri <- function( path = NULL, year = 2018, variables = c(1, 13, 12, 14, 20, 34, 36, 47, 48, 49), + extent = NULL, ... ) { @@ -982,8 +985,12 @@ process_tri <- function( crs = "EPSG:4269", # all are NAD83 keepgeom = TRUE) attr(spvect_tri, "tri_year") <- year - - return(spvect_tri) + if(!is.null(extent)) { + tri_final <- apply_extent(spvect_tri, extent) + return(tri_final) + } else { + return(spvect_tri) + } } # nolint end diff --git a/man/process_tri.Rd b/man/process_tri.Rd index 9441525d..59f7651f 100644 --- a/man/process_tri.Rd +++ b/man/process_tri.Rd @@ -8,6 +8,7 @@ process_tri( path = NULL, year = 2018, variables = c(1, 13, 12, 14, 20, 34, 36, 47, 48, 49), + extent = NULL, ... ) } @@ -18,6 +19,9 @@ process_tri( \item{variables}{integer. Column index of TRI data.} +\item{extent}{numeric(4) or SpatExtent giving the extent of the raster +if \code{NULL} (default), the entire raster is loaded} + \item{...}{Placeholders.} } \value{ From 95e8c2be258205621c0f003cff9d4cd845e538e3 Mon Sep 17 00:00:00 2001 From: Insang Song Date: Mon, 15 Jul 2024 17:39:20 -0400 Subject: [PATCH 30/66] Refactor process_hms - Dropped variable argument - All levels are extracted - TODO: calc_hms should be refactored accordingly --- NAMESPACE | 1 - R/process.R | 106 +++++++++++++-------- R/process_auxiliary.R | 22 ----- man/apply_extent.Rd | 21 ---- man/process_hms.Rd | 12 +-- tests/testthat/test-calculate_covariates.R | 93 ++++++++---------- tests/testthat/test-process.R | 74 +++++++------- 7 files changed, 145 insertions(+), 184 deletions(-) delete mode 100644 man/apply_extent.Rd diff --git a/NAMESPACE b/NAMESPACE index 26164339..9fe09f40 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -166,7 +166,6 @@ importFrom(rstac,read_items) importFrom(rstac,read_stac) importFrom(sf,st_as_sf) importFrom(sf,st_as_sfc) -importFrom(sf,st_bbox) importFrom(sf,st_crs) importFrom(sf,st_drop_geometry) importFrom(sf,st_geometry) diff --git a/R/process.R b/R/process.R index e1807c91..2d8488a9 100644 --- a/R/process.R +++ b/R/process.R @@ -1360,20 +1360,20 @@ process_sedac_groads <- function( #' @param date character(2). length of 10 each. #' Start/end date of downloaded data. #' Format YYYY-MM-DD (ex. September 1, 2023 = "2023-09-01"). -#' @param variable character(1). "Light", "Medium", or "Heavy". #' @param path character(1). Directory with downloaded NOAA HMS data files. -#' @param extent numeric(4) or SpatExtent giving the extent of the raster -#' if `NULL` (default), the entire raster is loaded +#' @param extent numeric(4) or SpatExtent giving the extent of the output +#' if `NULL` (default), the entire data is returned #' @param ... Placeholders. #' @note #' \code{process_hms()} will return a character object if there are no wildfire #' smoke plumes present for the selected dates and density. The returned -#' character will contain the selected density value and the sequence of dates +#' character will contain the density value and the sequence of dates #' for which no wildfire smoke plumes were detected (see "Examples"). +#' If multiple density polygons overlap, the function will return the +#' highest density value. #' @examples #' hms <- process_hms( #' date = c("2018-12-30", "2019-01-01"), -#' variable = "Light", #' path = "../tests/testdata/hms/" #' ) # nolint end @@ -1385,7 +1385,6 @@ process_sedac_groads <- function( #' @export process_hms <- function( date = c("2018-01-01", "2018-01-01"), - variable = c("Light", "Medium", "Heavy"), path = NULL, extent = NULL, ...) { @@ -1435,9 +1434,8 @@ process_hms <- function( "EPSG:4326" ) #### subset to density of interest - data_density <- data_date_p[ - tolower(data_date_p$Density) == tolower(variable) - ] + data_density <- data_date_p + #### absent polygons (ie. December 31, 2018) if (nrow(data_density) == 0) { cat(paste0( @@ -1455,18 +1453,12 @@ process_hms <- function( data_return <- rbind(data_return, data_missing) } else { date <- as.Date( - substr( - data_density$Start[1], - 1, - 7 - ), + substr(data_density$Start[1], 1, 7), format = "%Y%j" ) - cat(paste0( - "Cleaning ", - tolower(variable), - " data for date ", - date, + message(paste0( + "Cleaning smoke data for date ", + date[1], "...\n" )) #### zero buffer to avoid self intersection @@ -1474,38 +1466,72 @@ process_hms <- function( data_density, width = 0 ) + # add dummy polygons + poly_dummy <- + "POLYGON((-180 -86,-179.99 -86,-179.99 -85.99,-180 -85.99,-180 -86))" + poly_dummy <- terra::vect(poly_dummy) + poly_dummy <- rbind(poly_dummy, poly_dummy, poly_dummy) + poly_dummy <- terra::set.crs(poly_dummy, terra::crs(data_0_buffer)) + poly_dummy$Density <- c("Heavy", "Medium", "Light") + poly_dummy$.hmsdummy <- 1 + data_0_buffer_a <- rbind(data_0_buffer, poly_dummy) + data_0_buffer_a$.hmsdummy <- + ifelse( + is.nan(data_0_buffer_a$.hmsdummy), + NA, + data_0_buffer_a$.hmsdummy + ) #### aggregate polygons data_aggregate <- terra::aggregate( - data_0_buffer, + data_0_buffer_a, by = "Density", dissolve = TRUE ) - #### factorize - data_aggregate$Date <- paste0( - gsub( - "-", - "", - date + + # Density index sorting to Heavy-Medium-Light + sort_index <- data_aggregate$Density + sort_index <- + match( + c("Heavy", "Medium", "Light"), + sort_index ) - ) + sort_index <- na.omit(sort_index) + data_aggregate <- data_aggregate[sort_index, ] + + # union polygons. Heavy-Medium-Light are 1, 2, 3, respectively. + data_aggregate <- terra::union(data_aggregate) + data_aggregate$indx <- + as.numeric( + paste0( + data_aggregate$id_1, + data_aggregate$id_2, + data_aggregate$id_3 + ) + ) + # cut integers into three classes, assign labels + data_aggregate$Density <- + cut( + data_aggregate$indx, + c(0, 10, 100, 1000), + labels = c("Light", "Medium", "Heavy"), + right = FALSE + ) + # reaggregate to dissolve polygons + data_aggregate <- terra::aggregate(data_aggregate, by = "Density") + data_aggregate$Date <- date + #### factorize #### select "Density" and "Date" - data_aggregate <- data_aggregate[ - seq_len(nrow(data_aggregate)), c("Density", "Date") - ] - #### apply date format - data_aggregate$Date <- as.Date( - data_aggregate$Date, - format = "%Y%m%d" - ) + data_aggregate <- data_aggregate[, c("Density", "Date")] #### merge with other data data_return <- rbind(data_return, data_aggregate) + reext <- terra::ext(c(-180, 180, -65, 85)) + data_return <- terra::crop(data_return, reext) } } #### if no polygons if (nrow(data_return) == 0) { cat(paste0( - variable, - " smoke plume polygons absent from ", + "Smoke plume polygons absent from ", as.Date( dates_of_interest[1], format = "%Y%m%d" @@ -1517,13 +1543,11 @@ process_hms <- function( ), ". Returning vector of dates.\n" )) - no_polygon_return <- c(variable, as.character(dates_no_polygon)) + no_polygon_return <- c(as.character(dates_no_polygon)) return(no_polygon_return) } else if (nrow(data_return) > 0) { cat(paste0( - "Returning daily ", - tolower(variable), - " data from ", + "Returning daily smoke data from ", as.Date( dates_of_interest[1], format = "%Y%m%d" diff --git a/R/process_auxiliary.R b/R/process_auxiliary.R index 75cc563a..851dd70e 100644 --- a/R/process_auxiliary.R +++ b/R/process_auxiliary.R @@ -536,25 +536,3 @@ is_date_proper <- function( \"YYYY-MM-DD\".\n", names(argnames)[2])) } } - - -#' Apply extent to the processed data -#' -#' User-defined extent is used to filter the data. -#' -#' @param data sf/terra object. -#' @param extent numeric(4). Extent to filter the data. -#' Should be ordered as c(xmin, xmax, ymin, ymax). -#' @importFrom sf st_as_sfc st_bbox st_crs -#' @importFrom terra ext -#' @returns sf/terra object with the extent applied. -#' @keywords internal -apply_extent <- - function(data, extent) { - extent <- terra::ext(extent) - if (inherits(data, "sf")) { - extent <- sf::st_as_sfc(sf::st_bbox(extent), crs = sf::st_crs(data)) - } - data <- data[extent, ] - return(data) - } diff --git a/man/apply_extent.Rd b/man/apply_extent.Rd deleted file mode 100644 index 6b3a6fbe..00000000 --- a/man/apply_extent.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/process_auxiliary.R -\name{apply_extent} -\alias{apply_extent} -\title{Apply extent to the processed data} -\usage{ -apply_extent(data, extent) -} -\arguments{ -\item{data}{sf/terra object.} - -\item{extent}{numeric(4). Extent to filter the data. -Should be ordered as c(xmin, xmax, ymin, ymax).} -} -\value{ -sf/terra object with the extent applied. -} -\description{ -User-defined extent is used to filter the data. -} -\keyword{internal} diff --git a/man/process_hms.Rd b/man/process_hms.Rd index 41163eeb..b00283d5 100644 --- a/man/process_hms.Rd +++ b/man/process_hms.Rd @@ -6,7 +6,6 @@ \usage{ process_hms( date = c("2018-01-01", "2018-01-01"), - variable = c("Light", "Medium", "Heavy"), path = NULL, extent = NULL, ... @@ -17,12 +16,10 @@ process_hms( Start/end date of downloaded data. Format YYYY-MM-DD (ex. September 1, 2023 = "2023-09-01").} -\item{variable}{character(1). "Light", "Medium", or "Heavy".} - \item{path}{character(1). Directory with downloaded NOAA HMS data files.} -\item{extent}{numeric(4) or SpatExtent giving the extent of the raster -if \code{NULL} (default), the entire raster is loaded} +\item{extent}{numeric(4) or SpatExtent giving the extent of the output +if \code{NULL} (default), the entire data is returned} \item{...}{Placeholders.} } @@ -36,13 +33,14 @@ plume coverage data, returning a single \code{SpatVector} object. \note{ \code{process_hms()} will return a character object if there are no wildfire smoke plumes present for the selected dates and density. The returned -character will contain the selected density value and the sequence of dates +character will contain the density value and the sequence of dates for which no wildfire smoke plumes were detected (see "Examples"). +If multiple density polygons overlap, the function will return the +highest density value. } \examples{ hms <- process_hms( date = c("2018-12-30", "2019-01-01"), - variable = "Light", path = "../tests/testdata/hms/" ) } diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index fac92114..b7dd6595 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -826,11 +826,6 @@ testthat::test_that("calc_sedc tests", { ## 9. HMS #### testthat::test_that("calc_hms returns expected.", { withr::local_package("terra") - densities <- c( - "Light", - "Medium", - "Heavy" - ) radii <- c(0, 1000) ncp <- data.frame(lon = -78.8277, lat = 35.95013) ncp$site_id <- "3799900018810101" @@ -838,55 +833,51 @@ testthat::test_that("calc_hms returns expected.", { expect_true( is.function(calc_hms) ) - for (d in seq_along(densities)) { - density <- densities[d] - for (r in seq_along(radii)) { - hms <- - process_hms( - date = c("2022-06-10", "2022-06-11"), - variable = density, - path = testthat::test_path( - "..", - "testdata", - "hms" - ) - ) - hms_covariate <- - calc_hms( - from = hms, - locs = ncp, - locs_id = "site_id", - radius = radii[r], - geom = FALSE + for (r in seq_along(radii)) { + hms <- + process_hms( + date = c("2022-06-10", "2022-06-11"), + path = testthat::test_path( + "..", + "testdata", + "hms" ) - # set column names - hms_covariate <- calc_setcolumns( - from = hms_covariate, - lag = 0, - dataset = "hms", - locs_id = "site_id" - ) - # expect output is data.frame - expect_true( - class(hms_covariate) == "data.frame" - ) - # expect 3 columns - expect_true( - ncol(hms_covariate) == 3 ) - # expect 2 rows - expect_true( - nrow(hms_covariate) == 2 - ) - # expect integer for binary value - expect_true( - class(hms_covariate[, 3]) == "integer" - ) - # expect binary - expect_true( - all(unique(hms_covariate[, 3]) %in% c(0, 1)) + hms_covariate <- + calc_hms( + from = hms, + locs = ncp, + locs_id = "site_id", + radius = radii[r], + geom = FALSE ) - } + # set column names + hms_covariate <- calc_setcolumns( + from = hms_covariate, + lag = 0, + dataset = "hms", + locs_id = "site_id" + ) + # expect output is data.frame + expect_true( + class(hms_covariate) == "data.frame" + ) + # expect 3 columns + expect_true( + ncol(hms_covariate) == 3 + ) + # expect 2 rows + expect_true( + nrow(hms_covariate) == 2 + ) + # expect integer for binary value + expect_true( + class(hms_covariate[, 3]) == "integer" + ) + # expect binary + expect_true( + all(unique(hms_covariate[, 3]) %in% c(0, 1)) + ) } }) diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index fdcacfce..2eaba0ce 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -675,59 +675,51 @@ testthat::test_that("sedac_codes", { # test HMS #### testthat::test_that("process_hms returns expected.", { withr::local_package("terra") - densities <- c( - "Medium", - "Heavy", - "Light" - ) # expect function testthat::expect_true( is.function(process_hms) ) - for (d in seq_along(densities)) { - hms <- - process_hms( - date = c("2022-06-10", "2022-06-11"), - variable = densities[d], - path = testthat::test_path( - "..", - "testdata", - "hms" - ) + + hms <- + process_hms( + date = c("2022-06-10", "2022-06-11"), + path = testthat::test_path( + "..", + "testdata", + "hms" ) - # expect output is a SpatVector or character + ) + # expect output is a SpatVector or character + testthat::expect_true( + class(hms)[1] %in% c("SpatVector", "character") + ) + if (class(hms)[1] == "SpatVector") { + # expect non-null coordinate reference system + testthat::expect_false( + is.null(terra::crs(hms)) + ) + # expect two columns testthat::expect_true( - class(hms)[1] %in% c("SpatVector", "character") + ncol(hms) == 2 + ) + # expect density and date column + testthat::expect_true( + all(c("Density", "Date") %in% names(hms)) + ) + } else if (class(hms)[1] == "character") { + # expect first is density type + testthat::expect_true( + hms[1] %in% c("Light", "Medium", "Heavy") + ) + # expect other elements are 10 character dates + testthat::expect_true( + all(nchar(hms[2:length(hms)]) == 10) ) - if (class(hms)[1] == "SpatVector") { - # expect non-null coordinate reference system - testthat::expect_false( - is.null(terra::crs(hms)) - ) - # expect two columns - testthat::expect_true( - ncol(hms) == 2 - ) - # expect density and date column - testthat::expect_true( - all(c("Density", "Date") %in% names(hms)) - ) - } else if (class(hms)[1] == "character") { - # expect first is density type - testthat::expect_true( - hms[1] %in% c("Light", "Medium", "Heavy") - ) - # expect other elements are 10 character dates - testthat::expect_true( - all(nchar(hms[2:length(hms)]) == 10) - ) - } } # test with cropping extent testthat::expect_no_error( hms_ext <- process_hms( date = c("2022-06-10", "2022-06-11"), - variable = "light", path = testthat::test_path( "..", "testdata", From b071841dedd6ccbcb409b614807cd7d1fc380c93 Mon Sep 17 00:00:00 2001 From: Insang Song Date: Mon, 15 Jul 2024 22:56:07 -0400 Subject: [PATCH 31/66] 0.2.3 - calc_hms: refactored - Tests were changed accordingly --- DESCRIPTION | 2 +- R/calculate_covariates.R | 194 ++++++++++----------- man/calc_hms.Rd | 2 +- tests/testthat/test-calculate_covariates.R | 11 +- 4 files changed, 97 insertions(+), 112 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 284c8eee..fe023909 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: amadeus Title: AMADEUS: A Machine for Data, Environments, and User Setup for common environmental and climate health datasets -Version: 0.2.2 +Version: 0.2.3 Authors@R: c( person("Kyle", "Messier", , "kyle.messier@nih.gov", role = c("aut", "cre"), comment = c(ORCID = "0000-0001-9508-9623")), person("Mitchell", "Manware", role = c("aut", "ctb"), comment = c(ORCID = "0009-0003-6440-6106")), diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index fab8c44c..09ea8a76 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -1318,13 +1318,11 @@ calc_nei <- function( #' @param ... Placeholders. #' @seealso [process_hms()] #' @author Mitchell Manware -#' @return a data.frame object -#' @importFrom terra vect -#' @importFrom terra as.data.frame -#' @importFrom terra time -#' @importFrom terra extract -#' @importFrom terra nlyr -#' @importFrom terra crs +#' @return a data.frame or SpatVector object +#' @importFrom terra vect as.data.frame time extract crs +#' @importFrom tidyr pivot_wider +#' @importFrom dplyr all_of +#' @importFrom stats setNames #' @examples #' \dontrun{ #' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) @@ -1348,7 +1346,7 @@ calc_hms <- function( check_for_null_parameters(mget(ls())) #### from == character indicates no wildfire smoke plumes are present #### return 0 for all locs and dates - if ("character" %in% class(from)) { + if (is.character(from)) { cat(paste0( "Inherited list of dates due to absent smoke plume polygons.\n" )) @@ -1408,114 +1406,101 @@ calc_hms <- function( ), sub_hyphen = FALSE ) - #### empty location data.frame - sites_extracted <- NULL - for (r in seq_len(nrow(from))) { - #### select data layer - data_layer <- from[r] - layer_date <- as.Date( - data_layer$Date, - format = "%Y%m%d" - ) - layer_name <- data_layer$Density - cat(paste0( - "Calculating ", - tolower( - as.character( - layer_name - ) - ), - " covariates for ", - layer_date, - "...\n" - )) - #### extract layer data at sites - sites_extracted_layer <- as.integer( - terra::relate( - sites_e, - data_layer, - "intersects" - ) - ) - #### merge with site_id and date - sites_extracted_layer <- cbind( - sites_id, - layer_date, - sites_extracted_layer - ) - binary_colname <- paste0( - tolower( - layer_name - ), - "_", - radius - ) - #### define column names - if (geom) { - colnames(sites_extracted_layer) <- c( - locs_id, - "geometry", - "time", - binary_colname - ) - } else { - colnames(sites_extracted_layer) <- c( - locs_id, - "time", - binary_colname - ) - } - #### merge with empty sites_extracted - sites_extracted <- rbind( - sites_extracted, - sites_extracted_layer + + ### Full SPT + data_template <- expand.grid( + id = sites_id[[locs_id]], + time = date_sequence + ) + data_template <- stats::setNames(data_template, c(locs_id, "time")) + + #### extract layer data at sites + message("Calculating smoke intensity covariates...") + sites_extracted_layer <- + terra::extract(from, sites_e) + + sites_extracted_layer$id.y <- + unlist(sites_e[[locs_id]])[sites_extracted_layer$id.y] + names(sites_extracted_layer)[ + names(sites_extracted_layer) == "id.y" + ] <- locs_id + sites_extracted_layer$value <- 1L + #### merge with site_id and date + sites_extracted_layer <- + tidyr::pivot_wider( + data = sites_extracted_layer, + names_from = "Density", + values_from = "value", + id_cols = dplyr::all_of(c(locs_id, "Date")) ) + + # Fill in missing columns + levels_acceptable <- c("Light", "Medium", "Heavy") + # Detect missing columns + col_tofill <- + setdiff(levels_acceptable, names(sites_extracted_layer)) + # Fill zeros + if (length(col_tofill) > 0) { + sites_extracted_layer[col_tofill] <- 0L } - #### check for missing dates (missing polygons) - if (!(identical(date_sequence, sort(unique(from$Date))))) { - cat(paste0( - "Detected absent smoke plume polygons.\n" - )) - missing_dates <- date_sequence[ - which(!(date_sequence %in% from$Date)) - ] - ### - for (m in seq_along(missing_dates)) { - missing_date <- as.Date( - missing_dates[m], - format = "%Y%m%d" - ) - cat(paste0( - "Smoke plume polygons absent for date ", - missing_date, - ". Returning 0 (smoke plumes absent).\n" - )) - missing_data <- cbind( - sites_id, - missing_date, - 0 + col_order <- c(locs_id, "Date", levels_acceptable) + sites_extracted_layer <- sites_extracted_layer[, col_order] + sites_extracted_layer <- + stats::setNames( + sites_extracted_layer, + c(locs_id, "time", levels_acceptable) + ) + + binary_colname <- + paste0(tolower(levels_acceptable), "_", sprintf("%05d", radius)) + + # Join full space-time pairs with extracted data + sites_extracted <- merge( + data_template, + sites_extracted_layer, + by = c(locs_id, "time"), + all.x = TRUE + ) + #### define column names + colname_common <- c(locs_id, "time", binary_colname) + if (geom) { + sites_extracted <- + merge(sites_extracted, + sites_id, + by = locs_id) + sites_extracted <- + stats::setNames( + sites_extracted, + c(colname_common, "geometry") ) - colnames(missing_data) <- colnames(sites_extracted) - sites_extracted <- rbind( + } else { + sites_extracted <- + stats::setNames( sites_extracted, - missing_data + colname_common ) - } } - #### coerce binary to integer - sites_extracted[[binary_colname]] <- - as.integer(sites_extracted[[binary_colname]]) + # Filling NAs to 0 (explicit integer) + sites_extracted[is.na(sites_extracted)] <- 0L + + # Messaging + timevals <- sites_extracted[["time"]] + intensities <- sites_extracted[, binary_colname] + intensities <- apply(intensities, 1, sum) + time_allzero <- unique(timevals[intensities == 0]) + time_allzero_c <- paste(time_allzero, collapse = "\n") + message(paste0( + "Smoke plume polygons absent for date(s):\n", + time_allzero_c + )) + #### date to POSIXct sites_extracted$time <- as.POSIXct(sites_extracted$time) #### order by date sites_extracted_ordered <- as.data.frame( sites_extracted[order(sites_extracted$time), ] ) - cat(paste0( - "Returning ", - layer_name, - " covariates.\n" - )) + message("Returning smoke intensity covariates.") sites_extracted_ordered <- calc_return_locs( covar = sites_extracted, POSIXt = TRUE, @@ -1526,6 +1511,7 @@ calc_hms <- function( return(sites_extracted_ordered) } + #' Calculate elevation covariates #' @description #' Extract elevation values at point locations. Returns a \code{data.frame} diff --git a/man/calc_hms.Rd b/man/calc_hms.Rd index 885962ea..b82d116e 100644 --- a/man/calc_hms.Rd +++ b/man/calc_hms.Rd @@ -24,7 +24,7 @@ that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract wildfire smoke plume values at point locations. Returns a diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index b7dd6595..12b8aa93 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -864,7 +864,7 @@ testthat::test_that("calc_hms returns expected.", { ) # expect 3 columns expect_true( - ncol(hms_covariate) == 3 + ncol(hms_covariate) == 5 ) # expect 2 rows expect_true( @@ -872,7 +872,7 @@ testthat::test_that("calc_hms returns expected.", { ) # expect integer for binary value expect_true( - class(hms_covariate[, 3]) == "integer" + is.integer(hms_covariate[, 3]) ) # expect binary expect_true( @@ -889,7 +889,6 @@ testthat::test_that("calc_hms with geom = TRUE", { ) hms <- process_hms( date = c("2022-06-10", "2022-06-13"), - variable = "light", path = hms_dir ) hms_covariate_geom <- calc_hms( @@ -901,10 +900,10 @@ testthat::test_that("calc_hms with geom = TRUE", { ) # with geometry will have 3 columns testthat::expect_equal( - ncol(hms_covariate_geom), 3 + ncol(hms_covariate_geom), 5 ) - testthat::expect_true( - "SpatVector" %in% class(hms_covariate_geom) + testthat::expect_s4_class( + hms_covariate_geom, "SpatVector" ) }) From bdba63a60a15dcfddf3534ab14722b0e0de20fdc Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Wed, 17 Jul 2024 11:31:42 -0400 Subject: [PATCH 32/66] calc*() return SpatVector --- R/calculate_covariates.R | 210 ++++++++++++++++----- R/calculate_covariates_auxiliary.R | 20 +- R/process_auxiliary.R | 11 +- tests/testthat/test-calculate_covariates.R | 160 +++++++++++++++- tests/testthat/test-process.R | 7 +- 5 files changed, 347 insertions(+), 61 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index d8f8d3cc..7a1b665e 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -542,17 +542,13 @@ calc_ecoregion <- paste0("1997 - ", data.table::year(Sys.Date())), df_lv2, df_lv3 ) - if (geom) { - locs_return <- calc_return_locs( - covar = locs_ecoreg, - POSIXt = FALSE, - geom = geom, - crs = terra::crs(from) - ) - } else { - names(locs_ecoreg)[2] <- "description" - locs_return <- locs_ecoreg - } + locs_return <- calc_return_locs( + covar = locs_ecoreg, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) + names(locs_return)[2] <- "description" attr(locs_return, "ecoregion2_code") <- sort(unique(from$L2_KEY)) attr(locs_return, "ecoregion3_code") <- sort(unique(from$L3_KEY)) return(locs_return) @@ -574,6 +570,9 @@ calc_ecoregion <- #' @param max_cells integer(1). Maximum number of cells to be read at once. #' Higher values will expedite processing, but will increase memory usage. #' Maximum possible value is `2^31 - 1`. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' See [`exactextractr::exact_extract`] for details. #' @param ... Placeholders. #' @description The function operates at MODIS/VIIRS products @@ -589,7 +588,7 @@ calc_ecoregion <- #' [process_blackmarble()] #' * Parallelization: [calc_modis_par()] #' @author Insang Song -#' @return A data.frame object. +#' @return a data.frame or SpatVector object. #' @importFrom terra extract #' @importFrom terra project #' @importFrom terra vect @@ -622,6 +621,7 @@ calc_modis_daily <- function( name_extracted = NULL, fun_summary = "mean", max_cells = 3e7, + geom = FALSE, ... ) { if (!methods::is(locs, "SpatVector")) { @@ -682,9 +682,38 @@ calc_modis_daily <- function( name_range <- seq(ncol(extracted) - name_offset + 1, ncol(extracted), 1) colnames(extracted)[name_range] <- name_extracted extracted$time <- as.POSIXlt(date) - calc_check_time(covar = extracted, POSIXt = TRUE) + if (geom) { + # convert to base date, as terra::vect does not like class "POSIXlt" + extracted$time <- as.Date.POSIXlt(extracted$time) + # location ID with geometry + locs_geom_id <- suppressMessages(calc_prepare_locs( + from = from, + locs = locs, + locs_id = locs_id, + radius = radius, + geom = geom + )[[2]] + ) + # merge + extracted_merge <- merge( + locs_geom_id, + extracted, + by = locs_id + ) + # re-convert to POSIXlt after creating the vect + extracted_merge$time <- as.POSIXlt(extracted_merge$time) + extracted_return <- calc_return_locs( + covar = extracted_merge, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) + } else { + calc_check_time(covar = extracted, POSIXt = TRUE) + extracted_return <- extracted + } gc() - return(extracted) + return(extracted_return) } @@ -718,6 +747,9 @@ calc_modis_daily <- function( #' Higher values will expedite processing, but will increase memory usage. #' Maximum possible value is `2^31 - 1`. #' See [`exactextractr::exact_extract`] for details. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Arguments passed to `preprocess`. #' @description `calc_modis_par` essentially runs [`calc_modis_daily`] function #' in each thread (subprocess). Based on daily resolution, each day's workload @@ -750,7 +782,7 @@ calc_modis_daily <- function( #' Users will be informed of the dates with insufficient tiles. #' The result data.frame will have an attribute with the dates with #' insufficient tiles. -#' @return A data.frame with an attribute: +#' @return A data.frame or SpatVector with an attribute: #' * `attr(., "dates_dropped")`: Dates with insufficient tiles. #' Note that the dates mean the dates with insufficient tiles, #' not the dates without available tiles. @@ -811,6 +843,7 @@ calc_modis_par <- package_list_add = NULL, export_list_add = NULL, max_cells = 3e7, + geom = FALSE, ... ) { if (!is.function(preprocess)) { @@ -920,7 +953,8 @@ process_modis_swath, or process_blackmarble.") fun_summary = fun_summary, name_extracted = name_radius, radius = radius[k], - max_cells = max_cells + max_cells = max_cells, + geom = FALSE ) ) if (inherits(extracted, "try-error")) { @@ -951,9 +985,22 @@ process_modis_swath, or process_blackmarble.") future.seed = TRUE ) calc_results <- do.call(dplyr::bind_rows, calc_results) - attr(calc_results, "dates_dropped") <- dates_insuf + if (geom) { + # merge + calc_results_return <- merge( + locs, + calc_results, + by = locs_id + ) + if ("sf" %in% class(calc_results_return)) { + calc_results_return <- terra::vect(calc_results_return) + } + } else { + calc_results_return <- calc_results + } + attr(calc_results_return, "dates_dropped") <- dates_insuf Sys.sleep(1L) - return(calc_results) + return(calc_results_return) } @@ -966,9 +1013,12 @@ process_modis_swath, or process_blackmarble.") #' @param locs_id character(1). Unique site identifier column name. #' Default is `"site_id"`. #' @param year integer. Year domain to dummify. -#' Default is \code{seq(2018L, 2022L)} +#' Default is \code{seq(2018L, 2022L)}. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @author Insang Song #' @importFrom methods is #' @importFrom data.table year @@ -989,6 +1039,7 @@ calc_temporal_dummies <- locs, locs_id = "site_id", year = seq(2018L, 2022L), + geom = FALSE, ... ) { if (!methods::is(locs, "data.frame")) { @@ -1043,7 +1094,15 @@ calc_temporal_dummies <- dt_month_dum, dt_wday_dum ) - return(locs_dums) + + # geom + locs_return <- calc_return_locs( + covar = locs_dums, + POSIXt = TRUE, + geom = geom, + crs = "EPSG:4326" + ) + return(locs_return) } @@ -1057,7 +1116,10 @@ calc_temporal_dummies <- #' Distance at which the source concentration is reduced to #' `exp(-3)` (approximately -95 %) #' @param target_fields character(varying). Field names in characters. -#' @return a data.frame (tibble) object with input field names with +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` +#' @return a data.frame (tibble) or SpatVector object with input field names with #' a suffix \code{"_sedc"} where the sums of EDC are stored. #' Additional attributes are attached for the EDC information. #' - `attr(result, "sedc_bandwidth")``: the bandwidth where @@ -1111,7 +1173,8 @@ calc_sedc <- locs = NULL, locs_id = NULL, sedc_bandwidth = NULL, - target_fields = NULL + target_fields = NULL, + geom = FALSE ) { if (!methods::is(locs, "SpatVector")) { locs <- try(terra::vect(locs)) @@ -1184,10 +1247,25 @@ The result may not be accurate.\n", names(res_sedc)[idx_air] <- sprintf("%s_%05d", names(res_sedc)[idx_air], sedc_bandwidth) - attr(res_sedc, "sedc_bandwidth") <- sedc_bandwidth - attr(res_sedc, "sedc_threshold") <- sedc_bandwidth * 2 - calc_check_time(covar = res_sedc, POSIXt = TRUE) - return(res_sedc) + if (geom) { + res_sedc <- merge( + terra::as.data.frame(locs, geom = "WKT")[, c("site_id", "geometry")], + res_sedc, + "site_id" + ) + } + + res_sedc_return <- calc_return_locs( + covar = res_sedc, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) + + attr(res_sedc_return, "sedc_bandwidth") <- sedc_bandwidth + attr(res_sedc_return, "sedc_threshold") <- sedc_bandwidth * 2 + + return(res_sedc_return) } @@ -1204,9 +1282,12 @@ The result may not be accurate.\n", #' Default is `"site_id"`. #' @param radius Circular buffer radius. #' Default is \code{c(1000, 10000, 50000)} (meters) +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @author Insang Song, Mariana Kassien -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @note U.S. context. #' @seealso [`calc_sedc`], [`process_tri`] #' @importFrom terra vect @@ -1240,6 +1321,7 @@ calc_tri <- function( locs, locs_id = "site_id", radius = c(1e3L, 1e4L, 5e4L), + geom = FALSE, ... ) { if (!methods::is(locs, "SpatVector")) { @@ -1268,21 +1350,31 @@ calc_tri <- function( from = from, locs_id = locs_id, sedc_bandwidth = x, - target_fields = tri_cols + target_fields = tri_cols, + geom = FALSE ) return(locs_tri_s) }, list_radius ) + # bind element data.frames into one df_tri <- Reduce(function(x, y) dplyr::full_join(x, y), list_locs_tri) if (nrow(df_tri) != nrow(locs)) { df_tri <- dplyr::left_join(as.data.frame(locs), df_tri) } + + df_tri_return <- calc_return_locs( + covar = df_tri, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) + # read attr - df_tri$time <- as.integer(attr(from, "tri_year")) - calc_check_time(covar = df_tri, POSIXt = FALSE) - return(df_tri) + df_tri_return$time <- as.integer(attr(from, "tri_year")) + + return(df_tri_return) } @@ -1291,10 +1383,13 @@ calc_tri <- function( #' @param locs sf/SpatVector. Locations at NEI values are joined. #' @param locs_id character(1). Unique site identifier column name. #' Unused but kept for compatibility. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` #' @param ... Placeholders. #' @author Insang Song, Ranadeep Daw #' @seealso [`process_nei`] -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom methods is #' @importFrom terra project @@ -1313,6 +1408,7 @@ calc_nei <- function( from = NULL, locs = NULL, locs_id = "site_id", + geom = FALSE, ... ) { if (!methods::is(locs, "SpatVector")) { @@ -1325,8 +1421,14 @@ calc_nei <- function( locs_re <- terra::project(locs, terra::crs(from)) locs_re <- terra::intersect(locs_re, from) locs_re <- as.data.frame(locs_re) - calc_check_time(covar = locs_re, POSIXt = FALSE) - return(locs_re) + + locs_return <- calc_return_locs( + covar = locs_re, + POSIXt = FALSE, + geom = geom, + crs = terra::crs(from) + ) + return(locs_return) } @@ -1349,7 +1451,7 @@ calc_nei <- function( #' @param ... Placeholders. #' @seealso [process_hms()] #' @author Mitchell Manware -#' @return a data.frame object +#' @return a data.frame or SpatVector object #' @importFrom terra vect #' @importFrom terra as.data.frame #' @importFrom terra time @@ -2333,6 +2435,7 @@ calc_terraclimate <- function( return(sites_return) } +# nolint start #' Calculate temporally lagged covariates #' @description #' The \code{calc_lagged()} function calculates daily temporal lagged covariates @@ -2344,6 +2447,9 @@ calc_terraclimate <- function( #' @param lag integer(1). Number of lag days. #' @param time_id character(1). Column containing time values. #' @param locs_id character(1). Name of unique identifier. +#' @param geom logical(1). Should the function return a `SpatVector`? +#' Default is `FALSE`. The coordinate reference system of the `SpatVector` is +#' that of `from.` To return as a `SpatVector`, `from` must also be a `SpatVector` #' @seealso [calc_covariates()] #' @note #' In order to calculate temporally lagged covariates, `from` must contain at @@ -2357,6 +2463,7 @@ calc_terraclimate <- function( #' lag, buffer radius format adopted in \code{calc_setcolumns()}. #' @return a `data.frame` object #' @importFrom dplyr lag +#' @importFrom dplyr select #' @examples #' \dontrun{ #' loc <- data.frame(id = "001", lon = -78.90, lat = 35.97) @@ -2376,22 +2483,29 @@ calc_terraclimate <- function( #' time_id = "time" #' ) #' } +# nolint end #' @export calc_lagged <- function( from, date, lag, locs_id, - time_id = "time") { - #### check input data types - if ("SpatVector" %in% class(from)) { - cat( + time_id = "time", + geom = FALSE) { + #### geom and from + if (geom && !("SpatVector" %in% class(from))) { + stop( paste0( - "`calc_lagged` for `SpatVector` objects is under construction.", - " Returning `NULL`.\n" + "To return with geometry, `from` must be a `SpatVector` object.\n" ) ) } + #### check input data types + if ("SpatVector" %in% class(from)) { + from_full <- terra::as.data.frame(from, geom = "WKT") + geoms <- unique(from_full[, c("site_id", "geometry")]) + from <- from_full |> dplyr::select(-"geometry") + } stopifnot(methods::is(from, "data.frame")) #### check if time_id is not null stopifnot(!is.null(time_id)) @@ -2445,6 +2559,14 @@ calc_lagged <- function( #### merge with other locations variables_merge <- rbind(variables_merge, variables_return_date) } - calc_check_time(covar = variables_merge, POSIXt = TRUE) - return(variables_merge) + if (geom) { + variables_merge <- merge(variables_merge, geoms) + } + variables_return <- calc_return_locs( + covar = variables_merge, + POSIXt = TRUE, + geom = geom, + crs = terra::crs(from) + ) + return(variables_return) } diff --git a/R/calculate_covariates_auxiliary.R b/R/calculate_covariates_auxiliary.R index 40bf0637..de6f4532 100644 --- a/R/calculate_covariates_auxiliary.R +++ b/R/calculate_covariates_auxiliary.R @@ -519,16 +519,24 @@ calc_return_locs <- function( if ("time" %in% names(covar)) { calc_check_time(covar = covar, POSIXt = POSIXt) } + # nolint ent # if geom, convert to and return SpatVector if (geom) { - covar_return <- terra::vect( - covar, - geom = "geometry", - crs = crs - ) + if ("geometry" %in% names(covar)){ + covar_return <- terra::vect( + covar, + geom = "geometry", + crs = crs + ) + } else if (all(c("lon", "lat") %in% names(covar))) { + covar_return <- terra::vect( + covar, + geom = c("lon", "lat"), + crs = crs + ) + } return(covar_return) } else { return(data.frame(covar)) } } -# nolint end \ No newline at end of file diff --git a/R/process_auxiliary.R b/R/process_auxiliary.R index 75cc563a..bb2b700d 100644 --- a/R/process_auxiliary.R +++ b/R/process_auxiliary.R @@ -344,7 +344,7 @@ process_locs_vector <- ) { #### detect SpatVector if (methods::is(locs, "SpatVector")) { - cat( + message( paste0( "Detected `SpatVector` (", terra::geomtype(locs), @@ -545,15 +545,20 @@ is_date_proper <- function( #' @param data sf/terra object. #' @param extent numeric(4). Extent to filter the data. #' Should be ordered as c(xmin, xmax, ymin, ymax). +#' @param geom character(1 or 2). Geometry type for if `data` is `data.frame`. +#' One of "geometry" or c("lon", "lat"). #' @importFrom sf st_as_sfc st_bbox st_crs #' @importFrom terra ext #' @returns sf/terra object with the extent applied. #' @keywords internal apply_extent <- - function(data, extent) { + function(data, extent, geom) { extent <- terra::ext(extent) if (inherits(data, "sf")) { - extent <- sf::st_as_sfc(sf::st_bbox(extent), crs = sf::st_crs(data)) + extent <- sf::st_as_sfc(sf::st_bbox(extent)) + sf::st_crs(extent) <- sf::st_crs(data) + } else if (inherits(data, "data.frame")) { + data <- terra::vect(data, geom = geom, crs = "EPSG:4326") } data <- data[extent, ] return(data) diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index fac92114..5b1c2057 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -75,6 +75,16 @@ testthat::test_that("calc_dummies works well", { # should have each of the indicator groups testthat::expect_equal(sum(unlist(dum_res[, -1:-4])), 3L) + # with geometry + testthat::expect_no_error( + dum_res_geom <- calc_temporal_dummies( + locs = site_faux, + year = seq(2018L, 2022L), + geom = TRUE + ) + ) + testthat::expect_s4_class(dum_res_geom, "SpatVector") + # error cases site_faux_err <- site_faux colnames(site_faux_err)[4] <- "date" @@ -253,6 +263,25 @@ testthat::test_that("calc_modis works well.", { ) ) + # with geometry + testthat::expect_no_error( + suppressWarnings( + calc_mod11_geom <- + calc_modis_par( + from = path_mod11, + locs = sf::st_as_sf(site_faux), + preprocess = process_modis_merge, + package_list_add = c("MASS"), + export_list_add = c("aux"), + name_covariates = c("MOD_LSTNT_0_", "MOD_LSTDY_0_"), + subdataset = "(LST_)", + nthreads = 1L, + geom = TRUE + ) + ) + ) + testthat::expect_s4_class(calc_mod11_geom, "SpatVector") + # case 2: swath mod06l2 path_mod06 <- list.files( @@ -285,6 +314,24 @@ testthat::test_that("calc_modis works well.", { ) testthat::expect_s3_class(calc_mod06, "data.frame") + # with geometry + testthat::expect_no_error( + suppressWarnings( + calc_mod06_geom <- + calc_modis_par( + from = path_mod06, + locs = site_faux, + subdataset = c("Cloud_Fraction_Day", "Cloud_Fraction_Night"), + preprocess = process_modis_swath, + name_covariates = c("MOD_CLFRN_0_", "MOD_CLFRD_0_"), + nthreads = 1, + geom = TRUE + ) + ) + ) + testthat::expect_s4_class(calc_mod06_geom, "SpatVector") + + # case 3: VIIRS path_vnp46 <- list.files( @@ -316,6 +363,43 @@ testthat::test_that("calc_modis works well.", { ) testthat::expect_s3_class(calc_vnp46, "data.frame") + # with geometry (as SpatVector) + testthat::expect_no_error( + suppressWarnings( + calc_vnp46_geom_v <- + calc_modis_par( + from = path_vnp46, + locs = site_faux, + preprocess = process_blackmarble, + name_covariates = c("MOD_NITLT_0_"), + subdataset = 3L, + nthreads = 1, + tile_df = process_blackmarble_corners(c(9, 10), c(5, 5)), + geom = TRUE + ) + ) + ) + testthat::expect_s4_class(calc_vnp46_geom_v, "SpatVector") + + + # with geometry (as sf) + testthat::expect_no_error( + suppressWarnings( + calc_vnp46_geom_sf <- + calc_modis_par( + from = path_vnp46, + locs = sf::st_as_sf(site_faux), + preprocess = process_blackmarble, + name_covariates = c("MOD_NITLT_0_"), + subdataset = 3L, + nthreads = 1, + tile_df = process_blackmarble_corners(c(9, 10), c(5, 5)), + geom = TRUE + ) + ) + ) + testthat::expect_s4_class(calc_vnp46_geom_sf, "SpatVector") + # error cases testthat::expect_error( process_modis_merge(path = site_faux) @@ -399,6 +483,19 @@ testthat::test_that("calc_modis works well.", { ) ) + # test calc_modis_daily directly with geometry + testthat::expect_no_error( + calc_mod_geom <- calc_modis_daily( + from = mcd_merge, + date = "2021-08-15", + locs = sf::st_as_sf(site_faux2), + radius = 1000, + name_extracted = "MCD_EXTR_1K_", + geom = TRUE + ) + ) + testthat::expect_s4_class(calc_mod_geom, "SpatVector") + testthat::expect_error( calc_modis_par(from = site_faux) ) @@ -691,6 +788,16 @@ testthat::test_that("NEI calculation", { testthat::expect_true(any(grepl("NEI", names(neicalced)))) testthat::expect_equal(neicalced$TRF_NEINP_0_00000, 1579079, tolerance = 1) + # with geometry + testthat::expect_no_error( + neicalced_geom <- calc_nei( + locs = ncp, + from = neiras, + geom = TRUE + ) + ) + testthat::expect_s4_class(neicalced_geom, "SpatVector") + # more error cases testthat::expect_condition( calc_nei( @@ -710,8 +817,8 @@ testthat::test_that("TRI calculation", { withr::local_package("data.table") withr::local_options(sf_use_s2 = FALSE) - ncp <- data.frame(lon = -78.8277, lat = 35.95013) - ncp$site_id <- "3799900018810101" + ncp <- data.frame(lon = c(-78.8277, -78.0000), lat = c(35.95013, 80.000)) + ncp$site_id <- c("3799900018810101", "3799900018819999") ncp$time <- 2018L ncpt <- terra::vect(ncp, geom = c("lon", "lat"), @@ -728,11 +835,22 @@ testthat::test_that("TRI calculation", { tri_c <- calc_tri( from = tri_r, locs = ncpt, - radius = 50000L + radius = c(1500L, 50000L) ) ) testthat::expect_true(is.data.frame(tri_c)) + # with geometry + testthat::expect_no_error( + tri_c_geom <- calc_tri( + from = tri_r, + locs = ncpt, + radius = c(1500L, 50000L), + geom = TRUE + ) + ) + testthat::expect_s4_class(tri_c_geom, "SpatVector") + testthat::expect_no_error( calc_tri( from = tri_r, @@ -808,6 +926,19 @@ testthat::test_that("calc_sedc tests", { ) ) + # with geometry + testthat::expect_no_error( + tri_sedc_geom <- calc_sedc( + locs = ncpt, + from = tri_r, + locs_id = "site_id", + sedc_bandwidth = 30000, + target_fields = targcols, + geom = TRUE + ) + ) + testthat::expect_s4_class(tri_sedc_geom, "SpatVector") + # warning case: duplicate field names between locs and from ncpta <- ncpt ncpta$YEAR <- 2018 @@ -1708,6 +1839,7 @@ testthat::test_that("calc_lagged error with SpatVector.", { withr::local_package("data.table") ncp <- data.frame(lon = -78.8277, lat = 35.95013) ncp$site_id <- "3799900018810101" + ncpv <- terra::vect(ncp, geom = c("lon", "lat"), crs = "EPSG:4326") # expect function testthat::expect_true( is.function(calc_lagged) @@ -1727,14 +1859,32 @@ testthat::test_that("calc_lagged error with SpatVector.", { narr_covariate_geom <- calc_narr( from = narr, - locs = ncp, + locs = ncpv, locs_id = "site_id", radius = 0, fun = "mean", geom = TRUE ) + testthat::expect_no_error( + narr_covariate_geom_lag <- calc_lagged( + from = narr_covariate_geom, + date = c("2018-01-03", "2018-01-05"), + lag = 1, + locs_id = "site_id", + time_id = "time", + geom = TRUE + ) + ) + testthat::expect_s4_class(narr_covariate_geom_lag, "SpatVector") testthat::expect_error( - calc_lagged(from = narr_covariate_geom) + calc_lagged( + from = as.data.frame(narr_covariate_geom), + date = c("2018-01-03", "2018-01-05"), + lag = 1, + locs_id = "site_id", + time_id = "time", + geom = TRUE + ) ) }) diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index fdcacfce..1665bfea 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -1297,7 +1297,7 @@ testthat::test_that("process_aqs", { testthat::expect_error( process_aqs(path = aqssub, date = c("2021-08-15")) ) - testthat::expect_error( + testthat::expect_no_error( process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), mode = "available-data", return_format = "sf", @@ -1851,9 +1851,10 @@ testthat::test_that("apply_extent tests", { dfsftr <- apply_extent(dfsf, c(-112, -101, 33.5, 40.9)) ) testthat::expect_no_error( - dfdftr <- apply_extent(df, c(-112, -101, 33.5, 40.9)) + dfdftr <- + apply_extent(df, c(-112, -101, 33.5, 40.9), geom = c("lon", "lat")) ) testthat::expect_s4_class(dftr1, "SpatVector") - testthat::expect_s4_class(dfsftr, "SpatVector") + testthat::expect_s3_class(dfsftr, "sf") testthat::expect_s4_class(dfdftr, "SpatVector") }) From 22c58ad75d0d703e7e84c7a1ba2a16890ade9481 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Wed, 17 Jul 2024 11:48:38 -0400 Subject: [PATCH 33/66] documentation --- man/apply_extent.Rd | 5 ++++- man/calc_hms.Rd | 2 +- man/calc_lagged.Rd | 6 +++++- man/calc_modis_daily.Rd | 9 +++++++-- man/calc_modis_par.Rd | 7 ++++++- man/calc_nei.Rd | 8 ++++++-- man/calc_sedc.Rd | 9 +++++++-- man/calc_temporal_dummies.Rd | 16 +++++++++++++--- man/calc_tri.Rd | 7 ++++++- 9 files changed, 55 insertions(+), 14 deletions(-) diff --git a/man/apply_extent.Rd b/man/apply_extent.Rd index 6b3a6fbe..68a99b96 100644 --- a/man/apply_extent.Rd +++ b/man/apply_extent.Rd @@ -4,13 +4,16 @@ \alias{apply_extent} \title{Apply extent to the processed data} \usage{ -apply_extent(data, extent) +apply_extent(data, extent, geom) } \arguments{ \item{data}{sf/terra object.} \item{extent}{numeric(4). Extent to filter the data. Should be ordered as c(xmin, xmax, ymin, ymax).} + +\item{geom}{character(1 or 2). Geometry type for if \code{data} is \code{data.frame}. +One of "geometry" or c("lon", "lat").} } \value{ sf/terra object with the extent applied. diff --git a/man/calc_hms.Rd b/man/calc_hms.Rd index 885962ea..b82d116e 100644 --- a/man/calc_hms.Rd +++ b/man/calc_hms.Rd @@ -24,7 +24,7 @@ that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract wildfire smoke plume values at point locations. Returns a diff --git a/man/calc_lagged.Rd b/man/calc_lagged.Rd index 6005a5b2..546bf974 100644 --- a/man/calc_lagged.Rd +++ b/man/calc_lagged.Rd @@ -4,7 +4,7 @@ \alias{calc_lagged} \title{Calculate temporally lagged covariates} \usage{ -calc_lagged(from, date, lag, locs_id, time_id = "time") +calc_lagged(from, date, lag, locs_id, time_id = "time", geom = FALSE) } \arguments{ \item{from}{data.frame(1). A \code{data.frame} containing calculated covariates @@ -18,6 +18,10 @@ Length of 10 each, format YYYY-MM-DD (ex. September 1, 2023 = "2023-09-01").} \item{locs_id}{character(1). Name of unique identifier.} \item{time_id}{character(1). Column containing time values.} + +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.} To return as a \code{SpatVector}, \code{from} must also be a \code{SpatVector}} } \value{ a \code{data.frame} object diff --git a/man/calc_modis_daily.Rd b/man/calc_modis_daily.Rd index 50fa00e9..6c62dcf7 100644 --- a/man/calc_modis_daily.Rd +++ b/man/calc_modis_daily.Rd @@ -13,6 +13,7 @@ calc_modis_daily( name_extracted = NULL, fun_summary = "mean", max_cells = 3e+07, + geom = FALSE, ... ) } @@ -37,13 +38,17 @@ for details.} \item{max_cells}{integer(1). Maximum number of cells to be read at once. Higher values will expedite processing, but will increase memory usage. -Maximum possible value is \code{2^31 - 1}. +Maximum possible value is \code{2^31 - 1}.} + +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.} See \code{\link[exactextractr:exact_extract]{exactextractr::exact_extract}} for details.} \item{...}{Placeholders.} } \value{ -A data.frame object. +a data.frame or SpatVector object. } \description{ The function operates at MODIS/VIIRS products diff --git a/man/calc_modis_par.Rd b/man/calc_modis_par.Rd index f89605d3..41e01d4d 100644 --- a/man/calc_modis_par.Rd +++ b/man/calc_modis_par.Rd @@ -17,6 +17,7 @@ calc_modis_par( package_list_add = NULL, export_list_add = NULL, max_cells = 3e+07, + geom = FALSE, ... ) } @@ -62,10 +63,14 @@ Higher values will expedite processing, but will increase memory usage. Maximum possible value is \code{2^31 - 1}. See \code{\link[exactextractr:exact_extract]{exactextractr::exact_extract}} for details.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} + \item{...}{Arguments passed to \code{preprocess}.} } \value{ -A data.frame with an attribute: +A data.frame or SpatVector with an attribute: \itemize{ \item \code{attr(., "dates_dropped")}: Dates with insufficient tiles. Note that the dates mean the dates with insufficient tiles, diff --git a/man/calc_nei.Rd b/man/calc_nei.Rd index 8d02c7b3..8a749c86 100644 --- a/man/calc_nei.Rd +++ b/man/calc_nei.Rd @@ -4,7 +4,7 @@ \alias{calc_nei} \title{Calculate road emissions covariates} \usage{ -calc_nei(from = NULL, locs = NULL, locs_id = "site_id", ...) +calc_nei(from = NULL, locs = NULL, locs_id = "site_id", geom = FALSE, ...) } \arguments{ \item{from}{SpatVector(1). Output of \code{process_nei()}.} @@ -14,10 +14,14 @@ calc_nei(from = NULL, locs = NULL, locs_id = "site_id", ...) \item{locs_id}{character(1). Unique site identifier column name. Unused but kept for compatibility.} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} + \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Calculate road emissions covariates diff --git a/man/calc_sedc.Rd b/man/calc_sedc.Rd index 638172ba..b34855d7 100644 --- a/man/calc_sedc.Rd +++ b/man/calc_sedc.Rd @@ -9,7 +9,8 @@ calc_sedc( locs = NULL, locs_id = NULL, sedc_bandwidth = NULL, - target_fields = NULL + target_fields = NULL, + geom = FALSE ) } \arguments{ @@ -25,9 +26,13 @@ Distance at which the source concentration is reduced to \code{exp(-3)} (approximately -95 \%)} \item{target_fields}{character(varying). Field names in characters.} + +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} } \value{ -a data.frame (tibble) object with input field names with +a data.frame (tibble) or SpatVector object with input field names with a suffix \code{"_sedc"} where the sums of EDC are stored. Additional attributes are attached for the EDC information. \itemize{ diff --git a/man/calc_temporal_dummies.Rd b/man/calc_temporal_dummies.Rd index 0b6fd452..93a3a8e2 100644 --- a/man/calc_temporal_dummies.Rd +++ b/man/calc_temporal_dummies.Rd @@ -4,7 +4,13 @@ \alias{calc_temporal_dummies} \title{Calculate temporal dummy covariates} \usage{ -calc_temporal_dummies(locs, locs_id = "site_id", year = seq(2018L, 2022L), ...) +calc_temporal_dummies( + locs, + locs_id = "site_id", + year = seq(2018L, 2022L), + geom = FALSE, + ... +) } \arguments{ \item{locs}{data.frame with a temporal field named \code{"time"}} @@ -13,12 +19,16 @@ calc_temporal_dummies(locs, locs_id = "site_id", year = seq(2018L, 2022L), ...) Default is \code{"site_id"}.} \item{year}{integer. Year domain to dummify. -Default is \code{seq(2018L, 2022L)}} +Default is \code{seq(2018L, 2022L)}.} + +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Calculate temporal dummy covariates at point locations. Returns a diff --git a/man/calc_tri.Rd b/man/calc_tri.Rd index e7aa46ed..977c99fe 100644 --- a/man/calc_tri.Rd +++ b/man/calc_tri.Rd @@ -9,6 +9,7 @@ calc_tri( locs, locs_id = "site_id", radius = c(1000L, 10000L, 50000L), + geom = FALSE, ... ) } @@ -23,10 +24,14 @@ Default is \code{"site_id"}.} \item{radius}{Circular buffer radius. Default is \code{c(1000, 10000, 50000)} (meters)} +\item{geom}{logical(1). Should the function return a \code{SpatVector}? +Default is \code{FALSE}. The coordinate reference system of the \code{SpatVector} is +that of \code{from.}} + \item{...}{Placeholders.} } \value{ -a data.frame object +a data.frame or SpatVector object } \description{ Extract toxic release values at point locations. Returns a \code{data.frame} From 83a6b28bd183af19a9794216eba74a6552b723fa Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Wed, 17 Jul 2024 12:28:08 -0400 Subject: [PATCH 34/66] download_*() references --- DESCRIPTION | 3 +- NAMESPACE | 1 + R/download.R | 152 ++- inst/REFERENCES.bib | 2131 ++++++++++++++++++++++++++++++ man/download_aqs.Rd | 3 + man/download_ecoregion.Rd | 3 + man/download_geos.Rd | 3 + man/download_gmted.Rd | 3 + man/download_gridmet.Rd | 3 + man/download_hms.Rd | 3 + man/download_huc.Rd | 3 + man/download_koppen_geiger.Rd | 3 + man/download_merra2.Rd | 95 ++ man/download_modis.Rd | 3 + man/download_narr.Rd | 3 + man/download_nei.Rd | 3 + man/download_nlcd.Rd | 3 + man/download_olm.Rd | 3 + man/download_prism.Rd | 2 + man/download_sedac_groads.Rd | 3 + man/download_sedac_population.Rd | 3 + man/download_terraclimate.Rd | 3 + man/download_tri.Rd | 3 + 23 files changed, 2433 insertions(+), 2 deletions(-) create mode 100644 inst/REFERENCES.bib diff --git a/DESCRIPTION b/DESCRIPTION index 284c8eee..062fc077 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -12,8 +12,9 @@ Authors@R: c( ) Description: A Mechanism/Machine for Data, Environments, and User Setup package for health and climate research. It is fully tested, versioned, and open source and open access. Depends: R (>= 4.1.0) -Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, devtools +Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, devtools, Rdpack Suggests: covr, withr, knitr, rmarkdown, lwgeom, FNN, doRNG +RdMacros: Rdpack Encoding: UTF-8 VignetteBuilder: knitr, rmarkdown Roxygen: list(markdown = TRUE) diff --git a/NAMESPACE b/NAMESPACE index 26164339..0c610087 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -123,6 +123,7 @@ import(rvest) import(sf) import(sftime) import(stars) +importFrom(Rdpack,reprompt) importFrom(archive,archive_extract) importFrom(collapse,rowbind) importFrom(data.table,.SD) diff --git a/R/download.R b/R/download.R index 444ce28e..c0abb5c7 100644 --- a/R/download.R +++ b/R/download.R @@ -147,6 +147,9 @@ download_data <- #' @author Mariana Kassien, Insang Song, Mitchell Manware #' @returns NULL; Zip and/or data files will be downloaded and stored in #' \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{data_usepa2023airdata}{amadeus} #' @examples #' \dontrun{ #' download_aqs( @@ -314,6 +317,9 @@ download_aqs <- #' @returns NULL; Zip and/or data files will be downloaded and stored in #' \code{directory_to_save}. #' @importFrom utils download.file +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{article_omernik2014ecoregions}{amadeus} #' @examples #' \dontrun{ #' download_ecoregion( @@ -438,6 +444,10 @@ download_ecoregion <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; netCDF (.nc4) files will be stored in a #' collection-specific folder within \code{directory_to_save}. +#' @importFrom utils download.file +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{keller_description_2021}{amadeus} #' @examples #' \dontrun{ #' download_geos( @@ -609,6 +619,9 @@ download_geos <- function( # nolint end #' @returns NULL; Zip and/or data files will be downloaded and stored in #' \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{danielson_global_2011}{amadeus} #' @examples #' \dontrun{ #' download_gmted( @@ -758,6 +771,101 @@ download_gmted <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; netCDF (.nc4) files will be stored in a #' collection-specific folder within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{data_gmao_merra-inst1_2d_asm_Nx}{amadeus} +#' \insertRef{data_gmao_merra-inst1_2d_int_Nx}{amadeus} +#' \insertRef{data_gmao_merra-inst1_2d_lfo_Nx}{amadeus} +#' \insertRef{data_gmao_merra-inst3_3d_asm_Np}{amadeus} +#' \insertRef{data_gmao_merra-inst3_3d_aer_Nv}{amadeus} +#' \insertRef{data_gmao_merra-inst3_3d_asm_Nv}{amadeus} +#' \insertRef{data_gmao_merra-inst3_3d_chm_Nv}{amadeus} +#' \insertRef{data_gmao_merra-inst3_3d_gas_Nv}{amadeus} +#' \insertRef{data_gmao_merra-inst3_2d_gas_Nx}{amadeus} +#' \insertRef{data_gmao_merra-inst6_3d_ana_Np}{amadeus} +#' \insertRef{data_gmao_merra-inst6_3d_ana_Nv}{amadeus} +#' \insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_adg_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_aer_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_chm_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_csp_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_flx_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_int_Nx}{amadeus} +#' \insertRef{pawson_merra-2_2020}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_lnd_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_ocn_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_rad_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg1_2d_slv_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_mst_Ne}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_trb_Ne}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_nav_Ne}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_cld_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_mst_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_rad_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_tdt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_trb_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_udt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_odt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_qdt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_asm_Nv}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_cld_Nv}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_mst_Nv}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_3d_rad_Nv}{amadeus} +#' \insertRef{data_gmao_merra-tavg3_2d_glc_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instM_2d_asm_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instM_2d_int_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instM_2d_lfo_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instM_2d_gas_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instM_3d_asm_Np}{amadeus} +#' \insertRef{data_gmao_merra-instM_3d_ana_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_adg_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_aer_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_chm_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_csp_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_flx_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_int_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_lfo_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_lnd_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_ocn_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_rad_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_slv_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_2d_glc_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_cld_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_mst_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_rad_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_tdt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_trb_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_udt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_odt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgM_3d_qdt_Np}{amadeus} +#' \insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} +#' \insertRef{data_gmao_merra-const_2d_asm_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instU_2d_asm_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instU_2d_int_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instU_2d_lfo_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instU_2d_gas_Nx}{amadeus} +#' \insertRef{data_gmao_merra-instU_3d_asm_Np}{amadeus} +#' \insertRef{data_gmao_merra-instU_3d_ana_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_adg_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_aer_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_chm_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_csp_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_flx_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_int_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_lfo_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_lnd_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_ocn_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_rad_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_slv_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_2d_glc_Nx}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_cld_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_mst_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_rad_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_tdt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_trb_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_udt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_odt_Np}{amadeus} +#' \insertRef{data_gmao_merra-tavgU_3d_qdt_Np}{amadeus} #' @examples #' \dontrun{ #' download_merra2( @@ -1071,6 +1179,9 @@ download_merra2 <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; netCDF (.nc) files will be stored in #' \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{mesinger_north_2006}{amadeus} #' @examples #' \dontrun{ #' download_narr( @@ -1216,6 +1327,9 @@ download_narr <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{dewitz_national_2023, dewitz_national_2024}{amadeus} #' @examples #' \dontrun{ #' download_nlcd( @@ -1371,6 +1485,9 @@ download_nlcd <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{data_ciesin2013groads}{amadeus} #' @examples #' \dontrun{ #' download_sedac_groads( @@ -1526,6 +1643,9 @@ download_sedac_groads <- function( # nolint end #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{data_ciesin2017gpwv4}{amadeus} #' @examples #' \dontrun{ #' download_sedac_population( @@ -1717,6 +1837,9 @@ download_sedac_population <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{web_HMSabout}{amadeus} #' @examples #' \dontrun{ #' download_hms( @@ -1900,6 +2023,9 @@ download_hms <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{article_beck2023koppen, article_beck2018present}{amadeus} #' @examples #' \dontrun{ #' download_koppen_geiger( @@ -2034,7 +2160,6 @@ download_koppen_geiger <- function( #' @param date character(2). length of 10 each. Start/end date for downloading data. #' Format "YYYY-MM-DD" (ex. January 1, 2018 = `"2018-01-01"`). Note: ignored if #' \code{product == "MOD06_L2"}. -# nolint end #' @param directory_to_save character(1). Directory to save data. #' @param acknowledgement logical(1). By setting \code{TRUE} the #' user acknowledges that the data downloaded using this function may be very @@ -2046,6 +2171,10 @@ download_koppen_geiger <- function( #' @import rvest #' @returns NULL; HDF (.hdf) files will be stored in #' \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{data_mcd19a22021, data_mod06l2_2017, data_mod09ga2021, data_mod11a12021, data_mod13a22021, article_roman2018vnp46}{amadeus} +# nolint end #' @examples #' \dontrun{ #' # example with MOD0GA product @@ -2418,6 +2547,9 @@ download_modis <- function( #' @author Mariana Kassien, Insang Song #' @returns NULL; Comma-separated value (CSV) files will be stored in #' \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{web_usepa2024tri}{amadeus} #' @examples #' \dontrun{ #' download_tri( @@ -2535,6 +2667,9 @@ download_tri <- function( #' certificate updates in the future. #' @returns NULL; Zip and/or data files will be downloaded and stored in #' respective sub-directories within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{web_usepa2024nei}{amadeus} #' @examples #' \dontrun{ #' download_nei( @@ -2746,6 +2881,9 @@ download_nei <- function( #' @returns NULL; GeoTIFF (.tif) files will be stored in #' \code{directory_to_save}. #' @seealso [list_stac_files] +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{data_hengl2023openlandmap}{amadeus} #' @examples #' \dontrun{ #' download_olm( @@ -2853,6 +2991,9 @@ download_olm <- function( #' Default is \code{FALSE}. Not working for this function since HUC data is in 7z format. #' @returns NULL. Downloaded files will be stored in \code{directory_to_save}. #' @author Insang Song +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{data_usgs2023nhd}{amadeus} #' @examples #' \dontrun{ #' download_huc( @@ -3148,6 +3289,9 @@ download_cropscape <- function( #' @author Insang Song #' @returns NULL; .bil (normals) or single grid files depending on the format #' choice will be stored in \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{article_daly2000prism}{amadeus} #' @examples #' \dontrun{ #' download_prism( @@ -3281,6 +3425,9 @@ download_prism <- function( #' @author Mitchell Manware #' @returns NULL; netCDF (.nc) files will be stored in a variable-specific #' folder within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{article_abatzoglou2013development}{amadeus} #' @examples #' \dontrun{ #' download_gridmet( @@ -3417,6 +3564,9 @@ download_gridmet <- function( #' @author Mitchell Manware, Insang Song #' @returns NULL; netCDF (.nc) files will be stored in a variable-specific #' folder within \code{directory_to_save}. +#' @importFrom Rdpack reprompt +#' @references +#' \insertRef{article_abatzoglou2018terraclimate}{amadeus} #' @examples #' \dontrun{ #' download_gridmet( diff --git a/inst/REFERENCES.bib b/inst/REFERENCES.bib new file mode 100644 index 00000000..94530e44 --- /dev/null +++ b/inst/REFERENCES.bib @@ -0,0 +1,2131 @@ +#################################################################################################### +## software +# R +@manual{software_R, + title = {R: A Language and Environment for Statistical Computing}, + author = {{R Core Team}}, + year = 2023, + address = {Vienna, Austria}, + url = {https://www.R-project.org/}, + note = {R version 4.3.2 (2023-10-31)}, + organization = {R Foundation for Statistical Computing} +} +# CRAN +@manual{software_CRAN, + title = {The Comprehensive {R} Archive Network}, + author = {Benjamin Altmann and Kurt Hornik and Tomas Kalibera and Konstanze Lauseker and Uwe Ligges and Brian D. Ripley and Simon Urbanek}, + address = {Vienna, Austria}, + url = {https://cran.r-project.org/} +} + +@manual{software_exactextract, + author = {Baston, Daniel}, + title = {exactextract}, + month = may, + year = 2024, + publisher = {Zenodo}, + version = {0.1.0}, + doi = {10.5281/zenodo.11396420}, + url = {https://doi.org/10.5281/zenodo.11396420} +} + +@manual{software_tigerline, + author = {U.S. Census Bureau}, + title = {2020 {TIGER/Line} Shapefiles (machine-readable data files)}, + year = {2020}, + url = {https://www.census.gov/programs-surveys/geography/technical-documentation/complete-technical-documentation/tiger-geo-line.2020.html} +} + +# R packages +@manual{package_RAQSAPI, + title = {A {R} Interface to the {US} {EPA} Air Quality System Data Mart {API}}, + author = {Clinton Mccrowey and Timothy Sharac and Nick Mangus and Doug Jager and Ryan Brown and Daniel Garver and Benjamin Wells and Hayley Brittingham}, + year = 2021, + url = {https://cran.r-project.org/package=RAQSAPI} +} +@manual{package_Reanalysis, + title = {Reanalysis}, + author = {Kevin Shook}, + year = 2022, + url = {https://github.com/CentreForHydrology/Reanalysis}, + note = {R package version 1.4.1} +} +@article{package_rNOMADS, + title = {Near real time weather and ocean model data access with {rNOMADS}}, + author = {Daniel C. Bowman and Jonathan M. Lees}, + year = 2015, + journal = {{Computers \& Geosciences}}, + volume = 78, + pages = {88--95}, + doi = {10.1016/j.cageo.2015.02.013} +} +@article{package_Kusch2021KrigRaTF, + title = {{KrigR}—a tool for downloading and statistically downscaling climate reanalysis data}, + author = {Erik Kusch and Richard Davy}, + year = 2021, + journal = {Environmental Research Letters}, + booktitle = {Environmental Research Letters}, + volume = 17 +} +@article{package_daymetr, + title = {An integrated phenology modelling framework in {R}: modelling vegetation phenology with {phenor}}, + author = {Koen Hufkens and David Basler and Tom Milliman and Eli K. Melaas and Andrew D. Richardson}, + year = 2018, + journal = {{Methods in Ecology \& Evolution}}, + volume = 9, + pages = {1--10}, + doi = {10.1111/2041-210X.12970} +} +@manual{package_climateR, + title = {{climateR}: climateR}, + author = {Mike Johnson}, + year = 2023, + url = {https://github.com/mikejohnson51/climateR}, + note = {R package version 0.3.2} +} +@manual{package_RClimChange, + title = {{RClimChange}: A package to manipulate Global Climate Models from {NCCS} {THREDDS} {NEX-GDDP-CMIP6}}, + author = {Harold Llauca}, + year = 2024, + note = {R package version 3.2.2} +} +@manual{package_ecmwfr, + title = {The ecwmfr package: an interface to {ECMWF} {API} endpoints}, + author = {Koen Hufkens and Reto Stauffer and Elio Campitelli}, + year = 2019, + doi = {10.5281/zenodo.2647531}, + url = {https://bluegreen-labs.github.io/ecmwfr/}, + note = {R package version 1.5.0} +} +@manual{package_dataRetrieval, + title = {{dataRetrieval}: {R} packages for discovering and retrieving water data available from U.S. federal hydrologic web services}, + author = {Laura DeCicco and Robert Hirsch and David Lorenz and David Watkins and Mike Johnson}, + year = 2024, + publisher = {U.S. Geological Survey}, + address = {Reston, VA}, + doi = {10.5066/P9X4L3GE}, + url = {https://code.usgs.gov/water/dataRetrieval}, + version = {2.7.15}, + institution = {U.S. Geological Survey} +} +@manual{package_luna, + title = {{luna}: Tools for Satellite Remote Sensing (Earth Observation) Data Processing}, + author = {Robert J. Hijmans and Aniruddha Ghosh}, + year = 2023, + note = {R package version 0.3-6} +} +@manual{package_FedData, + title = {{FedData}: Functions to Automate Downloading Geospatial Data Available from Several Federated Data Sources}, + author = {R. Kyle Bocinsky}, + year = 2023, + url = {https://CRAN.R-project.org/package=FedData}, + note = {R package version 4.0.0} +} +@manual{package_raqs, + title = {{raqs}: Interface to the {US EPA} Air Quality System ({AQS}) {API}}, + author = {Jaehyun Joo and Blanca Himes}, + year = 2023, + url = {https://CRAN.R-project.org/package=raqs}, + note = {R package version 1.0.2} +} +@manual{package_geodata, + title = {{geodata}: Download Geographic Data}, + author = {Robert J. Hijmans and Márcia Barbosa and Aniruddha Ghosh and Alex Mandel}, + year = 2023, + url = {https://CRAN.R-project.org/package=geodata}, + note = {R package version 0.5-9} +} +@manual{package_terra, + title = {{terra}: Spatial Data Analysis}, + author = {Robert J. Hijmans}, + year = 2023, + url = {https://CRAN.R-project.org/package=terra}, + note = {R package version 1.7-65} +} +@article{package_sf, + title = {{Simple Features for {R}: Standardized Support for Spatial Vector Data}}, + author = {Edzer Pebesma}, + year = 2018, + journal = {{The R Journal}}, + volume = 10, + number = 1, + pages = {439--446}, + doi = {10.32614/RJ-2018-009}, + url = {https://doi.org/10.32614/RJ-2018-009} +} +@book{package_stars, + title = {{Spatial Data Science: With applications in {R}}}, + author = {Edzer Pebesma and Roger Bivand}, + year = 2023, + publisher = {Chapman and Hall/CRC}, + address = {London}, + pages = 352, + doi = {10.1201/9780429459016}, + url = {https://r-spatial.org/book/} +} +@manual{package_MODISTools, + title = {The {MODISTools} package: an interface to the {MODIS} Land Products Subsets Web Services}, + author = {Koen Hufkens}, + year = 2023, + month = {Jan}, + publisher = {Zenodo}, + doi = {10.5281/zenodo.7551165}, + url = {https://doi.org/10.5281/zenodo.7551165}, + version = {R package version 1.1.4} +} +@article{package_MODIStsp, + title = {{MODIStsp}: an {R} package for preprocessing of {MODIS} Land Products time series}, + author = {Lorenzo Busetto and Luigi Ranghetti}, + year = 2016, + journal = {{Computers \& Geosciences}}, + volume = 97, + pages = {40--48}, + doi = {10.1016/j.cageo.2016.08.020}, + issn = {0098-3004}, + url = {https://github.com/ropensci/MODIStsp} +} +@manual{package_merra2ools, + title = {{merra2ools}: {R}-tools to process {MERRA-2} data ({NASA}) with focus on renewable energy}, + author = {Oleg Lugovoy and Shuo Gao}, + year = 2023, + url = {https://energyRt.github.io/merra2ools/}, + note = {R package version 0.1.03} +} +@article{package_testthat, + title = {testthat: Get Started with Testing}, + author = {Hadley Wickham}, + year = 2011, + journal = {The R Journal}, + volume = 3, + pages = {5--10}, + url = {https://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf} +} +@manual{package_pkgdown, + title = {{pkgdown}: Make Static {HTML} Documentation for a Package}, + author = {Hadley Wickham and Jay Hesselberth and Maëlle Salmon}, + year = 2022, + url = {https://CRAN.R-project.org/package=pkgdown}, + note = {R package version 2.0.7} +} +@manual{package_roxygen2, + title = {{roxygen2}: In-Line Documentation for {R}}, + author = {Hadley Wickham and Peter Danenberg and Gábor Csárdi and Manuel Eugster}, + year = 2024, + url = {https://CRAN.R-project.org/package=roxygen2}, + note = {R package version 7.3.1} +} +@manual{package_httr, + title = {{httr}: Tools for Working with {URLs} and {HTTP}}, + author = {Hadley Wickham}, + year = 2023, + url = {https://CRAN.R-project.org/package=httr}, + note = {R package version 1.4.7} +} +@manual{package_qbms, + title = {{QBMS}: Query the Breeding Management System(s)}, + author = {Khaled Al-Shamaa}, + year = 2024, + url = {https://CRAN.R-project.org/package=QBMS}, + note = {R package version 1.0.0} +} +@manual{package_exactextractr, + title = {exactextractr: Fast Extraction from Raster Datasets using Polygons}, + author = {{Daniel Baston}}, + year = 2023, + url = {https://CRAN.R-project.org/package=exactextractr}, + note = {R package version 0.10.0} +} +@manual{package_tigris, + title = {{tigris}: Load {Census} {TIGER/Line} {Shapefiles}}, + author = {Kyle Walker}, + year = 2024, + url = {https://CRAN.R-project.org/package=tigris}, + note = {R package version 2.1} +} +@manual{package_covr, + title = {{covr}: Test Coverage for Packages}, + author = {Jim Hester}, + year = 2023, + url = {https://CRAN.R-project.org/package=covr}, + note = {R package version 3.6.4} +} +@manual{package_tidycensus, + title = {tidycensus: Load US Census Boundary and Attribute Data as 'tidyverse' and 'sf'-Ready Data Frames}, + author = {Kyle Walker and Matt Herman}, + year = 2024, + url = {https://CRAN.R-project.org/package=tidycensus}, + note = {R package version 1.6.3} +} + +# R functions +@manual{function_NARRdownloadNetCDF, + title = {{NARRdownloadNetCDF}: Downloads {NARR} {NetCDF} files}, + author = {Kevin Shook and Bastien Ferland-Raymond}, + year = 2022, + url = {https://rdrr.io/github/CentreForHydrology/Reanalysis/man/NARRdownloadNetCDF.html} +} +@manual{function_downloadDEM, + title = {download\_{DEM}: Downloading {DEM} data from {USGS} servers}, + author = {Erik Kusch}, + year = 2021, + url = {https://rdrr.io/github/ErikKusch/KrigR/man/download_DEM.html} +} +@manual{function_mt_subset, + title = {mt\_subset: Download {MODIS} Land Product subsets}, + author = {Koen Hufkens}, + year = 2023, + url = {https://bluegreen-labs.github.io/MODISTools/reference/mt_subset.html} +} +# R vignettes +@manual{vignette_RAQSAPI, + title = {Introduction to the {RAQSAPI} package}, + author = {Clinton Mccrowey}, + publisher = {US Environmental Protection Agency}, + url = {https://cran.r-project.org/web/packages/RAQSAPI/vignettes/RAQSAPIvignette.html#RAQSAPI%20functional%20families} +} + +#################################################################################################### +## datasets +@manual{data_SEDAC_population, + title = {Gridded Population of the World, Version 4 (GPWv4): Population Density Adjusted to Match 2015 Revision UN WPP Country Totals, Revision 11}, + author = {Center for International Earth Science Information Network - CIESIN - Columbia University}, + year = 2018, + month = jun, + journal = {{AGU} Advances}, + publisher = {NASA Socioeconomic Data and Applications Center (SEDAC)}, + doi = {10.7927/H4F47M65}, + url = {https://doi.org/10.7927/H4F47M65}, + howpublished = {\url{https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-adjusted-to-2015-unwpp-country-totals-rev11}} +} +@manual{data_koppen_geiger, + title = {Present and future K{\"o}ppen-Geiger climate classification maps at 1-km resolution}, + author = {Beck, Hylke E and Zimmermann, Niklaus E and McVicar, Tim R and Vergopolan, Noemi and Berg, Alexis and Wood, Eric F}, + year = 2018, + journal = {Scientific data}, + publisher = {Nature Publishing Group}, + volume = 5, + number = 1, + pages = {1--12}, + doi = {10.6084/m9.figshare.6396959}, + url = {https://doi.org/10.6084/m9.figshare.6396959}, + howpublished = {\url{https://figshare.com/articles/dataset/Present_and_future_K_ppen-Geiger_climate_classification_maps_at_1-km_resolution/6396959/2}} +} +@manual{data_acsdp05, + title = {ACS Demographic and Housing Estimates (DP05)}, + author = {U.S. Census Bureau}, + year = 2019, + howpublished = {\url{https://data.census.gov/cedsci/table?q=DP05}} +} + +#################################################################################################### +## web pages +@misc{web_SEDAC_GPWv4, + title = {{Gridded Population of the World (GPW)}, v4}, + author = {Center for International Earth Science Information Network - CIESIN - Columbia University}, + publisher = {NASA Socioeconomic Data and Applications Center (SEDAC)}, + url = {https://sedac.ciesin.columbia.edu/data/collection/gpw-v4/documentation}, + howpublished = {\url{https://sedac.ciesin.columbia.edu/data/collection/gpw-v4/documentation}} +} +@misc{web_Sruthi2024, + title = {Top 20 Best Programming Languages To Learn in 2024}, + author = {Sruthi Veeraraghavan}, + year = 2024, + url = {https://www.simplilearn.com/best-programming-languages-start-learning-today-article}, + howpublished = {\url{https://www.simplilearn.com/best-programming-languages-start-learning-today-article}} +} +@misc{web_NARRcrs, + title = {Lambert Conformal Format}, + publisher = {NOAA Physical Sciences Laboratory}, + url = {https://psl.noaa.gov/data/narr/format.html}, + howpublished = {\url{https://psl.noaa.gov/data/narr/format.html}} +} +@misc{web_NARRabout, + title = {NCEP North American Regional Reanalysis (NARR)}, + publisher = {NOAA Physical Sciences Laboratory}, + url = {https://psl.noaa.gov/data/gridded/data.narr.html}, + howpublished = {\url{https://psl.noaa.gov/data/gridded/data.narr.html}} +} +@misc{web_HMSabout, + title = {Hazard Mapping System Fire and Smoke Product: Hazard Mapping System}, + publisher = {NOAA Office of Satellite And Product Operations}, + url = {https://www.ospo.noaa.gov/Products/land/hms.html#about}, + howpublished = {\url{https://www.ospo.noaa.gov/Products/land/hms.html#about}} +} +@misc{web_ESRIshapefile, + title = {Shapefile file extensions}, + publisher = {Esri}, + year = {2021}, + url = {https://desktop.arcgis.com/en/arcmap/latest/manage-data/shapefiles/shapefile-file-extensions.htm}, + howpublished = {\url{https://desktop.arcgis.com/en/arcmap/latest/manage-data/shapefiles/shapefile-file-extensions.htm}} +} +@misc{web_HTTPresponse, + title = {{HTTP} response status codes}, + year = 2023, + publisher = {MDN Web Docs}, + url = {https://developer.mozilla.org/en-US/docs/Web/HTTP/Status}, + howpublished = {\url{https://developer.mozilla.org/en-US/docs/Web/HTTP/Status}} +} +@misc{web_NIEHSplan, + title = {Theme One: Advancing Environmental Health Sciences}, + year = 2018, + publisher = {National Institute of Environmental Health Sciences}, + url = {https://www.niehs.nih.gov/about/strategicplan/2018-2023_theme1} +} +@misc{web_sedctutorial, + title = {Euclidean Sum of Exponentially Decaying Contributions Tutorial}, + author = {Corinne Wiesner}, + url = {https://mserre.sph.unc.edu/BMElab_web/SEDCtutorial/index.html} +} +@misc{web_ropensci, + title = {Packages}, + publisher = {rOpenSci}, + url = {https://ropensci.org/packages/}, + howpublished = {\url{https://ropensci.org/packages/}} +} +@misc{web_wktformat, + title = {Well-known text ({WKT}) format}, + publisher = {IBM}, + url = {https://www.ibm.com/docs/en/i/7.5?topic=formats-well-known-text-wkt-format}, + howpublished = {\url{https://www.ibm.com/docs/en/i/7.5?topic=formats-well-known-text-wkt-format}} +} +@misc{web_exactextractr, + title = {exactextractr}, + author = {{Daniel Baston}}, + publisher = {isciences}, + url = {https://isciences.gitlab.io/exactextractr/}, + howpublished = {\url{https://isciences.gitlab.io/exactextractr/}} +} +@misc{web_exactextractr_background, + title = {exactextractr - Background}, + author = {{Daniel Baston}}, + url = {https://github.com/isciences/exactextract#background}, + howpublished = {\url{https://github.com/isciences/exactextract#background}} +} +@misc{web_FedData, + title = {{FedData}}, + author = {R. Kyle Bocinsky}, + year = 2024, + url = {https://github.com/ropensci/FedData}, + howpublished = {\url{https://github.com/ropensci/FedData}} +} +@misc{web_geoids, + title = {Geographic Identifiers}, + author = {U.S. Census Bureau}, + year = {n.d.}, + note = {Accessed: 2024-07-01}, + howpublished = {\url{https://www.census.gov/programs-surveys/geography/guidance/geo-identifiers.html}} +} + +#################################################################################################### +## books +@book{book_mayer2013big, + title = {Big data: {A} revolution that will transform how we live, work, and think}, + author = {Mayer-Sch{\"o}nberger, Viktor and Cukier, Kenneth}, + year = 2013, + publisher = {Houghton Mifflin Harcourt} +} +@incollection{book_RPackages_13, + title = {Testing basics}, + author = {Hadley Wickham and Jennifer Bryan}, + year = 2023, + booktitle = {R Packages, 2nd Edition}, + publisher = {O'Reilly Media, Inc.}, + isbn = 9781098134945, + url = {https://r-pkgs.org/}, + chapter = 13 +} +@book{book_RMarkdown, + title = {{R Markdown}: The Definitive Guide}, + author = {Yihui Xie and J.J. Allaire and Garrett Grolemund}, + year = 2019, + publisher = {{Chapman \& Hall/CRC}}, + isbn = {978-1-138-35933-0}, + url = {https://bookdown.org/yihui/rmarkdown/} +} + +#################################################################################################### +## journal articles +@article{article_beck2018present, + title = {Present and future K{\"o}ppen-Geiger climate classification maps at 1-km resolution}, + author = {Beck, Hylke E and Zimmermann, Niklaus E and McVicar, Tim R and Vergopolan, Noemi and Berg, Alexis and Wood, Eric F}, + year = 2018, + journal = {Scientific data}, + publisher = {Nature Publishing Group}, + volume = 5, + number = 1, + pages = {1--12}, + doi = {10.1038/sdata.2018.214}, + url = {https://doi.org/10.1038/sdata.2018.214} +} +@article{article_Giorgi2022TheRL, + title = {The {R} Language: An Engine for Bioinformatics and Data Science}, + author = {F. Giorgi and Carmine Ceraolo and D. Mercatelli}, + year = 2022, + journal = {Life}, + volume = 12, + doi = {10.3390/life12050648}, + url = {https://www.mdpi.com/2075-1729/12/5/648} +} +@article{article_Lai2019Eval, + title = {Evaluating the popularity of {R} in ecology}, + author = {Lai, Jiangshan and Lortie, Christopher J. and Muenchen, Robert A. and Yang, Jian and Ma, Keping}, + year = 2019, + journal = {Ecosphere}, + volume = 10, + number = 1, + pages = {e02567}, + doi = {https://doi.org/10.1002/ecs2.2567}, + url = {https://esajournals.onlinelibrary.wiley.com/doi/abs/10.1002/ecs2.2567}, + keywords = {code, ecology journal, open science, packages, R, reproducibility, statistical programming, Web of Science}, + eprint = {https://esajournals.onlinelibrary.wiley.com/doi/pdf/10.1002/ecs2.2567}, + abstract = {Abstract The programming language R is widely used in many fields. We explored the extent of reported R use in the field of ecology using the Web of Science and text mining. We analyzed the frequencies of R packages reported in more than 60,000 peer-reviewed articles published in 30 ecology journals during a 10-yr period ending in 2017. The number of studies reported using R as their primary tool in data analysis increased linearly from 11.4\% in 2008 to 58.0\% in 2017. The top 10 packages reported were lme4, vegan, nlme, ape, MuMIn, MASS, mgcv, ade4, multcomp, and car. The increasing popularity of R has most likely furthered open science in ecological research because it can improve reproducibility of analyses and captures workflows when scripts and codes are included and shared. These findings may not be entirely unique to R because there are other programming languages used by ecologists, but they do strongly suggest that given the relatively high frequency of reported use of R, it is a significant component of contemporary analytics in the field of ecology.} +} +@article{article_Stieb2017PromiseAP, + title = {Promise and pitfalls in the application of big data to occupational and environmental health}, + author = {D. Stieb and C. Boot and M. Turner}, + year = 2017, + journal = {BMC Public Health}, + volume = 17, + doi = {10.1186/s12889-017-4286-8}, + url = {https://doi.org/10.1186/s12889-017-4286-8} +} +@article{article_Comess2020BringingBD, + title = {Bringing Big Data to Bear in Environmental Public Health: Challenges and Recommendations}, + author = {S. Comess and Alexia Akbay and Melpomene Vasiliou and R. Hines and L. Joppa and V. Vasiliou and N. Kleinstreuer}, + year = 2020, + journal = {Frontiers in Artificial Intelligence}, + volume = 3, + doi = {10.3389/frai.2020.00031}, + url = {https://doi.org/10.3389/frai.2020.00031} +} +@article{artcile_Tange053447, + title = {{Big Data Reality Check (BDRC)} for public health: to what extent the environmental health and health services research did meet the {\textquoteleft}V{\textquoteright} criteria for big data? A study protocol}, + author = {Pui Pui Tang and I Lam Tam and Yongliang Jia and Siu-wai Leung}, + year = 2022, + journal = {BMJ Open}, + publisher = {British Medical Journal Publishing Group}, + volume = 12, + number = 3, + doi = {10.1136/bmjopen-2021-053447}, + issn = {2044-6055}, + url = {https://bmjopen.bmj.com/content/12/3/e053447}, + elocation-id = {e053447}, + abstract = {Introduction Big data technologies have been talked up in the fields of science and medicine. The V-criteria (volume, variety, velocity and veracity, etc) for defining big data have been well-known and even quoted in most research articles; however, big data research into public health is often misrepresented due to certain common misconceptions. Such misrepresentations and misconceptions would mislead study designs, research findings and healthcare decision-making. This study aims to identify the V-eligibility of big data studies and their technologies applied to environmental health and health services research that explicitly claim to be big data studies.Methods and analysis Our protocol follows Preferred Reporting Items for Systematic Review and Meta-Analysis Protocols (PRISMA-P). Scoping review and/or systematic review will be conducted. The results will be reported using PRISMA for Scoping Reviews (PRISMA-ScR), or PRISMA 2020 and Synthesis Without Meta-analysis guideline. Web of Science, PubMed, Medline and ProQuest Central will be searched for the articles from the database inception to 2021. Two reviewers will independently select eligible studies and extract specified data. The numeric data will be analysed with R statistical software. The text data will be analysed with NVivo wherever applicable.Ethics and dissemination This study will review the literature of big data research related to both environmental health and health services. Ethics approval is not required as all data are publicly available and involves confidential personal data. We will disseminate our findings in a peer-reviewed journal.PROSPERO registration number CRD42021202306.}, + eprint = {https://bmjopen.bmj.com/content/12/3/e053447.full.pdf} +} +@article{article_BigDatainEnvironmentandHumanHealth, + title = {Big Data in Environment and Human Health}, + author = {Lora Fleming and Niccolò Tempini and Harriet Gordon-Brown and Gordon L. Nichols and Christophe Sarran and Paolo Vineis and Giovanni Leonardi and Brian Golding and Andy Haines and Anthony Kessel and Virginia Murray and Michael Depledge and Sabina Leonelli}, + year = 2017, + month = {07}, + journal = {Oxford Research Encyclopedia of Environmental Science}, + publisher = {Oxford University Press}, + doi = {10.1093/acrefore/9780199389414.013.541}, + url = {https://oxfordre.com/environmentalscience/view/10.1093/acrefore/9780199389414.001.0001/acrefore-9780199389414-e-541} +} +@article{article_Piel2020Using, + title = {{Using large and complex datasets for small-area environment-health studies: from theory to practice}}, + author = {Piel, Frédéric B and Cockings, Samantha}, + year = 2020, + month = {04}, + journal = {International Journal of Epidemiology}, + volume = 49, + number = {Supplement_1}, + pages = {i1-i3}, + doi = {10.1093/ije/dyaa018}, + issn = {0300-5771}, + url = {https://doi.org/10.1093/ije/dyaa018}, + abstract = {{Humans are exposed to a wide range of pollutants throughout their lifetime, many of which pose a potential risk to their health. Such hazards include features of the natural, human-modified, social and economic environments. In this supplement, we are primarily concerned with risks to human health resulting from hazards of the human-modified environment, although many of the concepts, methods and tools are equally applicable to investigations of the health impacts of other types of environmental hazards. Amongst human-modified environmental hazards, air pollution has been identified as the world’s largest killer, being responsible for an estimated 6.4 million deaths per year (1 in 9 deaths).1 According to the World Health Organization, two billion children live in areas where outdoor air pollution exceeds recommended international limits and 300 million children live in areas where outdoor air pollution exceeds six times those international limits. Other hazards of the human-modified environment include water pollutants, such as chemicals and microplastics; radiation from mobile phones, powerlines or nearby nuclear installations; and soil contaminants such as heavy metals.}}, + eprint = {https://academic.oup.com/ije/article-pdf/49/Supplement\_1/i1/33050268/dyaa018.pdf} +} +@article{article_Fleming2014Data, + title = {Data Mashups: Potential Contribution to Decision Support on Climate Change and Health}, + author = {Fleming, Lora E. and Haines, Andy and Golding, Brian and Kessel, Anthony and Cichowska, Anna and Sabel, Clive E. and Depledge, Michael H. and Sarran, Christophe and Osborne, Nicholas J. and Whitmore, Ceri and Cocksedge, Nicola and Bloomfield, Daniel}, + year = 2014, + journal = {International Journal of Environmental Research and Public Health}, + volume = 11, + number = 2, + pages = {1725--1746}, + doi = {10.3390/ijerph110201725}, + issn = {1660-4601}, + url = {https://www.mdpi.com/1660-4601/11/2/1725}, + pubmedid = 24499879, + abstract = {Linking environmental, socioeconomic and health datasets provides new insights into the potential associations between climate change and human health and wellbeing, and underpins the development of decision support tools that will promote resilience to climate change, and thus enable more effective adaptation. This paper outlines the challenges and opportunities presented by advances in data collection, storage, analysis, and access, particularly focusing on “data mashups”. These data mashups are integrations of different types and sources of data, frequently using open application programming interfaces and data sources, to produce enriched results that were not necessarily the original reason for assembling the raw source data. As an illustration of this potential, this paper describes a recently funded initiative to create such a facility in the UK for use in decision support around climate change and health, and provides examples of suitable sources of data and the purposes to which they can be directed, particularly for policy makers and public health decision makers.} +} +@article{article_Fleming2017BigDI, + title = {{Big Data in Environment and Human Health}}, + author = {Lora Fleming and Niccoló Tempini and Harriet Gordon-Brown and Gordon L. Nichols and Christophe Sarran and Paolo Vineis and Giovanni Leonardi and Brian Golding and Andy Haines and Anthony Kessel and Virginia Murray and Michael Depledge and Sabina Leonelli}, + year = 2017, + journal = {Oxford Research Encyclopedia of Environmental Science}, + doi = {10.1093/acrefore/9780199389414.013.541}, + url = {https://doi.org/10.1093/acrefore/9780199389414.013.541} +} +@article{article_wilkinson2016fair, + title = {The {FAIR} Guiding Principles for scientific data management and stewardship}, + author = {Wilkinson, Mark D and Dumontier, Michel and Aalbersberg, IJsbrand Jan and Appleton, Gabrielle and Axton, Myles and Baak, Arie and Blomberg, Niklas and Boiten, Jan-Willem and da Silva Santos, Luiz Bonino and Bourne, Philip E and others}, + year = 2016, + journal = {Scientific data}, + publisher = {Nature Publishing Group}, + volume = 3, + number = 1, + pages = {1--9} +} +@article{article_cui2022integrating, + title = {Integrating multiscale geospatial environmental data into large population health studies: challenges and opportunities}, + author = {Cui, Yuxia and Eccles, Kristin M and Kwok, Richard K and Joubert, Bonnie R and Messier, Kyle P and Balshaw, David M}, + year = 2022, + journal = {Toxics}, + publisher = {MDPI}, + volume = 10, + number = 7, + pages = 403 +} +@techreport{report_USGS2002, + title = {Methods to achieve accurate projection of regional and global raster databases}, + author = {Usery, E Lynn and Seong, Jeong Chang and Steinwand, Dan}, + year = 2002, + doi = {10.3133/ofr01181}, + url = {https://pubs.usgs.gov/publication/ofr01181}, + institution = {US Geological Survey} +} +@article{article_messier2012integrating, + title = {Integrating address geocoding, land use regression, and spatiotemporal geostatistical estimation for groundwater tetrachloroethylene}, + author = {Messier, Kyle P and Akita, Yasuyuki and Serre, Marc L}, + year = 2012, + journal = {Environmental science \& technology}, + publisher = {ACS Publications}, + volume = 46, + number = 5, + pages = {2772--2780} +} +@article{article_abatzoglou2013development, + title = {Development of gridded surface meteorological data for ecological applications and modelling}, + author = {Abatzoglou, John T}, + year = 2013, + journal = {International journal of climatology}, + publisher = {Wiley Online Library}, + volume = 33, + number = 1, + pages = {121--131} +} +@article{article_abatzoglou2018terraclimate, + title = {{TerraClimate}, a high-resolution global dataset of monthly climate and climatic water balance from 1958--2015}, + author = {Abatzoglou, John T and Dobrowski, Solomon Z and Parks, Sean A and Hegewisch, Katherine C}, + year = 2018, + journal = {Scientific data}, + publisher = {Nature Publishing Group}, + volume = 5, + number = 1, + pages = {1--12} +} +@article{article_christman2012error, + title = {Error propagation in raster data integration}, + author = {Christman, Zachary J and Rogan, John}, + year = 2012, + journal = {Photogrammetric Engineering \& Remote Sensing}, + publisher = {American Society for Photogrammetry and Remote Sensing}, + volume = 78, + number = 6, + pages = {617--624} +} +@article{article_steinwand1995reprojection, + title = {Map Projections for Global and Gontinental Data Sets and an Analysis of Pixel Distortion Caused by Reproiection}, + author = {Steinwand, Daniel R and Hutchinson, John A and Snyder, John P}, + year = 1995, + journal = {Photogrammetric Engineering \& Remote Sensing}, + volume = 61, + number = 12, + pages = {1487--1497} +} + +@article{article_cruzalonso2023easyclimate, +title = {The easyclimate {R} package: Easy access to high-resolution daily climate data for Europe}, +journal = {Environmental Modelling \& Software}, +volume = {161}, +pages = {105627}, +year = {2023}, +issn = {1364-8152}, +doi = {https://doi.org/10.1016/j.envsoft.2023.105627}, +url = {https://www.sciencedirect.com/science/article/pii/S1364815223000130}, +author = {Verónica Cruz-Alonso and Christoph Pucher and Sophia Ratcliffe and Paloma Ruiz-Benito and Julen Astigarraga and Mathias Neumann and Hubert Hasenauer and Francisco Rodríguez-Sánchez}, +keywords = {R package, Climate, Europe, Cloud-optimized geoTIFF, Daily data, Reproducibility}, +abstract = {In recent decades there has been an increasing demand in environmental sciences for harmonized climatic data at large spatial scales and long periods. Here we present easyclimate, a software package to obtain daily climatic data at high resolution (0.0083°, ∼1 km) with R. The package facilitates the downloading and processing of precipitation, minimum and maximum temperatures for Europe from 1950 to 2020. Using easyclimate and given a set of coordinates (points or polygons) and dates (days or years), the user can download the climatic information as a tidy table or a raster object. In this package we implemented Cloud-Optimized GeoTIFFs which provide access to daily climate data for thousands of sites/days, without having to download huge rasters. Daily climate data are not available in many of the current climate databases and are essential for many research questions and applications in environmental modelling, forestry, and ecological and vegetation studies across Europe.} +} + +@article{article_nandi2024imdlib, +title = {{IMDLIB}: {A}n open-source library for retrieval, processing and spatiotemporal exploratory assessments of gridded meteorological observation datasets over India}, +journal = {Environmental Modelling \& Software}, +volume = {171}, +pages = {105869}, +year = {2024}, +issn = {1364-8152}, +doi = {https://doi.org/10.1016/j.envsoft.2023.105869}, +url = {https://www.sciencedirect.com/science/article/pii/S1364815223002554}, +author = {Saswata Nandi and Pratiman Patel and Sabyasachi Swain}, +keywords = {IMD gridded datasets, Hydrometeorology, Python, Trend, Extreme indices, SDGs}, +abstract = {Addressing a pressing need for streamlined access to observed meteorological data in India, we present IMDLIB, an open-source Python library that operates on gridded datasets from the India Meteorological Department (IMD). IMDLIB simplifies the retrieval, management, and processing of IMD's rainfall, maximum and minimum temperature data at varying scales (point, regional, catchment, and country scales). IMDLIB stands out by directly interfacing with IMD's database through robust APIs, streamlining data acquisition. It offers transformation of IMD's binary data into common formats (e.g., NetCDF/GeoTIFF/CSV) and advanced analytics, including trend analysis, spatiotemporal data interpolation, calculation of meteorological indices and extreme characteristics, showcasing superior capabilities compared to traditional meteorological data processing tool available for the region. To underline its robustness, IMDLIB's application was illustrated in two distinct regions: Rajasthan State and the Godavari River Basin. Through IMDLIB, we envision enhanced data accessibility, leading to more insightful hydro-climatic research and analysis.} +} + +@article{article_vargasgodoy2023precipe, +title = {pRecipe: A global precipitation climatology toolbox and database}, +journal = {Environmental Modelling \& Software}, +volume = {165}, +pages = {105711}, +year = {2023}, +issn = {1364-8152}, +doi = {https://doi.org/10.1016/j.envsoft.2023.105711}, +url = {https://www.sciencedirect.com/science/article/pii/S136481522300097X}, +author = {Mijael Rodrigo {Vargas Godoy} and Yannis Markonis}, +keywords = {Multi-source data, Data set validation, Global precipitation, Satellite remote sensing, Reanalyses, Hydroclimatology}, +abstract = {Remote sensing data and model simulations of precipitation complemented the traditional surface measurements and offer unprecedented coverage on a global scale. However, the substantial heterogeneity among data products has hindered this unique opportunity to obtain a robust quantification of the climatologic properties of precipitation globally. Herein we present pRecipe, a package developed in R with reproducible science as our standard. pRecipe provides functions to download, explore, process, and visualize a database of 24 precipitation data sets at monthly time step and 0.25∘ resolution (20CR v3, CHIRPS v2.0, CMAP, CMORPH, CPC-Global, CRU TS v4.06, EM-EARTH, ERA-20C, ERA5, GHCN v2, GLDAS-CLSM, GLDAS-NOAH, GLDAS-VIC, GPCC v2020, GPCP v2.3, GPM IMERGM v06, MSWEP v2.8, NCEP/DOE R2, NCEP/NCAR R1, PERSIANN-CDR, PREC/L, TerraClimate, TRMM 3B43 v7, UDel v5.01).} +} + + +@article{article_sayyed2024satellite, + title = {Satellite data for environmental justice: a scoping review of the literature in the {United} {States}}, + volume = {19}, + issn = {1748-9326}, + shorttitle = {Satellite data for environmental justice}, + url = {https://iopscience.iop.org/article/10.1088/1748-9326/ad1fa4}, + doi = {10.1088/1748-9326/ad1fa4}, + abstract = {Abstract + In support of the environmental justice (EJ) movement, researchers, activists, and policymakers often use environmental data to document evidence of the unequal distribution of environmental burdens and benefits along lines of race, class, and other socioeconomic characteristics. Numerous limitations, such as spatial or temporal discontinuities, exist with commonly used data measurement techniques, which include ground monitoring and federal screening tools. Satellite data is well poised to address these gaps in EJ measurement and monitoring; however, little is known about how satellite data has advanced findings in EJ or can help to promote EJ through interventions. Thus, this scoping review aims to (1) explore trends in study design, topics, geographic scope, and satellite datasets used to research EJ, (2) synthesize findings from studies that use satellite data to characterize disparities and inequities across socio-demographic groups for various environmental categories, and (3) capture how satellite data are relevant to policy and real-world impact. Following PRISMA extension guidelines for scoping reviews, we retrieved 81 articles that applied satellite data for EJ research in the United States from 2000 to 2022. The majority of the studies leveraged the technical advantages of satellite data to identify socio-demographic disparities in exposure to environmental risk factors, such as air pollution, and access to environmental benefits, such as green space, at wider coverage and with greater precision than previously possible. These disparities in exposure and access are associated with health outcomes such as increased cardiovascular and respiratory diseases, mental illness, and mortality. Research using satellite data to illuminate EJ concerns can contribute to efforts to mitigate environmental inequalities and reduce health disparities. Satellite data for EJ research can therefore support targeted interventions or influence planning and policy changes, but significant work remains to facilitate the application of satellite data for policy and community impact.}, + number = {3}, + urldate = {2024-06-06}, + journal = {Environmental Research Letters}, + author = {Sayyed, Tanya Kreutzer and Ovienmhada, Ufuoma and Kashani, Mitra and Vohra, Karn and Kerr, Gaige Hunter and O’Donnell, Catherine and Harris, Maria H and Gladson, Laura and Titus, Andrea R and Adamo, Susana B and Fong, Kelvin C and Gargulinski, Emily M and Soja, Amber J and Anenberg, Susan and Kuwayama, Yusuke}, + month = mar, + year = {2024}, + pages = {033001} +} + +@article{article_thomas2022burning, + title = {A burning issue: {Reviewing} the socio-demographic and environmental justice aspects of the wildfire literature}, + volume = {17}, + issn = {1932-6203}, + shorttitle = {A burning issue}, + url = {https://dx.plos.org/10.1371/journal.pone.0271019}, + doi = {10.1371/journal.pone.0271019}, + abstract = {Larger and more severe wildfires are becoming more frequent and impacting different communities and human settlements. Much of the scientific literature and media on wildfires has focused on area of ecosystems burned and numbers of structures destroyed. Equally unprecedented, but often less reported, are the increasing socioeconomic impacts different people and communities face from wildfires. Such information seems to indicate an emerging need to account for wildfire effects on peri-urban or wildland urban interface (WUI) areas, newer socio-demographic groups, and disadvantaged communities. To address this, we reviewed the socio-demographic dimensions of the wildfire literature using an environmental justice (EJ) lens. Specifically using a literature review of wildfires, human communities, social vulnerability, and homeowner mitigation, we conducted bibliometric and statistical analyses of 299 publications. The majority of publications were from the United States, followed by Canada and Australia, and most dealt with homeowner mitigation of risk, defensible space, and fuel treatments in WUI areas. Most publications studied the direct effects of wildfire related damage. Secondary impacts such as smoke, rural and urban communities, and the role of poverty and language were less studied. Based on a proposed wildfire-relevant EJ definition, the first EJ publication was in 2004, but the term was first used as a keyword in 2018. Studies in WUI communities statistically decreased the likelihood that a publication was EJ relevant. There was a significant relationship between EJ designation and inclusion of race/ethnicity and poverty variables in the study. Complexity across the various definitions of EJ suggest that it should not be used as a quantitative or binary metric; but as a lens to better understand socio-ecological impacts to diverse communities. We present a wildfire-relevant definition to potentially guide policy formulation and account for social and environmental justice issues.}, + language = {en}, + number = {7}, + urldate = {2024-06-06}, + journal = {PLOS ONE}, + author = {Thomas, Alyssa S. and Escobedo, Francisco J. and Sloggy, Matthew R. and Sánchez, José J.}, + editor = {Jones, Julia A.}, + month = jul, + year = {2022}, + pages = {e0271019} +} + + + +@misc{data_mod09ga2021, + title = {{MODIS}/{Terra} {Surface} {Reflectance} {Daily} {L2G} {Global} 1km and 500m {SIN} {Grid} {V061}}, + url = {https://lpdaac.usgs.gov/products/mod09gav061/}, + doi = {10.5067/MODIS/MOD09GA.061}, + urldate = {2024-06-24}, + publisher = {NASA EOSDIS Land Processes Distributed Active Archive Center}, + author = {Vermote, Eric and Wolfe, Robert}, + year = {2021}, +} + +@misc{data_mod13a22021, + title = {{MODIS}/{Terra} {Vegetation} {Indices} 16-{Day} {L3} {Global} 1km {SIN} {Grid} {V061}}, + url = {https://lpdaac.usgs.gov/products/mod13a2v061/}, + doi = {10.5067/MODIS/MOD13A2.061}, + urldate = {2024-06-24}, + publisher = {NASA EOSDIS Land Processes Distributed Active Archive Center}, + author = {Didan, Kamel}, + year = {2021}, +} + +@misc{data_mod11a12021, + title = {{MODIS}/{Terra} {Land} {Surface} {Temperature}/{Emissivity} {Daily} {L3} {Global} 1km {SIN} {Grid} {V061}}, + url = {https://lpdaac.usgs.gov/products/mod11a1v061/}, + doi = {10.5067/MODIS/MOD11A1.061}, + urldate = {2024-06-24}, + publisher = {NASA EOSDIS Land Processes Distributed Active Archive Center}, + author = {Wan, Zhengming and Hook, Simon and Hulley, Glynn}, + year = {2021}, +} + +@misc{data_mcd19a22021, + title = {{MODIS}/{Terra}+{Aqua} {Land} {Aerosol} {Optical} {Depth} {Daily} {L2G} {Global} 1km {SIN} {Grid} {V061}}, + url = {https://lpdaac.usgs.gov/products/mcd19a2v061/}, + doi = {10.5067/MODIS/MCD19A2.061}, + urldate = {2024-06-24}, + publisher = {NASA EOSDIS Land Processes Distributed Active Archive Center}, + author = {Lyapustin, Alexei and Wang, Yujie}, + year = {2022}, +} + +@misc{data_mod06l2_2017, + title = {{MODIS}/{Terra} {Clouds} 5-{Min} {L2} {Swath} 1km and 5km}, + url = {https://ladsweb.modaps.eosdis.nasa.gov/missions-and-measurements/products/MOD06_L2}, + doi = {10.5067/MODIS/MOD06_L2.061}, + urldate = {2024-06-24}, + publisher = {NASA Level 1 and Atmosphere Archive and Distribution System Distributed Active Archive Center}, + author = {{MODIS Atmosphere Science Team}}, + year = {2017}, +} + +@article{article_roman2018vnp46, + title = {{NASA}'s {Black} {Marble} nighttime lights product suite}, + volume = {210}, + issn = {00344257}, + url = {https://linkinghub.elsevier.com/retrieve/pii/S003442571830110X}, + doi = {10.1016/j.rse.2018.03.017}, + language = {en}, + urldate = {2024-06-24}, + journal = {Remote Sensing of Environment}, + author = {Román, Miguel O. and Wang, Zhuosen and Sun, Qingsong and Kalb, Virginia and Miller, Steven D. and Molthan, Andrew and Schultz, Lori and Bell, Jordan and Stokes, Eleanor C. and Pandey, Bhartendu and Seto, Karen C. and Hall, Dorothy and Oda, Tomohiro and Wolfe, Robert E. and Lin, Gary and Golpayegani, Navid and Devadiga, Sadashiva and Davidson, Carol and Sarkar, Sudipta and Praderas, Cid and Schmaltz, Jeffrey and Boller, Ryan and Stevens, Joshua and Ramos González, Olga M. and Padilla, Elizabeth and Alonso, José and Detrés, Yasmín and Armstrong, Roy and Miranda, Ismael and Conte, Yasmín and Marrero, Nitza and MacManus, Kytt and Esch, Thomas and Masuoka, Edward J.}, + month = jun, + year = {2018}, + pages = {113--143}, +} + +@misc{web_usepa2024nei, + title = {Air {Emissions} {Inventories}}, + url = {https://www.epa.gov/air-emissions-inventories}, + urldate = {2024-06-24}, + author = {{United States Environmental Protection Agency}}, + year = {2024}, +} + +@misc{data_ciesin2013groads, + title = {Global {Roads} {Open} {Access} {Data} {Set}, {Version} 1 ({gROADSv1})}, + copyright = {Users may use and redistribute these data without explicit written permission from CIESIN or Information Technology Outreach Services (ITOS)/University of Georgia, with the exception of roads data associated with countries that are listed in the data documentation as requiring additional credits or holding special restrictions. Users are advised to consult the data documentation for further information and to obtain necessary permissions or adhere to relevant restrictions that apply to each of those data sets.}, + url = {https://sedac.ciesin.columbia.edu/data/set/groads-global-roads-open-access-v1}, + doi = {10.7927/H4VD6WCT}, + abstract = {The Global Roads Open Access Data Set, Version 1 (gROADSv1) was developed under the auspices of the CODATA Global Roads Data Development Task Group. The data set combines the best available roads data by country into a global roads coverage, using the UN Spatial Data Infrastructure Transport (UNSDI-T) version 2 as a common data model. All country road networks have been joined topologically at the borders, and many countries have been edited for internal topology. Source data for each country are provided in the documentation, and users are encouraged to refer to the readme file for use constraints that apply to a small number of countries. Because the data are compiled from multiple sources, the date range for road network representations ranges from the 1980s to 2010 depending on the country (most countries have no confirmed date), and spatial accuracy varies. The baseline global data set was compiled by the Information Technology Outreach Services (ITOS) of the University of Georgia. Updated data for 27 countries and 6 smaller geographic entities were assembled by Columbia University's Center for International Earth Science Information Network (CIESIN), with a focus largely on developing countries with the poorest data coverage.}, + urldate = {2024-06-24}, + publisher = {Palisades, NY: NASA Socioeconomic Data and Applications Center (SEDAC)}, + author = {{Center For International Earth Science Information Network-CIESIN-Columbia University} and {Information Technology Outreach Services-ITOS-University Of Georgia}}, + year = {2013}, + keywords = {poverty, agriculture, conservation, health, infrastructure, urban}, +} + +@article{article_omernik2014ecoregions, + title = {Ecoregions of the {Conterminous} {United} {States}: {Evolution} of a {Hierarchical} {Spatial} {Framework}}, + volume = {54}, + issn = {0364-152X, 1432-1009}, + shorttitle = {Ecoregions of the {Conterminous} {United} {States}}, + url = {http://link.springer.com/10.1007/s00267-014-0364-1}, + doi = {10.1007/s00267-014-0364-1}, + language = {en}, + number = {6}, + urldate = {2024-06-24}, + journal = {Environmental Management}, + author = {Omernik, James M. and Griffith, Glenn E.}, + month = dec, + year = {2014}, + pages = {1249--1266}, +} + +@article{article_beck2023koppen, + title = {High-resolution (1 km) {Köppen}-{Geiger} maps for 1901–2099 based on constrained {CMIP6} projections}, + volume = {10}, + issn = {2052-4463}, + url = {https://www.nature.com/articles/s41597-023-02549-6}, + doi = {10.1038/s41597-023-02549-6}, + abstract = {Abstract + + We introduce Version 2 of our widely used 1-km Köppen-Geiger climate classification maps for historical and future climate conditions. The historical maps (encompassing 1901–1930, 1931–1960, 1961–1990, and 1991–2020) are based on high-resolution, observation-based climatologies, while the future maps (encompassing 2041–2070 and 2071–2099) are based on downscaled and bias-corrected climate projections for seven shared socio-economic pathways (SSPs). We evaluated 67 climate models from the Coupled Model Intercomparison Project phase 6 (CMIP6) and kept a subset of 42 with the most plausible CO + 2 + -induced warming rates. We estimate that from 1901–1930 to 1991–2020, approximately 5\% of the global land surface (excluding Antarctica) transitioned to a different major Köppen-Geiger class. Furthermore, we project that from 1991–2020 to 2071–2099, 5\% of the land surface will transition to a different major class under the low-emissions SSP1-2.6 scenario, 8\% under the middle-of-the-road SSP2-4.5 scenario, and 13\% under the high-emissions SSP5-8.5 scenario. The Köppen-Geiger maps, along with associated confidence estimates, underlying monthly air temperature and precipitation data, and sensitivity metrics for the CMIP6 models, can be accessed at + www.gloh2o.org/koppen + .}, + language = {en}, + number = {1}, + urldate = {2024-06-24}, + journal = {Scientific Data}, + author = {Beck, Hylke E. and McVicar, Tim R. and Vergopolan, Noemi and Berg, Alexis and Lutsko, Nicholas J. and Dufour, Ambroise and Zeng, Zhenzhong and Jiang, Xin and Van Dijk, Albert I. J. M. and Miralles, Diego G.}, + month = oct, + year = {2023}, + pages = {724} +} + + +@article{article_daly2000prism, + title = {HIGH-QUALITY SPATIAL CLIMATE DATA SETS FOR THE {U}NITED {S}TATES AND BEYOND}, + volume = {43}, + issn = {2151-0059}, + url = {http://elibrary.asabe.org/abstract.asp??JID=3&AID=3101&CID=t2000&v=43&i=6&T=1}, + doi = {10.13031/2013.3101}, + language = {en}, + number = {6}, + urldate = {2024-06-24}, + journal = {Transactions of the ASAE}, + author = {Daly, C. and Taylor, G. H. and Gibson, W. P. and Parzybok, T. W. and Johnson, G. L. and Pasteris, P. A.}, + year = {2000}, + pages = {1957--1962}, +} + +@misc{web_usepa2024tri, + title = {{TRI} {Basic} {Data} {Files}: {Calendar} {Years} {1987 -- Present}}, + url = {https://www.epa.gov/toxics-release-inventory-tri-program/tri-basic-data-files-calendar-years-1987-present}, + urldate = {2024-06-24}, + author = {{United States Environmental Protection Agency}}, + year = {2024}, +} + +@book{data_hengl2023openlandmap, + author = {Hengl, T. and Parente, L. and Ho, Y.-F. and Simoes, R. and contributors}, + title = {{OpenLandMap Open Land Data services}}, + year = {2023}, + publisher = {OpenGeoHub foundation}, + address = {Wageningen}, + version = {v0.2}, + doi = {10.5281/zenodo.10522799}, + url = {https://openlandmap.github.io/book/} +} + +@misc{web_stacspec2024, + title = {{STAC}: {SpatioTemporal} {Asset} {Catalogs}}, + url = {https://www.stacspec.org/en}, + urldate = {2024-06-24}, + year = {2024} +} + +@inproceedings{abstract_simoes2021rstac, + address = {Brussels, Belgium}, + title = {Rstac: {An} {R} {Package} to {Access} {Spatiotemporal} {Asset} {Catalog} {Satellite} {Imagery}}, + copyright = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/IEEE.html}, + isbn = {978-1-66540-369-6}, + shorttitle = {Rstac}, + url = {https://ieeexplore.ieee.org/document/9553518/}, + doi = {10.1109/IGARSS47720.2021.9553518}, + urldate = {2024-06-24}, + booktitle = {2021 {IEEE} {International} {Geoscience} and {Remote} {Sensing} {Symposium} {IGARSS}}, + publisher = {IEEE}, + author = {Simoes, Rolf and De Souza, Felipe Carvalho and Zaglia, Matheus and De Queiroz, Gilberto Ribeiro and Dos Santos, Rafael D. C. and Ferreira, Karine Reis}, + month = jul, + year = {2021}, + pages = {7674--7677}, +} + +@misc{data_usgs2023nhd, + author = {{U.S. Geological Survey}}, + title = {{National Hydrography Dataset (NHD) -- USGS National Map Downloadable Data Collection}}, + url = {https://www.sciencebase.gov/catalog/item/4f5545cce4b018de15819ca9}, + urldate = {2024-06-24}, + year = {2023} +} + +@misc{data_usepa2023airdata, + author = {{U.S. Environmental Protection Agency}}, + title = {{Air Quality System Data Mart [internet database]}}, + url = {https://www.epa.gov/outdoor-air-quality-data}, + urldate = {2024-06-24}, + year = {2023} +} + + +@misc{data_ciesin2017gpwv4, + title = {Gridded {Population} of the {World}, {Version} 4 ({GPWv4}): {Population} {Density}, {Revision} 11}, + copyright = {This work is licensed under the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0). Users are free to use, copy, distribute, transmit, and adapt the work for commercial and non-commercial purposes, without restriction, as long as clear attribution of the source is provided.}, + shorttitle = {Gridded {Population} of the {World}, {Version} 4 ({GPWv4})}, + url = {https://sedac.ciesin.columbia.edu/data/set/gpw-v4-population-density-rev11}, + doi = {10.7927/H49C6VHW}, + abstract = {The Gridded Population of the World, Version 4 (GPWv4): Population Density, Revision 11 consists of estimates of human population density (number of persons per square kilometer) based on counts consistent with national censuses and population registers, for the years 2000, 2005, 2010, 2015, and 2020. A proportional allocation gridding algorithm, utilizing approximately 13.5 million national and sub-national administrative units, was used to assign population counts to 30 arc-second grid cells. The population density rasters were created by dividing the population count raster for a given target year by the land area raster. The data files were produced as global rasters at 30 arc-second ({\textasciitilde}1 km at the equator) resolution. To enable faster global processing, and in support of research communities, the 30 arc-second count data were aggregated to 2.5 arc-minute, 15 arc-minute, 30 arc-minute and 1 degree resolutions to produce density rasters at these resolutions.}, + urldate = {2024-06-24}, + publisher = {Palisades, NY: Socioeconomic Data and Applications Center (SEDAC)}, + author = {{Center For International Earth Science Information Network-CIESIN-Columbia University}}, + year = {2017}, + keywords = {population}, +} + + + +@misc{data_gmao_merra-inst1_2d_asm_Nx, + title = {{MERRA}-2 inst1\_2d\_asm\_Nx: 2d,3-{Hourly},{Instantaneous},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst1\_2d\_asm\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I1NXASM_5.12.4.html}, + doi = {10.5067/3Z173KIE2TPD}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst1_2d_int_Nx, + title = {{MERRA}-2 inst1\_2d\_int\_Nx: 2d,1-{Hourly},{Instantaneous},{Single}-{Level},{Assimilation},{Vertically} {Integrated} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst1\_2d\_int\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I1NXINT_5.12.4.html}, + doi = {10.5067/G0U6NGQ3BLE0}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst1_2d_lfo_Nx, + title = {{MERRA}-2 inst1\_2d\_lfo\_Nx: 2d,1-{Hourly},{Instantaneous},{Single}-{Level},{Assimilation},{Land} {Surface} {Forcings} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst1\_2d\_lfo\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I1NXLFO_5.12.4.html}, + doi = {10.5067/RCMZA6TL70BG}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst3_3d_asm_Np, + title = {{MERRA}-2 inst3\_3d\_asm\_Np: 3d,3-{Hourly},{Instantaneous},{Pressure}-{Level},{Assimilation},{Assimilated} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst3\_3d\_asm\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I3NPASM_5.12.4.html}, + doi = {10.5067/QBZ6MG944HW0}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst3_3d_aer_Nv, + title = {{MERRA}-2 inst3\_3d\_aer\_Nv: 3d,3-{Hourly},{Instantaneous},{Model}-{Level},{Assimilation},{Aerosol} {Mixing} {Ratio} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst3\_3d\_aer\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I3NVAER_5.12.4.html}, + doi = {10.5067/LTVB4GPCOTK2}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst3_3d_asm_Nv, + title = {{MERRA}-2 inst3\_3d\_asm\_Nv: 3d,3-{Hourly},{Instantaneous},{Model}-{Level},{Assimilation},{Assimilated} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst3\_3d\_asm\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I3NVASM_5.12.4.html}, + doi = {10.5067/WWQSXQ8IVFW8}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst3_3d_chm_Nv, + title = {{MERRA}-2 inst3\_3d\_chm\_Nv: 3d,3-{Hourly},{Instantaneous},{Model}-{Level},{Assimilation},{Carbon} {Monoxide} and {Ozone} {Mixing} {Ratio} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst3\_3d\_chm\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I3NVCHM_5.12.4.html}, + doi = {10.5067/HO9OVZWF3KW2}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst3_3d_gas_Nv, + title = {{MERRA}-2 inst3\_3d\_gas\_Nv: 3d,3-{Hourly},{Instantaneous},{Model}-{Level},{Assimilation},{Aerosol} {Mixing} {Ratio} {Analysis} {Increments} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst3\_3d\_gas\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I3NVGAS_5.12.4.html}, + doi = {10.5067/96BUID8HGGX5}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst3_2d_gas_Nx, + title = {{MERRA}-2 inst3\_2d\_gas\_Nx: 2d,3-{Hourly},{Instantaneous},{Single}-{Level},{Assimilation},{Aerosol} {Optical} {Depth} {Analysis} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst3\_2d\_gas\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I3NXGAS_5.12.4.html}, + doi = {10.5067/HNGA0EWW0R09}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst6_3d_ana_Np, + title = {{MERRA}-2 inst6\_3d\_ana\_Np: 3d,6-{Hourly},{Instantaneous},{Pressure}-{Level},{Analysis},{Analyzed} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst6\_3d\_ana\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I6NPANA_5.12.4.html}, + doi = {10.5067/A7S6XP56VZWS}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-inst6_3d_ana_Nv, + title = {{MERRA}-2 inst6\_3d\_ana\_Nv: 3d,6-{Hourly},{Instantaneous},{Model}-{Level},{Analysis},{Analyzed} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 inst6\_3d\_ana\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2I6NVANA_5.12.4.html}, + doi = {10.5067/IUUF4WB9FT4W}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-statD_2d_slv_Nx, + title = {{MERRA}-2 {statD}\_2d\_slv\_Nx: 2d,{Daily},{Aggregated} {Statistics},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {statD}\_2d\_slv\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2SDNXSLV_5.12.4.html}, + doi = {10.5067/9SC1VNTWGWV3}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_adg_Nx, + title = {{MERRA}-2 tavg1\_2d\_adg\_Nx: 2d,3-{Hourly},{Time}-averaged,{Single}-{Level},{Assimilation},{Aerosol} {Diagnostics} (extended) {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_adg\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXADG_5.12.4.html}, + doi = {10.5067/HM00OHQBHKTP}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_aer_Nx, + title = {{MERRA}-2 tavg1\_2d\_aer\_Nx: 2d,1-{Hourly},{Time}-averaged,{Single}-{Level},{Assimilation},{Aerosol} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_aer\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXAER_5.12.4.html}, + doi = {10.5067/KLICLTZ8EM9D}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_chm_Nx, + title = {{MERRA}-2 tavg1\_2d\_chm\_Nx: 2d,3-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Carbon} {Monoxide} and {Ozone} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_chm\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXCHM_5.12.4.html}, + doi = {10.5067/3RQ5YS674DGQ}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_csp_Nx, + title = {{MERRA}-2 tavg1\_2d\_csp\_Nx: 2d,1-{Hourly},{Time}-averaged,{Single}-{Level},{Assimilation},{COSP} {Satellite} {Simulator} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_csp\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXCSP_5.12.4.html}, + doi = {10.5067/H0VVAD8F6MX5}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_flx_Nx, + title = {{MERRA}-2 tavg1\_2d\_flx\_Nx: 2d,1-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Surface} {Flux} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_flx\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXFLX_5.12.4.html}, + doi = {10.5067/7MCPBJ41Y0K6}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_int_Nx, + title = {{MERRA}-2 tavg1\_2d\_int\_Nx: 2d,1-{Hourly},{Time}-averaged,{Single}-{Level},{Assimilation},{Vertically} {Integrated} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_int\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXINT_5.12.4.html}, + doi = {10.5067/Q5GVUVUIVGO7}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{pawson_merra-2_2020, + title = {{MERRA}-2 tavg1\_2d\_lfo\_Nx: 2d,1-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Surface} {Forcings} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_lfo\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXLFO_5.12.4.html}, + doi = {10.5067/L0T5GEG1NYFA}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {Pawson, Steven}, + year = {2020}, +} + +@misc{data_gmao_merra-tavg1_2d_lnd_Nx, + title = {{MERRA}-2 tavg1\_2d\_lnd\_Nx: 2d,1-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Surface} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_lnd\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXLND_5.12.4.html}, + doi = {10.5067/RKPHT8KC1Y1T}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_ocn_Nx, + title = {{MERRA}-2 tavg1\_2d\_ocn\_Nx: 2d,1-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Ocean} {Surface} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_ocn\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXOCN_5.12.4.html}, + doi = {10.5067/Y67YQ1L3ZZ4R}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_rad_Nx, + title = {{MERRA}-2 tavg1\_2d\_rad\_Nx: 2d,1-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Radiation} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_rad\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXRAD_5.12.4.html}, + doi = {10.5067/Q9QMY5PBNV1T}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg1_2d_slv_Nx, + title = {{MERRA}-2 tavg1\_2d\_slv\_Nx: 2d,1-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg1\_2d\_slv\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T1NXSLV_5.12.4.html}, + doi = {10.5067/VJAFPLI1CSIV}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_mst_Ne, + title = {{MERRA}-2 tavg3\_3d\_mst\_Ne: 3d,3-{Hourly},{Time}-{Averaged},{Model}-{Level} {Edge},{Assimilation},{Moist} {Processes} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_mst\_Ne}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NEMST_5.12.4.html}, + doi = {10.5067/JRUZ3SJ3ZJ72}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_trb_Ne, + title = {{MERRA}-2 tavg3\_3d\_trb\_Ne: 3d,3-{Hourly},{Time}-{Averaged},{Model}-{Level} {Edge},{Assimilation},{Turbulence} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_trb\_Ne}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NETRB_5.12.4.html}, + doi = {10.5067/4I7ZI35QRH8K}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_nav_Ne, + title = {{MERRA}-2 tavg3\_3d\_nav\_Ne: 3d,3-{Hourly},{Time}-{Averaged}, {Vertical} {Coordinates} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_nav\_Ne}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NENAV_5.12.4.html}, + doi = {10.5067/N5WAKNS1UYQN}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_cld_Np, + title = {{MERRA}-2 tavg3\_3d\_cld\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Cloud} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_cld\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPCLD_5.12.4.html}, + doi = {10.5067/TX10URJSKT53}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_mst_Np, + title = {{MERRA}-2 tavg3\_3d\_mst\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Moist} {Processes} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_mst\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPMST_5.12.4.html}, + doi = {10.5067/0TUFO90Q2PMS}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_rad_Np, + title = {{MERRA}-2 tavg3\_3d\_rad\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Radiation} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_rad\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPRAD_5.12.4.html}, + doi = {10.5067/3UGE8WQXZAOK}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_tdt_Np, + title = {{MERRA}-2 tavg3\_3d\_tdt\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Temperature} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_tdt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPTDT_5.12.4.html}, + doi = {10.5067/9NCR9DDDOPFI}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_trb_Np, + title = {{MERRA}-2 tavg3\_3d\_trb\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Turbulence} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_trb\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPTRB_5.12.4.html}, + doi = {10.5067/ZRRJPGWL8AVL}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_udt_Np, + title = {{MERRA}-2 tavg3\_3d\_udt\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Wind} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_udt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPUDT_5.12.4.html}, + doi = {10.5067/CWV0G3PPPWFW}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_odt_Np, + title = {{MERRA}-2 tavg3\_3d\_odt\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Ozone} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_odt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPODT_5.12.4.html}, + doi = {10.5067/S0LYTK57786Z}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_qdt_Np, + title = {{MERRA}-2 tavg3\_3d\_qdt\_Np: 3d,3-{Hourly},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Moist} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_qdt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NPQDT_5.12.4.html}, + doi = {10.5067/A9KWADY78YHQ}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_asm_Nv, + title = {{MERRA}-2 tavg3\_3d\_asm\_Nv: 3d,3-{Hourly},{Time}-{Averaged},{Model}-{Level},{Assimilation},{Assimilated} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_asm\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NVASM_5.12.4.html}, + doi = {10.5067/SUOQESM06LPK}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_cld_Nv, + title = {{MERRA}-2 tavg3\_3d\_cld\_Nv: 3d,3-{Hourly},{Time}-{Averaged},{Model}-{Level},{Assimilation},{Cloud} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_cld\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NVCLD_5.12.4.html}, + doi = {10.5067/F9353J0FAHIH}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_mst_Nv, + title = {{MERRA}-2 tavg3\_3d\_mst\_Nv: 3d,3-{Hourly},{Time}-{Averaged},{Model}-{Level},{Assimilation},{Moist} {Processes} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_mst\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NVMST_5.12.4.html}, + doi = {10.5067/ZXTJ28TQR1TR}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_3d_rad_Nv, + title = {{MERRA}-2 tavg3\_3d\_rad\_Nv: 3d,3-{Hourly},{Time}-{Averaged},{Model}-{Level},{Assimilation},{Radiation} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_3d\_rad\_Nv}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NVRAD_5.12.4.html}, + doi = {10.5067/7GFQKO1T43RW}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavg3_2d_glc_Nx, + title = {{MERRA}-2 tavg3\_2d\_glc\_Nx: 2d,3-{Hourly},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Ice} {Surface} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 tavg3\_2d\_glc\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2T3NXGLC_5.12.4.html}, + doi = {10.5067/9ETB4TT5J6US}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instM_2d_asm_Nx, + title = {{MERRA}-2 {instM}\_2d\_asm\_Nx: 2d,{Monthly} mean,{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instM}\_2d\_asm\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IMNXASM_5.12.4.html}, + doi = {10.5067/5ESKGQTZG7FO}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instM_2d_int_Nx, + title = {{MERRA}-2 {instM}\_2d\_int\_Nx: 2d,{Monthly} mean,{Instantaneous},{Single}-{Level},{Assimilation},{Vertically} {Integrated} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instM}\_2d\_int\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IMNXINT_5.12.4.html}, + doi = {10.5067/KVTU1A8BWFSJ}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instM_2d_lfo_Nx, + title = {{MERRA}-2 {instM}\_2d\_lfo\_Nx: 2d,{Monthly} mean,{Instantaneous},{Single}-{Level},{Assimilation},{Land} {Surface} {Forcings} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instM}\_2d\_lfo\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IMNXLFO_5.12.4.html}, + doi = {10.5067/11F99Y6TXN99}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instM_2d_gas_Nx, + title = {{MERRA}-2 {instM}\_2d\_gas\_Nx: 2d,{Monthly} mean,{Instantaneous},{Single}-{Level},{Assimilation},{Aerosol} {Optical} {Depth} {Analysis} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instM}\_2d\_gas\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IMNXGAS_5.12.4.html}, + doi = {10.5067/XOGNBQEPLUC5}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instM_3d_asm_Np, + title = {{MERRA}-2 {instM}\_3d\_asm\_Np: 3d,{Monthly} mean,{Instantaneous},{Pressure}-{Level},{Assimilation},{Assimilated} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instM}\_3d\_asm\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IMNPASM_5.12.4.html}, + doi = {10.5067/2E096JV59PK7}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instM_3d_ana_Np, + title = {{MERRA}-2 {instM}\_3d\_ana\_Np: 3d,{Monthly} mean,{Instantaneous},{Pressure}-{Level},{Analysis},{Analyzed} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instM}\_3d\_ana\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IMNPANA_5.12.4.html}, + doi = {10.5067/V92O8XZ30XBI}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_adg_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_adg\_Nx: 2d,{Monthly} mean,{Time}-averaged,{Single}-{Level},{Assimilation},{Aerosol} {Diagnostics} (extended) {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_2d\_adg\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXADG_5.12.4.html}, + doi = {10.5067/RZIK2TV7PP38}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_aer_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_aer\_Nx: 2d,{Monthly} mean,{Time}-averaged,{Single}-{Level},{Assimilation},{Aerosol} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_2d\_aer\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXAER_5.12.4.html}, + doi = {10.5067/FH9A0MLJPC7N}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_chm_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_chm\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Carbon} {Monoxide} and {Ozone} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_2d\_chm\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXCHM_5.12.4.html}, + doi = {10.5067/WMT31RKEXK8I}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_csp_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_csp\_Nx: 2d,{Monthly} mean,{Time}-averaged,{Single}-{Level},{Assimilation},{COSP} {Satellite} {Simulator} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_2d\_csp\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXCSP_5.12.4.html}, + doi = {10.5067/BZPOTGJOQKLU}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_flx_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_flx\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Surface} {Flux} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_2d\_flx\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXFLX_5.12.4.html}, + doi = {10.5067/0JRLVL8YV2Y4}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_int_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_int\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Vertically} {Integrated} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_2d\_int\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXINT_5.12.4.html}, + doi = {10.5067/FQPTQ4OJ22TL}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_lfo_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_lfo\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Surface} {Forcings} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_2d\_lfo\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXLFO_5.12.4.html}, + doi = {10.5067/5V7K6LJD44SY}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_lnd_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_lnd\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Surface} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXLND_5.12.4.html}, + doi = {10.5067/8S35XF81C28F}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_ocn_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_ocn\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Ocean} {Surface} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXOCN_5.12.4.html}, + doi = {10.5067/4IASLIDL8EEC}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_rad_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_rad\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Radiation} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXRAD_5.12.4.html}, + doi = {10.5067/OU3HJDS973O0}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_slv_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_slv\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXSLV_5.12.4.html}, + doi = {10.5067/AP1B0BA5PD2K}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_2d_glc_Nx, + title = {{MERRA}-2 {tavgM}\_2d\_glc\_Nx: 2d,{Monthly} mean,{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Ice} {Surface} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNXGLC_5.12.4.html}, + doi = {10.5067/5W8Q3I9WUFGX}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_cld_Np, + title = {{MERRA}-2 {tavgM}\_3d\_cld\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Cloud} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPCLD_5.12.4.html}, + doi = {10.5067/J9R0LXGH48JR}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_mst_Np, + title = {{MERRA}-2 {tavgM}\_3d\_mst\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Moist} {Processes} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPMST_5.12.4.html}, + doi = {10.5067/ZRZGD0DCK1CG}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_rad_Np, + title = {{MERRA}-2 {tavgM}\_3d\_rad\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Radiation} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPRAD_5.12.4.html}, + doi = {10.5067/H3YGROBVBGFJ}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_tdt_Np, + title = {{MERRA}-2 {tavgM}\_3d\_tdt\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Temperature} {Tendencies} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPTDT_5.12.4.html}, + doi = {10.5067/VILT59HI2MOY}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_trb_Np, + title = {{MERRA}-2 {tavgM}\_3d\_trb\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Turbulence} {Diagnostics} {V5}.12.4}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPTRB_5.12.4.html}, + doi = {10.5067/2YOIQB5C3ACN}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_udt_Np, + title = {{MERRA}-2 {tavgM}\_3d\_udt\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Wind} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_3d\_udt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPUDT_5.12.4.html}, + doi = {10.5067/YSR6IA5057XX}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_odt_Np, + title = {{MERRA}-2 {tavgM}\_3d\_odt\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Ozone} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_3d\_odt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPODT_5.12.4.html}, + doi = {10.5067/Z2KCWAV4GPD2}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgM_3d_qdt_Np, + title = {{MERRA}-2 {tavgM}\_3d\_qdt\_Np: 3d,{Monthly} mean,{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Moist} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgM}\_3d\_qdt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TMNPQDT_5.12.4.html}, + doi = {10.5067/2ZTU87V69ATP}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-statD_2d_slv_Nx, + title = {{MERRA}-2 {statD}\_2d\_slv\_Nx: 2d,{Monthly},{Aggregated} {Statistics},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {statD}\_2d\_slv\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2SMNXSLV_5.12.4.html}, + doi = {10.5067/KVIMOMCUO83U}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-const_2d_asm_Nx, + title = {{MERRA}-2 const\_2d\_asm\_Nx: 2d, constants}, + shorttitle = {{MERRA}-2 const\_2d\_asm\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2C0NXASM_5.12.4.html}, + doi = {10.5067/ME5QX6Q5IGGU}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instU_2d_asm_Nx, + title = {{MERRA}-2 {instU}\_2d\_asm\_Nx: 2d,{Diurnal},{Instantaneous},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instU}\_2d\_asm\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IUNXASM_5.12.4.html}, + doi = {10.5067/BOJSTZAO2L8R}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instU_2d_int_Nx, + title = {{MERRA}-2 {instU}\_2d\_int\_Nx: 2d,{Diurnal},{Instantaneous},{Single}-{Level},{Assimilation},{Vertically} {Integrated} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instU}\_2d\_int\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IUNXINT_5.12.4.html}, + doi = {10.5067/DGAB3HFEYMLY}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instU_2d_lfo_Nx, + title = {{MERRA}-2 {instU}\_2d\_lfo\_Nx: 2d,{Diurnal},{Instantaneous},{Single}-{Level},{Assimilation},{Land} {Surface} {Forcings} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instU}\_2d\_lfo\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IUNXLFO_5.12.4.html}, + doi = {10.5067/FC3BVJ88Y8A2}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instU_2d_gas_Nx, + title = {{MERRA}-2 {instU}\_2d\_gas\_Nx: 2d,{Diurnal},{Instantaneous},{Single}-{Level},{Assimilation},{Aerosol} {Optical} {Depth} {Analysis} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instU}\_2d\_gas\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IUNXGAS_5.12.4.html}, + doi = {10.5067/TVJ4MHBED39L}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instU_3d_asm_Np, + title = {{MERRA}-2 {instU}\_3d\_asm\_Np: 3d,{Diurnal},{Instantaneous},{Pressure}-{Level},{Assimilation},{Assimilated} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instU}\_3d\_asm\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IUNPASM_5.12.4.html}, + doi = {10.5067/6EGRBNEBMIYS}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-instU_3d_ana_Np, + title = {{MERRA}-2 {instU}\_3d\_ana\_Np: 3d,{Diurnal},{Instantaneous},{Pressure}-{Level},{Analysis},{Analyzed} {Meteorological} {Fields} {V5}.12.4}, + shorttitle = {{MERRA}-2 {instU}\_3d\_ana\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2IUNPANA_5.12.4.html}, + doi = {10.5067/TRD91YO9S6E7}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_adg_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_adg\_Nx: 2d,{Diurnal},{Time}-averaged,{Single}-{Level},{Assimilation},{Aerosol} {Diagnostics} (extended) {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_adg\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXADG_5.12.4.html}, + doi = {10.5067/YZJJXZTFCX6B}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_aer_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_aer\_Nx: 2d,{Diurnal},{Time}-averaged,{Single}-{Level},{Assimilation},{Aerosol} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_aer\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXAER_5.12.4.html}, + doi = {10.5067/KPUMVXFEQLA1}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_chm_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_chm\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Carbon} {Monoxide} and {Ozone} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_chm\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXCHM_5.12.4.html}, + doi = {10.5067/5KFZ6GXRHZKN}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_csp_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_csp\_Nx: 2d,{Diurnal},{Time}-averaged,{Single}-{Level},{Assimilation},{COSP} {Satellite} {Simulator} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_csp\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXCSP_5.12.4.html}, + doi = {10.5067/9PH5QU4CL9E8}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_flx_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_flx\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Surface} {Flux} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_flx\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXFLX_5.12.4.html}, + doi = {10.5067/LUHPNWAKYIO3}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_int_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_int\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Vertically} {Integrated} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_int\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXINT_5.12.4.html}, + doi = {10.5067/R2MPVU4EOSWT}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_lfo_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_lfo\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Surface} {Forcings} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_lfo\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXLFO_5.12.4.html}, + doi = {10.5067/BTSNKAJND3ME}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_lnd_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_lnd\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Surface} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_lnd\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXLND_5.12.4.html}, + doi = {10.5067/W0J15047CF6N}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_ocn_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_ocn\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Ocean} {Surface} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_ocn\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXOCN_5.12.4.html}, + doi = {10.5067/KLNAVGAX7J66}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_rad_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_rad\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Radiation} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_rad\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXRAD_5.12.4.html}, + doi = {10.5067/4SDCJYK8P9QU}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_slv_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_slv\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_slv\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXSLV_5.12.4.html}, + doi = {10.5067/AFOK0TPEVQEK}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_2d_glc_Nx, + title = {{MERRA}-2 {tavgU}\_2d\_glc\_Nx: 2d,{Diurnal},{Time}-{Averaged},{Single}-{Level},{Assimilation},{Land} {Ice} {Surface} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_2d\_glc\_Nx}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNXGLC_5.12.4.html}, + doi = {10.5067/7VUPQC736SWX}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_cld_Np, + title = {{MERRA}-2 {tavgU}\_3d\_cld\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Cloud} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_cld\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPCLD_5.12.4.html}, + doi = {10.5067/EPW7T5UO0C0N}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_mst_Np, + title = {{MERRA}-2 {tavgU}\_3d\_mst\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Moist} {Processes} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_mst\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPMST_5.12.4.html}, + doi = {10.5067/ZRSN0JU27DK2}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_rad_Np, + title = {{MERRA}-2 {tavgU}\_3d\_rad\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Radiation} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_rad\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPRAD_5.12.4.html}, + doi = {10.5067/H140JMDOWB0Y}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_tdt_Np, + title = {{MERRA}-2 {tavgU}\_3d\_tdt\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Temperature} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_tdt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPTDT_5.12.4.html}, + doi = {10.5067/QPO9E5TPZ8OF}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_trb_Np, + title = {{MERRA}-2 {tavgU}\_3d\_trb\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Turbulence} {Diagnostics} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_trb\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPTRB_5.12.4.html}, + doi = {10.5067/2A99C60CG7WC}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_udt_Np, + title = {{MERRA}-2 {tavgU}\_3d\_udt\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Wind} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_udt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPUDT_5.12.4.html}, + doi = {10.5067/DO715T7T5PG8}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_odt_Np, + title = {{MERRA}-2 {tavgU}\_3d\_odt\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Ozone} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_odt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPODT_5.12.4.html}, + doi = {10.5067/M8OJ09GZP23E}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{data_gmao_merra-tavgU_3d_qdt_Np, + title = {{MERRA}-2 {tavgU}\_3d\_qdt\_Np: 3d,{Diurnal},{Time}-{Averaged},{Pressure}-{Level},{Assimilation},{Moist} {Tendencies} {V5}.12.4}, + shorttitle = {{MERRA}-2 {tavgU}\_3d\_qdt\_Np}, + url = {https://disc.gsfc.nasa.gov/datacollection/M2TUNPQDT_5.12.4.html}, + doi = {10.5067/S8HJXIR0BFTS}, + urldate = {2024-06-24}, + publisher = {NASA Goddard Earth Sciences Data and Information Services Center}, + author = {{Global Modeling And Assimilation Office} and Pawson, Steven}, + year = {2015}, +} + +@misc{dewitz_national_2024, + title = {National {Land} {Cover} {Database} ({NLCD}) 2019 {Products} (ver. 3.0, {February} 2024)}, + url = {https://www.sciencebase.gov/catalog/item/5f21cef582cef313ed940043}, + doi = {10.5066/P9KZCM54}, + abstract = {The U.S. Geological Survey (USGS), in partnership with several federal agencies, has developed and released five National Land Cover Database (NLCD) products over the past two decades: NLCD 1992, 2001, 2006, 2011, and 2016. The 2016 release saw landcover created for additional years of 2003, 2008, and 2013. These products provide spatially explicit and reliable information on the Nation’s land cover and land cover change. To continue the legacy of NLCD and further establish a long-term monitoring capability for the Nation’s land resources, the USGS has designed a new generation of NLCD products named NLCD 2019. The NLCD 2019 design aims to provide innovative, consistent, and robust methodologies for production of a multi-temporal land cover and land cover change database from 2001 to 2019 at 2–3-year intervals. Comprehensive research was conducted and resulted in developed strategies for NLCD 2019: continued integration between impervious surface and all landcover products with impervious surface being directly mapped as developed classes in the landcover, a streamlined compositing process for assembling and preprocessing based on Landsat imagery and geospatial ancillary datasets; a multi-source integrated training data development and decision-tree based land cover classifications; a temporally, spectrally, and spatially integrated land cover change analysis strategy; a hierarchical theme-based post-classification and integration protocol for generating land cover and change products; a continuous fields biophysical parameters modeling method; and an automated scripted operational system for the NLCD 2019 production. The performance of the developed strategies and methods were tested in twenty composite referenced areas throughout the conterminous U.S. An overall accuracy assessment from the 2016 publication give a 91\% overall landcover accuracy, with the developed classes also showing a 91\% accuracy in overall developed. Results from this study confirm the robustness of this comprehensive and highly automated procedure for NLCD 2019 operational mapping. Questions about the NLCD 2019 land cover product can be directed to the NLCD 2019 land cover mapping team at USGS EROS, Sioux Falls, SD (605) 594-6151 or mrlc@usgs.gov. See included spatial metadata for more details.}, + urldate = {2024-06-24}, + publisher = {U.S. Geological Survey}, + author = {Dewitz, J.}, + month = feb, + year = {2024}, + keywords = {land use change}, +} + +@misc{dewitz_national_2023, + title = {National {Land} {Cover} {Database} ({NLCD}) 2021 {Products}}, + url = {https://www.sciencebase.gov/catalog/item/647626cbd34e4e58932d9d4e}, + doi = {10.5066/P9JZ7AO3}, + abstract = {The U.S. Geological Survey (USGS), in partnership with several federal agencies, has now developed and released seven National Land Cover Database (NLCD) products: NLCD 1992, 2001, 2006, 2011, 2016, 2019, and 2021. Beginning with the 2016 release, land cover products were created for two-to-three-year intervals between 2001 and the most recent year. These products provide spatially explicit and reliable information on the Nation?s land cover and land cover change. NLCD continues to provide innovative, consistent, and robust methodologies for production of a multi-temporal land cover and land cover change database. The NLCD 2021 release is update based, so the Land Cover and Impervious Surface products�released in�2019 are unchanged and used directly with NLCD 2021 for change analysis though the NLCD timespan.�Science products and the change index are updated and will need to be reacquired to contain the additional 2021 change. These new products use a streamlined compositing process for assembling and preprocessing Landsat imagery and geospatial ancillary datasets; a temporally, spectrally, and spatially integrated land cover change analysis strategy; a theme-based post-classification protocol for generating land cover and change products; a continuous fields biophysical parameters modeling method; and a scripted operational system. The overall accuracy of the 2019 Level I land cover was 91\%. Results from this study confirm the robustness of this comprehensive and highly automated procedure for NLCD 2021 operational mapping (see https://doi.org/10.1080/15481603.2023.2181143 for the latest accuracy assessment publication). Questions about the NLCD 2021 land cover product can be directed to the NLCD 2021 land cover mapping team at USGS EROS, Sioux Falls, SD (605) 594-6151 or mrlc@usgs.gov. See included spatial metadata for more details. Please see�National Land Cover Database (NLCD) 2019 Products (ver. 2.0, June 2021) - ScienceBase-Catalog�for the 2019 release of NLCD which is used with the 2021 release for comparisons through the years.� Also refer to the larger NLCD Community page for all things NLCD related�National Land Cover Database (NLCD) - ScienceBase-Catalog.�}, + urldate = {2024-06-24}, + publisher = {U.S. Geological Survey}, + author = {Dewitz, Jon}, + year = {2023}, + keywords = {Land Use Change}, +} + +@article{mesinger_north_2006, + title = {North {American} {Regional} {Reanalysis}}, + volume = {87}, + issn = {0003-0007, 1520-0477}, + url = {https://journals.ametsoc.org/doi/10.1175/BAMS-87-3-343}, + doi = {10.1175/BAMS-87-3-343}, + language = {en}, + number = {3}, + urldate = {2024-06-24}, + journal = {Bulletin of the American Meteorological Society}, + author = {Mesinger, Fedor and DiMego, Geoff and Kalnay, Eugenia and Mitchell, Kenneth and Shafran, Perry C. and Ebisuzaki, Wesley and Jović, Dušan and Woollen, Jack and Rogers, Eric and Berbery, Ernesto H. and Ek, Michael B. and Fan, Yun and Grumbine, Robert and Higgins, Wayne and Li, Hong and Lin, Ying and Manikin, Geoff and Parrish, David and Shi, Wei}, + month = mar, + year = {2006}, + pages = {343--360} +} + +@techreport{danielson_global_2011, + type = {Open-{File} {Report}}, + title = {Global multi-resolution terrain elevation data 2010 ({GMTED2010})}, + url = {https://doi.org/10.3133/ofr20111073}, + language = {en}, + number = {2011-1073}, + institution = {U.S. Geological Survey}, + author = {Danielson, Jeffrey J. and Gesch, Dean B.}, + year = {2011}, + note = {Series: Open-File Report}, + pages = {iv, 23 p.; Appendix}, +} + + +@article{keller_description_2021, + title = {Description of the {NASA} {GEOS} {Composition} {Forecast} {Modeling} {System} {GEOS}‐{CF} v1.0}, + volume = {13}, + issn = {1942-2466, 1942-2466}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2020MS002413}, + doi = {10.1029/2020MS002413}, + abstract = {Abstract + + The Goddard Earth Observing System composition forecast (GEOS‐CF) system is a high‐resolution (0.25°) global constituent prediction system from NASA's Global Modeling and Assimilation Office (GMAO). GEOS‐CF offers a new tool for atmospheric chemistry research, with the goal to supplement NASA's broad range of space‐based and in‐situ observations. GEOS‐CF expands on the GEOS weather and aerosol modeling system by introducing the GEOS‐Chem chemistry module to provide hindcasts and 5‐days forecasts of atmospheric constituents including ozone (O + 3 + ), carbon monoxide (CO), nitrogen dioxide (NO + 2 + ), sulfur dioxide (SO + 2 + ), and fine particulate matter (PM + 2.5 + ). The chemistry module integrated in GEOS‐CF is identical to the offline GEOS‐Chem model and readily benefits from the innovations provided by the GEOS‐Chem community. Evaluation of GEOS‐CF against satellite, ozonesonde and surface observations for years 2018–2019 show realistic simulated concentrations of O + 3 + , NO + 2 + , and CO, with normalized mean biases of −0.1 to 0.3, normalized root mean square errors between 0.1–0.4, and correlations between 0.3–0.8. Comparisons against surface observations highlight the successful representation of air pollutants in many regions of the world and during all seasons, yet also highlight current limitations, such as a global high bias in SO + 2 + and an overprediction of summertime O + 3 + over the Southeast United States. GEOS‐CF v1.0 generally overestimates aerosols by 20\%–50\% due to known issues in GEOS‐Chem v12.0.1 that have been addressed in later versions. The 5‐days forecasts have skill scores comparable to the 1‐day hindcast. Model skills can be improved significantly by applying a bias‐correction to the surface model output using a machine‐learning approach. + + , + Plain Language Summary + + Accurate forecasting of the compostion of the atmosphere is important for a variety of applications, including air pollution mitigation, support of satellite and other remote‐sensing observations, and research applications. Producing such forecasts is computationally expensive due to the complexity of atmospheric chemistry, which interacts with weather on all scales. Here we present the NASA Goddard Earth Observing System composition forecast (GEOS‐CF) system, which produces global forecasts of major atmospheric constituents such as ozone (O + 3 + ), nitrogen dioxide (NO + 2 + ), and fine particulate matter (PM + 2.5 + ). On a daily basis, the model tracks the atmospheric concentrations of more than 250 chemical species in more than 55 million model grid cells, computing the interactions between those species using the state‐of‐the‐science GEOS‐Chem chemistry model. We present an in‐depth evaluation of the GEOS‐CF model through comparison against independent observations. We show how the model captures many observed features of atmospheric composition, such as spatio‐temporal variations in air pollution due to changes in pollutant emissions, weather, and chemistry. We also highlight some of the model deficiencies, for example, with respect to the simulation of aerosol particles. Finally, we demonstrate how surface observations and model data can be combined using machine learning to provide improved local air quality forecasts. + + , + Key Points + + + + + GEOS‐CF is a new modeling system that produces global forecasts of atmospheric composition at 25 km + 2 + horizontal resolution + + + + GEOS‐CF model output is freely available and offers a new tool for academic researchers, air quality managers, and the public}, + language = {en}, + number = {4}, + urldate = {2024-06-24}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Keller, Christoph A. and Knowland, K. Emma and Duncan, Bryan N. and Liu, Junhua and Anderson, Daniel C. and Das, Sampa and Lucchesi, Robert A. and Lundgren, Elizabeth W. and Nicely, Julie M. and Nielsen, Eric and Ott, Lesley E. and Saunders, Emily and Strode, Sarah A. and Wales, Pamela A. and Jacob, Daniel J. and Pawson, Steven}, + month = apr, + year = {2021}, + pages = {e2020MS002413}, +} + +# Figure 1 icons +@misc{Freepik_Cloud, + author = {Freepik}, + title = {Cloud icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/cloud}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_Heat, + author = {Freepik}, + title = {Heat icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/heat}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_Snowstorm, + author = {Freepik}, + title = {Snowstorm icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/snowstorm}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_Forest, + author = {Freepik}, + title = {Forest icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/forest}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_CO2, + author = {Freepik}, + title = {Co2 icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/co2}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_Download, + author = {Freepik}, + title = {Download icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/download}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_Database, + author = {Freepik}, + title = {Database icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/database}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_GIS, + author = {Freepik}, + title = {Gis icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/gis}}, + note = {Accessed: 2024-07-10} +} + +@misc{Freepik_Excel, + author = {Freepik}, + title = {Excel icons}, + howpublished = {\url{https://www.flaticon.com/free-icons/excel}}, + note = {Accessed: 2024-07-10} +} \ No newline at end of file diff --git a/man/download_aqs.Rd b/man/download_aqs.Rd index 33884b97..6fda80ed 100644 --- a/man/download_aqs.Rd +++ b/man/download_aqs.Rd @@ -72,6 +72,9 @@ download_aqs( ) } } +\references{ +\insertRef{data_usepa2023airdata}{amadeus} +} \author{ Mariana Kassien, Insang Song, Mitchell Manware } diff --git a/man/download_ecoregion.Rd b/man/download_ecoregion.Rd index fca9530b..e73adbe1 100644 --- a/man/download_ecoregion.Rd +++ b/man/download_ecoregion.Rd @@ -74,6 +74,9 @@ download_ecoregion( ) } } +\references{ +\insertRef{article_omernik2014ecoregions}{amadeus} +} \author{ Insang Song } diff --git a/man/download_geos.Rd b/man/download_geos.Rd index d9a9bc24..7c4f06bc 100644 --- a/man/download_geos.Rd +++ b/man/download_geos.Rd @@ -57,6 +57,9 @@ download_geos( ) } } +\references{ +\insertRef{keller_description_2021}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_gmted.Rd b/man/download_gmted.Rd index f2f48d77..3b07e148 100644 --- a/man/download_gmted.Rd +++ b/man/download_gmted.Rd @@ -66,6 +66,9 @@ download_gmted( ) } } +\references{ +\insertRef{danielson_global_2011}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_gridmet.Rd b/man/download_gridmet.Rd index 60125634..e3201172 100644 --- a/man/download_gridmet.Rd +++ b/man/download_gridmet.Rd @@ -54,6 +54,9 @@ download_gridmet( ) } } +\references{ +\insertRef{article_abatzoglou2013development}{amadeus} +} \author{ Mitchell Manware } diff --git a/man/download_hms.Rd b/man/download_hms.Rd index 75b0a664..b9ee5a61 100644 --- a/man/download_hms.Rd +++ b/man/download_hms.Rd @@ -66,6 +66,9 @@ download_hms( ) } } +\references{ +\insertRef{web_HMSabout}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_huc.Rd b/man/download_huc.Rd index 4d013279..3b882826 100644 --- a/man/download_huc.Rd +++ b/man/download_huc.Rd @@ -63,6 +63,9 @@ download_huc( ) } } +\references{ +\insertRef{data_usgs2023nhd}{amadeus} +} \author{ Insang Song } diff --git a/man/download_koppen_geiger.Rd b/man/download_koppen_geiger.Rd index e7bba6ba..ecf33f6e 100644 --- a/man/download_koppen_geiger.Rd +++ b/man/download_koppen_geiger.Rd @@ -67,6 +67,9 @@ download_koppen_geiger( ) } } +\references{ +\insertRef{article_beck2023koppen, article_beck2018present}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_merra2.Rd b/man/download_merra2.Rd index 9a8e815a..240dba5d 100644 --- a/man/download_merra2.Rd +++ b/man/download_merra2.Rd @@ -63,6 +63,101 @@ download_merra2( ) } } +\references{ +\insertRef{data_gmao_merra-inst1_2d_asm_Nx}{amadeus} +\insertRef{data_gmao_merra-inst1_2d_int_Nx}{amadeus} +\insertRef{data_gmao_merra-inst1_2d_lfo_Nx}{amadeus} +\insertRef{data_gmao_merra-inst3_3d_asm_Np}{amadeus} +\insertRef{data_gmao_merra-inst3_3d_aer_Nv}{amadeus} +\insertRef{data_gmao_merra-inst3_3d_asm_Nv}{amadeus} +\insertRef{data_gmao_merra-inst3_3d_chm_Nv}{amadeus} +\insertRef{data_gmao_merra-inst3_3d_gas_Nv}{amadeus} +\insertRef{data_gmao_merra-inst3_2d_gas_Nx}{amadeus} +\insertRef{data_gmao_merra-inst6_3d_ana_Np}{amadeus} +\insertRef{data_gmao_merra-inst6_3d_ana_Nv}{amadeus} +\insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_adg_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_aer_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_chm_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_csp_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_flx_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_int_Nx}{amadeus} +\insertRef{pawson_merra-2_2020}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_lnd_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_ocn_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_rad_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg1_2d_slv_Nx}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_mst_Ne}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_trb_Ne}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_nav_Ne}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_cld_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_mst_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_rad_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_tdt_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_trb_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_udt_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_odt_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_qdt_Np}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_asm_Nv}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_cld_Nv}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_mst_Nv}{amadeus} +\insertRef{data_gmao_merra-tavg3_3d_rad_Nv}{amadeus} +\insertRef{data_gmao_merra-tavg3_2d_glc_Nx}{amadeus} +\insertRef{data_gmao_merra-instM_2d_asm_Nx}{amadeus} +\insertRef{data_gmao_merra-instM_2d_int_Nx}{amadeus} +\insertRef{data_gmao_merra-instM_2d_lfo_Nx}{amadeus} +\insertRef{data_gmao_merra-instM_2d_gas_Nx}{amadeus} +\insertRef{data_gmao_merra-instM_3d_asm_Np}{amadeus} +\insertRef{data_gmao_merra-instM_3d_ana_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_adg_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_aer_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_chm_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_csp_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_flx_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_int_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_lfo_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_lnd_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_ocn_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_rad_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_slv_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_2d_glc_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_cld_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_mst_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_rad_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_tdt_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_trb_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_udt_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_odt_Np}{amadeus} +\insertRef{data_gmao_merra-tavgM_3d_qdt_Np}{amadeus} +\insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} +\insertRef{data_gmao_merra-const_2d_asm_Nx}{amadeus} +\insertRef{data_gmao_merra-instU_2d_asm_Nx}{amadeus} +\insertRef{data_gmao_merra-instU_2d_int_Nx}{amadeus} +\insertRef{data_gmao_merra-instU_2d_lfo_Nx}{amadeus} +\insertRef{data_gmao_merra-instU_2d_gas_Nx}{amadeus} +\insertRef{data_gmao_merra-instU_3d_asm_Np}{amadeus} +\insertRef{data_gmao_merra-instU_3d_ana_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_adg_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_aer_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_chm_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_csp_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_flx_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_int_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_lfo_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_lnd_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_ocn_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_rad_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_slv_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_2d_glc_Nx}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_cld_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_mst_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_rad_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_tdt_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_trb_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_udt_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_odt_Np}{amadeus} +\insertRef{data_gmao_merra-tavgU_3d_qdt_Np}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_modis.Rd b/man/download_modis.Rd index 2cc508ed..e8082152 100644 --- a/man/download_modis.Rd +++ b/man/download_modis.Rd @@ -113,6 +113,9 @@ download_modis( ) } } +\references{ +\insertRef{data_mcd19a22021, data_mod06l2_2017, data_mod09ga2021, data_mod11a12021, data_mod13a22021, article_roman2018vnp46}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_narr.Rd b/man/download_narr.Rd index 91b68ff6..7f8c4754 100644 --- a/man/download_narr.Rd +++ b/man/download_narr.Rd @@ -56,6 +56,9 @@ download_narr( ) } } +\references{ +\insertRef{mesinger_north_2006}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_nei.Rd b/man/download_nei.Rd index 3ef8ea7f..358c3589 100644 --- a/man/download_nei.Rd +++ b/man/download_nei.Rd @@ -76,6 +76,9 @@ download_nei( ) } } +\references{ +\insertRef{web_usepa2024nei}{amadeus} +} \author{ Ranadeep Daw, Insang Song } diff --git a/man/download_nlcd.Rd b/man/download_nlcd.Rd index d8445cc5..93241d4c 100644 --- a/man/download_nlcd.Rd +++ b/man/download_nlcd.Rd @@ -65,6 +65,9 @@ download_nlcd( ) } } +\references{ +\insertRef{dewitz_national_2023, dewitz_national_2024}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_olm.Rd b/man/download_olm.Rd index 7c56aa50..c7808dc2 100644 --- a/man/download_olm.Rd +++ b/man/download_olm.Rd @@ -132,6 +132,9 @@ download_olm( ) } } +\references{ +\insertRef{data_hengl2023openlandmap}{amadeus} +} \seealso{ \link{list_stac_files} } diff --git a/man/download_prism.Rd b/man/download_prism.Rd index 4ba33d09..954b2f40 100644 --- a/man/download_prism.Rd +++ b/man/download_prism.Rd @@ -85,6 +85,8 @@ download_prism( } } \references{ +\insertRef{article_daly2000prism}{amadeus} + \itemize{ \item \href{http://www.prism.oregonstate.edu/}{PRISM Climate Group} \item \href{https://prism.oregonstate.edu/documents/PRISM_downloads_web_service.pdf}{PRISM Web Service Guide} diff --git a/man/download_sedac_groads.Rd b/man/download_sedac_groads.Rd index 33b7932b..385800c0 100644 --- a/man/download_sedac_groads.Rd +++ b/man/download_sedac_groads.Rd @@ -64,6 +64,9 @@ download_sedac_groads( ) } } +\references{ +\insertRef{data_ciesin2013groads}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_sedac_population.Rd b/man/download_sedac_population.Rd index 9016ed97..4d0533b9 100644 --- a/man/download_sedac_population.Rd +++ b/man/download_sedac_population.Rd @@ -69,6 +69,9 @@ download_sedac_population( ) } } +\references{ +\insertRef{data_ciesin2017gpwv4}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_terraclimate.Rd b/man/download_terraclimate.Rd index d68e63e9..f0900063 100644 --- a/man/download_terraclimate.Rd +++ b/man/download_terraclimate.Rd @@ -53,6 +53,9 @@ download_gridmet( ) } } +\references{ +\insertRef{article_abatzoglou2018terraclimate}{amadeus} +} \author{ Mitchell Manware, Insang Song } diff --git a/man/download_tri.Rd b/man/download_tri.Rd index 31aed815..01422906 100644 --- a/man/download_tri.Rd +++ b/man/download_tri.Rd @@ -46,6 +46,9 @@ download_tri( ) } } +\references{ +\insertRef{web_usepa2024tri}{amadeus} +} \author{ Mariana Kassien, Insang Song } From 24cbd22aaff0da5cd2bea1eda62125ec09451526 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Wed, 17 Jul 2024 14:04:34 -0400 Subject: [PATCH 35/66] README.md --- R/download.R | 5 ++++- README.md | 53 +++++++++++++++++++++++++--------------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/R/download.R b/R/download.R index c0abb5c7..febe2edb 100644 --- a/R/download.R +++ b/R/download.R @@ -2066,7 +2066,10 @@ download_koppen_geiger <- function( #### 7. define data resolution data_resolution <- gsub("\\.", "p", data_resolution) #### 8 define download URL - download_url <- "https://s3-eu-west-1.amazonaws.com/pfigshare-u-files/12407516/Beck_KG_V1.zip" + download_url <- paste0( + "https://s3-eu-west-1.amazonaws.com/", + "pfigshare-u-files/12407516/Beck_KG_V1.zip" + ) #### 9 build download file name download_name <- paste0( directory_to_download, diff --git a/README.md b/README.md index 837a6a66..99d855d8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ `amadeus` is not yet available from CRAN, but it can be installed with the `devtools`, `remotes`, or `pak` packages. -``` +```r devtools::install_github("NIEHS/amadeus") ``` @@ -65,16 +65,18 @@ See the "[download_data](https://niehs.github.io/amadeus/articles/download_funct Example use of `download_data` using NOAA NCEP North American Regional Reanalysis's (NARR) "weasd" (Daily Accumulated Snow at Surface) variable. ```r -> directory <- "/ EXAMPLE / FILE / PATH /" -> download_data( -+ dataset_name = "narr_monolevel", -+ year_start = 2022, -+ year_end = 2022, -+ variable = "weasd", -+ directory_to_save = directory, -+ acknowledgement = TRUE, -+ download = TRUE -+ ) +directory <- "/ EXAMPLE / FILE / PATH /" +download_data( + dataset_name = "narr_monolevel", + year_start = 2022, + year_end = 2022, + variable = "weasd", + directory_to_save = directory, + acknowledgement = TRUE, + download = TRUE +) +``` +``` Downloading requested files... Requested files have been downloaded. ``` @@ -93,13 +95,6 @@ To avoid errors when using `process_covariates`, **do not edit the raw downloade Example use of `process_covariates` using the downloaded "weasd" data. -```r -> weasd <- process_covariates( -+ covariate = "narr", -+ date = c("2022-01-01", "2022-01-05"), -+ variable = "weasd", -+ path = paste0(directory, "weasd") -+ ) ```r weasd <- process_covariates( covariate = "narr", @@ -137,16 +132,18 @@ time : 2022-01-01 to 2022-01-05 UTC Example of `calc_covariates` using processed "weasd" data. ```r -> locs <- data.frame(lon = -78.8277, lat = 35.95013) -> locs$id <- "0001" -> weasd_covar <- calc_covariates( -+ covariate = "narr", -+ from = weasd_process, -+ locs = locs, -+ locs_id = "id", -+ radius = 0, -+ geom = FALSE -+ ) +locs <- data.frame(id = "001", lon = -78.8277, lat = 35.95013) +locs$id <- "0001" +weasd_covar <- calc_covariates( + covariate = "narr", + from = weasd_process, + locs = locs, + locs_id = "id", + radius = 0, + geom = FALSE +) +``` +``` Detected `data.frame` extraction locations... Calculating weasd covariates for 2022-01-01... Calculating weasd covariates for 2022-01-02... From da76fa4af8dd9d108d3b0a86b85d9eb13261be11 Mon Sep 17 00:00:00 2001 From: Mitchell Manware Date: Wed, 17 Jul 2024 15:59:36 -0400 Subject: [PATCH 36/66] narr URL hotfix --- R/download_auxiliary.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index 90db0324..ddadfe42 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -557,7 +557,7 @@ narr_variable <- function(variable) { ) pressure <- c("air", "hgt", "omega", "shum", "tke", "uwnd", "vwnd") soil <- c("soill", "soilw", "tsoil") - base <- "https://psl.noaa.gov/thredds/catalog/Datasets/NARR/Dailies/" + base <- "https://psl.noaa.gov/thredds/fileServer/Datasets/NARR/Dailies/" if (variable %in% mono) { base <- paste0(base, "monolevel/") months <- "" From 441e070e494392598a5faa09f77e512df92ebbcf Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Thu, 18 Jul 2024 09:20:21 -0400 Subject: [PATCH 37/66] download_gridmet; download_terraclimate multiple variables --- R/process_auxiliary.R | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/R/process_auxiliary.R b/R/process_auxiliary.R index bb2b700d..ebd3650d 100644 --- a/R/process_auxiliary.R +++ b/R/process_auxiliary.R @@ -496,11 +496,13 @@ process_variable_codes <- return(variables) } else { if (all(tolower(variables) %in% names_codes[, 1]) == TRUE) { - codes_return <- do.call( - code_function, - list(tolower(variables), invert = FALSE) + codes_return <- lapply( + tolower(variables), + function(var) { + do.call(code_function, list(var, invert = FALSE)) + } ) - return(as.vector(codes_return)) + return(as.vector(unlist(codes_return))) } else { stop( paste0( From fcd6cd42cdf81008b735614d812f1a223276965a Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Thu, 18 Jul 2024 09:23:51 -0400 Subject: [PATCH 38/66] download_gridmet() patch --- R/download.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/download.R b/R/download.R index febe2edb..3b806376 100644 --- a/R/download.R +++ b/R/download.R @@ -3462,7 +3462,7 @@ download_gridmet <- function( if (any(nchar(year[1]) != 4, nchar(year[1]) != 4)) { stop("years should be 4-digit integers.\n") } - years <- seq(year[1], year[1], 1) + years <- seq(year[1], year[2], 1) #### define variables variables_list <- process_variable_codes( variables = variables, From de36ecf6d172248b1da8d6f7951c568ddae55e9a Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 07:17:52 -0400 Subject: [PATCH 39/66] README.md hex --- COV.rds | Bin 0 -> 759745 bytes R/calculate_covariates_auxiliary.R | 2 +- R/download.R | 2 +- README.md | 4 +- man/figures/._amadeus_hex.svg | Bin 0 -> 4096 bytes man/figures/amadeus_hex.svg | 131 ++++++++++++++++++ .../images => man/figures}/readme_issues.png | Bin 7 files changed, 135 insertions(+), 4 deletions(-) create mode 100644 COV.rds create mode 100644 man/figures/._amadeus_hex.svg create mode 100644 man/figures/amadeus_hex.svg rename {vignettes/images => man/figures}/readme_issues.png (100%) diff --git a/COV.rds b/COV.rds new file mode 100644 index 0000000000000000000000000000000000000000..0e5c2c236a4597998a323f1fa63b39f5fe31851c GIT binary patch literal 759745 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�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 {=L#-7_y& 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

fns(Sp*0F^M0v~7o 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

V$Ard*f4j@Dah zsjHw8I=_BOn2%oBQRO5oHFcr`!iZXA5RD_$i%3(NOBe$6Q6&RRDlH8v5d*4f$z7x> zgQM6P6d|j=C_-%hPZ0uw+->wheU@rk^?s|zy0j;n{}v!u{_y$+X3tS^eIK*H<`))- zbaQ2MZmn9LHyM_3^X5MCp9v^Fn*I>V+-!v-!>uCktUWikZH5)Bd1B|hBv-j8>qBVB zX0Z2Ue(ZtAkC%*=YgG~8CA(W6@_nTKpR7h=dPBH7(zmspF0_WXt6;kDKqF7zzvj6; zK_y$~$~D~{sFDFs3DAhQcaa#*vpA$y6;+vPNM1rh^~vkm*igx2sX8&?DI1(#`QbLtS&eQgb@~(*vY|w*cA$*wCG(twvJol)x9u z$r_$l#Q?0l1!tnFh>?Pg=y%Go6^bbajORI8+*4GPP|NGbFAQ!6rGYE$f?i?!h;gm; zpDp~n#?W+V{AGkeel>~#@(d-ht5KzIN{53ZgwcS&FzGEdq$k+(hS?tM<67Cwkqr0* znYZ_t2^Pb0TEtihv)T#lltZPPpd2nQ9o%J2nWsTNm`4oNZB=OjS_Hd(nbeo<^=73F> zdf1{zjbaaUTF|R+@@0=`k22puB`6-SC2|L+qY)_G5r&zA$zHTAC(SKR#FH?%nM6DA zw5rfYnJU!W$)*Q8JDzTq(Gxx}7<7rqah+T@Vtydodz^^xK+^9jNTv{``am#Ol2{mB z2LPO2>uea(q|%-ccB~9|Lv;NaZH^ziej7jVH&T*m@&8jTO?et{ZIC}X{D?n2Hcu7x zS#oQmUK@F>LEO-X`}i?}yE)*wK3hrM`86%CN3TAxQ7=~hRKqg8m%>^c+*9&K+-y0z z+KjaJm{D*iwcwXniAh+FD2y^6vw^rS@F_CYnD%Dr{2NST%MI}*o9{zOIW4!=1)_OS?@B=;8FWvh(mF4iB4! zWS>JOh1t{s^d#~ZE9>2n5E1wonUuG4xi(8HnazWtFzo~$PyGt}EazF%$KqhKD=~bf<=*3j{+13(|ipN!q!7sOV)Croswfv8Dt*DX+8 z0irHgc==5zkX!KBX2kdcxhs!tOxWr^HL|cNGMhRM5JMWJfwdfy@V6b(jl#fmz@Ypl z>mZLLJv+dNFe`|=CpuHd0dw$=s^udCP+WTXO@#2Nc3(TTG0PYUYs49#<^d;&RYFkn z#K)(MRkaA+d8&gWLA9_M`3@sN$eJw0QMFH4I%G#0vAk77!_;o>RGrm`_fFmV5pUR| zGO68273gI=DL>U)Vd<7^d<X#F=3H6mn9RxLHuYO@6|7;C_ukw#f zUdct6jppoFC$8Adc?7{G?C7pq#>sxRb?GPS_;AL9AzQvX_>XmU?2~|6qR+a}xPOl$ zr)yU2M$F};vumz6C}iab51531lsLZxUEodUW*E6AQ610K948xA@e3^OGu^($6wZ}k z=p&9c2FTk_ah$N)d46QQ4TLjTfWG8xmF|7XBFmU2W#1@mtK#no&XLIe8z?5xE6rIB8PjR@#Ibx23+)O-x$8@bx6t119&09s3-mlxsG^#fIWS)-o^5ojHjCb$^{ z@iMt|0&;;w$yZfpEJ47o&p-lp&AM35{y*XH+)anLzk;!A3ago)@{ZSX35CzpBqc?HUCOh_JV?dyEx5~KfSEu2@ z7gL9|`Y#Zat|^^LVDnx4PfBD6`7h$pQ6n~hMp0tQGiPwL0fK6^M_Q2%q836vwdzbS zFHT#?czikx0al@Vwx?E}s&!te4TS)8N#(!?pUnxDFwXkO=uCd~Jn7nSHWa%=gLK>; zd!YTD4zb3=VZ1xgxF1zR1OGEgll}B|JsR6lRZHPwBfmi~R5a52ct0bYAuC#szkMro z1{Wc!I?bcdyx%V!{8xwAT04k!l`V?(vVP@j0;>9kmq{1*1K87#H%g=SaNz?cfzYp5>BB1&T@8N zAHwdqTMQz1?Mrcp)&Vk-YQFlwAh3B`-GMU>h%Q$Iu zg2-Wr{s%=F1nVFiVoYqBj0VvoEL+L`8$&_sw%Q0!6Rq{i zB>)T~49wZG)R~3feQ}fN3)j5^FZp~wmEb5ae_yPfdk2TJ-G$FV6cB_$Ri-1C?pKx1 zrHf%;v$wFU3$-sH;G$wM*^<}Ft2`*T&Na%Ueznp1UNI0HzbKT94GN`+K6t1x4)>aV zT^##N>R5a}s3b;Ybk>3$KchZ{=~ZML$Hv-HS1DYRqO!YK;GAJIEa`B`5v(8#u$QvjJ;~ zVRGK~bhWq@drC!9$)Rc5$Zu2&reoc-<3clrrJvVYt?uyHmZS3~As=Y5)_+0A>HUZj zeiV$G0zo(exIoEA14AJ zkXxo-ZgY0I0hS_QXxkrY<~Lb>>jB?9?{>To4IAs|h&$%_)2TVAtzW?kz;8%u& zZ#F|XfyBUhq*vcQcjU*7o#K`LX6XTD23PKcreDf0f&YX>i1v@a-hKmzjCEY~6bCkQ z;W9GdIJ5wwp$+#xyqynBi*zzq)`=VvE!dE3U*C(oNou>XnO+7Dh|n&ddJKc_Dk(5UD? zZ(1KAeMN1V*Y(?L!9GeN-6k@^3P`J8`$pnrSXyK(pkm_Kyk;iw^56qB034L=(} zE{2rv0GuwbS<#kE}(I+J&c2&Nr*M$pswfV*EAASsJRH^c#1!E3&FGenP+EYZ7e3@Ce`w*Ws3?>&Ke;70&< zK){)tgo@-VBHxSNs}#Cz{�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

Mt3-jzis=Jp0XPH&-F>? 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 $~j(7?`8PDjg-x5W%~d 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%0Agy}3TD(V<~ajRuTOwT{EOJQmhBg3c<}vvOpb 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
l{nu=L!(EA)=75>rw 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
[![R-CMD-check](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml) [![cov](https://NIEHS.github.io/amadeus/badges/coverage.svg)](https://github.com/NIEHS/amadeus/actions) @@ -31,7 +31,7 @@ To add or edit functionality for new data sources or datasets, open a [Pull requ Utilize [Issues](https://github.com/NIEHS/amadeus/issues) to notify the authors of bugs, questions, or recommendations. Identify each issue with the appropriate label to help ensure a timely response.

## Download diff --git a/man/figures/._amadeus_hex.svg b/man/figures/._amadeus_hex.svg new file mode 100644 index 0000000000000000000000000000000000000000..f5dbcbd4435b41c9a8183e8fdcbdc81436aa5702 GIT binary patch literal 4096 zcmeH~y)Q&T5Wwe2d`3{Ip7mIfrmU_v}4$XY+R7UUv6zrRcQ&0Xn6> zK{QJLf=bXRHQ2|IqtUaI?9SKDWarlnbPjhz2SAC2{>r+)<+mh>L9abIfPo9Etv_%J z;H9kni_DhGYsH7>>yHY!vQ>RQN|Nq24hsN-p%fWfuXD@@8uIstUcXhB0O__I8oEOb zory|?MT25<7ZuJcDKx<0^4-(T@pe8qKN_vgKfc^|!OzHh+h49qoilB+*)uN~I;k>_ zGlY;0jY<d?+$-4BpGC``m%e1dh%Z3WkuSym9 jEH)S$CS%HZ)8|+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + www. + + + + + + + + + + + \ No newline at end of file diff --git a/vignettes/images/readme_issues.png b/man/figures/readme_issues.png similarity index 100% rename from vignettes/images/readme_issues.png rename to man/figures/readme_issues.png From a3a1471a6fc27b1dd2a88af6a3d59363d4af78d8 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 07:19:21 -0400 Subject: [PATCH 40/66] hex size --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 611a66bc..0cfaae36 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# amadeus +# amadeus [![R-CMD-check](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml) [![cov](https://NIEHS.github.io/amadeus/badges/coverage.svg)](https://github.com/NIEHS/amadeus/actions) From 9f9fe7e4a11b0d22f3cdb90c0d1eca9ee1ead006 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 07:27:18 -0400 Subject: [PATCH 41/66] CHORDS hex --- README.md | 8 ++- man/figures/._amadeus_hex.svg | Bin 4096 -> 0 bytes man/figures/chords_hex.svg | 124 ++++++++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+), 1 deletion(-) delete mode 100644 man/figures/._amadeus_hex.svg create mode 100644 man/figures/chords_hex.svg diff --git a/README.md b/README.md index 0cfaae36..ece7a234 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# amadeus +# amadeus + + [![R-CMD-check](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml) [![cov](https://NIEHS.github.io/amadeus/badges/coverage.svg)](https://github.com/NIEHS/amadeus/actions) @@ -185,3 +187,7 @@ The following R packages can also be used to access climate and weather data in [^6]: United States Geological Survey [^7]: Last updated more than two years ago. [^8]: Archived; no longer maintained. + +----- + + \ No newline at end of file diff --git a/man/figures/._amadeus_hex.svg b/man/figures/._amadeus_hex.svg deleted file mode 100644 index f5dbcbd4435b41c9a8183e8fdcbdc81436aa5702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeH~y)Q&T5Wwe2d`3{Ip7mIfrmU_v}4$XY+R7UUv6zrRcQ&0Xn6> zK{QJLf=bXRHQ2|IqtUaI?9SKDWarlnbPjhz2SAC2{>r+)<+mh>L9abIfPo9Etv_%J z;H9kni_DhGYsH7>>yHY!vQ>RQN|Nq24hsN-p%fWfuXD@@8uIstUcXhB0O__I8oEOb zory|?MT25<7ZuJcDKx<0^4-(T@pe8qKN_vgKfc^|!OzHh+h49qoilB+*)uN~I;k>_ zGlY;0jY<d?+$-4BpGC``m%e1dh%Z3WkuSym9 jEH)S$CS%HZ)8|+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 6ea86f2da696627e497f5dec78b25f28162bc8ef Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 07:28:16 -0400 Subject: [PATCH 42/66] README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ece7a234..10ff73fa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ -# amadeus - - +# amadeus [![R-CMD-check](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml) [![cov](https://NIEHS.github.io/amadeus/badges/coverage.svg)](https://github.com/NIEHS/amadeus/actions) @@ -188,6 +186,6 @@ The following R packages can also be used to access climate and weather data in [^7]: Last updated more than two years ago. [^8]: Archived; no longer maintained. ------ +---- \ No newline at end of file From 0472f39636d18e744887b7c4ac647a276ffabc54 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 07:29:12 -0400 Subject: [PATCH 43/66] README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 10ff73fa..fdbb6fc6 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,4 @@ The following R packages can also be used to access climate and weather data in [^7]: Last updated more than two years ago. [^8]: Archived; no longer maintained. ----- - \ No newline at end of file From b4dc958308096c5ff9097a176a4748d4f83559f8 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 09:45:54 -0400 Subject: [PATCH 44/66] download_*() test coverage --- R/download_auxiliary.R | 7 - README.md | 2 - man/download_terraclimate.Rd | 2 +- man/test_download_functions.Rd | 3 - tests/testthat/test-download_functions.R | 172 +++++++++++++---------- 5 files changed, 96 insertions(+), 90 deletions(-) diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index ddadfe42..2afdea7d 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -431,7 +431,6 @@ check_urls <- function( #' @description #' Implement directory, file, and download URL unit tests. #' @param directory_to_save directory to test saving -#' @param directory_to_download directory to test download #' @param commands_path file path with download commands #' @param url_status logical vector for URL status = 200 #' @importFrom testthat expect_true @@ -439,15 +438,9 @@ check_urls <- function( #' @keywords internal #' @export test_download_functions <- function( - directory_to_download = NULL, directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) { - # test that directory_to_download exists - # skip test if directory_to_download is default (NULL) - if (!(is.null(directory_to_download))) { - testthat::expect_true(dir.exists(directory_to_download)) - } # test that directory_to_save exists testthat::expect_true(dir.exists(directory_to_save)) # test that commands_path exists diff --git a/README.md b/README.md index fdbb6fc6..54aa752b 100644 --- a/README.md +++ b/README.md @@ -185,5 +185,3 @@ The following R packages can also be used to access climate and weather data in [^6]: United States Geological Survey [^7]: Last updated more than two years ago. [^8]: Archived; no longer maintained. - - \ No newline at end of file diff --git a/man/download_terraclimate.Rd b/man/download_terraclimate.Rd index f0900063..bd56d516 100644 --- a/man/download_terraclimate.Rd +++ b/man/download_terraclimate.Rd @@ -43,7 +43,7 @@ The \code{download_terraclimate} function accesses and downloads climate and wat } \examples{ \dontrun{ -download_gridmet( +download_terraclimate( variables = "Precipitation", year = c(2023, 2024), directory_to_save = "./data" diff --git a/man/test_download_functions.Rd b/man/test_download_functions.Rd index f5d43ab0..1431f1ba 100644 --- a/man/test_download_functions.Rd +++ b/man/test_download_functions.Rd @@ -5,15 +5,12 @@ \title{Download unit tests} \usage{ test_download_functions( - directory_to_download = NULL, directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status ) } \arguments{ -\item{directory_to_download}{directory to test download} - \item{directory_to_save}{directory to test saving} \item{commands_path}{file path with download commands} diff --git a/tests/testthat/test-download_functions.R b/tests/testthat/test-download_functions.R index 9d5c9383..747e26a6 100644 --- a/tests/testthat/test-download_functions.R +++ b/tests/testthat/test-download_functions.R @@ -38,20 +38,20 @@ testthat::test_that("Error when one parameter is NULL.", { }) testthat::test_that("Errors when temporal ranges invalid.", { + error_directory <- testthat::test_path("..", "testdata", "error_temp/") expect_error( download_geos( - date_start = "1900-01-01", date = c("1900-01-01", "2018-01-01"), collection = "aqc_tavg_1hr_g1440x721_v1", acknowledgement = TRUE, - directory_to_save = testthat::test_path("..", "testdata/", "") + directory_to_save = error_directory ) ) expect_error( download_aqs( year = c(1900, 2022), acknowledgement = TRUE, - directory_to_save = testthat::test_path("..", "testdata/", ""), + directory_to_save = error_directory ) ) expect_error( @@ -59,28 +59,29 @@ testthat::test_that("Errors when temporal ranges invalid.", { year = c(1900, 2022), variables = "air.sfc", acknowledgement = TRUE, - directory_to_save = testthat::test_path("..", "testdata/", "") + directory_to_save = error_directory ) ) expect_error( download_merra2( date = c("1900-01-01", "2023-09-01"), collection = "inst1_2d_asm_Nx", - directory_to_save = testthat::test_path("..", "testdata/", ""), + directory_to_save = error_directory, acknowledgement = TRUE, remove_command = TRUE ) ) file.remove( testthat::test_path( - "../testdata", "merra2_1900-01-01_2023-09-01_wget_commands.txt" + "..", "testdata", "error_temp", + "merra2_1900-01-01_2023-09-01_wget_commands.txt" ) ) sink() expect_error( download_hms( date = c("1900-01-01", "2018-01-01"), - directory_to_save = testthat::test_path("..", "testdata/", ""), + directory_to_save = error_directory, acknowledgement = TRUE ) ) @@ -89,7 +90,7 @@ testthat::test_that("Errors when temporal ranges invalid.", { year = c(1900, 2022), variables = "Precipitation", acknowledgement = TRUE, - directory_to_save = testthat::test_path("..", "testdata/", "") + directory_to_save = error_directory ) ) expect_error( @@ -97,9 +98,10 @@ testthat::test_that("Errors when temporal ranges invalid.", { year = c(1900, 2022), variables = "Wind Speed", acknowledgement = TRUE, - directory_to_save = testthat::test_path("..", "testdata/", "") + directory_to_save = error_directory ) ) + unlink(error_directory, recursive = TRUE) }) testthat::test_that("EPA AQS download URLs have HTTP status 200.", { @@ -151,6 +153,7 @@ testthat::test_that("EPA AQS download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) }) # Ecoregion tests #### @@ -215,7 +218,7 @@ testthat::test_that("Ecoregion download URLs have HTTP status 200.", { epa_certificate_path = certificate ) ) - + unlink(directory_to_save, recursive = TRUE) }) # GEOS-CF tests #### @@ -227,8 +230,7 @@ testthat::test_that("GEOS-CF download URLs have HTTP status 200.", { date_end <- "2019-09-21" collections <- c("aqc_tavg_1hr_g1440x721_v1", "chm_inst_1hr_g1440x721_p23") - directory_to_save <- testthat::test_path("..", "testdata/", "") - directory_to_save2 <- testthat::test_path("..", "testdata", "geos_temp") + directory_to_save <- testthat::test_path("..", "testdata", "geos_temp/") # run download function testthat::expect_no_error( @@ -256,18 +258,10 @@ testthat::test_that("GEOS-CF download URLs have HTTP status 200.", { test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) - testthat::expect_no_error( - download_data(dataset_name = "geos", - date = c(date_start, date_end), - collection = collections, - directory_to_save = directory_to_save2, - acknowledgement = TRUE, - remove_command = TRUE, - download = FALSE) - ) # remove file with commands after test file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) }) # GMTED tests #### @@ -346,8 +340,7 @@ testthat::test_that("MERRA2 download URLs have HTTP status 200.", { date_start <- "2022-02-14" date_end <- "2022-03-08" collections <- c("inst1_2d_asm_Nx", "inst3_3d_asm_Np") - directory_to_save <- testthat::test_path("..", "testdata/", "") - directory_to_save2 <- testthat::test_path("..", "testdata", "hej") + directory_to_save <- testthat::test_path("..", "testdata", "merra2_temp/") # run download function testthat::expect_no_error( download_data(dataset_name = "merra2", @@ -374,17 +367,9 @@ testthat::test_that("MERRA2 download URLs have HTTP status 200.", { test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) - testthat::expect_no_error( - download_data(dataset_name = "merra2", - date = c(date_start, date_end), - collection = collections, - directory_to_save = directory_to_save2, - acknowledgement = TRUE, - remove_command = TRUE, - download = FALSE) - ) # remove file with commands after test file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) }) # MERRA2 Collection error test #### @@ -410,7 +395,7 @@ testthat::test_that("NARR download URLs have HTTP status 200.", { year_start <- 2018 year_end <- 2018 variables <- c("weasd", "omega", "soill") # includes monolevel, pressure level, subsurface - directory_to_save <- testthat::test_path("..", "testdata/", "") + directory_to_save <- testthat::test_path("..", "testdata", "narr_temp/") # run download function download_data(dataset_name = "narr", year = c(year_start, year_end), @@ -435,6 +420,7 @@ testthat::test_that("NARR download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) }) testthat::test_that("NARR error with invalid years.", { @@ -513,15 +499,17 @@ testthat::test_that("NOAA HMS Smoke download URLs have HTTP status 200.", { }) testthat::test_that("download_hms error for unzip and directory.", { + error_directory <- testthat::test_path("..", "testdata", "error_temp/") testthat::expect_error( download_data( dataset_name = "hms", acknowledgement = TRUE, - directory_to_save = testthat::test_path("..", "testdata/", ""), + directory_to_save = error_directory, unzip = FALSE, remove_zip = TRUE ) ) + unlink(error_directory, recursive = TRUE) }) testthat::test_that("NLCD download URLs have HTTP status 200.", { @@ -572,8 +560,6 @@ testthat::test_that("NLCD download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) - # remove temporary nlcd - unlink(directory_to_save, recursive = TRUE) } testthat::expect_error( download_data(dataset_name = "nlcd", @@ -586,6 +572,8 @@ testthat::test_that("NLCD download URLs have HTTP status 200.", { unzip = FALSE, remove_zip = FALSE) ) + # remove temporary nlcd + unlink(directory_to_save, recursive = TRUE) }) testthat::test_that("SEDAC groads download URLs have HTTP status 200.", { @@ -635,8 +623,6 @@ testthat::test_that("SEDAC groads download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) - # remove temporary groads - unlink(directory_to_save, recursive = TRUE) } } @@ -651,14 +637,16 @@ testthat::test_that("SEDAC groads download URLs have HTTP status 200.", { remove_zip = FALSE, remove_command = TRUE) ) + # remove temporary groads + unlink(directory_to_save, recursive = TRUE) }) testthat::test_that("SEDAC population download URLs have HTTP status 200.", { withr::local_package("httr") withr::local_package("stringr") # function parameters - years <- c("2020") - data_formats <- c("GeoTIFF") + years <- c("2020", "all") + data_formats <- c("GeoTIFF", "ASCII") data_resolutions <- cbind(c("30 second"), c("30_sec")) directory_to_save <- testthat::test_path("..", "testdata", "pop_temp") @@ -717,7 +705,7 @@ testthat::test_that("SEDAC population download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) - # remove temporary groads + # remove temporary population unlink(directory_to_save, recursive = TRUE) } } @@ -728,11 +716,10 @@ testthat::test_that("SEDAC population data types are coerced.", { withr::local_package("httr") withr::local_package("stringr") # function parameters - year <- c("totpop") + year <- c("all") data_formats <- c("GeoTIFF", "ASCII", "netCDF") data_resolutions <- c("30 second", "2pt5_min") - directory_to_download <- testthat::test_path("..", "testdata/", "") - directory_to_save <- testthat::test_path("..", "testdata/", "") + directory_to_save <- testthat::test_path("..", "testdata", "pop_temp/") for (f in seq_along(data_formats)) { download_data(dataset_name = "sedac_population", year = year, @@ -744,9 +731,9 @@ testthat::test_that("SEDAC population data types are coerced.", { unzip = FALSE, remove_zip = FALSE, remove_command = FALSE) - commands_path <- paste0(directory_to_download, + commands_path <- paste0(directory_to_save, "sedac_population_", - year, + "totpop", "_", data_resolutions[2], "_", @@ -759,12 +746,12 @@ testthat::test_that("SEDAC population data types are coerced.", { # check HTTP URL status url_status <- check_urls(urls = urls, size = 1L, method = "GET") # implement unit tests - test_download_functions(directory_to_download = directory_to_download, - directory_to_save = directory_to_save, + test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) # remove file with commands after test file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) } }) @@ -821,6 +808,7 @@ testthat::test_that("Koppen Geiger download URLs have HTTP status 200.", { file.remove(commands_path) } } + unlink(directory_to_save, recursive = TRUE) }) testthat::test_that("MODIS-MOD09GA download URLs have HTTP status 200.", { @@ -1087,7 +1075,7 @@ testthat::test_that("EPA TRI download URLs have HTTP status 200.", { withr::local_package("httr") withr::local_package("stringr") # function parameters - directory_to_save <- testthat::test_path("..", "testdata/", "") + directory_to_save <- testthat::test_path("..", "testdata", "tri_temp/") # run download function download_data(dataset_name = "tri", directory_to_save = directory_to_save, @@ -1119,6 +1107,7 @@ testthat::test_that("EPA TRI download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) }) @@ -1175,12 +1164,45 @@ testthat::test_that("EPA NEI (AADT) download URLs have HTTP status 200.", { unlink(directory_to_save, recursive = TRUE) }) +testthat::test_that("EPA NEI (AADT) download LIVE.", { + withr::local_package("httr") + withr::local_package("stringr") + # function parameters + directory_to_save <- testthat::test_path("..", "testdata", "nei_live") + certificate <- system.file("extdata/cacert_gaftp_epa.pem", + package = "amadeus") + # run download function + year <- c(2017L, 2020L) + testthat::expect_no_error( + download_data(dataset_name = "nei", + directory_to_save = directory_to_save, + acknowledgement = TRUE, + download = TRUE, + year = year, + remove_command = FALSE, + epa_certificate_path = certificate, + unzip = TRUE + ) + ) + testthat::expect_equal( + length(list.files(paste0(directory_to_save, "/zip_files"))), 2 + ) + testthat::expect_equal( + length(list.files( + paste0(directory_to_save, "/data_files"), + recursive = TRUE) + ), 12 + ) + # remove temporary nei + unlink(directory_to_save, recursive = TRUE) +}) + testthat::test_that("Test error cases in EPA gaftp sources 1", { withr::local_package("httr") withr::local_package("stringr") # function parameters tdir <- tempdir() - directory_to_save <- testthat::test_path("..", "testdata/", "") + directory_to_save <- testthat::test_path("..", "testdata", "epa_temp/") certificate <- file.path(tdir, "cacert_gaftp_epa.pem") # remove if there is a preexisting file if (file.exists(certificate)) { @@ -1212,6 +1234,7 @@ testthat::test_that("Test error cases in EPA gaftp sources 1", { # remove file with commands after test testthat::expect_true(file.exists(commands_path)) file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) }) testthat::test_that("Test error cases in EPA gaftp sources 2", { @@ -1219,7 +1242,7 @@ testthat::test_that("Test error cases in EPA gaftp sources 2", { withr::local_package("stringr") # function parameters tdir <- tempdir(check = TRUE) - directory_to_save <- testthat::test_path("..", "testdata/", "") + directory_to_save <- testthat::test_path("..", "testdata", "epa_temp/") certificate <- file.path(tdir, "cacert_gaftp_epa.pem") # remove if there is a preexisting file if (file.exists(certificate)) { @@ -1254,6 +1277,7 @@ testthat::test_that("Test error cases in EPA gaftp sources 2", { # remove file with commands after test testthat::expect_true(file.exists(commands_path)) file.remove(commands_path) + unlink(directory_to_save, recursive = TRUE) }) @@ -1331,7 +1355,7 @@ testthat::test_that("gridmet download URLs have HTTP status 200.", { year_end <- 2023 variables <- "Precipitation" directory_to_save <- - testthat::test_path("..", "testdata", "gridmet", "tmp") + testthat::test_path("..", "testdata", "gridmet_temp/") # run download function download_data(dataset_name = "gridmet", year = c(year_start, year_end), @@ -1356,8 +1380,7 @@ testthat::test_that("gridmet download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) - file.remove(list.files(directory_to_save, full.names = TRUE)) - file.remove(directory_to_save, recursive = TRUE) + unlink(directory_to_save, recursive = TRUE) }) testthat::test_that("gridmet error with invalid years.", { @@ -1394,7 +1417,7 @@ testthat::test_that("terraclimate download URLs have HTTP status 200.", { year_end <- 2023 variables <- "Precipitation" directory_to_save <- - testthat::test_path("..", "testdata", "terraclimate", "tmp") + testthat::test_path("..", "testdata", "terraclimate_temp/") # run download function download_data(dataset_name = "terraclimate", year = c(year_start, year_end), @@ -1419,8 +1442,7 @@ testthat::test_that("terraclimate download URLs have HTTP status 200.", { url_status = url_status) # remove file with commands after test file.remove(commands_path) - file.remove(list.files(directory_to_save, full.names = TRUE)) - file.remove(directory_to_save, recursive = TRUE) + unlink(directory_to_save, recursive = TRUE) }) testthat::test_that("terraclimate error with invalid years.", { @@ -1467,7 +1489,7 @@ testthat::test_that("download_cropscape generates correct download commands (GMU withr::local_package("stringr") # Set up test data year <- 2010 - directory_to_save <- testthat::test_path("../testdata/") + directory_to_save <- testthat::test_path("..", "testdata", "cps_temp/") # Call the function testthat::expect_no_error( @@ -1498,13 +1520,12 @@ testthat::test_that("download_cropscape generates correct download commands (GMU # check HTTP URL status url_status <- check_urls(urls = urls, size = 1L, method = "HEAD") # implement unit tests - test_download_functions(directory_to_download = directory_to_save, - directory_to_save = directory_to_save, + test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) # remove file with commands after test file.remove(commands_path) - + unlink(directory_to_save, recursive = TRUE) }) @@ -1513,7 +1534,7 @@ test_that("download_cropscape generates correct download commands (USDA)", { withr::local_package("stringr") # Set up test data year <- 2010 - directory_to_save <- testthat::test_path("../testdata/") + directory_to_save <- testthat::test_path("..", "testdata", "cps_temp/") # Call the function testthat::expect_no_error( @@ -1544,13 +1565,12 @@ test_that("download_cropscape generates correct download commands (USDA)", { # check HTTP URL status url_status <- check_urls(urls = urls, size = 1L, method = "HEAD") # implement unit tests - test_download_functions(directory_to_download = directory_to_save, - directory_to_save = directory_to_save, + test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) # remove file with commands after test file.remove(commands_path) - + unlink(directory_to_save, recursive = TRUE) }) @@ -1567,7 +1587,7 @@ testthat::test_that("download_prism downloads the correct data files", { element <- sample(element, 1) data_type <- "ts" format <- "nc" - directory_to_save <- testthat::test_path("..", "testdata/") + directory_to_save <- testthat::test_path("..", "testdata", "prism_temp/") acknowledgement <- TRUE download <- FALSE remove_command <- FALSE @@ -1616,8 +1636,7 @@ testthat::test_that("download_prism downloads the correct data files", { # check HTTP URL status url_status <- check_urls(urls = urls, size = 1L, method = "HEAD") # implement unit tests - test_download_functions(directory_to_download = directory_to_save, - directory_to_save = directory_to_save, + test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) # remove file with commands after test @@ -1628,7 +1647,7 @@ testthat::test_that("download_prism downloads the correct data files", { element <- "soltotal" data_type <- "ts" format <- "nc" - directory_to_save <- testthat::test_path("..", "testdata/") + directory_to_save <- testthat::test_path("..", "testdata", "prism_temp/") acknowledgement <- TRUE download <- FALSE remove_command <- FALSE @@ -1644,7 +1663,7 @@ testthat::test_that("download_prism downloads the correct data files", { download = download, remove_command = remove_command )) - + unlink(directory_to_save, recursive = TRUE) }) @@ -1684,7 +1703,7 @@ testthat::test_that("download_huc works", { withr::local_package("httr") - directory_to_save <- testthat::test_path("..", "testdata/") + directory_to_save <- testthat::test_path("..", "testdata", "huc_temp/") allregions <- c("Lower48", "Islands") alltypes <- c("Seamless", "OceanCatchment") @@ -1716,8 +1735,7 @@ testthat::test_that("download_huc works", # check HTTP URL status url_status <- check_urls(urls = urls, size = 1L, method = "HEAD") # implement unit tests - test_download_functions(directory_to_download = directory_to_save, - directory_to_save = directory_to_save, + test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) # remove file with commands after test @@ -1735,6 +1753,7 @@ testthat::test_that("download_huc works", unzip = TRUE ) ) + unlink(directory_to_save, recursive = TRUE) }) @@ -1748,7 +1767,7 @@ testthat::test_that( ) product <- "no2_s5p.l3.trop.tmwm" format <- "p50_p90_2km*.*tif" - directory_to_save <- testthat::test_path("..", "testdata/") + directory_to_save <- testthat::test_path("..", "testdata", "olm_temp/") acknowledgement <- TRUE download <- FALSE @@ -1778,13 +1797,12 @@ testthat::test_that( # check HTTP URL status url_status <- check_urls(urls = urls, size = 1L, method = "HEAD") # implement unit tests - test_download_functions(directory_to_download = directory_to_save, - directory_to_save = directory_to_save, + test_download_functions(directory_to_save = directory_to_save, commands_path = commands_path, url_status = url_status) # remove file with commands after test file.remove(commands_path) - + unlink(directory_to_save, recursive = TRUE) } ) From 1abb8b3bd5674112588a68f7829b3d96e38af82a Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 10:12:26 -0400 Subject: [PATCH 45/66] README.md; koppen future --- R/process.R | 2 -- README.md | 13 +++++++++++++ tests/testdata/kop/Beck_KG_V1_future_0p5.tif | Bin 0 -> 31992 bytes tests/testthat/test-process.R | 7 ++++++- 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 tests/testdata/kop/Beck_KG_V1_future_0p5.tif diff --git a/R/process.R b/R/process.R index 6159c6dd..af4bcc61 100644 --- a/R/process.R +++ b/R/process.R @@ -721,7 +721,6 @@ process_modis_swath <- #' classification data, returning a single `SpatRaster` object. #' @param path character(1). Path to Koppen-Geiger #' climate zone raster file -#' @param year data year. Not applicable for this function. #' @param extent numeric(4) or SpatExtent giving the extent of the raster #' if `NULL` (default), the entire raster is loaded #' @param ... Placeholders. @@ -738,7 +737,6 @@ process_modis_swath <- process_koppen_geiger <- function( path = NULL, - year = NULL, extent = NULL, ... ) { diff --git a/README.md b/README.md index 54aa752b..d771cbdb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,18 @@ # amadeus + + [![R-CMD-check](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml) [![cov](https://NIEHS.github.io/amadeus/badges/coverage.svg)](https://github.com/NIEHS/amadeus/actions) [![lint](https://github.com/NIEHS/amadeus/actions/workflows/lint.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/lint.yaml) diff --git a/tests/testdata/kop/Beck_KG_V1_future_0p5.tif b/tests/testdata/kop/Beck_KG_V1_future_0p5.tif new file mode 100644 index 0000000000000000000000000000000000000000..ef66d9d1cc1c269a9df9bad29c73a4f331271fa3 GIT binary patch literal 31992 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 Date: Fri, 19 Jul 2024 10:15:23 -0400 Subject: [PATCH 46/66] README.md 2 --- README.md | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d771cbdb..15737fcd 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,41 @@ -# amadeus - -
-
+# amadeus + + + +
+ - + [![R-CMD-check](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml) [![cov](https://NIEHS.github.io/amadeus/badges/coverage.svg)](https://github.com/NIEHS/amadeus/actions) [![lint](https://github.com/NIEHS/amadeus/actions/workflows/lint.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/lint.yaml) From 4a500ad85a8301defee8de927f777e1581f525d6 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 10:39:46 -0400 Subject: [PATCH 47/66] README.md; process*() tests --- R/process.R | 2 +- README.md | 38 +---- man/figures/amadeus-combined.svg | 236 +++++++++++++++++++++++++++++++ man/process_koppen_geiger.Rd | 4 +- tests/testthat/test-process.R | 12 +- 5 files changed, 250 insertions(+), 42 deletions(-) create mode 100644 man/figures/amadeus-combined.svg diff --git a/R/process.R b/R/process.R index af4bcc61..5522e3b7 100644 --- a/R/process.R +++ b/R/process.R @@ -1217,7 +1217,7 @@ process_aqs <- dplyr::mutate(time = Date.Local) |> dplyr::ungroup() col_sel <- c("site_id", "Longitude", "Latitude", "Datum") - if (mode != "sparse") { + if (mode != "available-data") { sites_v <- unique(sites[, col_sel]) } else { col_sel <- append(col_sel, "Event.Type") diff --git a/README.md b/README.md index 15737fcd..0944ad0d 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,4 @@ -# amadeus - - - -
-
- - tidymodels - -
-
- - rsample - -
-
- +# amadeus [![R-CMD-check](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml/badge.svg)](https://github.com/NIEHS/amadeus/actions/workflows/check-standard.yaml) [![cov](https://NIEHS.github.io/amadeus/badges/coverage.svg)](https://github.com/NIEHS/amadeus/actions) diff --git a/man/figures/amadeus-combined.svg b/man/figures/amadeus-combined.svg new file mode 100644 index 00000000..53d73f51 --- /dev/null +++ b/man/figures/amadeus-combined.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + www. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/man/process_koppen_geiger.Rd b/man/process_koppen_geiger.Rd index e185990b..222924fd 100644 --- a/man/process_koppen_geiger.Rd +++ b/man/process_koppen_geiger.Rd @@ -4,14 +4,12 @@ \alias{process_koppen_geiger} \title{Process climate classification data} \usage{ -process_koppen_geiger(path = NULL, year = NULL, extent = NULL, ...) +process_koppen_geiger(path = NULL, extent = NULL, ...) } \arguments{ \item{path}{character(1). Path to Koppen-Geiger climate zone raster file} -\item{year}{data year. Not applicable for this function.} - \item{extent}{numeric(4) or SpatExtent giving the extent of the raster if \code{NULL} (default), the entire raster is loaded} diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index e8727885..e21666b6 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -509,7 +509,7 @@ testthat::test_that("process_koppen_geiger tests", { path_kgeiger_f <- testthat::test_path("../testdata", "kop", "Beck_KG_V1_future_0p5.tif") testthat::expect_no_error( - kgeiger_f <- process_koppen_geiger(path_kgeiger, year = "future") + kgeiger_f <- process_koppen_geiger(path_kgeiger_f) ) }) @@ -1302,6 +1302,16 @@ testthat::test_that("process_aqs", { testthat::expect_error( process_aqs(path = aqssub, date = c("2021-08-15")) ) + testthat::expect_error( + process_aqs(path = aqssub, date = NULL) + ) + testthat::expect_no_error( + process_aqs( + path = aqssub, date = c("2022-02-04", "2022-02-28"), + mode = "available-data", return_format = "sf", + extent = c(-79, 33, -78, 36) + ) + ) testthat::expect_no_error( process_aqs( path = aqssub, date = c("2022-02-04", "2022-02-28"), From 1ef5b6e6403f6f33353eb4d7b8d81f5c00ceb123 Mon Sep 17 00:00:00 2001 From: Mitchell Manware <141882492+mitchellmanware@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:23:26 -0400 Subject: [PATCH 48/66] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0944ad0d..4e26c63f 100644 --- a/README.md +++ b/README.md @@ -67,9 +67,8 @@ Example use of `download_data` using NOAA NCEP North American Regional Reanalysi ```r directory <- "/ EXAMPLE / FILE / PATH /" download_data( - dataset_name = "narr_monolevel", - year_start = 2022, - year_end = 2022, + dataset_name = "narr", + year = c(2022, 2022), variable = "weasd", directory_to_save = directory, acknowledgement = TRUE, @@ -133,7 +132,6 @@ Example of `calc_covariates` using processed "weasd" data. ```r locs <- data.frame(id = "001", lon = -78.8277, lat = 35.95013) -locs$id <- "0001" weasd_covar <- calc_covariates( covariate = "narr", from = weasd_process, From 376699ddb5e237003a5e250843a2481e7a543bdc Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 13:16:18 -0400 Subject: [PATCH 49/66] test coverage --- R/calculate_covariates.R | 1 + tests/testthat/test-calculate_covariates.R | 2 +- tests/testthat/test-manipulate_spacetime_data.R | 12 ++++++++++++ tests/testthat/test-process.R | 4 +++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 7a1b665e..63701ec4 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -868,6 +868,7 @@ process_modis_swath, or process_blackmarble.") summary_available_mode <- as.numeric(names(summary_available_mode)) summary_available_insuf <- which(summary_available < floor(summary_available_mode * 0.8)) + if (length(summary_available_insuf) > 0) { dates_insuf <- as.Date(dates_available[summary_available_insuf], "%Y%j") diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index 5b1c2057..4c189299 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -315,7 +315,7 @@ testthat::test_that("calc_modis works well.", { testthat::expect_s3_class(calc_mod06, "data.frame") # with geometry - testthat::expect_no_error( + testthat::expect_no_error( suppressWarnings( calc_mod06_geom <- calc_modis_par( diff --git a/tests/testthat/test-manipulate_spacetime_data.R b/tests/testthat/test-manipulate_spacetime_data.R index ee759f01..b22a2ee1 100644 --- a/tests/testthat/test-manipulate_spacetime_data.R +++ b/tests/testthat/test-manipulate_spacetime_data.R @@ -598,3 +598,15 @@ testthat::test_that("sftime_as_spatrds works as expected", { rename_time(mysft, "date") testthat::expect_no_error(sftime_as_spatrds(mysft)) }) + +testthat::test_that("as_mysftime with time-varying SpatRasterDataset.", { + m1 <- terra::rast(matrix(1:100, nrow = 10)) + terra::time(m1) <- as.Date("2024-01-01") + m2 <- terra::rast(matrix(1:100, nrow = 10)) + terra::time(m2) <- as.Date("2024-01-02") + m3 <- terra::sds(c(m1, m2)) + + testthat::expect_error( + as_mysftime(m3) + ) +}) diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index e21666b6..88b38eb3 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -564,7 +564,9 @@ testthat::test_that("process_nei tests", { testthat::expect_error( process_nei(path_nei, year = 2020, county = path_cnty) ) - + testthat::expect_error( + process_nei("./EmPtY/pAtH", year = 2020, county = path_cnty) + ) }) From db12dafafc97ce5576a67c0c6db97fcb2b2f3115 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 13:17:32 -0400 Subject: [PATCH 50/66] remove COV.rds --- COV.rds | Bin 759745 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 COV.rds diff --git a/COV.rds b/COV.rds deleted file mode 100644 index 0e5c2c236a4597998a323f1fa63b39f5fe31851c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759745 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�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 {=L#-7_y& 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

V$Ard*f4j@Dah zsjHw8I=_BOn2%oBQRO5oHFcr`!iZXA5RD_$i%3(NOBe$6Q6&RRDlH8v5d*4f$z7x> zgQM6P6d|j=C_-%hPZ0uw+->wheU@rk^?s|zy0j;n{}v!u{_y$+X3tS^eIK*H<`))- zbaQ2MZmn9LHyM_3^X5MCp9v^Fn*I>V+-!v-!>uCktUWikZH5)Bd1B|hBv-j8>qBVB zX0Z2Ue(ZtAkC%*=YgG~8CA(W6@_nTKpR7h=dPBH7(zmspF0_WXt6;kDKqF7zzvj6; zK_y$~$~D~{sFDFs3DAhQcaa#*vpA$y6;+vPNM1rh^~vkm*igx2sX8&?DI1(#`QbLtS&eQgb@~(*vY|w*cA$*wCG(twvJol)x9u z$r_$l#Q?0l1!tnFh>?Pg=y%Go6^bbajORI8+*4GPP|NGbFAQ!6rGYE$f?i?!h;gm; zpDp~n#?W+V{AGkeel>~#@(d-ht5KzIN{53ZgwcS&FzGEdq$k+(hS?tM<67Cwkqr0* znYZ_t2^Pb0TEtihv)T#lltZPPpd2nQ9o%J2nWsTNm`4oNZB=OjS_Hd(nbeo<^=73F> zdf1{zjbaaUTF|R+@@0=`k22puB`6-SC2|L+qY)_G5r&zA$zHTAC(SKR#FH?%nM6DA zw5rfYnJU!W$)*Q8JDzTq(Gxx}7<7rqah+T@Vtydodz^^xK+^9jNTv{``am#Ol2{mB z2LPO2>uea(q|%-ccB~9|Lv;NaZH^ziej7jVH&T*m@&8jTO?et{ZIC}X{D?n2Hcu7x zS#oQmUK@F>LEO-X`}i?}yE)*wK3hrM`86%CN3TAxQ7=~hRKqg8m%>^c+*9&K+-y0z z+KjaJm{D*iwcwXniAh+FD2y^6vw^rS@F_CYnD%Dr{2NST%MI}*o9{zOIW4!=1)_OS?@B=;8FWvh(mF4iB4! zWS>JOh1t{s^d#~ZE9>2n5E1wonUuG4xi(8HnazWtFzo~$PyGt}EazF%$KqhKD=~bf<=*3j{+13(|ipN!q!7sOV)Croswfv8Dt*DX+8 z0irHgc==5zkX!KBX2kdcxhs!tOxWr^HL|cNGMhRM5JMWJfwdfy@V6b(jl#fmz@Ypl z>mZLLJv+dNFe`|=CpuHd0dw$=s^udCP+WTXO@#2Nc3(TTG0PYUYs49#<^d;&RYFkn z#K)(MRkaA+d8&gWLA9_M`3@sN$eJw0QMFH4I%G#0vAk77!_;o>RGrm`_fFmV5pUR| zGO68273gI=DL>U)Vd<7^d<X#F=3H6mn9RxLHuYO@6|7;C_ukw#f zUdct6jppoFC$8Adc?7{G?C7pq#>sxRb?GPS_;AL9AzQvX_>XmU?2~|6qR+a}xPOl$ zr)yU2M$F};vumz6C}iab51531lsLZxUEodUW*E6AQ610K948xA@e3^OGu^($6wZ}k z=p&9c2FTk_ah$N)d46QQ4TLjTfWG8xmF|7XBFmU2W#1@mtK#no&XLIe8z?5xE6rIB8PjR@#Ibx23+)O-x$8@bx6t119&09s3-mlxsG^#fIWS)-o^5ojHjCb$^{ z@iMt|0&;;w$yZfpEJ47o&p-lp&AM35{y*XH+)anLzk;!A3ago)@{ZSX35CzpBqc?HUCOh_JV?dyEx5~KfSEu2@ z7gL9|`Y#Zat|^^LVDnx4PfBD6`7h$pQ6n~hMp0tQGiPwL0fK6^M_Q2%q836vwdzbS zFHT#?czikx0al@Vwx?E}s&!te4TS)8N#(!?pUnxDFwXkO=uCd~Jn7nSHWa%=gLK>; zd!YTD4zb3=VZ1xgxF1zR1OGEgll}B|JsR6lRZHPwBfmi~R5a52ct0bYAuC#szkMro z1{Wc!I?bcdyx%V!{8xwAT04k!l`V?(vVP@j0;>9kmq{1*1K87#H%g=SaNz?cfzYp5>BB1&T@8N zAHwdqTMQz1?Mrcp)&Vk-YQFlwAh3B`-GMU>h%Q$Iu zg2-Wr{s%=F1nVFiVoYqBj0VvoEL+L`8$&_sw%Q0!6Rq{i zB>)T~49wZG)R~3feQ}fN3)j5^FZp~wmEb5ae_yPfdk2TJ-G$FV6cB_$Ri-1C?pKx1 zrHf%;v$wFU3$-sH;G$wM*^<}Ft2`*T&Na%Ueznp1UNI0HzbKT94GN`+K6t1x4)>aV zT^##N>R5a}s3b;Ybk>3$KchZ{=~ZML$Hv-HS1DYRqO!YK;GAJIEa`B`5v(8#u$QvjJ;~ zVRGK~bhWq@drC!9$)Rc5$Zu2&reoc-<3clrrJvVYt?uyHmZS3~As=Y5)_+0A>HUZj zeiV$G0zo(exIoEA14AJ zkXxo-ZgY0I0hS_QXxkrY<~Lb>>jB?9?{>To4IAs|h&$%_)2TVAtzW?kz;8%u& zZ#F|XfyBUhq*vcQcjU*7o#K`LX6XTD23PKcreDf0f&YX>i1v@a-hKmzjCEY~6bCkQ z;W9GdIJ5wwp$+#xyqynBi*zzq)`=VvE!dE3U*C(oNou>XnO+7Dh|n&ddJKc_Dk(5UD? zZ(1KAeMN1V*Y(?L!9GeN-6k@^3P`J8`$pnrSXyK(pkm_Kyk;iw^56qB034L=(} zE{2rv0GuwbS<#kE}(I+J&c2&Nr*M$pswfV*EAASsJRH^c#1!E3&FGenP+EYZ7e3@Ce`w*Ws3?>&Ke;70&< zK){)tgo@-VBHxSNs}#Cz{�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

Mt3-jzis=Jp0XPH&-F>? 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 $~j(7?`8PDjg-x5W%~d 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%0Agy}3TD(V<~ajRuTOwT{EOJQmhBg3c<}vvOpb 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
l{nu=L!(EA)=75>rw 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 Date: Fri, 19 Jul 2024 13:18:45 -0400 Subject: [PATCH 51/66] Version 0.3.0 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 062fc077..14dfcf45 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: amadeus Title: AMADEUS: A Machine for Data, Environments, and User Setup for common environmental and climate health datasets -Version: 0.2.2 +Version: 0.3.0 Authors@R: c( person("Kyle", "Messier", , "kyle.messier@nih.gov", role = c("aut", "cre"), comment = c(ORCID = "0000-0001-9508-9623")), person("Mitchell", "Manware", role = c("aut", "ctb"), comment = c(ORCID = "0009-0003-6440-6106")), From 87753c1ee4bdcc7e599179d43fde4b619f4f4523 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 13:55:36 -0400 Subject: [PATCH 52/66] lint --- R/calculate_covariates.R | 16 ++-- R/calculate_covariates_auxiliary.R | 2 +- R/download_auxiliary.R | 2 +- R/process_auxiliary.R | 3 +- tests/testthat/test-calculate_covariates.R | 17 ++--- tests/testthat/test-process.R | 88 +++++++++++----------- 6 files changed, 65 insertions(+), 63 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 63701ec4..944074c2 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -389,8 +389,8 @@ calc_nlcd <- function(from, class_query <- "value" # ratio of each nlcd class per buffer bufs_polx <- bufs_pol[terra::ext(from), ] |> - sf::st_as_sf()# |> - # sf::st_geometry() + sf::st_as_sf() + nlcd_at_bufs <- future.apply::future_Map( function(i) { exactextractr::exact_extract( @@ -1578,12 +1578,12 @@ calc_hms <- function( sites_extracted_layer ) binary_colname <- paste0( - tolower( - layer_name - ), - "_", - radius - ) + tolower( + layer_name + ), + "_", + radius + ) #### define column names if (geom) { colnames(sites_extracted_layer) <- c( diff --git a/R/calculate_covariates_auxiliary.R b/R/calculate_covariates_auxiliary.R index b1e0cacc..683539aa 100644 --- a/R/calculate_covariates_auxiliary.R +++ b/R/calculate_covariates_auxiliary.R @@ -522,7 +522,7 @@ calc_return_locs <- function( # nolint end # if geom, convert to and return SpatVector if (geom) { - if ("geometry" %in% names(covar)){ + if ("geometry" %in% names(covar)) { covar_return <- terra::vect( covar, geom = "geometry", diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index 2afdea7d..39b4f7af 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -571,4 +571,4 @@ narr_variable <- function(variable) { } } return(list(base, months)) -} \ No newline at end of file +} diff --git a/R/process_auxiliary.R b/R/process_auxiliary.R index ebd3650d..a1e64120 100644 --- a/R/process_auxiliary.R +++ b/R/process_auxiliary.R @@ -541,9 +541,8 @@ is_date_proper <- function( #' Apply extent to the processed data -#' +#' @description #' User-defined extent is used to filter the data. -#' #' @param data sf/terra object. #' @param extent numeric(4). Extent to filter the data. #' Should be ordered as c(xmin, xmax, ymin, ymax). diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index 4c189299..3c32a985 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -330,7 +330,6 @@ testthat::test_that("calc_modis works well.", { ) ) testthat::expect_s4_class(calc_mod06_geom, "SpatVector") - # case 3: VIIRS path_vnp46 <- @@ -929,13 +928,13 @@ testthat::test_that("calc_sedc tests", { # with geometry testthat::expect_no_error( tri_sedc_geom <- calc_sedc( - locs = ncpt, - from = tri_r, - locs_id = "site_id", - sedc_bandwidth = 30000, - target_fields = targcols, - geom = TRUE - ) + locs = ncpt, + from = tri_r, + locs_id = "site_id", + sedc_bandwidth = 30000, + target_fields = targcols, + geom = TRUE + ) ) testthat::expect_s4_class(tri_sedc_geom, "SpatVector") @@ -1901,7 +1900,7 @@ testthat::test_that("calc_covariates wrapper works", { "koeppen-geiger", "koppen", "koeppen", "geos", "dummies", "gmted", "sedac_groads", "groads", "roads", - "ecoregions", "ecoregion", "hms","smoke", + "ecoregions", "ecoregion", "hms", "smoke", "gmted", "narr", "geos", "sedac_population", "population", "nlcd", "merra", "MERRA", "merra2", "MERRA2", diff --git a/tests/testthat/test-process.R b/tests/testthat/test-process.R index 88b38eb3..21093836 100644 --- a/tests/testthat/test-process.R +++ b/tests/testthat/test-process.R @@ -806,17 +806,17 @@ testthat::test_that("process_gmted returns expected.", { # test with cropping extent testthat::expect_no_error( gmted_ext <- - process_gmted( - variable = c("Breakline Emphasis", "7.5 arc-seconds"), - path = - testthat::test_path( - "..", - "testdata", - "gmted", - "be75_grd" - ), - ext = terra::ext(gmted) - ) + process_gmted( + variable = c("Breakline Emphasis", "7.5 arc-seconds"), + path = + testthat::test_path( + "..", + "testdata", + "gmted", + "be75_grd" + ), + ext = terra::ext(gmted) + ) ) }) @@ -928,7 +928,7 @@ testthat::test_that("process_narr returns expected.", { "omega" ), extent = terra::ext(narr) - ) + ) ) }) @@ -999,17 +999,17 @@ testthat::test_that("process_geos returns expected.", { # test with cropping extent testthat::expect_no_error( geos_ext <- process_geos( - date = c("2018-01-01", "2018-01-01"), - variable = "O3", - path = + date = c("2018-01-01", "2018-01-01"), + variable = "O3", + path = testthat::test_path( "..", "testdata", "geos", "c" ), - extent = terra::ext(geos) - ) + extent = terra::ext(geos) + ) ) }) @@ -1426,17 +1426,17 @@ testthat::test_that("process_merra2 returns as expected.", { # test with cropping extent testthat::expect_no_error( merra2_ext <- process_merra2( - date = c("2018-01-01", "2018-01-01"), - variable = "CPT", - path = + date = c("2018-01-01", "2018-01-01"), + variable = "CPT", + path = testthat::test_path( "..", "testdata", "merra2", "inst1_2d_int_Nx" ), - extent = terra::ext(merra2) - ) + extent = terra::ext(merra2) + ) ) }) @@ -1490,12 +1490,12 @@ testthat::test_that("process_gridmet returns expected.", { date = c("2018-01-03", "2018-01-03"), variable = "Precipitation", path = - testthat::test_path( - "..", - "testdata", - "gridmet", - "pr" - ), + testthat::test_path( + "..", + "testdata", + "gridmet", + "pr" + ), extent = terra::ext(gridmet) ) ) @@ -1551,12 +1551,12 @@ testthat::test_that("process_terraclimate returns expected.", { date = c("2018-01-01", "2018-01-01"), variable = "ppt", path = - testthat::test_path( - "..", - "testdata", - "terraclimate", - "ppt" - ), + testthat::test_path( + "..", + "testdata", + "terraclimate", + "ppt" + ), extent = terra::ext(terraclimate) ) ) @@ -1642,8 +1642,12 @@ testthat::test_that( # test with cropping extent testthat::expect_no_error( - result_ext <- process_prism(path, element, time, - extent = terra::ext(result)) + result_ext <- process_prism( + path, + element, + time, + extent = terra::ext(result) + ) ) } ) @@ -1744,12 +1748,12 @@ testthat::test_that("process_huc", # test with cropping extent testthat::expect_no_error( huc_ext <- process_huc( - path, - layer_name = "NHDPlus_test", - huc_level = "HUC_12", - huc_header = "030202", - extent = terra::ext(result) - ) + path, + layer_name = "NHDPlus_test", + huc_level = "HUC_12", + huc_header = "030202", + extent = terra::ext(result) + ) ) } ) From ca40d94611650337bf8db9908d48374bf82a38c1 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 14:44:16 -0400 Subject: [PATCH 53/66] RMD check --- R/calculate_covariates.R | 2 +- R/process.R | 6 +++--- man/calc_modis_par.Rd | 2 +- man/process_blackmarble.Rd | 2 +- man/process_flatten_sds.Rd | 2 +- man/process_modis_merge.Rd | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 944074c2..273cb256 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -812,7 +812,7 @@ calc_modis_daily <- function( #' @importFrom future.apply future_lapply #' @importFrom parallelly availableWorkers #' @examples -#' /dontrun{ +#' \dontrun{ #' locs <- data.frame(lon = -78.8277, lat = 35.95013, id = "001") #' locs <- terra::vect(locs, geom = c("lon", "lat"), crs = "EPSG:4326") #' calc_modis_par( diff --git a/R/process.R b/R/process.R index 5522e3b7..923efaed 100644 --- a/R/process.R +++ b/R/process.R @@ -216,7 +216,7 @@ process_modis_sds <- #' @importFrom terra tapp #' @importFrom terra is.rotated #' @examples -#' /dontrun{ +#' \dontrun{ #' mod09ga_flatten <- process_flatten_sds( #' path = #' list.files("./data", pattern = "MOD09GA.", full.names = TRUE)[1], @@ -300,7 +300,7 @@ the input then flatten it manually.") #' @author Insang Song #' @returns a `SpatRaster` object #' @examples -#' /dontrun{ +#' \dontrun{ #' mod09ga_merge <- process_modis_merge( #' path = #' list.files("./data", pattern = "MOD09GA.", full.names = TRUE), @@ -440,7 +440,7 @@ process_blackmarble_corners <- #' @importFrom terra crs #' @importFrom terra merge #' @examples -#' /dontrun{ +#' \dontrun{ #' vnp46a2 <- process_blackmarble( #' path = #' list.files("./data", pattern = "VNP46A2.", full.names = TRUE), diff --git a/man/calc_modis_par.Rd b/man/calc_modis_par.Rd index 41e01d4d..36671d32 100644 --- a/man/calc_modis_par.Rd +++ b/man/calc_modis_par.Rd @@ -115,7 +115,7 @@ insufficient tiles. } } \examples{ -/dontrun{ +\dontrun{ locs <- data.frame(lon = -78.8277, lat = 35.95013, id = "001") locs <- terra::vect(locs, geom = c("lon", "lat"), crs = "EPSG:4326") calc_modis_par( diff --git a/man/process_blackmarble.Rd b/man/process_blackmarble.Rd index f4655501..5cb58b9f 100644 --- a/man/process_blackmarble.Rd +++ b/man/process_blackmarble.Rd @@ -39,7 +39,7 @@ georeferenced h5 files of Black Marble product. Referencing corner coordinates are necessary as the original h5 data do not include such information. } \examples{ -/dontrun{ +\dontrun{ vnp46a2 <- process_blackmarble( path = list.files("./data", pattern = "VNP46A2.", full.names = TRUE), diff --git a/man/process_flatten_sds.Rd b/man/process_flatten_sds.Rd index cf79c009..41619482 100644 --- a/man/process_flatten_sds.Rd +++ b/man/process_flatten_sds.Rd @@ -39,7 +39,7 @@ list of sub-datasets in the input file then consult the documentation of MODIS product. } \examples{ -/dontrun{ +\dontrun{ mod09ga_flatten <- process_flatten_sds( path = list.files("./data", pattern = "MOD09GA.", full.names = TRUE)[1], diff --git a/man/process_modis_merge.Rd b/man/process_modis_merge.Rd index 257fc136..8c6f91b1 100644 --- a/man/process_modis_merge.Rd +++ b/man/process_modis_merge.Rd @@ -42,7 +42,7 @@ MODIS products downloaded by functions in \code{amadeus}, and \href{https://github.com/rspatial/luna}{luna} are accepted. } \examples{ -/dontrun{ +\dontrun{ mod09ga_merge <- process_modis_merge( path = list.files("./data", pattern = "MOD09GA.", full.names = TRUE), From 39f9b336e2ec23883035ec17734af728d8c38a01 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 15:02:14 -0400 Subject: [PATCH 54/66] calc_lagged() bug --- R/calculate_covariates.R | 4 +- R/download.R | 14 ++- man/calc_modis_par.Rd | 2 +- man/download_koppen_geiger.Rd | 3 +- man/download_merra2.Rd | 1 - man/download_modis.Rd | 7 +- man/download_nlcd.Rd | 3 +- tests/testthat/test-calculate_covariates.R | 109 ++++++++++----------- 8 files changed, 77 insertions(+), 66 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 273cb256..3646882e 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -728,7 +728,7 @@ calc_modis_daily <- function( #' @param name_covariates character. Name header of covariates. #' e.g., `"MOD_NDVIF_0_"`. #' The calculated covariate names will have a form of -#' '{name_covariates}{zero-padded buffer radius in meters}', +#' "{name_covariates}{zero-padded buffer radius in meters}", #' e.g., 'MOD_NDVIF_0_50000' where 50 km radius circular buffer #' was used to calculate mean NDVI value. #' @param subdataset Indices, names, or search patterns for subdatasets. @@ -2504,7 +2504,7 @@ calc_lagged <- function( #### check input data types if ("SpatVector" %in% class(from)) { from_full <- terra::as.data.frame(from, geom = "WKT") - geoms <- unique(from_full[, c("site_id", "geometry")]) + geoms <- unique(from_full[, c(locs_id, "geometry")]) from <- from_full |> dplyr::select(-"geometry") } stopifnot(methods::is(from, "data.frame")) diff --git a/R/download.R b/R/download.R index 881a17ce..a0fefee1 100644 --- a/R/download.R +++ b/R/download.R @@ -838,7 +838,6 @@ download_gmted <- function( #' \insertRef{data_gmao_merra-tavgM_3d_udt_Np}{amadeus} #' \insertRef{data_gmao_merra-tavgM_3d_odt_Np}{amadeus} #' \insertRef{data_gmao_merra-tavgM_3d_qdt_Np}{amadeus} -#' \insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} #' \insertRef{data_gmao_merra-const_2d_asm_Nx}{amadeus} #' \insertRef{data_gmao_merra-instU_2d_asm_Nx}{amadeus} #' \insertRef{data_gmao_merra-instU_2d_int_Nx}{amadeus} @@ -1329,7 +1328,8 @@ download_narr <- function( #' respective sub-directories within \code{directory_to_save}. #' @importFrom Rdpack reprompt #' @references -#' \insertRef{dewitz_national_2023, dewitz_national_2024}{amadeus} +#' \insertRef{dewitz_national_2023}{amadeus} +#' \insertRef{dewitz_national_2024}{amadeus} #' @examples #' \dontrun{ #' download_nlcd( @@ -2025,7 +2025,8 @@ download_hms <- function( #' respective sub-directories within \code{directory_to_save}. #' @importFrom Rdpack reprompt #' @references -#' \insertRef{article_beck2023koppen, article_beck2018present}{amadeus} +#' \insertRef{article_beck2023koppen}{amadeus} +#' \insertRef{article_beck2018present}{amadeus} #' @examples #' \dontrun{ #' download_koppen_geiger( @@ -2176,7 +2177,12 @@ download_koppen_geiger <- function( #' \code{directory_to_save}. #' @importFrom Rdpack reprompt #' @references -#' \insertRef{data_mcd19a22021, data_mod06l2_2017, data_mod09ga2021, data_mod11a12021, data_mod13a22021, article_roman2018vnp46}{amadeus} +#' \insertRef{data_mcd19a22021}{amadeus} +#' \insertRef{data_mod06l2_2017}{amadeus} +#' \insertRef{data_mod09ga2021}{amadeus} +#' \insertRef{data_mod11a12021}{amadeus} +#' \insertRef{data_mod13a22021}{amadeus} +#' \insertRef{article_roman2018vnp46}{amadeus} # nolint end #' @examples #' \dontrun{ diff --git a/man/calc_modis_par.Rd b/man/calc_modis_par.Rd index 36671d32..6e21eecf 100644 --- a/man/calc_modis_par.Rd +++ b/man/calc_modis_par.Rd @@ -37,7 +37,7 @@ Default is \code{c(0, 1000, 10000, 50000)}.} \item{name_covariates}{character. Name header of covariates. e.g., \code{"MOD_NDVIF_0_"}. The calculated covariate names will have a form of -'{name_covariates}{zero-padded buffer radius in meters}', +"{name_covariates}{zero-padded buffer radius in meters}", e.g., 'MOD_NDVIF_0_50000' where 50 km radius circular buffer was used to calculate mean NDVI value.} diff --git a/man/download_koppen_geiger.Rd b/man/download_koppen_geiger.Rd index ecf33f6e..a0043815 100644 --- a/man/download_koppen_geiger.Rd +++ b/man/download_koppen_geiger.Rd @@ -68,7 +68,8 @@ download_koppen_geiger( } } \references{ -\insertRef{article_beck2023koppen, article_beck2018present}{amadeus} +\insertRef{article_beck2023koppen}{amadeus} +\insertRef{article_beck2018present}{amadeus} } \author{ Mitchell Manware, Insang Song diff --git a/man/download_merra2.Rd b/man/download_merra2.Rd index 240dba5d..66280632 100644 --- a/man/download_merra2.Rd +++ b/man/download_merra2.Rd @@ -129,7 +129,6 @@ download_merra2( \insertRef{data_gmao_merra-tavgM_3d_udt_Np}{amadeus} \insertRef{data_gmao_merra-tavgM_3d_odt_Np}{amadeus} \insertRef{data_gmao_merra-tavgM_3d_qdt_Np}{amadeus} -\insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} \insertRef{data_gmao_merra-const_2d_asm_Nx}{amadeus} \insertRef{data_gmao_merra-instU_2d_asm_Nx}{amadeus} \insertRef{data_gmao_merra-instU_2d_int_Nx}{amadeus} diff --git a/man/download_modis.Rd b/man/download_modis.Rd index e8082152..c32a306a 100644 --- a/man/download_modis.Rd +++ b/man/download_modis.Rd @@ -114,7 +114,12 @@ download_modis( } } \references{ -\insertRef{data_mcd19a22021, data_mod06l2_2017, data_mod09ga2021, data_mod11a12021, data_mod13a22021, article_roman2018vnp46}{amadeus} +\insertRef{data_mcd19a22021}{amadeus} +\insertRef{data_mod06l2_2017}{amadeus} +\insertRef{data_mod09ga2021}{amadeus} +\insertRef{data_mod11a12021}{amadeus} +\insertRef{data_mod13a22021}{amadeus} +\insertRef{article_roman2018vnp46}{amadeus} } \author{ Mitchell Manware, Insang Song diff --git a/man/download_nlcd.Rd b/man/download_nlcd.Rd index 93241d4c..db33662f 100644 --- a/man/download_nlcd.Rd +++ b/man/download_nlcd.Rd @@ -66,7 +66,8 @@ download_nlcd( } } \references{ -\insertRef{dewitz_national_2023, dewitz_national_2024}{amadeus} +\insertRef{dewitz_national_2023}{amadeus} +\insertRef{dewitz_national_2024}{amadeus} } \author{ Mitchell Manware, Insang Song diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index 3c32a985..2567b1c4 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -1832,61 +1832,6 @@ testthat::test_that("calc_lagged returns as expected.", { } }) -## 17.1 calc_lag with SpatVector -testthat::test_that("calc_lagged error with SpatVector.", { - withr::local_package("terra") - withr::local_package("data.table") - ncp <- data.frame(lon = -78.8277, lat = 35.95013) - ncp$site_id <- "3799900018810101" - ncpv <- terra::vect(ncp, geom = c("lon", "lat"), crs = "EPSG:4326") - # expect function - testthat::expect_true( - is.function(calc_lagged) - ) - narr <- - process_narr( - date = c("2018-01-01", "2018-01-10"), - variable = "weasd", - path = - testthat::test_path( - "..", - "testdata", - "narr", - "weasd" - ) - ) - narr_covariate_geom <- - calc_narr( - from = narr, - locs = ncpv, - locs_id = "site_id", - radius = 0, - fun = "mean", - geom = TRUE - ) - testthat::expect_no_error( - narr_covariate_geom_lag <- calc_lagged( - from = narr_covariate_geom, - date = c("2018-01-03", "2018-01-05"), - lag = 1, - locs_id = "site_id", - time_id = "time", - geom = TRUE - ) - ) - testthat::expect_s4_class(narr_covariate_geom_lag, "SpatVector") - testthat::expect_error( - calc_lagged( - from = as.data.frame(narr_covariate_geom), - date = c("2018-01-03", "2018-01-05"), - lag = 1, - locs_id = "site_id", - time_id = "time", - geom = TRUE - ) - ) -}) - ## 18. Wrapper #### testthat::test_that("calc_covariates wrapper works", { @@ -2029,3 +1974,57 @@ testthat::test_that("calc_worker remaining", { ) testthat::expect_s3_class(cwres, "data.frame") }) + +## 17.1 calc_lag with SpatVector +testthat::test_that("calc_lagged with SpatVector.", { + withr::local_package("terra") + withr::local_package("data.table") + loc <- data.frame(id = "001", lon = -78.8277, lat = 35.95013) + locs_v <- terra::vect(loc, geom = c("lon", "lat"), crs = "EPSG:4326") + # expect function + testthat::expect_true( + is.function(calc_lagged) + ) + p <- + process_narr( + date = c("2018-01-01", "2018-01-10"), + variable = "weasd", + path = + testthat::test_path( + "..", + "testdata", + "narr", + "weasd" + ) + ) + c <- + calc_narr( + from = p, + locs = locs_v, + locs_id = "id", + radius = 0, + fun = "mean", + geom = TRUE + ) + testthat::expect_no_error( + c_g <- calc_lagged( + from = c, + date = c("2018-01-03", "2018-01-05"), + lag = 1, + locs_id = "id", + time_id = "time", + geom = TRUE + ) + ) + testthat::expect_s4_class(c_g, "SpatVector") + testthat::expect_error( + calc_lagged( + from = as.data.frame(c_g), + date = c("2018-01-03", "2018-01-05"), + lag = 1, + locs_id = "id", + time_id = "time", + geom = TRUE + ) + ) +}) From 5f782a28cc0b25d7b0225c44f106be9c0797b7e1 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 15:10:11 -0400 Subject: [PATCH 55/66] reference codes; brackets --- R/calculate_covariates.R | 2 +- R/download.R | 3 ++- inst/REFERENCES.bib | 4 ++-- man/calc_modis_par.Rd | 2 +- man/download_merra2.Rd | 3 ++- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 3646882e..aa93930e 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -728,7 +728,7 @@ calc_modis_daily <- function( #' @param name_covariates character. Name header of covariates. #' e.g., `"MOD_NDVIF_0_"`. #' The calculated covariate names will have a form of -#' "{name_covariates}{zero-padded buffer radius in meters}", +#' "\code{\{name_covariates\}\{zero-padded buffer radius in meters\}}", #' e.g., 'MOD_NDVIF_0_50000' where 50 km radius circular buffer #' was used to calculate mean NDVI value. #' @param subdataset Indices, names, or search patterns for subdatasets. diff --git a/R/download.R b/R/download.R index a0fefee1..177938db 100644 --- a/R/download.R +++ b/R/download.R @@ -784,7 +784,8 @@ download_gmted <- function( #' \insertRef{data_gmao_merra-inst3_2d_gas_Nx}{amadeus} #' \insertRef{data_gmao_merra-inst6_3d_ana_Np}{amadeus} #' \insertRef{data_gmao_merra-inst6_3d_ana_Nv}{amadeus} -#' \insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} +#' \insertRef{data_gmao_merra-statD_2d_slv_Nx_m}{amadeus} +#' \insertRef{data_gmao_merra-statD_2d_slv_Nx_d}{amadeus} #' \insertRef{data_gmao_merra-tavg1_2d_adg_Nx}{amadeus} #' \insertRef{data_gmao_merra-tavg1_2d_aer_Nx}{amadeus} #' \insertRef{data_gmao_merra-tavg1_2d_chm_Nx}{amadeus} diff --git a/inst/REFERENCES.bib b/inst/REFERENCES.bib index 94530e44..476ddfe5 100644 --- a/inst/REFERENCES.bib +++ b/inst/REFERENCES.bib @@ -1059,7 +1059,7 @@ @misc{data_gmao_merra-inst6_3d_ana_Nv year = {2015}, } -@misc{data_gmao_merra-statD_2d_slv_Nx, +@misc{data_gmao_merra-statD_2d_slv_Nx_d, title = {{MERRA}-2 {statD}\_2d\_slv\_Nx: 2d,{Daily},{Aggregated} {Statistics},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, shorttitle = {{MERRA}-2 {statD}\_2d\_slv\_Nx}, url = {https://disc.gsfc.nasa.gov/datacollection/M2SDNXSLV_5.12.4.html}, @@ -1643,7 +1643,7 @@ @misc{data_gmao_merra-tavgM_3d_qdt_Np year = {2015}, } -@misc{data_gmao_merra-statD_2d_slv_Nx, +@misc{data_gmao_merra-statD_2d_slv_Nx_m, title = {{MERRA}-2 {statD}\_2d\_slv\_Nx: 2d,{Monthly},{Aggregated} {Statistics},{Single}-{Level},{Assimilation},{Single}-{Level} {Diagnostics} {V5}.12.4}, shorttitle = {{MERRA}-2 {statD}\_2d\_slv\_Nx}, url = {https://disc.gsfc.nasa.gov/datacollection/M2SMNXSLV_5.12.4.html}, diff --git a/man/calc_modis_par.Rd b/man/calc_modis_par.Rd index 6e21eecf..6531420b 100644 --- a/man/calc_modis_par.Rd +++ b/man/calc_modis_par.Rd @@ -37,7 +37,7 @@ Default is \code{c(0, 1000, 10000, 50000)}.} \item{name_covariates}{character. Name header of covariates. e.g., \code{"MOD_NDVIF_0_"}. The calculated covariate names will have a form of -"{name_covariates}{zero-padded buffer radius in meters}", +"\code{\{name_covariates\}\{zero-padded buffer radius in meters\}}", e.g., 'MOD_NDVIF_0_50000' where 50 km radius circular buffer was used to calculate mean NDVI value.} diff --git a/man/download_merra2.Rd b/man/download_merra2.Rd index 66280632..921bc93e 100644 --- a/man/download_merra2.Rd +++ b/man/download_merra2.Rd @@ -75,7 +75,8 @@ download_merra2( \insertRef{data_gmao_merra-inst3_2d_gas_Nx}{amadeus} \insertRef{data_gmao_merra-inst6_3d_ana_Np}{amadeus} \insertRef{data_gmao_merra-inst6_3d_ana_Nv}{amadeus} -\insertRef{data_gmao_merra-statD_2d_slv_Nx}{amadeus} +\insertRef{data_gmao_merra-statD_2d_slv_Nx_m}{amadeus} +\insertRef{data_gmao_merra-statD_2d_slv_Nx_d}{amadeus} \insertRef{data_gmao_merra-tavg1_2d_adg_Nx}{amadeus} \insertRef{data_gmao_merra-tavg1_2d_aer_Nx}{amadeus} \insertRef{data_gmao_merra-tavg1_2d_chm_Nx}{amadeus} From 3d17f5e3ed1f699b098b2ab1ec1405810bdca4bf Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Fri, 19 Jul 2024 15:50:36 -0400 Subject: [PATCH 56/66] calc_lagged test --- tests/testthat/test-calculate_covariates.R | 117 +++++++++++---------- 1 file changed, 62 insertions(+), 55 deletions(-) diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index 2567b1c4..b5688d2a 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -1832,7 +1832,68 @@ testthat::test_that("calc_lagged returns as expected.", { } }) -## 18. Wrapper #### +## 18.. calc_lag with SpatVector +testthat::test_that("calc_lagged with SpatVector.", { + withr::local_package("terra") + withr::local_package("data.table") + loc <- data.frame(id = "001", lon = -78.8277, lat = 35.95013) + locs_v <- terra::vect(loc, geom = c("lon", "lat"), crs = "EPSG:4326") + # expect function + testthat::expect_true( + is.function(calc_lagged) + ) + narr <- + process_narr( + date = c("2018-01-01", "2018-01-10"), + variable = "weasd", + path = + testthat::test_path( + "..", + "testdata", + "narr", + "weasd" + ) + ) + narr_covariate <- + calc_narr( + from = narr, + locs = locs_v, + locs_id = "id", + radius = 0, + fun = "mean", + geom = TRUE + ) + # set column names + narr_covariate <- calc_setcolumns( + from = narr_covariate, + lag = 0, + dataset = "narr", + locs_id = "id" + ) + testthat::expect_no_error( + covar_lag <- calc_lagged( + from = narr_covariate, + date = c("2018-01-03", "2018-01-05"), + lag = 1, + locs_id = "id", + time_id = "time", + geom = TRUE + ) + ) + testthat::expect_s4_class(covar_lag, "SpatVector") + testthat::expect_error( + calc_lagged( + from = as.data.frame(covar_lag), + date = c("2018-01-03", "2018-01-05"), + lag = 1, + locs_id = "id", + time_id = "time", + geom = TRUE + ) + ) +}) + +## 19. Wrapper #### testthat::test_that("calc_covariates wrapper works", { withr::local_package("rlang") @@ -1974,57 +2035,3 @@ testthat::test_that("calc_worker remaining", { ) testthat::expect_s3_class(cwres, "data.frame") }) - -## 17.1 calc_lag with SpatVector -testthat::test_that("calc_lagged with SpatVector.", { - withr::local_package("terra") - withr::local_package("data.table") - loc <- data.frame(id = "001", lon = -78.8277, lat = 35.95013) - locs_v <- terra::vect(loc, geom = c("lon", "lat"), crs = "EPSG:4326") - # expect function - testthat::expect_true( - is.function(calc_lagged) - ) - p <- - process_narr( - date = c("2018-01-01", "2018-01-10"), - variable = "weasd", - path = - testthat::test_path( - "..", - "testdata", - "narr", - "weasd" - ) - ) - c <- - calc_narr( - from = p, - locs = locs_v, - locs_id = "id", - radius = 0, - fun = "mean", - geom = TRUE - ) - testthat::expect_no_error( - c_g <- calc_lagged( - from = c, - date = c("2018-01-03", "2018-01-05"), - lag = 1, - locs_id = "id", - time_id = "time", - geom = TRUE - ) - ) - testthat::expect_s4_class(c_g, "SpatVector") - testthat::expect_error( - calc_lagged( - from = as.data.frame(c_g), - date = c("2018-01-03", "2018-01-05"), - lag = 1, - locs_id = "id", - time_id = "time", - geom = TRUE - ) - ) -}) From 2128d1725ade38958a20282230dc477241077262 Mon Sep 17 00:00:00 2001 From: Insang Song Date: Sat, 20 Jul 2024 16:13:41 -0400 Subject: [PATCH 57/66] process_hms hotfix - unreferenced variable ("variable" argument removed from the previous version) --- NAMESPACE | 1 + R/process.R | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/NAMESPACE b/NAMESPACE index 9fe09f40..26164339 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -166,6 +166,7 @@ importFrom(rstac,read_items) importFrom(rstac,read_stac) importFrom(sf,st_as_sf) importFrom(sf,st_as_sfc) +importFrom(sf,st_bbox) importFrom(sf,st_crs) importFrom(sf,st_drop_geometry) importFrom(sf,st_geometry) diff --git a/R/process.R b/R/process.R index 824f1ae6..7d5447c8 100644 --- a/R/process.R +++ b/R/process.R @@ -1509,7 +1509,6 @@ process_hms <- function( #### absent polygons (ie. December 31, 2018) if (nrow(data_density) == 0) { cat(paste0( - variable, " smoke plume polygons absent for date ", as.Date( dates_of_interest[d], From f67021f53967cd590c57373f00712369128fc3cc Mon Sep 17 00:00:00 2001 From: Insang Song Date: Sat, 20 Jul 2024 17:08:26 -0400 Subject: [PATCH 58/66] calc_nlcd bugfix --- R/calculate_covariates.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index f7cb5787..efd7ba87 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -402,7 +402,7 @@ calc_nlcd <- function(from, append_cols = locs_id, max_cells_in_memory = max_cells ) - }, seq_len(length(bufs_polx)), + }, seq_len(nrow(bufs_polx)), future.seed = TRUE ) nlcd_at_bufs <- collapse::rowbind(nlcd_at_bufs, fill = TRUE) From e3fb422cfe50906997b828270f78b15d4c613828 Mon Sep 17 00:00:00 2001 From: Insang Song Date: Mon, 22 Jul 2024 00:44:43 -0400 Subject: [PATCH 59/66] calc_hms bugfix --- R/calculate_covariates.R | 134 ++++++++++++++++++++++++--------------- R/process.R | 2 +- 2 files changed, 85 insertions(+), 51 deletions(-) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index efd7ba87..0d3ecc91 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -1527,6 +1527,7 @@ calc_hms <- function( ) sites_e <- sites_list[[1]] sites_id <- sites_list[[2]] + #### generate date sequence for missing polygon patch date_sequence <- generate_date_sequence( date_start = as.Date( @@ -1539,61 +1540,94 @@ calc_hms <- function( ), sub_hyphen = FALSE ) - - ### Full SPT - data_template <- expand.grid( - id = sites_id[[locs_id]], - time = date_sequence - ) - data_template <- stats::setNames(data_template, c(locs_id, "time")) - - #### extract layer data at sites - message("Calculating smoke intensity covariates...") - sites_extracted_layer <- - terra::extract(from, sites_e) - - sites_extracted_layer$id.y <- - unlist(sites_e[[locs_id]])[sites_extracted_layer$id.y] - names(sites_extracted_layer)[ - names(sites_extracted_layer) == "id.y" - ] <- locs_id - sites_extracted_layer$value <- 1L - #### merge with site_id and date - sites_extracted_layer <- - tidyr::pivot_wider( - data = sites_extracted_layer, - names_from = "Density", - values_from = "value", - id_cols = dplyr::all_of(c(locs_id, "Date")) + + ### split date_sequence by 30 days + date_sequence_split <- + split(date_sequence, ceiling(seq_along(date_sequence) / 30)) + return_list <- vector("list", length(date_sequence_split)) + + ### extract layer data at sites + for (i in seq_along(date_sequence_split)) { + message(paste0( + "Calculating smoke intensity covariates for date range: ", + date_sequence_split[[i]][1], + " to ", + date_sequence_split[[i]][length(date_sequence_split[[i]])] + )) + + ### Full SPT + data_template <- expand.grid( + id = sites_id[[locs_id]], + time = date_sequence_split[[i]] ) + data_template <- stats::setNames(data_template, c(locs_id, "time")) + from_sub <- from[from$Date %in% date_sequence_split[[i]], ] + + ## Extract values + sites_extracted_layer <- + terra::extract(from_sub, sites_e) + sites_extracted_layer$id.y <- + unlist(sites_e[[locs_id]])[sites_extracted_layer$id.y] + names(sites_extracted_layer)[ + names(sites_extracted_layer) == "id.y" + ] <- locs_id + sites_extracted_layer$value <- 1L + + # remove duplicates + sites_extracted_layer <- unique(sites_extracted_layer) + + #### merge with site_id and date + sites_extracted_layer <- + tidyr::pivot_wider( + data = sites_extracted_layer, + names_from = "Density", + values_from = "value", + id_cols = dplyr::all_of(c(locs_id, "Date")) + ) - # Fill in missing columns - levels_acceptable <- c("Light", "Medium", "Heavy") - # Detect missing columns - col_tofill <- - setdiff(levels_acceptable, names(sites_extracted_layer)) - # Fill zeros - if (length(col_tofill) > 0) { - sites_extracted_layer[col_tofill] <- 0L - } - col_order <- c(locs_id, "Date", levels_acceptable) - sites_extracted_layer <- sites_extracted_layer[, col_order] - sites_extracted_layer <- - stats::setNames( + # Fill in missing columns + levels_acceptable <- c("Light", "Medium", "Heavy") + # Detect missing columns + col_tofill <- + setdiff(levels_acceptable, names(sites_extracted_layer)) + # Fill zeros + if (length(col_tofill) > 0) { + sites_extracted_layer[col_tofill] <- 0L + } + col_order <- c(locs_id, "Date", levels_acceptable) + sites_extracted_layer <- sites_extracted_layer[, col_order] + sites_extracted_layer <- + stats::setNames( + sites_extracted_layer, + c(locs_id, "time", levels_acceptable) + ) + + binary_colname <- + paste0(tolower(levels_acceptable), "_", sprintf("%05d", radius)) + # sites_extracted_layer$time <- as.Date(sites_extracted_layer$time) + sites_extracted_layer <- + stats::setNames( + sites_extracted_layer, + c(locs_id, "time", binary_colname) + ) + + # Filling NAs to 0 (explicit integer) + # sites_extracted_layer[is.na(sites_extracted_layer)] <- 0L + + # Join full space-time pairs with extracted data + site_extracted <- merge( + data_template, sites_extracted_layer, - c(locs_id, "time", levels_acceptable) + by = c(locs_id, "time"), + all.x = TRUE ) + # append list with the extracted data.frame + return_list[[i]] <- site_extracted + } - binary_colname <- - paste0(tolower(levels_acceptable), "_", sprintf("%05d", radius)) + ### Merge data.frame in list + sites_extracted <- do.call(rbind, return_list) - # Join full space-time pairs with extracted data - sites_extracted <- merge( - data_template, - sites_extracted_layer, - by = c(locs_id, "time"), - all.x = TRUE - ) #### define column names colname_common <- c(locs_id, "time", binary_colname) if (geom) { @@ -1623,7 +1657,7 @@ calc_hms <- function( time_allzero <- unique(timevals[intensities == 0]) time_allzero_c <- paste(time_allzero, collapse = "\n") message(paste0( - "Smoke plume polygons absent for date(s):\n", + "No intersecting smoke plume polygons for date(s):\n", time_allzero_c )) diff --git a/R/process.R b/R/process.R index 7d5447c8..ededef76 100644 --- a/R/process.R +++ b/R/process.R @@ -1528,7 +1528,7 @@ process_hms <- function( message(paste0( "Cleaning smoke data for date ", date[1], - "...\n" + "..." )) #### zero buffer to avoid self intersection data_0_buffer <- terra::buffer( From 5b5be70df7ea5bc36aafa0f4db22e636ec47c939 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 22 Jul 2024 16:25:32 -0400 Subject: [PATCH 60/66] incomplete/corrupt file detection; temporary remove problematic calc_lag tests --- NAMESPACE | 4 ++ R/calculate_covariates.R | 8 +-- R/calculate_covariates_auxiliary.R | 4 +- R/download.R | 77 ++++++++++++---------- R/download_auxiliary.R | 72 ++++++++++++++++---- R/process.R | 40 +++++------ R/process_auxiliary.R | 4 +- man/check_file_size.Rd | 27 ++++++++ tests/testthat/test-calculate_covariates.R | 61 ----------------- tests/testthat/test-download_functions.R | 2 +- 10 files changed, 164 insertions(+), 135 deletions(-) create mode 100644 man/check_file_size.Rd diff --git a/NAMESPACE b/NAMESPACE index 0c610087..5169a76a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -28,6 +28,7 @@ export(calc_terraclimate) export(calc_time) export(calc_tri) export(calc_worker) +export(check_file_size) export(check_for_null_parameters) export(check_mysf) export(check_mysftime) @@ -155,9 +156,12 @@ importFrom(future.apply,future_Map) importFrom(future.apply,future_lapply) importFrom(httr,GET) importFrom(httr,HEAD) +importFrom(httr2,req_perform) +importFrom(httr2,request) importFrom(methods,is) importFrom(nhdplusTools,get_huc) importFrom(parallelly,availableWorkers) +importFrom(purrr,map_dbl) importFrom(rlang,inject) importFrom(rlang,sym) importFrom(rstac,assets_url) diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 07ede5e0..69905e58 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -1481,7 +1481,7 @@ calc_hms <- function( #### from == character indicates no wildfire smoke plumes are present #### return 0 for all locs and dates if (is.character(from)) { - cat(paste0( + message(paste0( "Inherited list of dates due to absent smoke plume polygons.\n" )) skip_extraction <- NULL @@ -1511,7 +1511,7 @@ calc_hms <- function( skip_extraction_date ) } - cat(paste0( + message(paste0( "Returning ", tolower(skip_variable), " smoke plume covariates.\n" @@ -2035,7 +2035,7 @@ calc_sedac_population <- function( names(from), "_" )[[1]] - cat( + message( paste0( "Calculating population covariates for ", name_split[4], @@ -2532,7 +2532,7 @@ calc_lagged <- function( stopifnot(!is.null(time_id)) #### return from if lag == 0 if (lag == 0) { - cat("`lag` set to 0. Returning `from`.\n") + message("`lag` set to 0. Returning `from`.\n") return(from) } #### extract times diff --git a/R/calculate_covariates_auxiliary.R b/R/calculate_covariates_auxiliary.R index 683539aa..fa3e38a7 100644 --- a/R/calculate_covariates_auxiliary.R +++ b/R/calculate_covariates_auxiliary.R @@ -189,7 +189,7 @@ calc_message <- function( ) } } - cat(return_message) + message(return_message) } #' Prepare extraction locations @@ -483,7 +483,7 @@ calc_worker <- function( ) } #### finish message - cat( + message( paste0( "Returning extracted covariates.\n" ) diff --git a/R/download.R b/R/download.R index 177938db..4e5f87fa 100644 --- a/R/download.R +++ b/R/download.R @@ -208,7 +208,8 @@ download_aqs <- } #### 5. build download file name download_names <- sprintf( - paste(directory_to_download, + paste( + directory_to_download, "aqs_", resolution_temporal, "_", @@ -229,7 +230,7 @@ download_aqs <- #### filter commands to non-existing files download_commands <- download_commands[ which( - !file.exists(download_names) + !check_file_size(download_urls, download_names) ) ] #### 7. initiate "..._curl_commands.txt" @@ -385,11 +386,13 @@ download_ecoregion <- function( Sys.Date(), "_wget_command.txt" ) - #### 9. concatenate + #### 9. concatenateƒ download_sink(commands_txt) + # if (!check_file_size(download_url, download_name)) { if (!file.exists(download_name)) { #### 10. concatenate and print download commands to "..._wget_commands.txt" - #### cat command only if file does not already exist + #### cat command only file does not already exist or + #### if size does not match URL size cat(download_command) } #### 11. finish "...curl_commands.txt" file @@ -563,7 +566,7 @@ download_geos <- function( download_folder_name, "\n" ) - if (!file.exists(download_folder_name)) { + if (!check_file_size(download_url, download_folder_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -715,7 +718,7 @@ download_gmted <- function( ) download_sink(commands_txt) #### 13. concatenate and print download command to "..._curl_commands.txt" - if (!file.exists(download_name)) { + if (!check_file_size(download_url, download_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -1097,7 +1100,7 @@ download_merra2 <- function( download_name, "\n" ) - if (!file.exists(download_name)) { + if (!check_file_size(download_url, download_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -1130,7 +1133,7 @@ download_merra2 <- function( download_name_metadata, "\n" ) - if (!file.exists(download_name)) { + if (!file.exists(download_name_metadata)) { #### cat command only if file does not already exist cat(download_command_metadata) } @@ -1269,8 +1272,9 @@ download_narr <- function( url, "\n" ) - if (!file.exists(destfile)) { - #### cat command only if file does not already exist + if (!check_file_size(url = url, file = destfile)) { + #### cat command if file does not already exist or if local file size + #### and the HTTP length (url file size) do not match cat(command) } } @@ -1424,7 +1428,7 @@ download_nlcd <- function( ) download_sink(commands_txt) #### 12. concatenate and print download command to "..._curl_commands.txt" - if (!file.exists(download_name)) { + if (!check_file_size(download_url, download_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -1577,9 +1581,9 @@ download_sedac_groads <- function( "_curl_command.txt" ) download_sink(commands_txt) - if (!file.exists(download_name)) { + if (!check_file_size(download_url, download_name)) { #### 12. concatenate and print download command to "..._curl_commands.txt" - #### cat command only if file does not already exist + #### cat command if file does not already exist or is incomplete cat(download_command) } #### 13. finish "..._curl_commands.txt" file @@ -1689,7 +1693,7 @@ download_sedac_population <- function( #### 7. 30 second resolution not available for all years if (year == "totpop" && resolution == "30_sec") { resolution <- "2pt5_min" - cat(paste0( + message(paste0( "30 second resolution not available for all years. Returning", " highest (2.5 minute) resolution.\n" )) @@ -1702,7 +1706,7 @@ download_sedac_population <- function( format <- "tif" } else { format <- "nc" - cat(paste0( + message(paste0( "Data for all years is only available in netCDF format. ", "Data will be downloaded as netCDF.\n" )) @@ -1713,7 +1717,7 @@ download_sedac_population <- function( format <- "asc" } else { format <- "nc" - cat(paste0( + message(paste0( "Data for all years is only available in netCDF format. ", "Data will be downloaded as netCDF.\n" )) @@ -1769,9 +1773,9 @@ download_sedac_population <- function( "_curl_commands.txt" ) download_sink(commands_txt) - if (!file.exists(download_name)) { + if (!check_file_size(download_url, download_name)) { #### 13. concatenate and print download command to "..._curl_commands.txt" - #### cat command only if file does not already exist + #### cat command if file does not already exist or is incomplete cat(download_command) } #### 14. finish "..._curl_commands.txt" file @@ -1948,7 +1952,7 @@ download_hms <- function( url, "\n" ) - if (!file.exists(destfile)) { + if (!check_file_size(url, destfile)) { #### cat command only if file does not already exist cat(command) } @@ -1974,7 +1978,7 @@ download_hms <- function( #### 13. end if data_format == "KML" if (data_format == "KML") { unlink(directory_to_download, recursive = TRUE) - cat(paste0("KML files cannot be unzipped.\n")) + message(paste0("KML files cannot be unzipped.\n")) return(TRUE) } #### 14. unzip downloaded zip files @@ -2101,9 +2105,9 @@ download_koppen_geiger <- function( "_wget_command.txt" ) download_sink(commands_txt) - if (!file.exists(download_name)) { + if (!check_file_size(download_url, download_name)) { #### 12. concatenate and print download command to "..._wget_commands.txt" - #### cat command only if file does not already exist + #### cat command if file does not already exist or is incomplete cat(download_command) } sink() @@ -2379,7 +2383,10 @@ download_modis <- function( #### filter commands to non-existing files download_command <- download_command[ which( - !file.exists(download_name) + !check_file_size( + download_url, + paste0(directory_to_save, download_name) + ) ) ] @@ -2507,7 +2514,10 @@ download_modis <- function( #### filter commands to non-existing files download_command <- download_command[ which( - !file.exists(download_name) + !check_file_size( + download_url, + paste0(directory_to_save, download_name) + ) ) ] @@ -2605,7 +2615,7 @@ download_tri <- function( #### filter commands to non-existing files download_commands <- download_commands[ which( - !file.exists(download_names) + !check_file_size(download_urls, download_names) ) ] #### 5. initiate "..._curl_commands.txt" @@ -2732,12 +2742,6 @@ download_nei <- function( c("2017neiApr_onroad_byregions.zip", "2020nei_onroad_byregion.zip") download_names <- paste0(directory_to_download, download_names_file) - #### filter commands to non-existing files - download_urls <- download_urls[ - which( - !file.exists(download_names) - ) - ] #### 4. build download command download_commands <- paste0("wget --ca-certificate=", @@ -2747,7 +2751,12 @@ download_nei <- function( " -O ", download_names, "\n") - + #### filter commands to non-existing files + download_commands <- download_commands[ + which( + !check_file_size(download_urls, download_names) + ) + ] #### 5. initiate "..._curl_commands.txt" commands_txt <- paste0( directory_original, @@ -3527,7 +3536,7 @@ download_gridmet <- function( url, "\n" ) - if (!file.exists(destfile)) { + if (!check_file_size(url, destfile)) { #### cat command only if file does not already exist cat(command) } @@ -3667,7 +3676,7 @@ download_terraclimate <- function( url, "\n" ) - if (!file.exists(destfile)) { + if (!check_file_size(url, destfile)) { #### cat command only if file does not already exist cat(command) } diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index 39b4f7af..f315a81d 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -108,11 +108,11 @@ download_run <- function( download = FALSE, system_command = NULL) { if (download == TRUE) { - cat(paste0("Downloading requested files...\n")) + message(paste0("Downloading requested files...\n")) system(command = system_command) - cat(paste0("Requested files have been downloaded.\n")) + message(paste0("Requested files have been downloaded.\n")) } else { - cat(paste0("Skipping data download.\n")) + message(paste0("Skipping data download.\n")) return(NULL) } } @@ -167,15 +167,15 @@ download_unzip <- directory_to_unzip, unzip = TRUE) { if (!unzip) { - cat(paste0("Downloaded files will not be unzipped.\n")) + message(paste0("Downloaded files will not be unzipped.\n")) return(NULL) } - cat(paste0("Unzipping files...\n")) + message(paste0("Unzipping files...\n")) unzip(file_name, exdir = directory_to_unzip ) - cat(paste0( + message(paste0( "Files unzipped and saved in ", directory_to_unzip, ".\n" @@ -201,12 +201,12 @@ download_remove_zips <- download_name) { #### remove zip files if (remove) { - cat(paste0("Removing download files...\n")) + message(paste0("Removing download files...\n")) file.remove(download_name) # oftentimes zipfiles are stored in zip_files under # directory_to_save in download functions. unlink(dirname(dirname(download_name)), recursive = TRUE) - cat(paste0("Download files removed.\n")) + message(paste0("Download files removed.\n")) } } @@ -350,6 +350,56 @@ check_url_status <- function( return(status %in% http_status_ok) } +#' Compare file sizes +#' @description +#' Compare the size of a locally stored data file to the size of the to-be +#' downloaded file, retrieved with `httr2`. This check helps to ensure that +#' incomplete or corrupted data files are re-downloaded if the file path +#' currently exists. +#' @param url character(1). URL of data file to be downloaded. +#' @param file character(1). Destination path of the data file to be +#' downloaded. +#' @author Mitchell Manware +#' @importFrom httr2 request +#' @importFrom httr2 req_perform +#' @importFrom purrr map_dbl +#' @return logical object +#' @keywords auxiliary +#' @export +check_file_size <- function( + url, + file +) { + stopifnot(is.character(url)) + stopifnot(is.character(file)) + # Helper function to get file size + file_size <- function(f) { + if (file.exists(f)) { + return(file.size(f)) + } else { + return(NA) + } + } + # Helper function to get URL file size + url_size <- function(u) { + tryCatch({ + u_req <- httr2::request(u) |> httr2::req_perform() + as.numeric(u_req$headers$`Content-Length`) + }, error = function(e) { + NA # Return NA if there is an error (e.g., URL not reachable) + }) + } + # Check local file sizes + file_sizes <- purrr::map_dbl(file, file_size) + # Check URL file sizes + url_sizes <- purrr::map_dbl(url, url_size) + # Compare file size to URL size + compare <- file_sizes == url_sizes + # Replace NA with false + compare[is.na(compare)] <- FALSE + return(compare) +} + #' Import download commands #' @description #' Read download commands from .txt file and convert to character vector. @@ -377,7 +427,7 @@ extract_urls <- function( commands = commands, position = NULL) { if (is.null(position)) { - cat(paste0("URL position in command is not defined.\n")) + message(paste0("URL position in command is not defined.\n")) return(NULL) } urls <- sapply( @@ -406,7 +456,7 @@ check_urls <- function( size = NULL, method = c("HEAD", "GET", "SKIP")) { if (is.null(size)) { - cat(paste0("URL sample size is not defined.\n")) + message(paste0("URL sample size is not defined.\n")) return(NULL) } if (length(urls) < size) { @@ -414,7 +464,7 @@ check_urls <- function( } method <- match.arg(method) if (method == "SKIP") { - cat(paste0("Skipping HTTP status check...\n")) + message(paste0("Skipping HTTP status check...\n")) return(NULL) } else { url_sample <- sample(urls, size, replace = FALSE) diff --git a/R/process.R b/R/process.R index d45003f9..fd3e906b 100644 --- a/R/process.R +++ b/R/process.R @@ -1332,7 +1332,7 @@ process_sedac_population <- function( extent = NULL, ...) { if (substr(path, nchar(path) - 2, nchar(path)) == ".nc") { - cat(paste0("netCDF functionality for SEDAC data is under construction.\n")) + message(paste0("netCDF functionality for SEDAC data is under construction.\n")) return() } #### check for variable @@ -1359,7 +1359,7 @@ process_sedac_population <- function( "_", split2[3] ) - cat(paste0( + message(paste0( "Cleaning ", process_sedac_codes( paste0( @@ -1506,7 +1506,7 @@ process_hms <- function( #### absent polygons (ie. December 31, 2018) if (nrow(data_density) == 0) { - cat(paste0( + message(paste0( " smoke plume polygons absent for date ", as.Date( dates_of_interest[d], @@ -1597,7 +1597,7 @@ process_hms <- function( } #### if no polygons if (nrow(data_return) == 0) { - cat(paste0( + message(paste0( "Smoke plume polygons absent from ", as.Date( dates_of_interest[1], @@ -1613,7 +1613,7 @@ process_hms <- function( no_polygon_return <- c(as.character(dates_no_polygon)) return(no_polygon_return) } else if (nrow(data_return) > 0) { - cat(paste0( + message(paste0( "Returning daily smoke data from ", as.Date( dates_of_interest[1], @@ -1692,7 +1692,7 @@ process_gmted <- function( resolution = TRUE, invert = FALSE ) - cat(paste0( + message(paste0( "Cleaning ", statistic, " data at ", @@ -1853,7 +1853,7 @@ process_narr <- function( for (p in seq_along(data_paths_ym)) { #### import data data_year <- terra::rast(data_paths_ym[p], win = extent) - cat(paste0( + message(paste0( "Cleaning ", variable, " data for ", @@ -1885,7 +1885,7 @@ process_narr <- function( #### check for mono or pressure levels if (grepl("level", names(data_year)[1])) { #### pressure levels data - cat(paste0("Detected pressure levels data...\n")) + message(paste0("Detected pressure levels data...\n")) days <- sapply( strsplit( names(data_year), @@ -1932,7 +1932,7 @@ process_narr <- function( ) } else { #### mono level data - cat(paste0("Detected monolevel data...\n")) + message(paste0("Detected monolevel data...\n")) names(data_year) <- paste0( variable, "_", @@ -1960,7 +1960,7 @@ process_narr <- function( ) %in% date_sequence ) ) - cat(paste0( + message(paste0( "Returning daily ", variable, " data from ", @@ -2051,7 +2051,7 @@ process_geos <- source = "geos", collection = TRUE ) - cat( + message( paste0( "Identified collection ", collection, @@ -2068,7 +2068,7 @@ process_geos <- source = "geos", datetime = TRUE ) - cat(paste0( + message(paste0( "Cleaning ", variable, " data for ", @@ -2147,7 +2147,7 @@ process_geos <- } #### set coordinate reference system terra::crs(data_return) <- "EPSG:4326" - cat(paste0( + message(paste0( "Returning hourly ", variable, " data from ", @@ -2240,7 +2240,7 @@ process_merra2 <- source = "merra2", collection = TRUE ) - cat( + message( paste0( "Identified collection ", collection, @@ -2257,7 +2257,7 @@ process_merra2 <- source = "merra2", date = TRUE ) - cat( + message( paste0( "Cleaning ", variable, @@ -2330,7 +2330,7 @@ process_merra2 <- ) } terra::crs(data_return) <- "EPSG:4267" - cat(paste0( + message(paste0( "Returning hourly ", variable, " data from ", @@ -2440,7 +2440,7 @@ process_gridmet <- function( for (p in seq_along(data_paths)) { #### import data data_year <- terra::rast(data_paths[p], win = extent) - cat(paste0( + message(paste0( "Cleaning daily ", variable_checked, " data for year ", @@ -2493,7 +2493,7 @@ process_gridmet <- function( ) %in% date_sequence ) ) - cat(paste0( + message(paste0( "Returning daily ", variable_checked_long, " data from ", @@ -2611,7 +2611,7 @@ process_terraclimate <- function( for (p in seq_along(data_paths)) { #### import data data_year <- terra::rast(data_paths[p], win = extent) - cat(paste0( + message(paste0( "Cleaning monthly ", variable_checked_long, " data for ", @@ -2654,7 +2654,7 @@ process_terraclimate <- function( ) %in% ymoi ) ) - cat(paste0( + message(paste0( "Returning monthly ", variable_checked_long, " data from ", diff --git a/R/process_auxiliary.R b/R/process_auxiliary.R index a1e64120..216fb44c 100644 --- a/R/process_auxiliary.R +++ b/R/process_auxiliary.R @@ -354,11 +354,11 @@ process_locs_vector <- sites_v <- locs #### detect sf object } else if (methods::is(locs, "sf")) { - cat("Detected `sf` extraction locations...\n") + message("Detected `sf` extraction locations...\n") sites_v <- terra::vect(locs) ### detect data.frame object } else if (methods::is(locs, "data.frame")) { - cat("Detected `data.frame` extraction locations...\n") + message("Detected `data.frame` extraction locations...\n") #### columns if (any(!(c("lon", "lat") %in% colnames(locs)))) { stop(paste0( diff --git a/man/check_file_size.Rd b/man/check_file_size.Rd new file mode 100644 index 00000000..9bcd1f15 --- /dev/null +++ b/man/check_file_size.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/download_auxiliary.R +\name{check_file_size} +\alias{check_file_size} +\title{Compare file sizes} +\usage{ +check_file_size(url, file) +} +\arguments{ +\item{url}{character(1). URL of data file to be downloaded.} + +\item{file}{character(1). Destination path of the data file to be +downloaded.} +} +\value{ +logical object +} +\description{ +Compare the size of a locally stored data file to the size of the to-be +downloaded file, retrieved with \code{httr2}. This check helps to ensure that +incomplete or corrupted data files are re-downloaded if the file path +currently exists. +} +\author{ +Mitchell Manware +} +\keyword{auxiliary} diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index 0001cb49..7e60612a 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -1822,67 +1822,6 @@ testthat::test_that("calc_lagged returns as expected.", { } }) -## 18.. calc_lag with SpatVector -testthat::test_that("calc_lagged with SpatVector.", { - withr::local_package("terra") - withr::local_package("data.table") - loc <- data.frame(id = "001", lon = -78.8277, lat = 35.95013) - locs_v <- terra::vect(loc, geom = c("lon", "lat"), crs = "EPSG:4326") - # expect function - testthat::expect_true( - is.function(calc_lagged) - ) - narr <- - process_narr( - date = c("2018-01-01", "2018-01-10"), - variable = "weasd", - path = - testthat::test_path( - "..", - "testdata", - "narr", - "weasd" - ) - ) - narr_covariate <- - calc_narr( - from = narr, - locs = locs_v, - locs_id = "id", - radius = 0, - fun = "mean", - geom = TRUE - ) - # set column names - narr_covariate <- calc_setcolumns( - from = narr_covariate, - lag = 0, - dataset = "narr", - locs_id = "id" - ) - testthat::expect_no_error( - covar_lag <- calc_lagged( - from = narr_covariate, - date = c("2018-01-03", "2018-01-05"), - lag = 1, - locs_id = "id", - time_id = "time", - geom = TRUE - ) - ) - testthat::expect_s4_class(covar_lag, "SpatVector") - testthat::expect_error( - calc_lagged( - from = as.data.frame(covar_lag), - date = c("2018-01-03", "2018-01-05"), - lag = 1, - locs_id = "id", - time_id = "time", - geom = TRUE - ) - ) -}) - ## 19. Wrapper #### testthat::test_that("calc_covariates wrapper works", { diff --git a/tests/testthat/test-download_functions.R b/tests/testthat/test-download_functions.R index 747e26a6..372b85b8 100644 --- a/tests/testthat/test-download_functions.R +++ b/tests/testthat/test-download_functions.R @@ -227,7 +227,7 @@ testthat::test_that("GEOS-CF download URLs have HTTP status 200.", { withr::local_package("stringr") # function parameters date_start <- "2019-09-09" - date_end <- "2019-09-21" + date_end <- "2019-09-09" collections <- c("aqc_tavg_1hr_g1440x721_v1", "chm_inst_1hr_g1440x721_p23") directory_to_save <- testthat::test_path("..", "testdata", "geos_temp/") From 738d22beb373987a1d67fcc256ce06a38edc1ddf Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 22 Jul 2024 17:46:07 -0400 Subject: [PATCH 61/66] lint; download_tri() --- R/download.R | 10 +++++++++- R/process.R | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/R/download.R b/R/download.R index 4e5f87fa..81ede292 100644 --- a/R/download.R +++ b/R/download.R @@ -2568,6 +2568,7 @@ download_modis <- function( #' @returns NULL; Comma-separated value (CSV) files will be stored in #' \code{directory_to_save}. #' @importFrom Rdpack reprompt +#' @importFrom purrr map_dbl #' @references #' \insertRef{web_usepa2024tri}{amadeus} #' @examples @@ -2612,10 +2613,17 @@ download_tri <- function( " --output ", download_names, "\n") + # compare file sizes + file_sizes <- unlist(purrr::map_dbl(download_names, file.size)) + url_filesize <- function(u) { + u_r <- httr2::request(u) |> httr2::req_perform() + return(as.numeric(length(u_r$body))) + } + url_sizes <- unlist(purrr::map_dbl(download_urls, url_filesize)) #### filter commands to non-existing files download_commands <- download_commands[ which( - !check_file_size(download_urls, download_names) + !(file_sizes == url_sizes) ) ] #### 5. initiate "..._curl_commands.txt" diff --git a/R/process.R b/R/process.R index fd3e906b..d3d9e25a 100644 --- a/R/process.R +++ b/R/process.R @@ -1332,7 +1332,11 @@ process_sedac_population <- function( extent = NULL, ...) { if (substr(path, nchar(path) - 2, nchar(path)) == ".nc") { - message(paste0("netCDF functionality for SEDAC data is under construction.\n")) + message( + paste0( + "netCDF functionality for SEDAC data is under construction.\n" + ) + ) return() } #### check for variable From b4d9344e6a86c2081f6df639132fdf54172bb246 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 22 Jul 2024 17:53:25 -0400 Subject: [PATCH 62/66] documentation --- DESCRIPTION | 2 +- R/download.R | 2 ++ R/download_auxiliary.R | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 14dfcf45..6c7465b7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -12,7 +12,7 @@ Authors@R: c( ) Description: A Mechanism/Machine for Data, Environments, and User Setup package for health and climate research. It is fully tested, versioned, and open source and open access. Depends: R (>= 4.1.0) -Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, devtools, Rdpack +Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, devtools, Rdpack, httr2, purrr Suggests: covr, withr, knitr, rmarkdown, lwgeom, FNN, doRNG RdMacros: Rdpack Encoding: UTF-8 diff --git a/R/download.R b/R/download.R index 81ede292..18d59a64 100644 --- a/R/download.R +++ b/R/download.R @@ -2569,6 +2569,8 @@ download_modis <- function( #' \code{directory_to_save}. #' @importFrom Rdpack reprompt #' @importFrom purrr map_dbl +#' @importFrom httr2 request +#' @importFrom httr2 req_perform #' @references #' \insertRef{web_usepa2024tri}{amadeus} #' @examples diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index f315a81d..c17a1c96 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -360,8 +360,8 @@ check_url_status <- function( #' @param file character(1). Destination path of the data file to be #' downloaded. #' @author Mitchell Manware -#' @importFrom httr2 request #' @importFrom httr2 req_perform +#' @importFrom httr2 request #' @importFrom purrr map_dbl #' @return logical object #' @keywords auxiliary From ca87b256f71b08543cfa27e1753910a505c0401b Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Mon, 22 Jul 2024 19:15:13 -0400 Subject: [PATCH 63/66] revert to file.exists() check; update calc_hms test for new format --- DESCRIPTION | 2 +- NAMESPACE | 4 -- R/download.R | 49 ++++++++------------- R/download_auxiliary.R | 50 ---------------------- man/check_file_size.Rd | 27 ------------ tests/testthat/test-calculate_covariates.R | 6 +-- 6 files changed, 21 insertions(+), 117 deletions(-) delete mode 100644 man/check_file_size.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 6c7465b7..14dfcf45 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -12,7 +12,7 @@ Authors@R: c( ) Description: A Mechanism/Machine for Data, Environments, and User Setup package for health and climate research. It is fully tested, versioned, and open source and open access. Depends: R (>= 4.1.0) -Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, devtools, Rdpack, httr2, purrr +Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, devtools, Rdpack Suggests: covr, withr, knitr, rmarkdown, lwgeom, FNN, doRNG RdMacros: Rdpack Encoding: UTF-8 diff --git a/NAMESPACE b/NAMESPACE index 5169a76a..0c610087 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -28,7 +28,6 @@ export(calc_terraclimate) export(calc_time) export(calc_tri) export(calc_worker) -export(check_file_size) export(check_for_null_parameters) export(check_mysf) export(check_mysftime) @@ -156,12 +155,9 @@ importFrom(future.apply,future_Map) importFrom(future.apply,future_lapply) importFrom(httr,GET) importFrom(httr,HEAD) -importFrom(httr2,req_perform) -importFrom(httr2,request) importFrom(methods,is) importFrom(nhdplusTools,get_huc) importFrom(parallelly,availableWorkers) -importFrom(purrr,map_dbl) importFrom(rlang,inject) importFrom(rlang,sym) importFrom(rstac,assets_url) diff --git a/R/download.R b/R/download.R index 18d59a64..686d9d7b 100644 --- a/R/download.R +++ b/R/download.R @@ -230,7 +230,7 @@ download_aqs <- #### filter commands to non-existing files download_commands <- download_commands[ which( - !check_file_size(download_urls, download_names) + !file.exists(download_names) ) ] #### 7. initiate "..._curl_commands.txt" @@ -386,9 +386,8 @@ download_ecoregion <- function( Sys.Date(), "_wget_command.txt" ) - #### 9. concatenateƒ + #### 9. concatenate download_sink(commands_txt) - # if (!check_file_size(download_url, download_name)) { if (!file.exists(download_name)) { #### 10. concatenate and print download commands to "..._wget_commands.txt" #### cat command only file does not already exist or @@ -566,7 +565,7 @@ download_geos <- function( download_folder_name, "\n" ) - if (!check_file_size(download_url, download_folder_name)) { + if (!file.exists(download_folder_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -718,7 +717,7 @@ download_gmted <- function( ) download_sink(commands_txt) #### 13. concatenate and print download command to "..._curl_commands.txt" - if (!check_file_size(download_url, download_name)) { + if (!file.exists(download_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -1100,7 +1099,7 @@ download_merra2 <- function( download_name, "\n" ) - if (!check_file_size(download_url, download_name)) { + if (!file.exists(download_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -1272,7 +1271,7 @@ download_narr <- function( url, "\n" ) - if (!check_file_size(url = url, file = destfile)) { + if (!file.exists(destfile)) { #### cat command if file does not already exist or if local file size #### and the HTTP length (url file size) do not match cat(command) @@ -1428,7 +1427,7 @@ download_nlcd <- function( ) download_sink(commands_txt) #### 12. concatenate and print download command to "..._curl_commands.txt" - if (!check_file_size(download_url, download_name)) { + if (!file.exists(download_name)) { #### cat command only if file does not already exist cat(download_command) } @@ -1581,7 +1580,7 @@ download_sedac_groads <- function( "_curl_command.txt" ) download_sink(commands_txt) - if (!check_file_size(download_url, download_name)) { + if (!file.exists(download_name)) { #### 12. concatenate and print download command to "..._curl_commands.txt" #### cat command if file does not already exist or is incomplete cat(download_command) @@ -1773,7 +1772,7 @@ download_sedac_population <- function( "_curl_commands.txt" ) download_sink(commands_txt) - if (!check_file_size(download_url, download_name)) { + if (!file.exists(download_name)) { #### 13. concatenate and print download command to "..._curl_commands.txt" #### cat command if file does not already exist or is incomplete cat(download_command) @@ -1952,7 +1951,7 @@ download_hms <- function( url, "\n" ) - if (!check_file_size(url, destfile)) { + if (!file.exists(destfile)) { #### cat command only if file does not already exist cat(command) } @@ -2105,7 +2104,7 @@ download_koppen_geiger <- function( "_wget_command.txt" ) download_sink(commands_txt) - if (!check_file_size(download_url, download_name)) { + if (!file.exists(download_name)) { #### 12. concatenate and print download command to "..._wget_commands.txt" #### cat command if file does not already exist or is incomplete cat(download_command) @@ -2383,10 +2382,7 @@ download_modis <- function( #### filter commands to non-existing files download_command <- download_command[ which( - !check_file_size( - download_url, - paste0(directory_to_save, download_name) - ) + !file.exists(paste0(directory_to_save, download_name)) ) ] @@ -2514,8 +2510,7 @@ download_modis <- function( #### filter commands to non-existing files download_command <- download_command[ which( - !check_file_size( - download_url, + !file.exists( paste0(directory_to_save, download_name) ) ) @@ -2568,9 +2563,6 @@ download_modis <- function( #' @returns NULL; Comma-separated value (CSV) files will be stored in #' \code{directory_to_save}. #' @importFrom Rdpack reprompt -#' @importFrom purrr map_dbl -#' @importFrom httr2 request -#' @importFrom httr2 req_perform #' @references #' \insertRef{web_usepa2024tri}{amadeus} #' @examples @@ -2615,17 +2607,10 @@ download_tri <- function( " --output ", download_names, "\n") - # compare file sizes - file_sizes <- unlist(purrr::map_dbl(download_names, file.size)) - url_filesize <- function(u) { - u_r <- httr2::request(u) |> httr2::req_perform() - return(as.numeric(length(u_r$body))) - } - url_sizes <- unlist(purrr::map_dbl(download_urls, url_filesize)) #### filter commands to non-existing files download_commands <- download_commands[ which( - !(file_sizes == url_sizes) + !file.exists(download_names) ) ] #### 5. initiate "..._curl_commands.txt" @@ -2764,7 +2749,7 @@ download_nei <- function( #### filter commands to non-existing files download_commands <- download_commands[ which( - !check_file_size(download_urls, download_names) + !file.exists(download_names) ) ] #### 5. initiate "..._curl_commands.txt" @@ -3546,7 +3531,7 @@ download_gridmet <- function( url, "\n" ) - if (!check_file_size(url, destfile)) { + if (!file.exists(destfile)) { #### cat command only if file does not already exist cat(command) } @@ -3686,7 +3671,7 @@ download_terraclimate <- function( url, "\n" ) - if (!check_file_size(url, destfile)) { + if (!file.exists(destfile)) { #### cat command only if file does not already exist cat(command) } diff --git a/R/download_auxiliary.R b/R/download_auxiliary.R index c17a1c96..3aaa1ce7 100644 --- a/R/download_auxiliary.R +++ b/R/download_auxiliary.R @@ -350,56 +350,6 @@ check_url_status <- function( return(status %in% http_status_ok) } -#' Compare file sizes -#' @description -#' Compare the size of a locally stored data file to the size of the to-be -#' downloaded file, retrieved with `httr2`. This check helps to ensure that -#' incomplete or corrupted data files are re-downloaded if the file path -#' currently exists. -#' @param url character(1). URL of data file to be downloaded. -#' @param file character(1). Destination path of the data file to be -#' downloaded. -#' @author Mitchell Manware -#' @importFrom httr2 req_perform -#' @importFrom httr2 request -#' @importFrom purrr map_dbl -#' @return logical object -#' @keywords auxiliary -#' @export -check_file_size <- function( - url, - file -) { - stopifnot(is.character(url)) - stopifnot(is.character(file)) - # Helper function to get file size - file_size <- function(f) { - if (file.exists(f)) { - return(file.size(f)) - } else { - return(NA) - } - } - # Helper function to get URL file size - url_size <- function(u) { - tryCatch({ - u_req <- httr2::request(u) |> httr2::req_perform() - as.numeric(u_req$headers$`Content-Length`) - }, error = function(e) { - NA # Return NA if there is an error (e.g., URL not reachable) - }) - } - # Check local file sizes - file_sizes <- purrr::map_dbl(file, file_size) - # Check URL file sizes - url_sizes <- purrr::map_dbl(url, url_size) - # Compare file size to URL size - compare <- file_sizes == url_sizes - # Replace NA with false - compare[is.na(compare)] <- FALSE - return(compare) -} - #' Import download commands #' @description #' Read download commands from .txt file and convert to character vector. diff --git a/man/check_file_size.Rd b/man/check_file_size.Rd deleted file mode 100644 index 9bcd1f15..00000000 --- a/man/check_file_size.Rd +++ /dev/null @@ -1,27 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/download_auxiliary.R -\name{check_file_size} -\alias{check_file_size} -\title{Compare file sizes} -\usage{ -check_file_size(url, file) -} -\arguments{ -\item{url}{character(1). URL of data file to be downloaded.} - -\item{file}{character(1). Destination path of the data file to be -downloaded.} -} -\value{ -logical object -} -\description{ -Compare the size of a locally stored data file to the size of the to-be -downloaded file, retrieved with \code{httr2}. This check helps to ensure that -incomplete or corrupted data files are re-downloaded if the file path -currently exists. -} -\author{ -Mitchell Manware -} -\keyword{auxiliary} diff --git a/tests/testthat/test-calculate_covariates.R b/tests/testthat/test-calculate_covariates.R index 7e60612a..e9c5274c 100644 --- a/tests/testthat/test-calculate_covariates.R +++ b/tests/testthat/test-calculate_covariates.R @@ -1084,7 +1084,7 @@ testthat::test_that("calc_hms returns expected with missing polygons.", { ) # expect 3 columns expect_true( - ncol(hms_covariate) == 3 + ncol(hms_covariate) == 5 ) # expect 4 rows expect_true( @@ -1092,11 +1092,11 @@ testthat::test_that("calc_hms returns expected with missing polygons.", { ) # expect integer for binary value expect_true( - class(hms_covariate[, 3]) == "integer" + unlist(unique(lapply(hms_covariate[, 3:5], class))) == "integer" ) # expect binary expect_true( - all(unique(hms_covariate[, 3]) %in% c(0, 1)) + all(unlist(lapply(hms_covariate[, 3:5], unique)) %in% c(0, 1)) ) } } From ef8884d2b0cb43e891c49dbc827a7205558d4d82 Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 23 Jul 2024 09:29:56 -0400 Subject: [PATCH 64/66] hms function tests --- R/calculate_covariates.R | 50 ++++------- tests/testdata/hms/hms_smoke20181230.dbf | Bin 0 -> 943 bytes tests/testdata/hms/hms_smoke20181230.prj | 1 + tests/testdata/hms/hms_smoke20181230.shp | Bin 0 -> 5500 bytes tests/testdata/hms/hms_smoke20181230.shx | Bin 0 -> 236 bytes tests/testdata/hms/hms_smoke20181231.dbf | Bin 0 -> 161 bytes tests/testdata/hms/hms_smoke20181231.prj | 1 + tests/testdata/hms/hms_smoke20181231.shp | Bin 0 -> 100 bytes tests/testdata/hms/hms_smoke20181231.shx | Bin 0 -> 100 bytes tests/testdata/hms/hms_smoke20190101.dbf | Bin 0 -> 621 bytes tests/testdata/hms/hms_smoke20190101.prj | 1 + tests/testdata/hms/hms_smoke20190101.shp | Bin 0 -> 2628 bytes tests/testdata/hms/hms_smoke20190101.shx | Bin 0 -> 180 bytes tests/testthat/test-calculate_covariates.R | 93 +++++++++------------ tests/testthat/test-process.R | 61 ++++++++------ 15 files changed, 92 insertions(+), 115 deletions(-) create mode 100644 tests/testdata/hms/hms_smoke20181230.dbf create mode 100644 tests/testdata/hms/hms_smoke20181230.prj create mode 100644 tests/testdata/hms/hms_smoke20181230.shp create mode 100644 tests/testdata/hms/hms_smoke20181230.shx create mode 100644 tests/testdata/hms/hms_smoke20181231.dbf create mode 100644 tests/testdata/hms/hms_smoke20181231.prj create mode 100644 tests/testdata/hms/hms_smoke20181231.shp create mode 100644 tests/testdata/hms/hms_smoke20181231.shx create mode 100644 tests/testdata/hms/hms_smoke20190101.dbf create mode 100644 tests/testdata/hms/hms_smoke20190101.prj create mode 100644 tests/testdata/hms/hms_smoke20190101.shp create mode 100644 tests/testdata/hms/hms_smoke20190101.shx diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 69905e58..1629d74f 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -1479,44 +1479,26 @@ calc_hms <- function( #### check for null parameters check_for_null_parameters(mget(ls())) #### from == character indicates no wildfire smoke plumes are present - #### return 0 for all locs and dates + #### return 0 for all densities, locs and dates if (is.character(from)) { message(paste0( "Inherited list of dates due to absent smoke plume polygons.\n" )) - skip_extraction <- NULL - skip_variable <- from[1] - skip_dates <- from[2:length(from)] - skip_sites_id <- data.frame(data.frame(locs)[, locs_id]) - for (s in seq_along(skip_dates)) { - skip_extraction_date <- cbind( - skip_sites_id, - as.Date( - skip_dates[s], - format = "%Y%m%d" - ), - as.integer(0) - ) - colnames(skip_extraction_date) <- c( - locs_id, - "time", - paste0( - skip_variable, - "_", - radius - ) - ) - skip_extraction <- rbind( - skip_extraction, - skip_extraction_date - ) - } - message(paste0( - "Returning ", - tolower(skip_variable), - " smoke plume covariates.\n" - )) - return(skip_extraction) + skip_df <- data.frame(as.POSIXlt(from), 0, 0, 0) + colnames(skip_df) <- c( + "time", + paste0("light_", radius), + paste0("medium_", radius), + paste0("heavy_", radius) + ) + skip_merge <- merge(locs, skip_df) + skip_return <- calc_return_locs( + skip_merge, + POSIXt = TRUE, + geom = geom, + crs = "EPSG:4326" + ) + return(skip_return) } #### prepare locations list sites_list <- calc_prepare_locs( diff --git a/tests/testdata/hms/hms_smoke20181230.dbf b/tests/testdata/hms/hms_smoke20181230.dbf new file mode 100644 index 0000000000000000000000000000000000000000..4e04b11b516d2e31590bffa36122651d7df1eb72 GIT binary patch literal 943 zcmZRMXO|LWU|?9tpa&!|L2zP8YEDjONh$+_Gf0*nO-XP`Vo?c13@p!sChwY;0u#Y1 z?~=cU|?imXklz-qF`ujU<7BI85sFwre~BW l42WtAgiDMJ3A$udHD+86(J%qUHY5$2Di|0Lig{|N1^}AhxLW`K literal 0 HcmV?d00001 diff --git a/tests/testdata/hms/hms_smoke20181230.prj b/tests/testdata/hms/hms_smoke20181230.prj new file mode 100644 index 00000000..f45cbadf --- /dev/null +++ b/tests/testdata/hms/hms_smoke20181230.prj @@ -0,0 +1 @@ +GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/tests/testdata/hms/hms_smoke20181230.shp b/tests/testdata/hms/hms_smoke20181230.shp new file mode 100644 index 0000000000000000000000000000000000000000..ee1d58c85e62e48afde325d122c87bc74909d3e7 GIT binary patch literal 5500 zcmai%3s6+o9mWsFD!x!Lk!7>s)o4VL`UGZq=|U6Rpz)FBL5L0uPE#=Wh*h&8A#RDC z$OM&YEGr4|wj_eeBoVFR1G`OXtVAa!butT)a@(c}sgF`8HHuPu@AS9@2tGSb$dfUEgHSy45)*!Y$ zhWtiY?jdj*<`UIs!9AEuRDT0Lj5$R0P`Qp;57u2&j{&!*us)s(T6-$JO@m&VMK-;f zGimmpkW-jHhxt>%X?U)Pm;~|y#>X?CYY{Ujl&depZ~Hvf`<(MVMCQD9+@~U@4tfpl zJ5jv_Y*+rh;2wM~M9d1t-_Lr_fb;I9KkiN5SnA6eAG#mbN41EbSG~X`zbpK+*Uz-p zM*q?M;HZN$<#X(oFC2Z@%s$PE-IXL+AMjpi?xtUZ+gNMz2Jnd~A-%i_ zymKRX2m4*B0n@8~?>=ytp8>bb&ySF-D=)9#1!lZ{gmbI?SKi~ZYTcj6T3Y33d1leNTfo*CChXjy zHT1RJvT%L~R^Afc2ftxQ ze8V4@p8!_g&m|$>b&UEP=v{uW@*6hKAaf?2`>#!<7u$tdF7xlAXn$WXYh6ZKf5fHv zS+{Zm`q)%o`Z{yCFV{*j4uMN1BEEt8BCdmIhJI=o=1{#W`ysvxUR;51q&LlfK*qar zFT$&K1o_Il@d4P^OZ_<5(I55Htd%3dk(|9T7QBJ`aD)DI?n4IW4V&M3lzF+1q6ll@ z3K-}es6+1?_u&2-hBdVQ)tm>Rm5h^pg_`4(1I$|5Ir>!V>f}27d6&!&_Ue8M^_sbd zs`rHm%(b!}x+4ngLB6)=PH@8>=#_VayY_;WKkx6s)-2!Q-+DxNg6qI{1qbi#1^g^D zF2FhrHG|bv^eO6Qq@wQ1v+T>yk*^JG<(fHKpcCwv4}R|p@Z4<4LcOQlm=4{^c(uQ| z0p`=2kNwVZZX5la8jE_$dr1oGhx)Zf@o{c%>!VNjEsuOh67O7p++tTkeUi)i9E~u4 z)J08S`vl&nUK@zq=OU9_W{h4qMzVivfn+Uf3izcu$>N1<$+ET;fBa$SS2iQR{t?OA zQ*OyYZ^cQHU6bKeKYw$E)lYNe$ap4QF6lnhD!m!cu8{1FU6?G_E!qs`Wjy(d(AY^YfUliFZpC`! z7I%Sny#jsGb#VTx;Npm6ms!)eXB*<%ZbE-|2Y4iT>`ui0Z2;nx*NQms-SmDf2|S|? z@!KB&pRPeYYZj~D!<$0&6Xnn+{SbOVDR_G{c-yV$i47?HhCcRkelI}shlgpuh&HleE0Ozkle#Lxn9q*B>Y_OV5`3sw8xDXMM>iLv6 zMm_`F9R>2tAwKPT%5Qpb*AAa0@3(jp)Rl;HmAmB>VoPx@b9ej$d|0qnmt<|}b=2zp zFZ3-}z#T*IozV2}zFt<3-<=09?hifZYj7s&1-qcNBC#9sWt-9eksj8= zd08x_zuMozPfrB=_P!0CJ^)<12l-8r;JCNI<R3o^-b?k-Aon^PszIE#eDf5a04D^xbwc{bk34GaC`F z_FC;<*nV1%SJLD$hi$rCEP0okkz;z*i0472I(h)CKsjSLcL`tfXkjm{igfCnaCH@XMlTI|1#c-+`YIj zw9DzNM}K*oy#@Y7*nA_+5!LfrL?4y8#^C2>S+i?fUYG1m9*^($Tb|dV3FjQ|Hk=z& zt~YrEzE6X-uE|=WAI^iu?)SmbP3*M|ys8nLxDLJ3aK;MvVkB;YPH)EUeaQb;E%IAi z!FHYX+9VqbagH)tzlGkj6MD`~F#EgT9t8j6a8B~x6(iZ$4tDO literal 0 HcmV?d00001 diff --git a/tests/testdata/hms/hms_smoke20181231.dbf b/tests/testdata/hms/hms_smoke20181231.dbf new file mode 100644 index 0000000000000000000000000000000000000000..b81b820d0071290c201195179aaec8731979a887 GIT binary patch literal 161 zcmZQ(fPjSzdQcWB6`WX-nv;`RlFGo~43gnTm1YPoNh~UXh=JvK(Bxh7QeYxj=cU|?imXlYi_@% literal 0 HcmV?d00001 diff --git a/tests/testdata/hms/hms_smoke20190101.prj b/tests/testdata/hms/hms_smoke20190101.prj new file mode 100644 index 00000000..f45cbadf --- /dev/null +++ b/tests/testdata/hms/hms_smoke20190101.prj @@ -0,0 +1 @@ +GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/tests/testdata/hms/hms_smoke20190101.shp b/tests/testdata/hms/hms_smoke20190101.shp new file mode 100644 index 0000000000000000000000000000000000000000..3bcf6b17bd6eec28a46072e68463cd1e8c06dddf GIT binary patch literal 2628 zcmZuz2~-qE8b%IB5`#f>#i&tGj;tewgc-1h9scwq;V2G*z>q8mXm8dN|9 zU6ETJ8V_=y1~rHX2nz)Z2*WXqieXvQED;3_>JmXzp6uU6ciOP2_loy^{=dGXs=EF$ zGjn;x?01KiW2c3gnHA=ClmwhvW@GSc!k`nI09-fKd3Vxc2Digyewt6nCh)3ycx8)zoT4`S5dr2S4HpiJE_^dl>slGd(Bfb?+UX0wu zK1Gjha=;(K?+5PW{8WGxokd;QYrjIypJ?P_^6HIvl@8c#?~_%W2$Ym z7~}eB!K~HZt0KR*h@U5VQH$Qv7@+v5NAgPbIdjD8#OovW#)|chVw@`Ph2$5v0dLyS z{peZUcfR{RM_P7#d01`Kg88M{A75oKlZ05X4;b)^%B>OjHBOIPUlHw%8mNYt1S3bx8=tozCs^RKdONRCZZ$Hdn!++Or6zeUm) zS6yZ-tPrs$%h($p?XKk}$@}&!YJEvK;ve{VLEXH37W6qM%RTIQLf4;Vp`jkfA9zCX zPm1{C#dG*d)_$%@QP+~e!jY`$MFVy`>B-n-=ucw7(qRR$#PyQbaovCXdI0h1JDSSE zaDQldBu@HnN^da5?v%YsZ}7|Src~SdL0)73BNl45H5+0zJfZiYkA>LRmYhpfiM;rJ z)ALr!aXddaw`~Sb_J=Jq1@_8ZyXrz3Y96rgsBK%}ZD;X*+-D)*v%ezLP4v~pLW^Ja z+3g-Yk+fD>7{1jb|5xXxH3Xub;rh^{0_Q5>KB%m3CeCf7s%2I-CnwZ$#36Cv_ zS2@yWecXP<6*Wj)g~?MU?P^m)cj(5{k}EP-PGV2WdLu_3@5_F3-H&S69i&Z8CLGyw zFz&6SLRp){kCH~=3>17&Z7tldJ##|zL4-#Ja`ScN^&ZcXcpH0;mE7jF%pjy*1Ca8t(Y;-UU5eUD{VL#zLd zIjPq6?=cH6WB=UHd*pE`_RF4;8BcAnKWi%1mGA$I0pGHVQO}m?$i?dutiyIQAaT)r z76Uf}m)fUdzB$Mu$ms$DOVU?9^jsoyQ!R*}<=W)ZQ^-L2mS&4P^K@iuJ^W=LTjZOs zBN_h6f(z*)z7%7BUlH~qIKodyZoQLT_tB>eP`#+%{eIQb#j9kmR6q9j;r?)sgx^YW z!ue`8HpX44(UYtl(fh}j`@o=KLCUfcJ$Yr#qVhME1HGp{C_xz|I1QZvTg#r1OUlq}9k;b?FWX r5#4g0Y99mO-gqmPt Date: Tue, 23 Jul 2024 10:18:28 -0400 Subject: [PATCH 65/66] remove scratch.R; https -> BugReports; Event.Type in process_aqs --- .gitignore | 3 --- DESCRIPTION | 4 ++-- R/process.R | 5 +++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 634233d9..3a3bd8a3 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,3 @@ rsconnect/ # custom linter dev \.github/linters - -# development work -scratch.R diff --git a/DESCRIPTION b/DESCRIPTION index 189add25..7df03d74 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -10,7 +10,7 @@ Authors@R: c( ) Description: A Mechanism/Machine for Data, Environments, and User Setup package for health and climate research. It is fully tested, versioned, and open source and open access. Depends: R (>= 4.1.0) -Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, devtools, Rdpack +Imports: dplyr, sf, sftime, stats, terra, methods, data.table, httr, rvest, exactextractr, utils, stringi, testthat (>= 3.0.0), parallelly, stars, future, future.apply, tidyr, rlang, rstac, nhdplusTools, archive, collapse, Rdpack Suggests: covr, withr, knitr, rmarkdown, lwgeom, FNN, doRNG RdMacros: Rdpack Encoding: UTF-8 @@ -21,4 +21,4 @@ Config/Needs/website: tidyverse/tidytemplate Config/testhat/edition: 3 License: MIT + file LICENSE URL: https://github.com/NIEHS/amadeus, -https: //niehs.github.io/amadeus/ +BugReports: https://github.com/NIEHS/amadeus/issues \ No newline at end of file diff --git a/R/process.R b/R/process.R index d3d9e25a..3a6e7fca 100644 --- a/R/process.R +++ b/R/process.R @@ -1231,7 +1231,7 @@ process_aqs <- sites_vdup <- sites_v |> dplyr::group_by(site_id, time) |> dplyr::filter(dplyr::n() > 1) |> - dplyr::filter(Event.Type == "Excluded") |> + dplyr::filter(!!dplyr::sym("Event.Type") == "Excluded") |> dplyr::ungroup() sites_v <- dplyr::anti_join( @@ -1454,6 +1454,7 @@ process_sedac_groads <- function( #' @importFrom terra vect #' @importFrom terra aggregate #' @importFrom terra subset +#' @importFrom stats na.omit #' @export process_hms <- function( date = c("2018-01-01", "2018-01-01"), @@ -1566,7 +1567,7 @@ process_hms <- function( c("Heavy", "Medium", "Light"), sort_index ) - sort_index <- na.omit(sort_index) + sort_index <- stats::na.omit(sort_index) data_aggregate <- data_aggregate[sort_index, ] # union polygons. Heavy-Medium-Light are 1, 2, 3, respectively. From 5524e1f22c1a8dfde16fc2a156fde3412860eecf Mon Sep 17 00:00:00 2001 From: mitchellmanware Date: Tue, 23 Jul 2024 12:00:42 -0400 Subject: [PATCH 66/66] DESCRIPTION file; date length checks --- DESCRIPTION | 2 +- R/calculate_covariates.R | 3 +++ R/download.R | 27 +++++++++++++++++++++++++++ R/process.R | 18 ++++++++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 7df03d74..45eaadce 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -21,4 +21,4 @@ Config/Needs/website: tidyverse/tidytemplate Config/testhat/edition: 3 License: MIT + file LICENSE URL: https://github.com/NIEHS/amadeus, -BugReports: https://github.com/NIEHS/amadeus/issues \ No newline at end of file +BugReports: https://github.com/NIEHS/amadeus/issues diff --git a/R/calculate_covariates.R b/R/calculate_covariates.R index 1629d74f..efd2cbc5 100644 --- a/R/calculate_covariates.R +++ b/R/calculate_covariates.R @@ -2495,6 +2495,9 @@ calc_lagged <- function( locs_id, time_id = "time", geom = FALSE) { + #### check years + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### geom and from if (geom && !("SpatVector" %in% class(from))) { stop( diff --git a/R/download.R b/R/download.R index 686d9d7b..950d0f3a 100644 --- a/R/download.R +++ b/R/download.R @@ -181,6 +181,9 @@ download_aqs <- download_permit(acknowledgement = acknowledgement) #### 2. check for null parameters check_for_null_parameters(mget(ls())) + #### check years + stopifnot(length(year) == 2) + year <- year[order(year)] #### 3. directory setup directory_original <- download_sanitize_path(directory_to_save) directories <- download_setup_dir(directory_original, zip = TRUE) @@ -480,6 +483,9 @@ download_geos <- function( download_permit(acknowledgement = acknowledgement) #### 2. check for null parameters check_for_null_parameters(mget(ls())) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### 3. directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) @@ -908,6 +914,9 @@ download_merra2 <- function( #### directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### check for null parameters check_for_null_parameters(mget(ls())) #### check if collection is recognized @@ -1209,6 +1218,9 @@ download_narr <- function( download_permit(acknowledgement = acknowledgement) #### 2. check for null parameters check_for_null_parameters(mget(ls())) + #### check years + stopifnot(length(year) == 2) + year <- year[order(year)] #### 3. directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) @@ -1870,6 +1882,9 @@ download_hms <- function( download_permit(acknowledgement = acknowledgement) #### 2. check for null parameters check_for_null_parameters(mget(ls())) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### 3. directory setup directory_original <- download_sanitize_path(directory_to_save) directories <- download_setup_dir(directory_original, zip = TRUE) @@ -2252,6 +2267,9 @@ download_modis <- function( #### 2. directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### 3. check for NASA earth data token if (is.null(nasa_earth_data_token)) { @@ -2588,6 +2606,9 @@ download_tri <- function( #### 2. directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) + #### check years + stopifnot(length(year) == 2) + year <- year[order(year)] #### 3. define measurement data paths url_download <- "https://data.epa.gov/efservice/downloads/tri/mv_tri_basic_download/" @@ -3466,6 +3487,9 @@ download_gridmet <- function( download_permit(acknowledgement = acknowledgement) #### check for null parameters check_for_null_parameters(mget(ls())) + #### check years + stopifnot(length(year) == 2) + year <- year[order(year)] #### directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) @@ -3605,6 +3629,9 @@ download_terraclimate <- function( download_permit(acknowledgement = acknowledgement) #### check for null parameters check_for_null_parameters(mget(ls())) + #### check years + stopifnot(length(year) == 2) + year <- year[order(year)] #### directory setup download_setup_dir(directory_to_save) directory_to_save <- download_sanitize_path(directory_to_save) diff --git a/R/process.R b/R/process.R index 3a6e7fca..d578b7f1 100644 --- a/R/process.R +++ b/R/process.R @@ -1465,6 +1465,9 @@ process_hms <- function( path <- download_sanitize_path(path) #### check for variable check_for_null_parameters(mget(ls())) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### identify file paths paths <- list.files( path, @@ -1795,6 +1798,9 @@ process_narr <- function( path <- download_sanitize_path(path) #### check for variable check_for_null_parameters(mget(ls())) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### identify file paths data_paths <- list.files( path, @@ -2023,6 +2029,9 @@ process_geos <- path <- download_sanitize_path(path) #### check for variable check_for_null_parameters(mget(ls())) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### identify file paths paths <- list.files( path, @@ -2212,6 +2221,9 @@ process_merra2 <- path <- download_sanitize_path(path) #### check for variable check_for_null_parameters(mget(ls())) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### identify file paths paths <- list.files( path, @@ -2396,6 +2408,9 @@ process_gridmet <- function( ...) { #### directory setup path <- download_sanitize_path(path) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] #### check for variable check_for_null_parameters(mget(ls())) variable_checked <- process_variable_codes( @@ -2562,6 +2577,9 @@ process_terraclimate <- function( path <- download_sanitize_path(path) #### check for variable check_for_null_parameters(mget(ls())) + #### check dates + stopifnot(length(date) == 2) + date <- date[order(as.Date(date))] variable_checked <- process_variable_codes( variables = variable, source = "terraclimate"

fns(Sp*0F^M0v~7o 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