From 7f6b6c52d624f622217aeede89219bb249d82526 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 30 Mar 2026 08:08:41 -0500 Subject: [PATCH 01/44] set to character (we convert later) --- R/importWQP.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/importWQP.R b/R/importWQP.R index 50f0739b8..8f435a259 100644 --- a/R/importWQP.R +++ b/R/importWQP.R @@ -67,6 +67,7 @@ importWQP <- function(obs_url, tz = "UTC", csv = TRUE, convertType = TRUE) { data.table = FALSE, sep = ifelse(csv, ",", "\t"), fill = TRUE, + colClasses = "character", quote = ifelse(csv, '\"', "") ) From 32599cd422ac2be3096c17df1507e0109ddf1380 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 30 Mar 2026 10:00:38 -0500 Subject: [PATCH 02/44] getting ready for CRAN release --- DESCRIPTION | 2 +- NEWS | 3 +++ README.md | 8 ++++---- inst/CITATION | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index cc8fef6e0..97cf48a78 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: dataRetrieval Type: Package Title: Retrieval Functions for USGS and EPA Hydrology and Water Quality Data -Version: 2.7.23.9001 +Version: 2.7.24 Authors@R: c( person("Laura", "DeCicco", role = c("aut","cre"), email = "ldecicco@usgs.gov", diff --git a/NEWS b/NEWS index aa42bd4a1..a8dc31176 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ dataRetrieval 2.7.24 =================== * Let dataRetrieval take care of chunking up requests by monitoring_location_id. +* Fixed bug causing some character columns in importWQP to be numeric +* Fixed bug causing open ended date requests in waterdata funcitons to +return full period of record. dataRetrieval 2.7.23 =================== diff --git a/README.md b/README.md index c1b857d01..97827bbc1 100644 --- a/README.md +++ b/README.md @@ -206,13 +206,13 @@ NWIScitation #> U.S. Geological Survey (2026). _USGS Water Data for the Nation: U.S. #> Geological Survey National Water Information System database_. #> doi:10.5066/F7P55KJN , Accessed Mar -#> 09, 2026. +#> 30, 2026. print(NWIScitation, style = "Bibtex") #> @Manual{, #> title = {USGS Water Data for the Nation: U.S. Geological Survey National Water Information System database}, #> author = {{U.S. Geological Survey}}, #> doi = {10.5066/F7P55KJN}, -#> note = {Accessed Mar 09, 2026}, +#> note = {Accessed Mar 30, 2026}, #> year = {2026}, #> } ``` @@ -235,14 +235,14 @@ WQPcitation <- create_WQP_bib(SC) WQPcitation #> National Water Quality Monitoring Council (2026). _Water Quality #> Portal_. doi:10.5066/P9QRKUVJ , -#> Accessed Mar 09, 2026, +#> Accessed Mar 30, 2026, #> . print(WQPcitation, style = "Bibtex") #> @Manual{, #> title = {Water Quality Portal}, #> author = {{National Water Quality Monitoring Council}}, #> doi = {10.5066/P9QRKUVJ}, -#> note = {Accessed Mar 09, 2026}, +#> note = {Accessed Mar 30, 2026}, #> year = {2026}, #> url = {https://www.waterqualitydata.us/data/Result/search?siteid=USGS-05288705&count=no&pCode=00300&mimeType=csv}, #> } diff --git a/inst/CITATION b/inst/CITATION index c39fd524a..0a45adf0b 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -37,9 +37,9 @@ bibentry(bibtype = "Manual", title = "dataRetrieval: R packages for discovering and retrieving water data available from U.S. federal hydrologic web services", publisher = "U.S. Geological Survey", address="Reston, VA", - version = "2.7.23", + version = "2.7.24", institution = "U.S. Geological Survey", year = 2026, doi = "10.5066/P9X4L3GE", - textVersion = "De Cicco, L.A., Hirsch, R.M., Lorenz, D., Watkins, W.D., Johnson, M., Blodgett, D.L., Hinman, E.D., Zemmels, J., 2026, dataRetrieval: R packages for discovering and retrieving water data available from Federal hydrologic web services, v.2.7.23, doi:10.5066/P9X4L3GE" + textVersion = "De Cicco, L.A., Hirsch, R.M., Lorenz, D., Watkins, W.D., Johnson, M., Blodgett, D.L., Hinman, E.D., Zemmels, J., 2026, dataRetrieval: R packages for discovering and retrieving water data available from Federal hydrologic web services, v.2.7.24, doi:10.5066/P9X4L3GE" ) From 76f55a1356b201c68aad5c5570b465f835f101ca Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 30 Mar 2026 10:57:58 -0500 Subject: [PATCH 03/44] test more things --- tests/testthat/tests_general.R | 3 +++ tests/testthat/tests_samples.R | 3 +++ tests/testthat/tests_userFriendly_fxns.R | 25 ++++++++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/tests/testthat/tests_general.R b/tests/testthat/tests_general.R index f5a13b1da..ce207f440 100644 --- a/tests/testthat/tests_general.R +++ b/tests/testthat/tests_general.R @@ -302,6 +302,9 @@ test_that("General WQP retrievals working", { service = "ResultWQX3" ) expect_is(pHData$Activity_StartDateTime, "POSIXct") + expect_type(pHData$USGSpcode, "character") + expect_type(pHData$Result_Measure, "double") + expect_type(pHData$SampleCollectionMethod_Identifier, "character") # # # testing lists: startDate <- as.Date("2022-01-01") diff --git a/tests/testthat/tests_samples.R b/tests/testthat/tests_samples.R index b06830733..02e05fc5a 100644 --- a/tests/testthat/tests_samples.R +++ b/tests/testthat/tests_samples.R @@ -9,6 +9,9 @@ test_that("General samples-data retrievals work using WQP tests", { characteristic = nameToUse ) expect_is(pHData$Activity_StartDateTime, "POSIXct") + expect_type(pHData$USGSpcode, "character") + expect_type(pHData$Result_Measure, "double") + expect_type(pHData$SampleCollectionMethod_Identifier, "character") # testing lists: startDate <- as.Date("2022-01-01") diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index 6ec117802..befb1d3ab 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -164,6 +164,31 @@ test_that("read_waterdata_daily", { ) expect_is(raw_waterdata_daily$time, "Date") + raw_waterdata_daily_no_start <- read_waterdata_daily( + monitoring_location_id = siteNumber, + parameter_code = pCode, + time = c(NA, endDate) + ) + expect_equal( + max(raw_waterdata_daily_no_start$time), + max(raw_waterdata_daily$time) + ) + expect_lt( + min(raw_waterdata_daily_no_start$time), + min(raw_waterdata_daily$time) + ) + + raw_waterdata_daily_no_end <- read_waterdata_daily( + monitoring_location_id = siteNumber, + parameter_code = pCode, + time = c(startDate, NA) + ) + expect_gt(max(raw_waterdata_daily_no_end$time), max(raw_waterdata_daily$time)) + expect_equal( + min(raw_waterdata_daily_no_end$time), + min(raw_waterdata_daily$time) + ) + raw_waterdata_TempMeanMax <- read_waterdata_daily( monitoring_location_id = siteNumber, parameter_code = c("00010", "00060"), From f79d3c8c58307e42281e9427458de8efa546e603 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 30 Mar 2026 13:28:47 -0500 Subject: [PATCH 04/44] Rebuilt triggers re-documenting --- man/read_waterdata_monitoring_location.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index 871ce1d2e..b8e87b7d0 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -136,7 +136,7 @@ Multiple monitoring_location_ids can be requested as a character vector.} \item{properties}{A vector of requested columns to be returned from the query. Available options are: -geometry, monitoring_location_id, agency_code, agency_name, monitoring_location_number, monitoring_location_name, district_code, country_code, country_name, state_code, state_name, county_code, county_name, minor_civil_division_code, site_type_code, site_type, hydrologic_unit_code, basin_code, altitude, altitude_accuracy, altitude_method_code, altitude_method_name, vertical_datum, vertical_datum_name, horizontal_positional_accuracy_code, horizontal_positional_accuracy, horizontal_position_method_code, horizontal_position_method_name, original_horizontal_datum, original_horizontal_datum_name, drainage_area, contributing_drainage_area, time_zone_abbreviation, uses_daylight_savings, construction_date, aquifer_code, national_aquifer_code, aquifer_type_code, well_constructed_depth, hole_constructed_depth, depth_source_code. +geometry, monitoring_location_id, agency_code, agency_name, monitoring_location_number, monitoring_location_name, district_code, country_code, country_name, state_code, state_name, county_code, county_name, minor_civil_division_code, site_type_code, site_type, hydrologic_unit_code, basin_code, altitude, altitude_accuracy, altitude_method_code, altitude_method_name, vertical_datum, vertical_datum_name, horizontal_positional_accuracy_code, horizontal_positional_accuracy, horizontal_position_method_code, horizontal_position_method_name, original_horizontal_datum, original_horizontal_datum_name, drainage_area, contributing_drainage_area, time_zone_abbreviation, uses_daylight_savings, construction_date, aquifer_code, national_aquifer_code, aquifer_type_code, well_constructed_depth, hole_constructed_depth, depth_source_code, revision_note, revision_created, revision_modified. The default (\code{NA}) will return all columns of the data.} \item{bbox}{Only features that have a geometry that intersects the bounding From 7439c406cd0804f455cb320c2cc3a6dfda33702c Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Tue, 31 Mar 2026 08:33:48 -0500 Subject: [PATCH 05/44] deal with missing x,y in csv --- R/walk_pages.R | 12 +++++++++--- tests/testthat/tests_userFriendly_fxns.R | 12 ++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/R/walk_pages.R b/R/walk_pages.R index 7b00adb65..6a5d5195c 100644 --- a/R/walk_pages.R +++ b/R/walk_pages.R @@ -137,7 +137,11 @@ get_csv <- function(req, limit) { if (httr2::resp_has_body(resp)) { return_list <- httr2::resp_body_string(resp) - df <- data.table::fread(input = return_list, data.table = FALSE) + df <- data.table::fread( + input = return_list, + data.table = FALSE, + colClasses = "text" + ) included_num_cols <- names(df)[names(df) %in% num_cols] @@ -148,8 +152,10 @@ get_csv <- function(req, limit) { if (skip_geo) { df <- df[, names(df)[!names(df) %in% c("x", "y")]] } else { - df <- sf::st_as_sf(df, coords = c("x", "y")) - sf::st_crs(df) <- 4269 + if (all(c("x", "y") %in% names(df))) { + df <- sf::st_as_sf(df, coords = c("x", "y")) + sf::st_crs(df) <- 4269 + } } if (nrow(df) == limit) { diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index befb1d3ab..016ae818a 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -585,6 +585,18 @@ test_that("bad_properties", { time = c("2021-01-01", "2022-01-01"), properties = c("value", "time", "blah") )) + + # No paging + dv_data_quick <- read_waterdata_daily( + monitoring_location_id = site, + parameter_code = "00060", + no_paging = TRUE + ) + + expect_type(dv_data_quick$parameter_code, "character") + expect_is(dv_data_quick$time, "Date") + expect_equal(dv_data_quick$parameter_code[1], "00060") + # Empty result: expect_message(read_waterdata_daily( monitoring_location_id = "USGS-02238500", From 85087d9ccd0b16bbf05356275219ba3d3276af54 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Wed, 15 Apr 2026 16:00:41 -0500 Subject: [PATCH 06/44] retry_on_failure = TRUE --- R/construct_api_requests.R | 1 + R/get_ogc_data.R | 16 ++++++++++------ R/walk_pages.R | 2 +- tests/testthat/tests_userFriendly_fxns.R | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/R/construct_api_requests.R b/R/construct_api_requests.R index c1cf483b5..131ce2f7d 100644 --- a/R/construct_api_requests.R +++ b/R/construct_api_requests.R @@ -597,6 +597,7 @@ basic_request <- function(url_base, format = "json") { httr2::req_headers(`Accept-Encoding` = c("compress", "gzip")) |> httr2::req_url_query(f = format, lang = "en-US") |> httr2::req_error(body = error_body) |> + httr2::req_retry(max_tries = 3, retry_on_failure = TRUE) |> httr2::req_timeout(seconds = 180) token <- Sys.getenv("API_USGS_PAT") diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index e0a915ac1..1955996a3 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -11,6 +11,12 @@ get_ogc_data <- function(args, output_id, service, ..., chunk_size = 250) { rlang::check_dots_empty() + if (is.na(args[["skipGeometry"]])) { + skipGeometry <- FALSE + } else { + skipGeometry <- args[["skipGeometry"]] + } + if (length(args[["monitoring_location_id"]]) > chunk_size) { ml_splits <- split( args[["monitoring_location_id"]], @@ -56,12 +62,6 @@ get_ogc_data <- function(args, output_id, service, ..., chunk_size = 250) { return_list <- walk_pages(req) } - if (is.na(args[["skipGeometry"]])) { - skipGeometry <- FALSE - } else { - skipGeometry <- args[["skipGeometry"]] - } - return_list <- deal_with_empty( return_list, properties, @@ -101,6 +101,10 @@ get_ogc_data <- function(args, output_id, service, ..., chunk_size = 250) { } } + if (!skipGeometry & "geometry" %in% names(return_list)) { + return_list <- sf::st_as_sf(return_list) + } + attr(return_list, "queryTime") <- Sys.time() return(return_list) } diff --git a/R/walk_pages.R b/R/walk_pages.R index 6a5d5195c..0ebb26e26 100644 --- a/R/walk_pages.R +++ b/R/walk_pages.R @@ -9,7 +9,7 @@ walk_pages <- function(req) { req, next_req = next_req_url, max_reqs = Inf, - on_error = "stop" + on_error = "return" ) return_list <- resps |> diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index 016ae818a..c5b685a91 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -588,7 +588,7 @@ test_that("bad_properties", { # No paging dv_data_quick <- read_waterdata_daily( - monitoring_location_id = site, + monitoring_location_id = "USGS-02238500", parameter_code = "00060", no_paging = TRUE ) From 99309d8c6f0d891baede97f39e32ef23f9068ca2 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Thu, 16 Apr 2026 10:55:17 -0500 Subject: [PATCH 07/44] added chunking to daily --- R/read_waterdata_daily.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/read_waterdata_daily.R b/R/read_waterdata_daily.R index a05186746..03ab72885 100644 --- a/R/read_waterdata_daily.R +++ b/R/read_waterdata_daily.R @@ -113,7 +113,7 @@ read_waterdata_daily <- function( output_id <- "daily_id" args <- mget(names(formals())) - return_list <- get_ogc_data(args, output_id, service) + return_list <- get_ogc_data(args, output_id, service, chunk_size = 20) return(return_list) } From 01d15f8bda632d774e70cfe1bbe8d7e67fbc6f37 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Thu, 16 Apr 2026 15:36:19 -0500 Subject: [PATCH 08/44] Adding chunk_size as named argument --- R/AAA.R | 4 ++++ R/get_ogc_data.R | 6 ++++-- R/read_waterdata_channel.R | 13 +++++++----- R/read_waterdata_combined_meta.R | 16 ++++++++++----- R/read_waterdata_continuous.R | 17 +++++++++------ R/read_waterdata_daily.R | 20 +++++++++++------- R/read_waterdata_field_measurements.R | 13 +++++++----- R/read_waterdata_field_meta.R | 19 ++++++++++++----- R/read_waterdata_latest_continuous.R | 16 ++++++++++----- R/read_waterdata_latest_daily.R | 16 ++++++++++----- R/read_waterdata_monitoring_location.R | 14 ++++++++++++- R/read_waterdata_ts_meta.R | 20 ++++++++++-------- man/read_waterdata_channel.Rd | 15 ++++++++------ man/read_waterdata_combined_meta.Rd | 17 ++++++++++----- man/read_waterdata_continuous.Rd | 18 ++++++++++------ man/read_waterdata_daily.Rd | 19 +++++++++++------ man/read_waterdata_field_measurements.Rd | 15 ++++++++------ man/read_waterdata_field_meta.Rd | 17 ++++++++++----- man/read_waterdata_latest_continuous.Rd | 15 ++++++++------ man/read_waterdata_latest_daily.Rd | 15 ++++++++------ man/read_waterdata_monitoring_location.Rd | 13 +++++++++++- man/read_waterdata_ts_meta.Rd | 25 +++++++++++------------ 22 files changed, 228 insertions(+), 115 deletions(-) diff --git a/R/AAA.R b/R/AAA.R index 73c38fbbb..c44cef74e 100644 --- a/R/AAA.R +++ b/R/AAA.R @@ -7,6 +7,10 @@ pkg.env <- new.env() options("dataRetrieval.api_version" = "v0") options("dataRetrieval.api_version_stat" = "v0") options("dataRetrieval.attach_request" = TRUE) + options("dataRetrieval.convertType" = TRUE) + options("dataRetrieval.no_paging" = FALSE) + options("dataRetrieval.site_chunk_size_meta" = 250) + options("dataRetrieval.site_chunk_size_data" = 10) services <- c( "server", diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index 1955996a3..6528590f1 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -4,11 +4,10 @@ #' @param output_id Name of id column to return #' @param service Endpoint name. #' @param \dots Used to force users to fully name the details argument. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. #' #' @noRd #' @return data.frame with attributes -get_ogc_data <- function(args, output_id, service, ..., chunk_size = 250) { +get_ogc_data <- function(args, output_id, service, ...) { rlang::check_dots_empty() if (is.na(args[["skipGeometry"]])) { @@ -17,6 +16,9 @@ get_ogc_data <- function(args, output_id, service, ..., chunk_size = 250) { skipGeometry <- args[["skipGeometry"]] } + chunk_size <- args[["chunk_size"]] + args[["chunk_size"]] <- NULL + if (length(args[["monitoring_location_id"]]) > chunk_size) { ml_splits <- split( args[["monitoring_location_id"]], diff --git a/R/read_waterdata_channel.R b/R/read_waterdata_channel.R index 62c0376c4..6e62542d4 100644 --- a/R/read_waterdata_channel.R +++ b/R/read_waterdata_channel.R @@ -48,12 +48,14 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @@ -95,8 +97,9 @@ read_waterdata_channel <- function( skipGeometry = NA, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "channel-measurements" output_id <- "channel_measurements_id" diff --git a/R/read_waterdata_combined_meta.R b/R/read_waterdata_combined_meta.R index d72d4471a..0de33074c 100644 --- a/R/read_waterdata_combined_meta.R +++ b/R/read_waterdata_combined_meta.R @@ -96,12 +96,17 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @@ -203,8 +208,9 @@ read_waterdata_combined_meta <- function( skipGeometry = NA, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "combined-metadata" output_id <- "combined_meta_id" diff --git a/R/read_waterdata_continuous.R b/R/read_waterdata_continuous.R index c63e6d87f..23a6131b2 100644 --- a/R/read_waterdata_continuous.R +++ b/R/read_waterdata_continuous.R @@ -37,13 +37,17 @@ #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector, and sepcifically -#' order the returning data frame by time and monitoring_location_id. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @details #' You can also use a vector of length 2 for any time queries (such as time @@ -130,8 +134,9 @@ read_waterdata_continuous <- function( last_modified = NA_character_, time = NA_character_, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "continuous" output_id <- "continuous_id" diff --git a/R/read_waterdata_daily.R b/R/read_waterdata_daily.R index 03ab72885..415ee951b 100644 --- a/R/read_waterdata_daily.R +++ b/R/read_waterdata_daily.R @@ -36,15 +36,20 @@ #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for +#' @param skipGeometry This optional parameter can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @@ -106,14 +111,15 @@ read_waterdata_daily <- function( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "daily" output_id <- "daily_id" args <- mget(names(formals())) - return_list <- get_ogc_data(args, output_id, service, chunk_size = 20) + return_list <- get_ogc_data(args, output_id, service) return(return_list) } diff --git a/R/read_waterdata_field_measurements.R b/R/read_waterdata_field_measurements.R index b4cb90f4a..e778b58b7 100644 --- a/R/read_waterdata_field_measurements.R +++ b/R/read_waterdata_field_measurements.R @@ -45,12 +45,14 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @@ -112,8 +114,9 @@ read_waterdata_field_measurements <- function( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "field-measurements" output_id <- "field_measurement_id" diff --git a/R/read_waterdata_field_meta.R b/R/read_waterdata_field_meta.R index b4df45b6a..c8b615173 100644 --- a/R/read_waterdata_field_meta.R +++ b/R/read_waterdata_field_meta.R @@ -38,12 +38,20 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param skipGeometry This option can be used to skip response geometries for +#' each feature. The returning object will be a data frame with no spatial +#' information. +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @@ -95,8 +103,9 @@ read_waterdata_field_meta <- function( skipGeometry = NA, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "field-measurements-metadata" output_id <- "field_series_id" diff --git a/R/read_waterdata_latest_continuous.R b/R/read_waterdata_latest_continuous.R index b015c9192..776dd7dd6 100644 --- a/R/read_waterdata_latest_continuous.R +++ b/R/read_waterdata_latest_continuous.R @@ -37,12 +37,17 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param skipGeometry This option can be used to skip response geometries for +#' each feature. The returning object will be a data frame with no spatial +#' information. +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @examplesIf is_dataRetrieval_user() @@ -93,8 +98,9 @@ read_waterdata_latest_continuous <- function( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "latest-continuous" output_id <- "latest_continuous_id" diff --git a/R/read_waterdata_latest_daily.R b/R/read_waterdata_latest_daily.R index dfb5deb38..9316efcd6 100644 --- a/R/read_waterdata_latest_daily.R +++ b/R/read_waterdata_latest_daily.R @@ -39,12 +39,17 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param skipGeometry This option can be used to skip response geometries for +#' each feature. The returning object will be a data frame with no spatial +#' information. +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @@ -90,8 +95,9 @@ read_waterdata_latest_daily <- function( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "latest-daily" output_id <- "latest_daily_id" diff --git a/R/read_waterdata_monitoring_location.R b/R/read_waterdata_monitoring_location.R index 7ec6d4b25..f232313e0 100644 --- a/R/read_waterdata_monitoring_location.R +++ b/R/read_waterdata_monitoring_location.R @@ -62,6 +62,17 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param skipGeometry This option can be used to skip response geometries for +#' each feature. The returning object will be a data frame with no spatial +#' information. +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will +#' be requested from a native csv format. This can be dangerous because the +#' data will cut off at 50,000 rows without indication that more data +#' is available. Use `TRUE` with caution. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' @examplesIf is_dataRetrieval_user() #' #' \donttest{ @@ -136,7 +147,8 @@ read_waterdata_monitoring_location <- function( properties = NA_character_, bbox = NA, limit = NA, - skipGeometry = NA + convertType = getOption("dataRetrieval.convertType"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "monitoring-locations" output_id <- "monitoring_location_id" diff --git a/R/read_waterdata_ts_meta.R b/R/read_waterdata_ts_meta.R index dd9777841..b83db9710 100644 --- a/R/read_waterdata_ts_meta.R +++ b/R/read_waterdata_ts_meta.R @@ -56,17 +56,19 @@ #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. -#' @param max_results The optional maximum number of rows to return. This value -#' must be less than the requested limit. #' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function #' will convert the data to dates and qualifier to string vector. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param no_paging logical, defaults to `FALSE`. If `TRUE`, the data will +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. +#' Setting to `NA` will eliminate any site chunking, giving users external control. #' #' @inherit read_waterdata_continuous details #' @@ -110,12 +112,12 @@ read_waterdata_ts_meta <- function( web_description = NA_character_, skipGeometry = NA, limit = NA, - max_results = NA, bbox = NA, begin = NA_character_, end = NA_character_, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service = "time-series-metadata" output_id <- "time_series_id" diff --git a/man/read_waterdata_channel.Rd b/man/read_waterdata_channel.Rd index 537a7fdf6..86594feb7 100644 --- a/man/read_waterdata_channel.Rd +++ b/man/read_waterdata_channel.Rd @@ -34,8 +34,9 @@ read_waterdata_channel( skipGeometry = NA, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) } \arguments{ @@ -135,13 +136,15 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} - -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ Channel measurements taken as part of streamflow field measurements. diff --git a/man/read_waterdata_combined_meta.Rd b/man/read_waterdata_combined_meta.Rd index f5f2e4de1..9ee28634b 100644 --- a/man/read_waterdata_combined_meta.Rd +++ b/man/read_waterdata_combined_meta.Rd @@ -65,8 +65,9 @@ read_waterdata_combined_meta( skipGeometry = NA, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } \arguments{ @@ -254,13 +255,19 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ This endpoint combines metadata from timeseries and field measurements collections by site. diff --git a/man/read_waterdata_continuous.Rd b/man/read_waterdata_continuous.Rd index 8b66cbb29..86312c5f5 100644 --- a/man/read_waterdata_continuous.Rd +++ b/man/read_waterdata_continuous.Rd @@ -16,8 +16,9 @@ read_waterdata_continuous( last_modified = NA_character_, time = NA_character_, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) } \arguments{ @@ -79,14 +80,19 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector, and sepcifically -order the returning data frame by time and monitoring_location_id.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ Continuous data are collected via automated sensors installed at a monitoring location. They are collected at a high frequency and often at a fixed 15-minute interval. Depending on the specific monitoring location, the data may be transmitted automatically via telemetry and be available on WDFN within minutes of collection, while other times the delivery of data may be delayed if the monitoring location does not have the capacity to automatically transmit data. Continuous data are described by parameter name and parameter code (pcode). These data might also be referred to as "instantaneous values" or "IV". diff --git a/man/read_waterdata_daily.Rd b/man/read_waterdata_daily.Rd index 9f3fa8a33..b42157d76 100644 --- a/man/read_waterdata_daily.Rd +++ b/man/read_waterdata_daily.Rd @@ -19,8 +19,9 @@ read_waterdata_daily( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) } \arguments{ @@ -67,7 +68,7 @@ Only features that have a \code{last_modified} that intersects the value of date See also Details below for more information.} -\item{skipGeometry}{This option can be used to skip response geometries for +\item{skipGeometry}{This optional parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial information.} @@ -97,13 +98,19 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ Daily data provide one data value to represent water conditions for the day. Throughout much of the history of the USGS, the primary water data available was daily data collected manually at the monitoring location once each day. With improved availability of computer storage and automated transmission of data, the daily data published today are generally a statistical summary or metric of the continuous data collected each day, such as the daily mean, minimum, or maximum value. Daily data are automatically calculated from the continuous data of the same parameter code and are described by parameter code and a statistic code. These data have also been referred to as “daily values” or “DV”. diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index 508d2c9cd..aa534416d 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -24,8 +24,9 @@ read_waterdata_field_measurements( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) } \arguments{ @@ -109,13 +110,15 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} - -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ Field measurements are physically measured values collected during a visit to the monitoring location. Field measurements consist of measurements of gage height and discharge, and readings of groundwater levels, and are primarily used as calibration readings for the automated sensors collecting continuous data. They are collected at a low frequency, and delivery of the data in WDFN may be delayed due to data processing time. diff --git a/man/read_waterdata_field_meta.Rd b/man/read_waterdata_field_meta.Rd index 56b9af00b..517fe78f8 100644 --- a/man/read_waterdata_field_meta.Rd +++ b/man/read_waterdata_field_meta.Rd @@ -16,8 +16,9 @@ read_waterdata_field_meta( skipGeometry = NA, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } \arguments{ @@ -100,13 +101,19 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ This endpoint provides metadata about field measurement collections, including when the earliest and most recent observations for a parameter occurred at a monitoring location and its units. diff --git a/man/read_waterdata_latest_continuous.Rd b/man/read_waterdata_latest_continuous.Rd index 14b211de5..281aa9295 100644 --- a/man/read_waterdata_latest_continuous.Rd +++ b/man/read_waterdata_latest_continuous.Rd @@ -18,8 +18,9 @@ read_waterdata_latest_continuous( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } \arguments{ @@ -92,13 +93,15 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} - -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ This endpoint provides the most recent observation for each time series of continuous data. Continuous data are collected via automated sensors installed at a monitoring location. They are collected at a high frequency and often at a fixed 15-minute interval. Depending on the specific monitoring location, the data may be transmitted automatically via telemetry and be available on WDFN within minutes of collection, while other times the delivery of data may be delayed if the monitoring location does not have the capacity to automatically transmit data. Continuous data are described by parameter name and parameter code. These data might also be referred to as "instantaneous values" or "IV" diff --git a/man/read_waterdata_latest_daily.Rd b/man/read_waterdata_latest_daily.Rd index a50f727e9..6a1111f06 100644 --- a/man/read_waterdata_latest_daily.Rd +++ b/man/read_waterdata_latest_daily.Rd @@ -19,8 +19,9 @@ read_waterdata_latest_daily( time = NA_character_, bbox = NA, limit = NA, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } \arguments{ @@ -97,13 +98,15 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} - -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ Daily data provide one data value to represent water conditions for the day. Throughout much of the history of the USGS, the primary water data available was daily data collected manually at the monitoring location once each day. With improved availability of computer storage and automated transmission of data, the daily data published today are generally a statistical summary or metric of the continuous data collected each day, such as the daily mean, minimum, or maximum value. Daily data are automatically calculated from the continuous data of the same parameter code and are described by parameter code and a statistic code. These data have also been referred to as “daily values” or “DV”. diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index b8e87b7d0..fb820b868 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -48,7 +48,8 @@ read_waterdata_monitoring_location( properties = NA_character_, bbox = NA, limit = NA, - skipGeometry = NA + convertType = getOption("dataRetrieval.convertType"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } \arguments{ @@ -152,9 +153,19 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} + \item{skipGeometry}{This option can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial information.} + +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will +be requested from a native csv format. This can be dangerous because the +data will cut off at 50,000 rows without indication that more data +is available. Use \code{TRUE} with caution.} } \description{ Location information is basic information about the monitoring location including the name, identifier, agency responsible for data collection, and the date the location was established. It also includes information about the type of location, such as stream, lake, or groundwater, and geographic information about the location, such as state, county, latitude and longitude, and hydrologic unit code (HUC). diff --git a/man/read_waterdata_ts_meta.Rd b/man/read_waterdata_ts_meta.Rd index 181b237f0..785d4713a 100644 --- a/man/read_waterdata_ts_meta.Rd +++ b/man/read_waterdata_ts_meta.Rd @@ -26,12 +26,12 @@ read_waterdata_ts_meta( web_description = NA_character_, skipGeometry = NA, limit = NA, - max_results = NA, bbox = NA, begin = NA_character_, end = NA_character_, - convertType = TRUE, - no_paging = FALSE + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } \arguments{ @@ -127,19 +127,12 @@ this system for 120 days.} \item{web_description}{A description of what this time series represents, as used by WDFN and other USGS data dissemination products.} -\item{skipGeometry}{This option can be used to skip response geometries for -each feature. The returning object will be a data frame with no spatial -information.} - \item{limit}{The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{max_results}{The optional maximum number of rows to return. This value -must be less than the requested limit.} - \item{bbox}{Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or @@ -151,13 +144,19 @@ Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{end}{This field contains the same information as "end_utc", but in the local time of the monitoring location. It is retained for backwards compatibility, but will be removed in V1 of these APIs.} -\item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function -will convert the data to dates and qualifier to string vector.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} -\item{no_paging}{logical, defaults to \code{FALSE}. If \code{TRUE}, the data will +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ Daily data and continuous measurements are grouped into time series, which represent a collection of observations of a single parameter, potentially aggregated using a standard statistic, at a single monitoring location. This endpoint provides metadata about those time series, including their operational thresholds, units of measurement, and when the earliest and most recent observations in a time series occurred. From ebc0c46c5ee2715ab62d5ad0452b22338266dbfa Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Thu, 16 Apr 2026 15:39:06 -0500 Subject: [PATCH 09/44] retry on error --- R/getWebServiceData.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/getWebServiceData.R b/R/getWebServiceData.R index 836a4ee3b..982b3a012 100644 --- a/R/getWebServiceData.R +++ b/R/getWebServiceData.R @@ -30,7 +30,11 @@ getWebServiceData <- function(obs_url, ...) { obs_url <- httr2::req_user_agent(obs_url, default_ua()) obs_url <- httr2::req_throttle(obs_url, rate = 30 / 60) - obs_url <- httr2::req_retry(obs_url, max_tries = 3, max_seconds = 180) + obs_url <- httr2::req_retry( + obs_url, + max_tries = 3, + retry_on_failure = TRUE + ) obs_url <- httr2::req_headers( obs_url, `Accept-Encoding` = c("compress", "gzip") From 2f04f3d0fc6e011f6871e915d51df6ddfb89ce27 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Thu, 16 Apr 2026 15:51:38 -0500 Subject: [PATCH 10/44] clean up docs --- R/read_waterdata_channel.R | 3 +++ R/read_waterdata_field_measurements.R | 3 +++ R/read_waterdata_latest_continuous.R | 3 +++ R/read_waterdata_latest_daily.R | 3 +++ R/read_waterdata_monitoring_location.R | 7 +------ man/read_waterdata_channel.Rd | 4 ++++ man/read_waterdata_field_measurements.Rd | 4 ++++ man/read_waterdata_latest_continuous.Rd | 4 ++++ man/read_waterdata_latest_daily.Rd | 4 ++++ man/read_waterdata_monitoring_location.Rd | 14 ++++---------- 10 files changed, 33 insertions(+), 16 deletions(-) diff --git a/R/read_waterdata_channel.R b/R/read_waterdata_channel.R index 6e62542d4..7b4b58f55 100644 --- a/R/read_waterdata_channel.R +++ b/R/read_waterdata_channel.R @@ -53,6 +53,9 @@ #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. #' @param chunk_size Number of monitoring_location_ids to chunk requests into. #' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. #' Setting to `NA` will eliminate any site chunking, giving users external control. diff --git a/R/read_waterdata_field_measurements.R b/R/read_waterdata_field_measurements.R index e778b58b7..8d7474373 100644 --- a/R/read_waterdata_field_measurements.R +++ b/R/read_waterdata_field_measurements.R @@ -50,6 +50,9 @@ #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. #' @param chunk_size Number of monitoring_location_ids to chunk requests into. #' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. #' Setting to `NA` will eliminate any site chunking, giving users external control. diff --git a/R/read_waterdata_latest_continuous.R b/R/read_waterdata_latest_continuous.R index 776dd7dd6..919f2cf82 100644 --- a/R/read_waterdata_latest_continuous.R +++ b/R/read_waterdata_latest_continuous.R @@ -45,6 +45,9 @@ #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. #' @param chunk_size Number of monitoring_location_ids to chunk requests into. #' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. #' Setting to `NA` will eliminate any site chunking, giving users external control. diff --git a/R/read_waterdata_latest_daily.R b/R/read_waterdata_latest_daily.R index 9316efcd6..5446401c0 100644 --- a/R/read_waterdata_latest_daily.R +++ b/R/read_waterdata_latest_daily.R @@ -47,6 +47,9 @@ #' be requested from a native csv format. This can be dangerous because the #' data will cut off at 50,000 rows without indication that more data #' is available. Use `TRUE` with caution. +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. #' @param chunk_size Number of monitoring_location_ids to chunk requests into. #' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. #' Setting to `NA` will eliminate any site chunking, giving users external control. diff --git a/R/read_waterdata_monitoring_location.R b/R/read_waterdata_monitoring_location.R index f232313e0..ca6dac497 100644 --- a/R/read_waterdata_monitoring_location.R +++ b/R/read_waterdata_monitoring_location.R @@ -65,11 +65,6 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. #' @param chunk_size Number of monitoring_location_ids to chunk requests into. #' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. #' Setting to `NA` will eliminate any site chunking, giving users external control. @@ -147,7 +142,7 @@ read_waterdata_monitoring_location <- function( properties = NA_character_, bbox = NA, limit = NA, - convertType = getOption("dataRetrieval.convertType"), + skipGeometry = NA, chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "monitoring-locations" diff --git a/man/read_waterdata_channel.Rd b/man/read_waterdata_channel.Rd index 86594feb7..873ab3197 100644 --- a/man/read_waterdata_channel.Rd +++ b/man/read_waterdata_channel.Rd @@ -136,6 +136,10 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} + \item{no_paging}{logical, defaults to FALSE. If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index aa534416d..c3f514d9b 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -110,6 +110,10 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} + \item{no_paging}{logical, defaults to FALSE. If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the diff --git a/man/read_waterdata_latest_continuous.Rd b/man/read_waterdata_latest_continuous.Rd index 281aa9295..b5712de7e 100644 --- a/man/read_waterdata_latest_continuous.Rd +++ b/man/read_waterdata_latest_continuous.Rd @@ -93,6 +93,10 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} + \item{no_paging}{logical, defaults to FALSE. If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the diff --git a/man/read_waterdata_latest_daily.Rd b/man/read_waterdata_latest_daily.Rd index 6a1111f06..af6fb4f47 100644 --- a/man/read_waterdata_latest_daily.Rd +++ b/man/read_waterdata_latest_daily.Rd @@ -98,6 +98,10 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} + \item{no_paging}{logical, defaults to FALSE. If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index fb820b868..10d7e4d94 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -48,7 +48,7 @@ read_waterdata_monitoring_location( properties = NA_character_, bbox = NA, limit = NA, - convertType = getOption("dataRetrieval.convertType"), + skipGeometry = NA, chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } @@ -153,19 +153,13 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} - \item{skipGeometry}{This option can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial information.} -\item{no_paging}{logical, defaults to FALSE. -If \code{TRUE}, the data will -be requested from a native csv format. This can be dangerous because the -data will cut off at 50,000 rows without indication that more data -is available. Use \code{TRUE} with caution.} +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +Default is . +Setting to \code{NA} will eliminate any site chunking, giving users external control.} } \description{ Location information is basic information about the monitoring location including the name, identifier, agency responsible for data collection, and the date the location was established. It also includes information about the type of location, such as stream, lake, or groundwater, and geographic information about the location, such as state, county, latitude and longitude, and hydrologic unit code (HUC). From 863bef590b75ae4ef35aeb422322fd0c9b4666d9 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Thu, 16 Apr 2026 15:56:03 -0500 Subject: [PATCH 11/44] Update version --- DESCRIPTION | 2 +- NEWS | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 97cf48a78..e79ce806d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: dataRetrieval Type: Package Title: Retrieval Functions for USGS and EPA Hydrology and Water Quality Data -Version: 2.7.24 +Version: 2.7.24.9000 Authors@R: c( person("Laura", "DeCicco", role = c("aut","cre"), email = "ldecicco@usgs.gov", diff --git a/NEWS b/NEWS index a8dc31176..54057c8bb 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +dataRetrieval 2.7.25 +=================== +* Increase flexibility of chunking by monitoring_location_id by +including it as an argument in each relevant function. +* Clean up deprecated code. + + dataRetrieval 2.7.24 =================== * Let dataRetrieval take care of chunking up requests by monitoring_location_id. From c31924aa8f17ff13874ae035e688b47cf5b62c4f Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Thu, 16 Apr 2026 16:50:21 -0500 Subject: [PATCH 12/44] Add ...s --- NEWS | 1 + R/get_ogc_data.R | 14 ++++++-------- R/read_waterdata_channel.R | 4 ++++ R/read_waterdata_combined_meta.R | 4 ++++ R/read_waterdata_continuous.R | 4 ++++ R/read_waterdata_daily.R | 4 ++++ R/read_waterdata_field_measurements.R | 4 ++++ R/read_waterdata_field_meta.R | 4 ++++ R/read_waterdata_latest_continuous.R | 4 ++++ R/read_waterdata_latest_daily.R | 4 ++++ R/read_waterdata_monitoring_location.R | 9 ++++++--- R/read_waterdata_parameter_codes.R | 7 ++++++- R/read_waterdata_ts_meta.R | 4 ++++ R/walk_pages.R | 8 ++++++-- man/read_waterdata_channel.Rd | 4 ++++ man/read_waterdata_combined_meta.Rd | 4 ++++ man/read_waterdata_continuous.Rd | 4 ++++ man/read_waterdata_daily.Rd | 4 ++++ man/read_waterdata_field_measurements.Rd | 4 ++++ man/read_waterdata_field_meta.Rd | 4 ++++ man/read_waterdata_latest_continuous.Rd | 4 ++++ man/read_waterdata_latest_daily.Rd | 4 ++++ man/read_waterdata_monitoring_location.Rd | 6 ++++++ man/read_waterdata_parameter_codes.Rd | 6 +++++- man/read_waterdata_ts_meta.Rd | 4 ++++ 25 files changed, 108 insertions(+), 15 deletions(-) diff --git a/NEWS b/NEWS index 54057c8bb..280ee62a9 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ dataRetrieval 2.7.25 * Increase flexibility of chunking by monitoring_location_id by including it as an argument in each relevant function. * Clean up deprecated code. +* Updated retry strategy to include retry_on_failure = TRUE. dataRetrieval 2.7.24 diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index 6528590f1..a72061085 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -3,13 +3,10 @@ #' @param args arguments from individual functions #' @param output_id Name of id column to return #' @param service Endpoint name. -#' @param \dots Used to force users to fully name the details argument. #' #' @noRd #' @return data.frame with attributes -get_ogc_data <- function(args, output_id, service, ...) { - rlang::check_dots_empty() - +get_ogc_data <- function(args, output_id, service) { if (is.na(args[["skipGeometry"]])) { skipGeometry <- FALSE } else { @@ -17,9 +14,11 @@ get_ogc_data <- function(args, output_id, service, ...) { } chunk_size <- args[["chunk_size"]] - args[["chunk_size"]] <- NULL - if (length(args[["monitoring_location_id"]]) > chunk_size) { + args[["..."]] <- NULL + if ( + !is.na(chunk_size) & length(args[["monitoring_location_id"]]) > chunk_size + ) { ml_splits <- split( args[["monitoring_location_id"]], ceiling(seq_along(args[["monitoring_location_id"]]) / chunk_size) @@ -40,8 +39,7 @@ get_ogc_data <- function(args, output_id, service, ...) { ignore.attr = TRUE )) } else { - args[["chunk_sites_by"]] <- NULL - + args[["chunk_size"]] <- NULL args <- switch_arg_id(args, id_name = output_id, service = service) args <- check_limits(args) diff --git a/R/read_waterdata_channel.R b/R/read_waterdata_channel.R index 7b4b58f55..d6aa544a8 100644 --- a/R/read_waterdata_channel.R +++ b/R/read_waterdata_channel.R @@ -48,6 +48,8 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. #' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the @@ -100,6 +102,7 @@ read_waterdata_channel <- function( skipGeometry = NA, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") @@ -107,6 +110,7 @@ read_waterdata_channel <- function( service <- "channel-measurements" output_id <- "channel_measurements_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/read_waterdata_combined_meta.R b/R/read_waterdata_combined_meta.R index 0de33074c..ad218a241 100644 --- a/R/read_waterdata_combined_meta.R +++ b/R/read_waterdata_combined_meta.R @@ -96,6 +96,8 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. #' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the @@ -208,12 +210,14 @@ read_waterdata_combined_meta <- function( skipGeometry = NA, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "combined-metadata" output_id <- "combined_meta_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/read_waterdata_continuous.R b/R/read_waterdata_continuous.R index 23a6131b2..63791d0f5 100644 --- a/R/read_waterdata_continuous.R +++ b/R/read_waterdata_continuous.R @@ -37,6 +37,8 @@ #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. #' If `TRUE`, the function will convert the data to dates, any qualifiers to string #' vector and reorder the returned data frame. @@ -134,12 +136,14 @@ read_waterdata_continuous <- function( last_modified = NA_character_, time = NA_character_, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "continuous" output_id <- "continuous_id" + rlang::check_dots_empty() args <- mget(names(formals())) args[["skipGeometry"]] <- TRUE diff --git a/R/read_waterdata_daily.R b/R/read_waterdata_daily.R index 415ee951b..f2b24345d 100644 --- a/R/read_waterdata_daily.R +++ b/R/read_waterdata_daily.R @@ -39,6 +39,8 @@ #' @param skipGeometry This optional parameter can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. #' If `TRUE`, the function will convert the data to dates, any qualifiers to string #' vector and reorder the returned data frame. @@ -111,12 +113,14 @@ read_waterdata_daily <- function( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "daily" output_id <- "daily_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/read_waterdata_field_measurements.R b/R/read_waterdata_field_measurements.R index 8d7474373..85dc4734d 100644 --- a/R/read_waterdata_field_measurements.R +++ b/R/read_waterdata_field_measurements.R @@ -45,6 +45,8 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. #' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the @@ -117,12 +119,14 @@ read_waterdata_field_measurements <- function( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "field-measurements" output_id <- "field_measurement_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/read_waterdata_field_meta.R b/R/read_waterdata_field_meta.R index c8b615173..2f037fdec 100644 --- a/R/read_waterdata_field_meta.R +++ b/R/read_waterdata_field_meta.R @@ -41,6 +41,8 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. #' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the @@ -103,12 +105,14 @@ read_waterdata_field_meta <- function( skipGeometry = NA, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "field-measurements-metadata" output_id <- "field_series_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/read_waterdata_latest_continuous.R b/R/read_waterdata_latest_continuous.R index 919f2cf82..cca3d22d0 100644 --- a/R/read_waterdata_latest_continuous.R +++ b/R/read_waterdata_latest_continuous.R @@ -40,6 +40,8 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. #' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the @@ -101,12 +103,14 @@ read_waterdata_latest_continuous <- function( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "latest-continuous" output_id <- "latest_continuous_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/read_waterdata_latest_daily.R b/R/read_waterdata_latest_daily.R index 5446401c0..88b63ca63 100644 --- a/R/read_waterdata_latest_daily.R +++ b/R/read_waterdata_latest_daily.R @@ -42,6 +42,8 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. #' If `TRUE`, the data will #' be requested from a native csv format. This can be dangerous because the @@ -98,12 +100,14 @@ read_waterdata_latest_daily <- function( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "latest-daily" output_id <- "latest_daily_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/read_waterdata_monitoring_location.R b/R/read_waterdata_monitoring_location.R index ca6dac497..e1c21590f 100644 --- a/R/read_waterdata_monitoring_location.R +++ b/R/read_waterdata_monitoring_location.R @@ -62,9 +62,8 @@ #' @param skipGeometry This option can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial #' information. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param chunk_size Number of monitoring_location_ids to chunk requests into. #' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. #' Setting to `NA` will eliminate any site chunking, giving users external control. @@ -97,6 +96,8 @@ #' #' bbox_vals = c(-94.00, 35.0, -93.5, 35.5) #' multi_site <- read_waterdata_monitoring_location(bbox = bbox_vals) +#' +#' #' } read_waterdata_monitoring_location <- function( monitoring_location_id = NA_character_, @@ -143,10 +144,12 @@ read_waterdata_monitoring_location <- function( bbox = NA, limit = NA, skipGeometry = NA, + ..., chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service <- "monitoring-locations" output_id <- "monitoring_location_id" + rlang::check_dots_empty() args <- mget(names(formals())) args[["convertType"]] <- FALSE diff --git a/R/read_waterdata_parameter_codes.R b/R/read_waterdata_parameter_codes.R index 6876c3197..553667141 100644 --- a/R/read_waterdata_parameter_codes.R +++ b/R/read_waterdata_parameter_codes.R @@ -23,6 +23,8 @@ #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @examplesIf is_dataRetrieval_user() #' #' \donttest{ @@ -56,16 +58,19 @@ read_waterdata_parameter_codes <- function( temperature_basis = NA_character_, epa_equivalence = NA_character_, properties = NA_character_, - limit = NA + limit = NA, + ... ) { service <- "parameter-codes" output_id <- "parameter_code" + rlang::check_dots_empty() args <- mget(names(formals())) args[["convertType"]] <- FALSE args[["skipGeometry"]] <- TRUE args[["bbox"]] <- NA args[["no_paging"]] <- FALSE # drops id if TRUE + args[["chunk_size"]] <- NA return_list <- get_ogc_data( args = args, diff --git a/R/read_waterdata_ts_meta.R b/R/read_waterdata_ts_meta.R index b83db9710..b66173a60 100644 --- a/R/read_waterdata_ts_meta.R +++ b/R/read_waterdata_ts_meta.R @@ -56,6 +56,8 @@ #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function #' will convert the data to dates and qualifier to string vector. #' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. @@ -115,12 +117,14 @@ read_waterdata_ts_meta <- function( bbox = NA, begin = NA_character_, end = NA_character_, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { service = "time-series-metadata" output_id <- "time_series_id" + rlang::check_dots_empty() args <- mget(names(formals())) return_list <- get_ogc_data(args, output_id, service) diff --git a/R/walk_pages.R b/R/walk_pages.R index 682ce5367..99f21a652 100644 --- a/R/walk_pages.R +++ b/R/walk_pages.R @@ -9,9 +9,11 @@ walk_pages <- function(req) { req, next_req = next_req_url, max_reqs = Inf, - on_error = "return" + on_error = "stop" ) + failures <- resps |> httr2::resps_failures() + return_list <- resps |> httr2::resps_successes() |> httr2::resps_data(\(resp) get_resp_data(resp)) @@ -143,7 +145,9 @@ ensure all requested data is returned." coerce_num_cols <- function(df, is_sf = FALSE) { included_num_cols <- names(df)[names(df) %in% num_cols] - if (length(included_num_cols) == 0) return(df) + if (length(included_num_cols) == 0) { + return(df) + } check_df <- if (is_sf) { sf::st_drop_geometry(df[, included_num_cols, drop = FALSE]) diff --git a/man/read_waterdata_channel.Rd b/man/read_waterdata_channel.Rd index 873ab3197..02583eccd 100644 --- a/man/read_waterdata_channel.Rd +++ b/man/read_waterdata_channel.Rd @@ -34,6 +34,7 @@ read_waterdata_channel( skipGeometry = NA, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") @@ -136,6 +137,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_combined_meta.Rd b/man/read_waterdata_combined_meta.Rd index 9ee28634b..4fa522c2e 100644 --- a/man/read_waterdata_combined_meta.Rd +++ b/man/read_waterdata_combined_meta.Rd @@ -65,6 +65,7 @@ read_waterdata_combined_meta( skipGeometry = NA, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") @@ -255,6 +256,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_continuous.Rd b/man/read_waterdata_continuous.Rd index 86312c5f5..969f3297a 100644 --- a/man/read_waterdata_continuous.Rd +++ b/man/read_waterdata_continuous.Rd @@ -16,6 +16,7 @@ read_waterdata_continuous( last_modified = NA_character_, time = NA_character_, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") @@ -80,6 +81,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_daily.Rd b/man/read_waterdata_daily.Rd index b42157d76..fcdca928d 100644 --- a/man/read_waterdata_daily.Rd +++ b/man/read_waterdata_daily.Rd @@ -19,6 +19,7 @@ read_waterdata_daily( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") @@ -98,6 +99,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index c3f514d9b..73d293afd 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -24,6 +24,7 @@ read_waterdata_field_measurements( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") @@ -110,6 +111,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_field_meta.Rd b/man/read_waterdata_field_meta.Rd index 517fe78f8..cee27812b 100644 --- a/man/read_waterdata_field_meta.Rd +++ b/man/read_waterdata_field_meta.Rd @@ -16,6 +16,7 @@ read_waterdata_field_meta( skipGeometry = NA, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") @@ -101,6 +102,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_latest_continuous.Rd b/man/read_waterdata_latest_continuous.Rd index b5712de7e..03a9c1d87 100644 --- a/man/read_waterdata_latest_continuous.Rd +++ b/man/read_waterdata_latest_continuous.Rd @@ -18,6 +18,7 @@ read_waterdata_latest_continuous( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") @@ -93,6 +94,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_latest_daily.Rd b/man/read_waterdata_latest_daily.Rd index af6fb4f47..c6e016473 100644 --- a/man/read_waterdata_latest_daily.Rd +++ b/man/read_waterdata_latest_daily.Rd @@ -19,6 +19,7 @@ read_waterdata_latest_daily( time = NA_character_, bbox = NA, limit = NA, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") @@ -98,6 +99,9 @@ limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index 10d7e4d94..b6ded6627 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -49,6 +49,7 @@ read_waterdata_monitoring_location( bbox = NA, limit = NA, skipGeometry = NA, + ..., chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) } @@ -157,6 +158,9 @@ allowable limit for the service.} each feature. The returning object will be a data frame with no spatial information.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. Default is . Setting to \code{NA} will eliminate any site chunking, giving users external control.} @@ -194,6 +198,8 @@ site_info_no_sf <- read_waterdata_monitoring_location( bbox_vals = c(-94.00, 35.0, -93.5, 35.5) multi_site <- read_waterdata_monitoring_location(bbox = bbox_vals) + + } \dontshow{\}) # examplesIf} } diff --git a/man/read_waterdata_parameter_codes.Rd b/man/read_waterdata_parameter_codes.Rd index 95f9d0901..2b52d0ce8 100644 --- a/man/read_waterdata_parameter_codes.Rd +++ b/man/read_waterdata_parameter_codes.Rd @@ -17,7 +17,8 @@ read_waterdata_parameter_codes( temperature_basis = NA_character_, epa_equivalence = NA_character_, properties = NA_character_, - limit = NA + limit = NA, + ... ) } \arguments{ @@ -53,6 +54,9 @@ selected features that should be returned in each page. The maximum allowable limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} + +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} } \description{ Parameter codes are 5-digit codes and associated descriptions used to identify the constituent measured and the units of measure. Some parameter code definitions include information about the sampling matrix, fraction, and methods used to measure the constituent. Some parameters are fixed-value (fxd) numeric codes having textual meaning (for example: parameter code 00041 is a weather code parameter, code of 60 means rain), but more commonly represent a numeric value for chemical, physical, or biological data. diff --git a/man/read_waterdata_ts_meta.Rd b/man/read_waterdata_ts_meta.Rd index 785d4713a..fdc2a101b 100644 --- a/man/read_waterdata_ts_meta.Rd +++ b/man/read_waterdata_ts_meta.Rd @@ -29,6 +29,7 @@ read_waterdata_ts_meta( bbox = NA, begin = NA_character_, end = NA_character_, + ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") @@ -144,6 +145,9 @@ Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{end}{This field contains the same information as "end_utc", but in the local time of the monitoring location. It is retained for backwards compatibility, but will be removed in V1 of these APIs.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} From 522786e0c23fd6cc224fe7425b2bf0c57a17c396 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 17 Apr 2026 16:46:57 -0500 Subject: [PATCH 13/44] Rejigger parameters --- R/AAA.R | 1 + R/construct_api_requests.R | 45 +++++---- R/get_ogc_data.R | 117 +++++++++++++++++----- R/read_waterdata.R | 41 ++++---- R/read_waterdata_channel.R | 31 +----- R/read_waterdata_combined_meta.R | 32 +----- R/read_waterdata_continuous.R | 22 +--- R/read_waterdata_daily.R | 35 ++----- R/read_waterdata_field_measurements.R | 37 ++----- R/read_waterdata_field_meta.R | 33 +----- R/read_waterdata_latest_continuous.R | 37 +------ R/read_waterdata_latest_daily.R | 39 ++------ R/read_waterdata_metadata.R | 19 +++- R/read_waterdata_monitoring_location.R | 27 ++--- R/read_waterdata_parameter_codes.R | 14 ++- R/read_waterdata_ts_meta.R | 37 ++----- docker/Dockerfile | 2 +- man/check_arguments_api.Rd | 24 +++++ man/check_arguments_non_api.Rd | 50 +++++++++ man/construct_api_requests.Rd | 21 +--- man/read_waterdata.Rd | 9 +- man/read_waterdata_channel.Rd | 27 ++--- man/read_waterdata_combined_meta.Rd | 27 ++--- man/read_waterdata_continuous.Rd | 28 ++++-- man/read_waterdata_daily.Rd | 34 ++++--- man/read_waterdata_field_measurements.Rd | 37 ++++--- man/read_waterdata_field_meta.Rd | 15 +-- man/read_waterdata_latest_continuous.Rd | 34 ++++--- man/read_waterdata_latest_daily.Rd | 36 ++++--- man/read_waterdata_metadata.Rd | 15 ++- man/read_waterdata_monitoring_location.Rd | 37 +++++-- man/read_waterdata_parameter_codes.Rd | 13 ++- man/read_waterdata_ts_meta.Rd | 34 +++++-- tests/testthat/tests_userFriendly_fxns.R | 42 ++++++-- 34 files changed, 557 insertions(+), 495 deletions(-) create mode 100644 man/check_arguments_api.Rd create mode 100644 man/check_arguments_non_api.Rd diff --git a/R/AAA.R b/R/AAA.R index 0abcb436e..71172f1a0 100644 --- a/R/AAA.R +++ b/R/AAA.R @@ -11,6 +11,7 @@ pkg.env <- new.env() options("dataRetrieval.no_paging" = FALSE) options("dataRetrieval.site_chunk_size_meta" = 250) options("dataRetrieval.site_chunk_size_data" = 10) + options("dataRetrieval.limit" = 50000) services <- c( "server", diff --git a/R/construct_api_requests.R b/R/construct_api_requests.R index 7396630bb..98a921669 100644 --- a/R/construct_api_requests.R +++ b/R/construct_api_requests.R @@ -13,9 +13,6 @@ #' @param properties The properties that should be included for each feature. The #' parameter value is a comma-separated list of property names which depend on the #' service being called. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. #' @keywords internal #' @examples #' site <- "USGS-02238500" @@ -38,16 +35,16 @@ #' construct_api_requests <- function( service, - properties = NA_character_, bbox = NA, - skipGeometry = FALSE, - no_paging = FALSE, ... ) { POST <- FALSE full_list <- list(...) + do.call(check_arguments_non_api, full_list) + do.call(check_arguments_api, full_list) + time_periods <- c( "last_modified", "datetime", @@ -58,6 +55,25 @@ construct_api_requests <- function( "end_utc" ) + full_list <- switch_arg_id( + full_list, + id_name = full_list[["output_id"]], + service = service + ) + + # Clean out non-API arguments: + properties <- switch_properties_id( + properties = full_list[["properties"]], + id = full_list[["output_id"]] + ) + full_list[["properties"]] <- NULL + full_list[["output_id"]] <- NULL + full_list[["chunk_size"]] <- NULL + full_list[["convertType"]] <- NULL + full_list[["attach_request"]] <- NULL + no_paging <- full_list[["no_paging"]] + full_list[["no_paging"]] <- NULL + if (any(time_periods %in% names(full_list))) { for (i in time_periods[time_periods %in% names(full_list)]) { dates <- FALSE @@ -74,9 +90,10 @@ construct_api_requests <- function( "begin", "end", "time", - "limit", "begin_utc", - "end_utc" + "end_utc", + "limit", + "skipGeometry" ) comma_params <- c( @@ -110,6 +127,7 @@ construct_api_requests <- function( Negate(anyNA), lapply(full_list[comma_params], function(x) x[!is.na(x)]) ) + comma_params_filtered <- comma_params_filtered[ !sapply(comma_params_filtered, is.null) ] @@ -129,8 +147,6 @@ construct_api_requests <- function( get_list <- c(single_params_filtered, comma_params_filtered) } - get_list[["skipGeometry"]] <- skipGeometry - get_list <- get_list[!is.na(get_list)] format_type <- ifelse(isTRUE(no_paging), "csv", "json") @@ -207,15 +223,6 @@ construct_api_requests <- function( return(baseURL) } -check_limits <- function(args) { - current_api_limit <- 50000 - - if (is.na(args[["limit"]])) { - args[["limit"]] <- current_api_limit - } - - return(args) -} #' Setup the request for the OGC API requests #' diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index a72061085..5d4badec7 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -7,15 +7,9 @@ #' @noRd #' @return data.frame with attributes get_ogc_data <- function(args, output_id, service) { - if (is.na(args[["skipGeometry"]])) { - skipGeometry <- FALSE - } else { - skipGeometry <- args[["skipGeometry"]] - } - chunk_size <- args[["chunk_size"]] - args[["..."]] <- NULL + if ( !is.na(chunk_size) & length(args[["monitoring_location_id"]]) > chunk_size ) { @@ -39,15 +33,7 @@ get_ogc_data <- function(args, output_id, service) { ignore.attr = TRUE )) } else { - args[["chunk_size"]] <- NULL - args <- switch_arg_id(args, id_name = output_id, service = service) - - args <- check_limits(args) - - properties <- args[["properties"]] - args[["properties"]] <- switch_properties_id(properties, id = output_id) - convertType <- args[["convertType"]] - args[["convertType"]] <- NULL + args[["output_id"]] <- output_id args[["service"]] <- service req <- do.call(construct_api_requests, args) @@ -64,16 +50,16 @@ get_ogc_data <- function(args, output_id, service) { return_list <- deal_with_empty( return_list, - properties, + args[["properties"]], service, - skipGeometry, - convertType, + isTRUE(args[["skipGeometry"]]), + args[["convertType"]], no_paging ) - return_list <- rejigger_cols(return_list, properties, output_id) + return_list <- rejigger_cols(return_list, args[["properties"]], output_id) - if (convertType) { + if (args[["convertType"]]) { return_list <- cleanup_cols(return_list, service) return_list <- order_results(return_list) @@ -96,12 +82,12 @@ get_ogc_data <- function(args, output_id, service) { return_list <- move_id_col(return_list, output_id) } - if (getOption("dataRetrieval.attach_request")) { + if (args[["attach_request"]]) { attr(return_list, "request") <- req } } - if (!skipGeometry & "geometry" %in% names(return_list)) { + if (!isTRUE(args[["skipGeometry"]]) & "geometry" %in% names(return_list)) { return_list <- sf::st_as_sf(return_list) } @@ -183,3 +169,88 @@ switch_properties_id <- function(properties, id) { return(properties) } + +#' Check non-API arguments +#' +#' Function to check types and create parameter descriptions. +#' +#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. +#' If `TRUE`, the function will convert the data to dates, any qualifiers to string +#' vector and reorder the returned data frame. +#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. +#' If `TRUE`, the data will +#' be requested from a native csv format. This can be dangerous because the +#' data will cut off at 50,000 rows without indication that more data +#' is available. Use `TRUE` with caution. +#' @param limit numeric, The optional limit parameter is used to control the subset of the +#' selected features that should be returned in each page. The maximum allowable +#' limit is 50000. It may be beneficial to set this number lower if your internet +#' connection is spotty. The default (`NA`) will set the limit to the maximum +#' allowable limit for the service. +#' @param attach_request logical, defaults to `r getOption("dataRetrieval.attach_request")`. +#' If set to `TRUE`, the full request sent to the Water Data API is attached +#' as an attribute to the data set. +#' @param chunk_size Number of monitoring_location_ids to chunk requests into. +#' The default for functions that don't generally return long-term data records +#' is `r getOption("dataRetrieval.site_chunk_size_meta")`, while +#' the default for time series functions is +#' `r getOption("dataRetrieval.site_chunk_size_data")`. +#' Setting to `NA` will eliminate site chunking, giving users full control. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. +#' @keywords internal +check_arguments_non_api <- function( + convertType, + no_paging, + limit, + attach_request, + chunk_size, + ... +) { + if (!is.na(convertType) & !is.logical(convertType)) { + stop("convertType should be a logical TRUE/FALSE") + } + + if (!is.na(no_paging) & !is.logical(no_paging)) { + stop("no_paging should be a logical TRUE/FALSE") + } + + if (!is.na(attach_request) & !is.logical(attach_request)) { + stop("attach_request should be a logical TRUE/FALSE") + } + + if (!is.na(limit) & !is.numeric(limit)) { + stop("limit should be an integer") + } + + if (!is.na(chunk_size) & !is.numeric(chunk_size)) { + stop("chunk_size should be an integer") + } +} + +#' Check other arguments +#' +#' Additional functions to check types and create parameter descriptions. +#' +#' @param bbox Only features that have a geometry that intersects the bounding +#' box are selected.The bounding box is provided as four or six numbers, depending +#' on whether the coordinate reference system includes a vertical axis (height or +#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric +#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). +#' @param skipGeometry This parameter can be used to skip response geometries for +#' each feature. The returning object will be a data frame with no spatial +#' information. The default `NA` will not specify the argument in the request. +#' +#' @keywords internal +check_arguments_api <- function(bbox, skipGeometry, ...) { + if (!is.na(skipGeometry) & !is.logical(skipGeometry)) { + stop("skipGeometry should be a logical TRUE/FALSE") + } + + if (!all(is.na(bbox))) { + if (!length(bbox) %in% c(1, 4)) { + stop("bbox is not set up correctly") + } + } +} diff --git a/R/read_waterdata.R b/R/read_waterdata.R index 2a5df774b..02fcead7b 100644 --- a/R/read_waterdata.R +++ b/R/read_waterdata.R @@ -51,12 +51,26 @@ #' CQL = cql_huc_wildcard) #' #' } -read_waterdata <- function(service, CQL, ..., convertType = TRUE) { +read_waterdata <- function( + service, + CQL, + ..., + convertType = getOption("dataRetrieval.convertType"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") +) { match.arg(service, pkg.env$api_endpoints) args <- list(...) - output_id <- switch( + args[["convertType"]] <- convertType + args[["limit"]] <- limit + args[["attach_request"]] <- attach_request + args[["bbox"]] <- NA + args[["no_paging"]] <- FALSE # drops id if TRUE + args[["chunk_size"]] <- NA # Chunking doesn't make sense. + + args[["output_id"]] <- switch( service, "daily" = "daily_id", "latest-daily" = "latest_daily_id", @@ -72,12 +86,7 @@ read_waterdata <- function(service, CQL, ..., convertType = TRUE) { args[["properties"]] <- NA_character_ } - if (!"limit" %in% names(args)) { - args[["limit"]] <- NA_character_ - } - args[["service"]] <- service - args <- check_limits(args) data_req <- suppressWarnings(do.call(construct_api_requests, args)) @@ -87,28 +96,24 @@ read_waterdata <- function(service, CQL, ..., convertType = TRUE) { return_list <- walk_pages(data_req) - if (is.null(args[["skipGeometry"]])) { - skipGeometry <- FALSE - } else if (is.na(args[["skipGeometry"]])) { - skipGeometry <- FALSE - } else { - skipGeometry <- args[["skipGeometry"]] - } - return_list <- deal_with_empty( return_list, args[["properties"]], service, - skipGeometry, + isTRUE(args[["skipGeometry"]]), convertType ) - return_list <- rejigger_cols(return_list, args[["properties"]], output_id) + return_list <- rejigger_cols( + return_list, + args[["properties"]], + args[["output_id"]] + ) if (convertType) { return_list <- cleanup_cols(return_list, service) return_list <- order_results(return_list) - return_list <- move_id_col(return_list, output_id) + return_list <- move_id_col(return_list, args[["output_id"]]) } return(return_list) diff --git a/R/read_waterdata_channel.R b/R/read_waterdata_channel.R index d6aa544a8..fecfc149b 100644 --- a/R/read_waterdata_channel.R +++ b/R/read_waterdata_channel.R @@ -34,33 +34,8 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("channel-measurements", "channel_measurements_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' #' @inherit read_waterdata_continuous details #' @@ -101,10 +76,10 @@ read_waterdata_channel <- function( properties = NA_character_, skipGeometry = NA, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), + limit = getOption("dataRetrieval.limit"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) { service <- "channel-measurements" diff --git a/R/read_waterdata_combined_meta.R b/R/read_waterdata_combined_meta.R index ad218a241..6926c761f 100644 --- a/R/read_waterdata_combined_meta.R +++ b/R/read_waterdata_combined_meta.R @@ -82,34 +82,8 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("combined-metadata", "field_measurement_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. -#' +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' @inherit read_waterdata_continuous details #' #' @@ -209,9 +183,9 @@ read_waterdata_combined_meta <- function( properties = NA_character_, skipGeometry = NA, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), + limit = getOption("dataRetrieval.limit"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) { diff --git a/R/read_waterdata_continuous.R b/R/read_waterdata_continuous.R index 63791d0f5..d9291e560 100644 --- a/R/read_waterdata_continuous.R +++ b/R/read_waterdata_continuous.R @@ -32,24 +32,9 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("continuous", "continuous_id")`. #' The default (`NA`) will return all columns of the data. -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. #' @param \dots Not used. Included to help differentiate official Water Data API arguments #' from more seldom used, optional dataRetrieval-specific arguments. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' @inheritParams check_arguments_non_api #' #' @details #' You can also use a vector of length 2 for any time queries (such as time @@ -135,11 +120,12 @@ read_waterdata_continuous <- function( value = NA, last_modified = NA_character_, time = NA_character_, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), + limit = getOption("dataRetrieval.limit"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "continuous" output_id <- "continuous_id" diff --git a/R/read_waterdata_daily.R b/R/read_waterdata_daily.R index f2b24345d..d13072c8f 100644 --- a/R/read_waterdata_daily.R +++ b/R/read_waterdata_daily.R @@ -25,33 +25,9 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("daily", "daily_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This optional parameter can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' #' @inherit read_waterdata_continuous details #' @@ -112,11 +88,12 @@ read_waterdata_daily <- function( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "daily" output_id <- "daily_id" diff --git a/R/read_waterdata_field_measurements.R b/R/read_waterdata_field_measurements.R index 85dc4734d..a65a2437f 100644 --- a/R/read_waterdata_field_measurements.R +++ b/R/read_waterdata_field_measurements.R @@ -31,33 +31,8 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("field-measurements", "field_measurement_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_data")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' #' @inherit read_waterdata_continuous details #' @@ -90,6 +65,9 @@ #' old_df <- read_waterdata_field_measurements(monitoring_location_id = "USGS-425957088141001", #' time = c("1980-01-01", NA)) #' +#' new_df <- read_waterdata_field_measurements(monitoring_location_id = "USGS-425957088141001", +#' time = c(NA, "2020-01-01")) +#' #' surface_water <- read_waterdata_field_measurements( #' monitoring_location_id = c("USGS-07069000", #' "USGS-07064000", @@ -118,11 +96,12 @@ read_waterdata_field_measurements <- function( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + limit = getOption("dataRetrieval.limit"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "field-measurements" output_id <- "field_measurement_id" diff --git a/R/read_waterdata_field_meta.R b/R/read_waterdata_field_meta.R index 2f037fdec..f002dba09 100644 --- a/R/read_waterdata_field_meta.R +++ b/R/read_waterdata_field_meta.R @@ -24,36 +24,9 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("field-measurements-metadata", "field_measurement_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' #' @inherit read_waterdata_continuous details #' diff --git a/R/read_waterdata_latest_continuous.R b/R/read_waterdata_latest_continuous.R index cca3d22d0..e450561ae 100644 --- a/R/read_waterdata_latest_continuous.R +++ b/R/read_waterdata_latest_continuous.R @@ -23,36 +23,8 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("latest-continuous", "latest_continuous_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' #' @inherit read_waterdata_continuous details #' @examplesIf is_dataRetrieval_user() @@ -102,11 +74,12 @@ read_waterdata_latest_continuous <- function( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "latest-continuous" output_id <- "latest_continuous_id" diff --git a/R/read_waterdata_latest_daily.R b/R/read_waterdata_latest_daily.R index 88b63ca63..85bc6c11f 100644 --- a/R/read_waterdata_latest_daily.R +++ b/R/read_waterdata_latest_daily.R @@ -25,37 +25,9 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("latest-daily", "latest_daily_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. #' +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' @inherit read_waterdata_continuous details #' #' @examplesIf is_dataRetrieval_user() @@ -81,7 +53,7 @@ #' skipGeometry = TRUE) #' #' multi_site <- read_waterdata_latest_daily(monitoring_location_id = c("USGS-01491000", -#' "USGS-01645000"), +#' "USGS-01645000"), #' parameter_code = c("00060", "00010")) #' #' } @@ -99,11 +71,12 @@ read_waterdata_latest_daily <- function( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + limit = getOption("dataRetrieval.limit"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "latest-daily" output_id <- "latest_daily_id" diff --git a/R/read_waterdata_metadata.R b/R/read_waterdata_metadata.R index f2c673701..9cadec62c 100644 --- a/R/read_waterdata_metadata.R +++ b/R/read_waterdata_metadata.R @@ -10,13 +10,16 @@ #' "coordinate-method-codes", "hydrologic-unit-codes", "medium-codes", #' "national-aquifer-codes", "reliability-codes", "site-types", "statistic-codes", #' "topographic-codes", "time-zone-codes". +#' @param \dots Optional arguments to pass to the query. Available parameters +#' can be found with the \code{get_ogc_params} function. #' @param limit The optional limit parameter is used to control the subset of the #' selected features that should be returned in each page. The maximum allowable #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. -#' @param \dots Optional arguments to pass to the query. Available parameters -#' can be found with the \code{get_ogc_params} function. +#' @param attach_request logical, defaults to `r getOption("dataRetrieval.attach_request")`. +#' If set to `TRUE`, the full request sent to the Water Data API is attached +#' as an attribute to the data set. #' @examplesIf is_dataRetrieval_user() #' #' \donttest{ @@ -42,7 +45,12 @@ #' time_zone_limited <- read_waterdata_metadata("time-zone-codes", #' time_zone_description = c("Alaska", "Hawaii", "Pacific North America")) #' } -read_waterdata_metadata <- function(collection, limit = NA, ...) { +read_waterdata_metadata <- function( + collection, + ..., + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") +) { match.arg(collection, pkg.env$metadata) output_id <- names(pkg.env$metadata)[pkg.env$metadata == collection] @@ -57,12 +65,13 @@ read_waterdata_metadata <- function(collection, limit = NA, ...) { stop(paste0("Unknown argument: ", wrong_args)) } } - + args[["attach_request"]] <- attach_request args[["limit"]] <- limit args[["convertType"]] <- FALSE - args[["skipGeometry"]] <- TRUE + args[["skipGeometry"]] <- NA args[["bbox"]] <- NA args[["no_paging"]] <- FALSE # drops id if TRUE + args[["chunk_size"]] <- NA # Chunking doesn't make sense. return_list <- get_ogc_data( args = args, diff --git a/R/read_waterdata_monitoring_location.R b/R/read_waterdata_monitoring_location.R index e1c21590f..8561f98a8 100644 --- a/R/read_waterdata_monitoring_location.R +++ b/R/read_waterdata_monitoring_location.R @@ -48,25 +48,8 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("monitoring-locations", "monitoring_location_id")`. #' The default (`NA`) will return all columns of the data. -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param skipGeometry This option can be used to skip response geometries for -#' each feature. The returning object will be a data frame with no spatial -#' information. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' @examplesIf is_dataRetrieval_user() #' #' \donttest{ @@ -142,10 +125,12 @@ read_waterdata_monitoring_location <- function( depth_source_code = NA_character_, properties = NA_character_, bbox = NA, - limit = NA, skipGeometry = NA, ..., - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + limit = getOption("dataRetrieval.limit"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "monitoring-locations" output_id <- "monitoring_location_id" diff --git a/R/read_waterdata_parameter_codes.R b/R/read_waterdata_parameter_codes.R index 553667141..c098e3999 100644 --- a/R/read_waterdata_parameter_codes.R +++ b/R/read_waterdata_parameter_codes.R @@ -18,13 +18,16 @@ #' Available options are: #' `r dataRetrieval:::get_properties_for_docs("parameter-codes", "parameter_code_id")`. #' The default (`NA`) will return all columns of the data. +#' @param \dots Not used. Included to help differentiate official Water Data API arguments +#' from more seldom used, optional dataRetrieval-specific arguments. #' @param limit The optional limit parameter is used to control the subset of the #' selected features that should be returned in each page. The maximum allowable #' limit is 50000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. +#' @param attach_request logical, defaults to `r getOption("dataRetrieval.attach_request")`. +#' If set to `TRUE`, the full request sent to the Water Data API is attached +#' as an attribute to the data set. #' @examplesIf is_dataRetrieval_user() #' #' \donttest{ @@ -58,8 +61,9 @@ read_waterdata_parameter_codes <- function( temperature_basis = NA_character_, epa_equivalence = NA_character_, properties = NA_character_, - limit = NA, - ... + ..., + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "parameter-codes" output_id <- "parameter_code" @@ -67,7 +71,7 @@ read_waterdata_parameter_codes <- function( args <- mget(names(formals())) args[["convertType"]] <- FALSE - args[["skipGeometry"]] <- TRUE + args[["skipGeometry"]] <- NA args[["bbox"]] <- NA args[["no_paging"]] <- FALSE # drops id if TRUE args[["chunk_size"]] <- NA diff --git a/R/read_waterdata_ts_meta.R b/R/read_waterdata_ts_meta.R index b66173a60..b3f869dec 100644 --- a/R/read_waterdata_ts_meta.R +++ b/R/read_waterdata_ts_meta.R @@ -45,32 +45,8 @@ #' `r dataRetrieval:::get_properties_for_docs("time-series-metadata", "time_series_id")`. #' The default (`NA`) will return all columns of the data. #' @param time_series_id `r get_ogc_params("time-series-metadata")$id` -#' @param bbox Only features that have a geometry that intersects the bounding -#' box are selected.The bounding box is provided as four or six numbers, depending -#' on whether the coordinate reference system includes a vertical axis (height or -#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, -#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). -#' @param limit The optional limit parameter is used to control the subset of the -#' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet -#' connection is spotty. The default (`NA`) will set the limit to the maximum -#' allowable limit for the service. -#' @param \dots Not used. Included to help differentiate official Water Data API arguments -#' from more seldom used, optional dataRetrieval-specific arguments. -#' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function -#' will convert the data to dates and qualifier to string vector. -#' @param no_paging logical, defaults to `r getOption("dataRetrieval.no_paging")`. -#' If `TRUE`, the data will -#' be requested from a native csv format. This can be dangerous because the -#' data will cut off at 50,000 rows without indication that more data -#' is available. Use `TRUE` with caution. -#' @param convertType logical, defaults to `r getOption("dataRetrieval.convertType")`. -#' If `TRUE`, the function will convert the data to dates, any qualifiers to string -#' vector and reorder the returned data frame. -#' @param chunk_size Number of monitoring_location_ids to chunk requests into. -#' Default is `r getOption("dataRetrieval.dataRetrieval.site_chunk_size_meta")`. -#' Setting to `NA` will eliminate any site chunking, giving users external control. +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api #' #' @inherit read_waterdata_continuous details #' @@ -81,7 +57,7 @@ #' meta_1 <- read_waterdata_ts_meta(monitoring_location_id = site) #' #' meta_multi <- read_waterdata_ts_meta(monitoring_location_id = c("USGS-01491000", -#' "USGS-01645000"), +#' "USGS-01645000"), #' parameter_code = c("00060", "00010"), #' properties = c("monitoring_location_id", #' "parameter_code", @@ -113,16 +89,17 @@ read_waterdata_ts_meta <- function( time_series_id = NA_character_, web_description = NA_character_, skipGeometry = NA, - limit = NA, bbox = NA, begin = NA_character_, end = NA_character_, ..., + limit = getOption("dataRetrieval.limit"), convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) { - service = "time-series-metadata" + service <- "time-series-metadata" output_id <- "time_series_id" rlang::check_dots_empty() diff --git a/docker/Dockerfile b/docker/Dockerfile index 404040c33..84140bb3e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM code.chs.usgs.gov:5001/ctek/docker/r-lang/r-base:4.4 +FROM code.chs.usgs.gov:5001/ctek/docker/r-lang/r-base:4.5 # Necessary R libraries RUN apt-get update -qq && apt-get -y --no-install-recommends install \ diff --git a/man/check_arguments_api.Rd b/man/check_arguments_api.Rd new file mode 100644 index 000000000..0c836cdfa --- /dev/null +++ b/man/check_arguments_api.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get_ogc_data.R +\name{check_arguments_api} +\alias{check_arguments_api} +\title{Check other arguments} +\usage{ +check_arguments_api(bbox, skipGeometry, ...) +} +\arguments{ +\item{bbox}{Only features that have a geometry that intersects the bounding +box are selected.The bounding box is provided as four or six numbers, depending +on whether the coordinate reference system includes a vertical axis (height or +depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric +vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +Southern-most latitude, Eastern-most longitude, Northern-most longitude).} + +\item{skipGeometry}{This parameter can be used to skip response geometries for +each feature. The returning object will be a data frame with no spatial +information. The default \code{NA} will not specify the argument in the request.} +} +\description{ +Additional functions to check types and create parameter descriptions. +} +\keyword{internal} diff --git a/man/check_arguments_non_api.Rd b/man/check_arguments_non_api.Rd new file mode 100644 index 000000000..df55efdc5 --- /dev/null +++ b/man/check_arguments_non_api.Rd @@ -0,0 +1,50 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get_ogc_data.R +\name{check_arguments_non_api} +\alias{check_arguments_non_api} +\title{Check non-API arguments} +\usage{ +check_arguments_non_api( + convertType, + no_paging, + limit, + attach_request, + chunk_size, + ... +) +} +\arguments{ +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} + +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will +be requested from a native csv format. This can be dangerous because the +data will cut off at 50,000 rows without indication that more data +is available. Use \code{TRUE} with caution.} + +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} +} +\description{ +Function to check types and create parameter descriptions. +} +\keyword{internal} diff --git a/man/construct_api_requests.Rd b/man/construct_api_requests.Rd index 3e691d751..8d73b4768 100644 --- a/man/construct_api_requests.Rd +++ b/man/construct_api_requests.Rd @@ -4,32 +4,21 @@ \alias{construct_api_requests} \title{Create API url} \usage{ -construct_api_requests( - service, - properties = NA_character_, - bbox = NA, - skipGeometry = FALSE, - no_paging = FALSE, - ... -) +construct_api_requests(service, bbox = NA, ...) } \arguments{ \item{service}{Which service available on \url{https://api.waterdata.usgs.gov/ogcapi/v0/}.} -\item{properties}{The properties that should be included for each feature. The -parameter value is a comma-separated list of property names which depend on the -service being called.} - \item{bbox}{Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth).} -\item{skipGeometry}{This option can be used to skip response geometries for -each feature. The returning object will be a data frame with no spatial -information.} - \item{...}{Extra parameters from the specific services.} + +\item{properties}{The properties that should be included for each feature. The +parameter value is a comma-separated list of property names which depend on the +service being called.} } \description{ Main documentation: \url{https://api.waterdata.usgs.gov/ogcapi/v0/}, diff --git a/man/read_waterdata.Rd b/man/read_waterdata.Rd index 6b78e0bbf..800475e87 100644 --- a/man/read_waterdata.Rd +++ b/man/read_waterdata.Rd @@ -4,7 +4,14 @@ \alias{read_waterdata} \title{Generalized USGS Water Data API retrieval function} \usage{ -read_waterdata(service, CQL, ..., convertType = TRUE) +read_waterdata( + service, + CQL, + ..., + convertType = getOption("dataRetrieval.convertType"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") +) } \arguments{ \item{service}{character, can be any existing collection.} diff --git a/man/read_waterdata_channel.Rd b/man/read_waterdata_channel.Rd index 02583eccd..0ce0fe2ba 100644 --- a/man/read_waterdata_channel.Rd +++ b/man/read_waterdata_channel.Rd @@ -33,10 +33,10 @@ read_waterdata_channel( properties = NA_character_, skipGeometry = NA, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), + limit = getOption("dataRetrieval.limit"), chunk_size = getOption("dataRetrieval.site_chunk_size_data") ) } @@ -120,9 +120,9 @@ Available options are: geometry, channel_measurements_id, monitoring_location_id, field_visit_id, measurement_number, time, channel_name, channel_flow, channel_flow_unit, channel_width, channel_width_unit, channel_area, channel_area_unit, channel_velocity, channel_velocity_unit, channel_location_distance, channel_location_distance_unit, channel_stability, channel_material, channel_evenness, horizontal_velocity_description, vertical_velocity_description, longitudinal_velocity_description, measurement_type, last_modified, channel_measurement_type, channel_location_direction. The default (\code{NA}) will return all columns of the data.} -\item{skipGeometry}{This option can be used to skip response geometries for +\item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial -information.} +information. The default \code{NA} will not specify the argument in the request.} \item{bbox}{Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending @@ -131,13 +131,7 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} - -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} \item{convertType}{logical, defaults to TRUE. @@ -150,9 +144,18 @@ be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} } \description{ Channel measurements taken as part of streamflow field measurements. diff --git a/man/read_waterdata_combined_meta.Rd b/man/read_waterdata_combined_meta.Rd index 4fa522c2e..a1541a24d 100644 --- a/man/read_waterdata_combined_meta.Rd +++ b/man/read_waterdata_combined_meta.Rd @@ -64,9 +64,9 @@ read_waterdata_combined_meta( properties = NA_character_, skipGeometry = NA, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), + limit = getOption("dataRetrieval.limit"), no_paging = getOption("dataRetrieval.no_paging"), chunk_size = getOption("dataRetrieval.site_chunk_size_meta") ) @@ -239,9 +239,9 @@ Available options are: geometry, monitoring_location_id, agency_code, agency_name, monitoring_location_number, monitoring_location_name, district_code, country_code, country_name, state_code, state_name, county_code, county_name, minor_civil_division_code, site_type_code, site_type, hydrologic_unit_code, basin_code, altitude, altitude_accuracy, altitude_method_code, altitude_method_name, vertical_datum, vertical_datum_name, horizontal_positional_accuracy_code, horizontal_positional_accuracy, horizontal_position_method_code, horizontal_position_method_name, original_horizontal_datum, original_horizontal_datum_name, drainage_area, contributing_drainage_area, time_zone_abbreviation, uses_daylight_savings, construction_date, aquifer_code, national_aquifer_code, aquifer_type_code, well_constructed_depth, hole_constructed_depth, depth_source_code, field_measurement_id, unit_of_measure, parameter_name, parameter_code, statistic_id, last_modified, begin, end, data_type, computation_identifier, thresholds, sublocatio The default (\code{NA}) will return all columns of the data.} -\item{skipGeometry}{This option can be used to skip response geometries for +\item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial -information.} +information. The default \code{NA} will not specify the argument in the request.} \item{bbox}{Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending @@ -250,19 +250,19 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} - -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + \item{no_paging}{logical, defaults to FALSE. If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the @@ -270,8 +270,11 @@ data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} } \description{ This endpoint combines metadata from timeseries and field measurements collections by site. diff --git a/man/read_waterdata_continuous.Rd b/man/read_waterdata_continuous.Rd index 969f3297a..10ad9bfed 100644 --- a/man/read_waterdata_continuous.Rd +++ b/man/read_waterdata_continuous.Rd @@ -15,11 +15,12 @@ read_waterdata_continuous( value = NA, last_modified = NA_character_, time = NA_character_, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), + limit = getOption("dataRetrieval.limit"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -75,12 +76,6 @@ Only features that have a \code{time} that intersects the value of datetime are See also Details below for more information.} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} - \item{\dots}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} @@ -88,6 +83,12 @@ from more seldom used, optional dataRetrieval-specific arguments.} If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + \item{no_paging}{logical, defaults to FALSE. If \code{TRUE}, the data will be requested from a native csv format. This can be dangerous because the @@ -95,8 +96,15 @@ data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Continuous data are collected via automated sensors installed at a monitoring location. They are collected at a high frequency and often at a fixed 15-minute interval. Depending on the specific monitoring location, the data may be transmitted automatically via telemetry and be available on WDFN within minutes of collection, while other times the delivery of data may be delayed if the monitoring location does not have the capacity to automatically transmit data. Continuous data are described by parameter name and parameter code (pcode). These data might also be referred to as "instantaneous values" or "IV". diff --git a/man/read_waterdata_daily.Rd b/man/read_waterdata_daily.Rd index fcdca928d..58a5e4f24 100644 --- a/man/read_waterdata_daily.Rd +++ b/man/read_waterdata_daily.Rd @@ -18,11 +18,12 @@ read_waterdata_daily( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -69,9 +70,9 @@ Only features that have a \code{last_modified} that intersects the value of date See also Details below for more information.} -\item{skipGeometry}{This optional parameter can be used to skip response geometries for +\item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial -information.} +information. The default \code{NA} will not specify the argument in the request.} \item{time}{The date an observation represents. You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: @@ -93,13 +94,7 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} - -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} \item{convertType}{logical, defaults to TRUE. @@ -113,8 +108,21 @@ data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Daily data provide one data value to represent water conditions for the day. Throughout much of the history of the USGS, the primary water data available was daily data collected manually at the monitoring location once each day. With improved availability of computer storage and automated transmission of data, the daily data published today are generally a statistical summary or metric of the continuous data collected each day, such as the daily mean, minimum, or maximum value. Daily data are automatically calculated from the continuous data of the same parameter code and are described by parameter code and a statistic code. These data have also been referred to as “daily values” or “DV”. diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index 73d293afd..96e2c439a 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -23,11 +23,12 @@ read_waterdata_field_measurements( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + limit = getOption("dataRetrieval.limit"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -81,9 +82,9 @@ See also Details below for more information.} \item{measurement_rated}{Rated measurement based on the hydrologic/hydraulic conditions in which the measurement was made (excellent (2 percent), good (5 percent), fair (8 percent), or poor (more than 8 percent). percent)} -\item{skipGeometry}{This option can be used to skip response geometries for +\item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial -information.} +information. The default \code{NA} will not specify the argument in the request.} \item{time}{The date an observation represents. You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: @@ -105,13 +106,7 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} - -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} \item{convertType}{logical, defaults to TRUE. @@ -124,9 +119,22 @@ be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Field measurements are physically measured values collected during a visit to the monitoring location. Field measurements consist of measurements of gage height and discharge, and readings of groundwater levels, and are primarily used as calibration readings for the automated sensors collecting continuous data. They are collected at a low frequency, and delivery of the data in WDFN may be delayed due to data processing time. @@ -176,6 +184,9 @@ multi_site <- read_waterdata_field_measurements( old_df <- read_waterdata_field_measurements(monitoring_location_id = "USGS-425957088141001", time = c("1980-01-01", NA)) +new_df <- read_waterdata_field_measurements(monitoring_location_id = "USGS-425957088141001", + time = c(NA, "2020-01-01")) + surface_water <- read_waterdata_field_measurements( monitoring_location_id = c("USGS-07069000", "USGS-07064000", diff --git a/man/read_waterdata_field_meta.Rd b/man/read_waterdata_field_meta.Rd index cee27812b..5d9d17753 100644 --- a/man/read_waterdata_field_meta.Rd +++ b/man/read_waterdata_field_meta.Rd @@ -85,9 +85,9 @@ Available options are: geometry, field_measurement_id, monitoring_location_id, parameter_code, parameter_name, parameter_description, begin, end, last_modified. The default (\code{NA}) will return all columns of the data.} -\item{skipGeometry}{This option can be used to skip response geometries for +\item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial -information.} +information. The default \code{NA} will not specify the argument in the request.} \item{bbox}{Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending @@ -96,13 +96,13 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the +\item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} \item{convertType}{logical, defaults to TRUE. @@ -116,8 +116,11 @@ data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} } \description{ This endpoint provides metadata about field measurement collections, including when the earliest and most recent observations for a parameter occurred at a monitoring location and its units. diff --git a/man/read_waterdata_latest_continuous.Rd b/man/read_waterdata_latest_continuous.Rd index 03a9c1d87..0c8e625ae 100644 --- a/man/read_waterdata_latest_continuous.Rd +++ b/man/read_waterdata_latest_continuous.Rd @@ -17,11 +17,12 @@ read_waterdata_latest_continuous( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -64,9 +65,9 @@ Only features that have a \code{last_modified} that intersects the value of date See also Details below for more information.} -\item{skipGeometry}{This option can be used to skip response geometries for +\item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial -information.} +information. The default \code{NA} will not specify the argument in the request.} \item{time}{The date an observation represents. You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: @@ -88,13 +89,7 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} - -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} \item{convertType}{logical, defaults to TRUE. @@ -108,8 +103,21 @@ data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ This endpoint provides the most recent observation for each time series of continuous data. Continuous data are collected via automated sensors installed at a monitoring location. They are collected at a high frequency and often at a fixed 15-minute interval. Depending on the specific monitoring location, the data may be transmitted automatically via telemetry and be available on WDFN within minutes of collection, while other times the delivery of data may be delayed if the monitoring location does not have the capacity to automatically transmit data. Continuous data are described by parameter name and parameter code. These data might also be referred to as "instantaneous values" or "IV" diff --git a/man/read_waterdata_latest_daily.Rd b/man/read_waterdata_latest_daily.Rd index c6e016473..09acb3176 100644 --- a/man/read_waterdata_latest_daily.Rd +++ b/man/read_waterdata_latest_daily.Rd @@ -18,11 +18,12 @@ read_waterdata_latest_daily( skipGeometry = NA, time = NA_character_, bbox = NA, - limit = NA, ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + limit = getOption("dataRetrieval.limit"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -69,9 +70,9 @@ Only features that have a \code{last_modified} that intersects the value of date See also Details below for more information.} -\item{skipGeometry}{This option can be used to skip response geometries for +\item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial -information.} +information. The default \code{NA} will not specify the argument in the request.} \item{time}{The date an observation represents. You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: @@ -93,13 +94,7 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} - -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} \item{convertType}{logical, defaults to TRUE. @@ -112,9 +107,22 @@ be requested from a native csv format. This can be dangerous because the data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Daily data provide one data value to represent water conditions for the day. Throughout much of the history of the USGS, the primary water data available was daily data collected manually at the monitoring location once each day. With improved availability of computer storage and automated transmission of data, the daily data published today are generally a statistical summary or metric of the continuous data collected each day, such as the daily mean, minimum, or maximum value. Daily data are automatically calculated from the continuous data of the same parameter code and are described by parameter code and a statistic code. These data have also been referred to as “daily values” or “DV”. @@ -159,7 +167,7 @@ dv_data <- read_waterdata_latest_daily(monitoring_location_id = site, skipGeometry = TRUE) multi_site <- read_waterdata_latest_daily(monitoring_location_id = c("USGS-01491000", - "USGS-01645000"), + "USGS-01645000"), parameter_code = c("00060", "00010")) } diff --git a/man/read_waterdata_metadata.Rd b/man/read_waterdata_metadata.Rd index 868df0652..f8f84aacd 100644 --- a/man/read_waterdata_metadata.Rd +++ b/man/read_waterdata_metadata.Rd @@ -4,7 +4,12 @@ \alias{read_waterdata_metadata} \title{Generalized USGS Water Meta Data API retrieval function} \usage{ -read_waterdata_metadata(collection, limit = NA, ...) +read_waterdata_metadata( + collection, + ..., + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") +) } \arguments{ \item{collection}{character, can be any existing collection such @@ -14,14 +19,18 @@ as "parameter-codes", "agency-codes", "altitude-datums", "aquifer-codes", "national-aquifer-codes", "reliability-codes", "site-types", "statistic-codes", "topographic-codes", "time-zone-codes".} +\item{\dots}{Optional arguments to pass to the query. Available parameters +can be found with the \code{get_ogc_params} function.} + \item{limit}{The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{\dots}{Optional arguments to pass to the query. Available parameters -can be found with the \code{get_ogc_params} function.} +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Function to get metadata from Water Data API. These are useful to get the diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index b6ded6627..93252bab8 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -47,10 +47,12 @@ read_waterdata_monitoring_location( depth_source_code = NA_character_, properties = NA_character_, bbox = NA, - limit = NA, skipGeometry = NA, ..., - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + limit = getOption("dataRetrieval.limit"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -148,22 +150,35 @@ depth). Coordinates are assumed to be in crs 4326. The expected format is a nume vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} -\item{limit}{The optional limit parameter is used to control the subset of the +\item{skipGeometry}{This parameter can be used to skip response geometries for +each feature. The returning object will be a data frame with no spatial +information. The default \code{NA} will not specify the argument in the request.} + +\item{...}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + +\item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{skipGeometry}{This option can be used to skip response geometries for -each feature. The returning object will be a data frame with no spatial -information.} - -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments -from more seldom used, optional dataRetrieval-specific arguments.} +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will +be requested from a native csv format. This can be dangerous because the +data will cut off at 50,000 rows without indication that more data +is available. Use \code{TRUE} with caution.} \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Location information is basic information about the monitoring location including the name, identifier, agency responsible for data collection, and the date the location was established. It also includes information about the type of location, such as stream, lake, or groundwater, and geographic information about the location, such as state, county, latitude and longitude, and hydrologic unit code (HUC). diff --git a/man/read_waterdata_parameter_codes.Rd b/man/read_waterdata_parameter_codes.Rd index 2b52d0ce8..69cca65f2 100644 --- a/man/read_waterdata_parameter_codes.Rd +++ b/man/read_waterdata_parameter_codes.Rd @@ -17,8 +17,9 @@ read_waterdata_parameter_codes( temperature_basis = NA_character_, epa_equivalence = NA_character_, properties = NA_character_, - limit = NA, - ... + ..., + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -49,14 +50,18 @@ Available options are: geometry, parameter_code_id, parameter_name, unit_of_measure, parameter_group_code, parameter_description, medium, statistical_basis, time_basis, weight_basis, particle_size_basis, sample_fraction, temperature_basis, epa_equivalence. The default (\code{NA}) will return all columns of the data.} +\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +from more seldom used, optional dataRetrieval-specific arguments.} + \item{limit}{The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable limit is 50000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments -from more seldom used, optional dataRetrieval-specific arguments.} +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Parameter codes are 5-digit codes and associated descriptions used to identify the constituent measured and the units of measure. Some parameter code definitions include information about the sampling matrix, fraction, and methods used to measure the constituent. Some parameters are fixed-value (fxd) numeric codes having textual meaning (for example: parameter code 00041 is a weather code parameter, code of 60 means rain), but more commonly represent a numeric value for chemical, physical, or biological data. diff --git a/man/read_waterdata_ts_meta.Rd b/man/read_waterdata_ts_meta.Rd index fdc2a101b..aa0622304 100644 --- a/man/read_waterdata_ts_meta.Rd +++ b/man/read_waterdata_ts_meta.Rd @@ -25,14 +25,15 @@ read_waterdata_ts_meta( time_series_id = NA_character_, web_description = NA_character_, skipGeometry = NA, - limit = NA, bbox = NA, begin = NA_character_, end = NA_character_, ..., + limit = getOption("dataRetrieval.limit"), convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -128,11 +129,9 @@ this system for 120 days.} \item{web_description}{A description of what this time series represents, as used by WDFN and other USGS data dissemination products.} -\item{limit}{The optional limit parameter is used to control the subset of the -selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet -connection is spotty. The default (\code{NA}) will set the limit to the maximum -allowable limit for the service.} +\item{skipGeometry}{This parameter can be used to skip response geometries for +each feature. The returning object will be a data frame with no spatial +information. The default \code{NA} will not specify the argument in the request.} \item{bbox}{Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending @@ -145,9 +144,15 @@ Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{end}{This field contains the same information as "end_utc", but in the local time of the monitoring location. It is retained for backwards compatibility, but will be removed in V1 of these APIs.} -\item{\dots}{Not used. Included to help differentiate official Water Data API arguments +\item{...}{Not used. Included to help differentiate official Water Data API arguments from more seldom used, optional dataRetrieval-specific arguments.} +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + \item{convertType}{logical, defaults to TRUE. If \code{TRUE}, the function will convert the data to dates, any qualifiers to string vector and reorder the returned data frame.} @@ -159,8 +164,15 @@ data will cut off at 50,000 rows without indication that more data is available. Use \code{TRUE} with caution.} \item{chunk_size}{Number of monitoring_location_ids to chunk requests into. -Default is . -Setting to \code{NA} will eliminate any site chunking, giving users external control.} +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Daily data and continuous measurements are grouped into time series, which represent a collection of observations of a single parameter, potentially aggregated using a standard statistic, at a single monitoring location. This endpoint provides metadata about those time series, including their operational thresholds, units of measurement, and when the earliest and most recent observations in a time series occurred. @@ -189,7 +201,7 @@ site <- "USGS-02238500" meta_1 <- read_waterdata_ts_meta(monitoring_location_id = site) meta_multi <- read_waterdata_ts_meta(monitoring_location_id = c("USGS-01491000", - "USGS-01645000"), + "USGS-01645000"), parameter_code = c("00060", "00010"), properties = c("monitoring_location_id", "parameter_code", diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index c5b685a91..ea44ac7ee 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -44,10 +44,38 @@ test_that("Unit value data returns correct types", { ) # nolint start: line_length_linter - expect_equal( - attr(rawData, "request")[["url"]], - "https://api.waterdata.usgs.gov/ogcapi/v0/collections/continuous/items?f=json&lang=en-US&skipGeometry=TRUE&monitoring_location_id=USGS-05114000¶meter_code=00060&time=2014-10-10T00%3A00%3A00Z%2F2014-10-10T00%3A00%3A00Z&limit=50000" + expect_true( + grepl( + x = attr(rawData, "request")[["url"]], + pattern = "monitoring_location_id=USGS-05114000" + ) + ) + + expect_true( + grepl( + x = attr(rawData, "request")[["url"]], + pattern = "time=2014-10-10T00%3A00%3A00Z%2F2014-10-10T00%3A00%3A00Z" + ) + ) + + expect_true( + grepl( + x = attr(rawData, "request")[["url"]], + pattern = "parameter_code=00060" + ) + ) + + expect_true( + grepl( + x = attr(rawData, "request")[["url"]], + pattern = paste0( + "https://api.waterdata.usgs.gov/ogcapi/", + getOption("dataRetrieval.api_version"), + "/collections/continuous/items" + ) + ) ) + # nolint end timeZoneChange <- read_waterdata_continuous( monitoring_location_id = c("04024430", "04024000"), @@ -58,9 +86,11 @@ test_that("Unit value data returns correct types", { expect_is(rawData$time, "POSIXct") expect_is(rawData$value, "numeric") # nolint start: line_length_linter - expect_equal( - attr(rawData, "request")[["url"]], - "https://api.waterdata.usgs.gov/ogcapi/v0/collections/continuous/items?f=json&lang=en-US&skipGeometry=TRUE&monitoring_location_id=USGS-05114000¶meter_code=00060&time=2014-10-10T00%3A00%3A00Z%2F2014-10-10T00%3A00%3A00Z&limit=50000" + expect_true( + grepl( + x = attr(rawData, "request")[["url"]], + pattern = "time=2014-10-10T00%3A00%3A00Z%2F2014-10-10T00%3A00%3A00Z" + ) ) # nolint end site <- "USGS-04087170" From 17106923f536849b03cbebc66f09aa2dcb8f75f1 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 17 Apr 2026 18:25:25 -0500 Subject: [PATCH 14/44] generalize the tests more --- R/construct_api_requests.R | 51 ++++++++++++++------- R/get_ogc_data.R | 46 ++++++++++++------- R/read_waterdata.R | 2 + R/read_waterdata_channel.R | 3 +- R/walk_pages.R | 2 +- man/check_arguments_non_api.Rd | 2 +- man/construct_api_requests.Rd | 54 +++++++++++++++++++---- man/read_waterdata.Rd | 10 +++++ man/read_waterdata_channel.Rd | 9 +++- man/read_waterdata_combined_meta.Rd | 2 +- man/read_waterdata_continuous.Rd | 2 +- man/read_waterdata_daily.Rd | 2 +- man/read_waterdata_field_measurements.Rd | 2 +- man/read_waterdata_field_meta.Rd | 2 +- man/read_waterdata_latest_continuous.Rd | 2 +- man/read_waterdata_latest_daily.Rd | 2 +- man/read_waterdata_monitoring_location.Rd | 2 +- man/read_waterdata_ts_meta.Rd | 2 +- tests/testthat/tests_userFriendly_fxns.R | 6 +-- 19 files changed, 145 insertions(+), 58 deletions(-) diff --git a/R/construct_api_requests.R b/R/construct_api_requests.R index 98a921669..c4cb00b2f 100644 --- a/R/construct_api_requests.R +++ b/R/construct_api_requests.R @@ -5,23 +5,27 @@ #' #' @export #' @param service Which service available on . +#' @param output_id Name of id column to return #' @param ... Extra parameters from the specific services. #' @param bbox Only features that have a geometry that intersects the bounding #' box are selected.The bounding box is provided as four or six numbers, depending #' on whether the coordinate reference system includes a vertical axis (height or #' depth). -#' @param properties The properties that should be included for each feature. The -#' parameter value is a comma-separated list of property names which depend on the -#' service being called. #' @keywords internal +#' +#' @inheritParams check_arguments_api +#' @inheritParams check_arguments_non_api +#' #' @examples #' site <- "USGS-02238500" #' pcode <- "00060" #' req_dv <- construct_api_requests("daily", +#' output_id = "daily_id", #' monitoring_location_id = site, #' parameter_code = "00060") #' #' req_dv <- construct_api_requests("daily", +#' output_id = "daily_id", #' monitoring_location_id = site, #' parameter_code = c("00060", "00065")) #' @@ -29,21 +33,39 @@ #' start_date <- "2018-01-01" #' end_date <- "2022-01-01" #' req_dv <- construct_api_requests("daily", -#' monitoring_location_id = sites, -#' parameter_code = c("00060", "00065"), -#' datetime = c(start_date, end_date)) +#' output_id = "daily_id", +#' monitoring_location_id = sites, +#' parameter_code = c("00060", "00065"), +#' datetime = c(start_date, end_date)) #' construct_api_requests <- function( service, + output_id, + ..., bbox = NA, - ... + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") ) { POST <- FALSE full_list <- list(...) + full_list[["limit"]] <- limit + + check_arguments_non_api( + convertType = convertType, + no_paging = no_paging, + limit = full_list[["limit"]], + attach_request = attach_request, + chunk_size = chunk_size + ) - do.call(check_arguments_non_api, full_list) - do.call(check_arguments_api, full_list) + check_arguments_api( + bbox = full_list[["bbox"]], + skipGeometry = full_list[["skipGeometry"]] + ) time_periods <- c( "last_modified", @@ -57,22 +79,17 @@ construct_api_requests <- function( full_list <- switch_arg_id( full_list, - id_name = full_list[["output_id"]], + id_name = output_id, service = service ) # Clean out non-API arguments: properties <- switch_properties_id( properties = full_list[["properties"]], - id = full_list[["output_id"]] + id = output_id ) + full_list[["properties"]] <- NULL - full_list[["output_id"]] <- NULL - full_list[["chunk_size"]] <- NULL - full_list[["convertType"]] <- NULL - full_list[["attach_request"]] <- NULL - no_paging <- full_list[["no_paging"]] - full_list[["no_paging"]] <- NULL if (any(time_periods %in% names(full_list))) { for (i in time_periods[time_periods %in% names(full_list)]) { diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index 5d4badec7..c1e929b69 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -184,7 +184,7 @@ switch_properties_id <- function(properties, id) { #' is available. Use `TRUE` with caution. #' @param limit numeric, The optional limit parameter is used to control the subset of the #' selected features that should be returned in each page. The maximum allowable -#' limit is 50000. It may be beneficial to set this number lower if your internet +#' limit is 50,000. It may be beneficial to set this number lower if your internet #' connection is spotty. The default (`NA`) will set the limit to the maximum #' allowable limit for the service. #' @param attach_request logical, defaults to `r getOption("dataRetrieval.attach_request")`. @@ -207,24 +207,34 @@ check_arguments_non_api <- function( chunk_size, ... ) { - if (!is.na(convertType) & !is.logical(convertType)) { - stop("convertType should be a logical TRUE/FALSE") + if (!is.null(convertType)) { + if (!is.na(convertType) & !is.logical(convertType)) { + stop("convertType should be a logical TRUE/FALSE") + } } - if (!is.na(no_paging) & !is.logical(no_paging)) { - stop("no_paging should be a logical TRUE/FALSE") + if (!is.null(no_paging)) { + if (!is.na(no_paging) & !is.logical(no_paging)) { + stop("no_paging should be a logical TRUE/FALSE") + } } - if (!is.na(attach_request) & !is.logical(attach_request)) { - stop("attach_request should be a logical TRUE/FALSE") + if (!is.null(attach_request)) { + if (!is.na(attach_request) & !is.logical(attach_request)) { + stop("attach_request should be a logical TRUE/FALSE") + } } - if (!is.na(limit) & !is.numeric(limit)) { - stop("limit should be an integer") + if (!is.null(limit)) { + if (!is.na(limit) & !is.numeric(limit)) { + stop("limit should be an integer") + } } - if (!is.na(chunk_size) & !is.numeric(chunk_size)) { - stop("chunk_size should be an integer") + if (!is.null(chunk_size)) { + if (!is.na(chunk_size) & !is.numeric(chunk_size)) { + stop("chunk_size should be an integer") + } } } @@ -244,13 +254,17 @@ check_arguments_non_api <- function( #' #' @keywords internal check_arguments_api <- function(bbox, skipGeometry, ...) { - if (!is.na(skipGeometry) & !is.logical(skipGeometry)) { - stop("skipGeometry should be a logical TRUE/FALSE") + if (!is.null(skipGeometry)) { + if (!is.na(skipGeometry) & !is.logical(skipGeometry)) { + stop("skipGeometry should be a logical TRUE/FALSE") + } } - if (!all(is.na(bbox))) { - if (!length(bbox) %in% c(1, 4)) { - stop("bbox is not set up correctly") + if (!is.null(bbox)) { + if (!all(is.na(bbox))) { + if (!length(bbox) %in% c(1, 4)) { + stop("bbox is not set up correctly") + } } } } diff --git a/R/read_waterdata.R b/R/read_waterdata.R index 02fcead7b..815f5510c 100644 --- a/R/read_waterdata.R +++ b/R/read_waterdata.R @@ -10,6 +10,8 @@ #' @param convertType logical, defaults to `TRUE`. If `TRUE`, the function #' will convert the data to dates and qualifier to string vector. #' @param \dots Additional arguments to send to the request. +#' @inheritParams check_arguments_non_api +#' #' @examplesIf is_dataRetrieval_user() #' #' \donttest{ diff --git a/R/read_waterdata_channel.R b/R/read_waterdata_channel.R index fecfc149b..74e92840c 100644 --- a/R/read_waterdata_channel.R +++ b/R/read_waterdata_channel.R @@ -80,7 +80,8 @@ read_waterdata_channel <- function( convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), limit = getOption("dataRetrieval.limit"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "channel-measurements" output_id <- "channel_measurements_id" diff --git a/R/walk_pages.R b/R/walk_pages.R index 99f21a652..c703bd3af 100644 --- a/R/walk_pages.R +++ b/R/walk_pages.R @@ -116,7 +116,7 @@ get_csv <- function(req, limit) { df <- data.table::fread( input = return_list, data.table = FALSE, - colClasses = "text" + colClasses = "character" ) df <- coerce_num_cols(df) diff --git a/man/check_arguments_non_api.Rd b/man/check_arguments_non_api.Rd index df55efdc5..193ab821a 100644 --- a/man/check_arguments_non_api.Rd +++ b/man/check_arguments_non_api.Rd @@ -26,7 +26,7 @@ is available. Use \code{TRUE} with caution.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/construct_api_requests.Rd b/man/construct_api_requests.Rd index 8d73b4768..cbad05506 100644 --- a/man/construct_api_requests.Rd +++ b/man/construct_api_requests.Rd @@ -4,21 +4,56 @@ \alias{construct_api_requests} \title{Create API url} \usage{ -construct_api_requests(service, bbox = NA, ...) +construct_api_requests( + service, + output_id, + ..., + bbox = NA, + convertType = getOption("dataRetrieval.convertType"), + no_paging = getOption("dataRetrieval.no_paging"), + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + limit = getOption("dataRetrieval.limit"), + attach_request = getOption("dataRetrieval.attach_request") +) } \arguments{ \item{service}{Which service available on \url{https://api.waterdata.usgs.gov/ogcapi/v0/}.} +\item{output_id}{Name of id column to return} + +\item{...}{Extra parameters from the specific services.} + \item{bbox}{Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth).} -\item{...}{Extra parameters from the specific services.} +\item{convertType}{logical, defaults to TRUE. +If \code{TRUE}, the function will convert the data to dates, any qualifiers to string +vector and reorder the returned data frame.} + +\item{no_paging}{logical, defaults to FALSE. +If \code{TRUE}, the data will +be requested from a native csv format. This can be dangerous because the +data will cut off at 50,000 rows without indication that more data +is available. Use \code{TRUE} with caution.} + +\item{chunk_size}{Number of monitoring_location_ids to chunk requests into. +The default for functions that don't generally return long-term data records +is 250, while +the default for time series functions is +10. +Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50,000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} -\item{properties}{The properties that should be included for each feature. The -parameter value is a comma-separated list of property names which depend on the -service being called.} +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Main documentation: \url{https://api.waterdata.usgs.gov/ogcapi/v0/}, @@ -28,10 +63,12 @@ Swagger docs: \url{https://api.waterdata.usgs.gov/ogcapi/v0/openapi?f=html}. site <- "USGS-02238500" pcode <- "00060" req_dv <- construct_api_requests("daily", + output_id = "daily_id", monitoring_location_id = site, parameter_code = "00060") req_dv <- construct_api_requests("daily", + output_id = "daily_id", monitoring_location_id = site, parameter_code = c("00060", "00065")) @@ -39,9 +76,10 @@ sites <- c("USGS-01491000", "USGS-01645000") start_date <- "2018-01-01" end_date <- "2022-01-01" req_dv <- construct_api_requests("daily", - monitoring_location_id = sites, - parameter_code = c("00060", "00065"), - datetime = c(start_date, end_date)) + output_id = "daily_id", + monitoring_location_id = sites, + parameter_code = c("00060", "00065"), + datetime = c(start_date, end_date)) } \keyword{internal} diff --git a/man/read_waterdata.Rd b/man/read_waterdata.Rd index 800475e87..942c5dcfd 100644 --- a/man/read_waterdata.Rd +++ b/man/read_waterdata.Rd @@ -22,6 +22,16 @@ read_waterdata( \item{convertType}{logical, defaults to \code{TRUE}. If \code{TRUE}, the function will convert the data to dates and qualifier to string vector.} + +\item{limit}{numeric, The optional limit parameter is used to control the subset of the +selected features that should be returned in each page. The maximum allowable +limit is 50,000. It may be beneficial to set this number lower if your internet +connection is spotty. The default (\code{NA}) will set the limit to the maximum +allowable limit for the service.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Function that allows complex CQL queries. diff --git a/man/read_waterdata_channel.Rd b/man/read_waterdata_channel.Rd index 0ce0fe2ba..542d0156f 100644 --- a/man/read_waterdata_channel.Rd +++ b/man/read_waterdata_channel.Rd @@ -37,7 +37,8 @@ read_waterdata_channel( convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), limit = getOption("dataRetrieval.limit"), - chunk_size = getOption("dataRetrieval.site_chunk_size_data") + chunk_size = getOption("dataRetrieval.site_chunk_size_data"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -146,7 +147,7 @@ is available. Use \code{TRUE} with caution.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} @@ -156,6 +157,10 @@ is 250, while the default for time series functions is 10. Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ Channel measurements taken as part of streamflow field measurements. diff --git a/man/read_waterdata_combined_meta.Rd b/man/read_waterdata_combined_meta.Rd index a1541a24d..e34872e14 100644 --- a/man/read_waterdata_combined_meta.Rd +++ b/man/read_waterdata_combined_meta.Rd @@ -259,7 +259,7 @@ vector and reorder the returned data frame.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_continuous.Rd b/man/read_waterdata_continuous.Rd index 10ad9bfed..b35db8666 100644 --- a/man/read_waterdata_continuous.Rd +++ b/man/read_waterdata_continuous.Rd @@ -85,7 +85,7 @@ vector and reorder the returned data frame.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_daily.Rd b/man/read_waterdata_daily.Rd index 58a5e4f24..b1ea82326 100644 --- a/man/read_waterdata_daily.Rd +++ b/man/read_waterdata_daily.Rd @@ -116,7 +116,7 @@ Setting to \code{NA} will eliminate site chunking, giving users full control.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index 96e2c439a..0f4bcca8c 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -121,7 +121,7 @@ is available. Use \code{TRUE} with caution.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_field_meta.Rd b/man/read_waterdata_field_meta.Rd index 5d9d17753..1887caf4e 100644 --- a/man/read_waterdata_field_meta.Rd +++ b/man/read_waterdata_field_meta.Rd @@ -98,7 +98,7 @@ Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_latest_continuous.Rd b/man/read_waterdata_latest_continuous.Rd index 0c8e625ae..24ada745e 100644 --- a/man/read_waterdata_latest_continuous.Rd +++ b/man/read_waterdata_latest_continuous.Rd @@ -111,7 +111,7 @@ Setting to \code{NA} will eliminate site chunking, giving users full control.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_latest_daily.Rd b/man/read_waterdata_latest_daily.Rd index 09acb3176..e8872f6d4 100644 --- a/man/read_waterdata_latest_daily.Rd +++ b/man/read_waterdata_latest_daily.Rd @@ -109,7 +109,7 @@ is available. Use \code{TRUE} with caution.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index 93252bab8..0f95f16fb 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -159,7 +159,7 @@ from more seldom used, optional dataRetrieval-specific arguments.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/man/read_waterdata_ts_meta.Rd b/man/read_waterdata_ts_meta.Rd index aa0622304..00c94798b 100644 --- a/man/read_waterdata_ts_meta.Rd +++ b/man/read_waterdata_ts_meta.Rd @@ -149,7 +149,7 @@ from more seldom used, optional dataRetrieval-specific arguments.} \item{limit}{numeric, The optional limit parameter is used to control the subset of the selected features that should be returned in each page. The maximum allowable -limit is 50000. It may be beneficial to set this number lower if your internet +limit is 50,000. It may be beneficial to set this number lower if your internet connection is spotty. The default (\code{NA}) will set the limit to the maximum allowable limit for the service.} diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index ea44ac7ee..59dad566d 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -436,6 +436,7 @@ test_that("Construct USGS urls", { url_daily <- construct_api_requests( service = "daily", + output_id = "daily_id", monitoring_location_id = siteNumber, parameter_code = pCode, time = c(startDate, endDate), @@ -444,9 +445,8 @@ test_that("Construct USGS urls", { ) # nolint start: line_length_linter - expect_equal( - url_daily$url, - "https://api.waterdata.usgs.gov/ogcapi/v0/collections/daily/items?f=json&lang=en-US&skipGeometry=FALSE&monitoring_location_id=USGS-01594440¶meter_code=00060,00010&time=2024-01-01%2F..&statistic_id=00003,00001&limit=10000" + expect_true( + grepl(x = url_daily$url, pattern = "parameter_code=00060,00010") ) url_works <- dataRetrieval:::walk_pages(url_daily) From c6771e0b6f7b645631143e0b80d78ec1cebdc7ff Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 17 Apr 2026 18:40:14 -0500 Subject: [PATCH 15/44] Cleanup install pipeline --- .gitlab-ci.yml | 2 +- R/read_waterdata_combined_meta.R | 3 ++- man/read_waterdata_combined_meta.Rd | 7 ++++++- tests/testthat/tests_userFriendly_fxns.R | 15 +++++++++------ 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4322313c2..4fccb94fe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,7 +58,7 @@ buildcheck: dependencies: - build-image script: - - Rscript -e 'devtools::install(quick = TRUE, upgrade = "never")' + - Rscript -e 'devtools::install(quick = TRUE, upgrade = TRUE)' - Rscript -e 'devtools::check(document = FALSE, args = "--no-tests", check_dir = Sys.getenv("BUILD_LOGS_DIR"), vignettes = FALSE)' unittests: diff --git a/R/read_waterdata_combined_meta.R b/R/read_waterdata_combined_meta.R index 6926c761f..beb3f1189 100644 --- a/R/read_waterdata_combined_meta.R +++ b/R/read_waterdata_combined_meta.R @@ -187,7 +187,8 @@ read_waterdata_combined_meta <- function( convertType = getOption("dataRetrieval.convertType"), limit = getOption("dataRetrieval.limit"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "combined-metadata" output_id <- "combined_meta_id" diff --git a/man/read_waterdata_combined_meta.Rd b/man/read_waterdata_combined_meta.Rd index e34872e14..d8101c962 100644 --- a/man/read_waterdata_combined_meta.Rd +++ b/man/read_waterdata_combined_meta.Rd @@ -68,7 +68,8 @@ read_waterdata_combined_meta( convertType = getOption("dataRetrieval.convertType"), limit = getOption("dataRetrieval.limit"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -275,6 +276,10 @@ is 250, while the default for time series functions is 10. Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ This endpoint combines metadata from timeseries and field measurements collections by site. diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index 59dad566d..ba3240a67 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -454,14 +454,17 @@ test_that("Construct USGS urls", { url_ts_meta <- construct_api_requests( monitoring_location_id = siteNumber, + output_id = "time_series_id", parameter_code = pCode, service = "time-series-metadata", limit = 10000 ) - expect_equal( - url_ts_meta$url, - "https://api.waterdata.usgs.gov/ogcapi/v0/collections/time-series-metadata/items?f=json&lang=en-US&skipGeometry=FALSE&monitoring_location_id=USGS-01594440¶meter_code=00060,00010&limit=10000" + expect_true( + grepl( + x = url_ts_meta$url, + pattern = "collections/time-series-metadata/items" + ) ) url_works_ts <- dataRetrieval:::walk_pages(url_ts_meta) @@ -469,13 +472,13 @@ test_that("Construct USGS urls", { url_ml <- construct_api_requests( id = siteNumber, + output_id = "monitoring_location_id", service = "monitoring-locations", limit = 50000 ) - expect_equal( - url_ml$url, - "https://api.waterdata.usgs.gov/ogcapi/v0/collections/monitoring-locations/items?f=json&lang=en-US&skipGeometry=FALSE&id=USGS-01594440&limit=50000" + expect_true( + grepl(x = url_ml$url, pattern = "id=USGS-01594440") ) url_works_ml <- dataRetrieval:::walk_pages(url_ml) From ff87ae80365c6f35aa80af989935b13afedc7b4c Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 17 Apr 2026 18:56:30 -0500 Subject: [PATCH 16/44] att attach argument --- R/read_waterdata_field_meta.R | 3 ++- man/read_waterdata_field_meta.Rd | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/R/read_waterdata_field_meta.R b/R/read_waterdata_field_meta.R index f002dba09..4df6e2ac5 100644 --- a/R/read_waterdata_field_meta.R +++ b/R/read_waterdata_field_meta.R @@ -81,7 +81,8 @@ read_waterdata_field_meta <- function( ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) { service <- "field-measurements-metadata" output_id <- "field_series_id" diff --git a/man/read_waterdata_field_meta.Rd b/man/read_waterdata_field_meta.Rd index 1887caf4e..f253d24be 100644 --- a/man/read_waterdata_field_meta.Rd +++ b/man/read_waterdata_field_meta.Rd @@ -19,7 +19,8 @@ read_waterdata_field_meta( ..., convertType = getOption("dataRetrieval.convertType"), no_paging = getOption("dataRetrieval.no_paging"), - chunk_size = getOption("dataRetrieval.site_chunk_size_meta") + chunk_size = getOption("dataRetrieval.site_chunk_size_meta"), + attach_request = getOption("dataRetrieval.attach_request") ) } \arguments{ @@ -121,6 +122,10 @@ is 250, while the default for time series functions is 10. Setting to \code{NA} will eliminate site chunking, giving users full control.} + +\item{attach_request}{logical, defaults to TRUE. +If set to \code{TRUE}, the full request sent to the Water Data API is attached +as an attribute to the data set.} } \description{ This endpoint provides metadata about field measurement collections, including when the earliest and most recent observations for a parameter occurred at a monitoring location and its units. From 8228252d87c53d79a53babfc22ceed3926513ccf Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 17 Apr 2026 19:46:32 -0500 Subject: [PATCH 17/44] ? --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4fccb94fe..88e7f4901 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -100,7 +100,7 @@ pages: - build-image - buildcheck script: - - Rscript -e 'devtools::install(quick = TRUE, upgrade = "never")' + - Rscript -e 'devtools::install(quick = TRUE, upgrade = FALSE)' - Rscript -e 'pkgdown::build_site(override = list(destination = "public"))' - Rscript -e 'file.copy(from = "./public/articles/logo.png", to = "./public/reference/logo.png")' - quarto render From aa67bbe6cdb05a769afce97fd07687582847ee7e Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Wed, 22 Apr 2026 08:16:21 -0500 Subject: [PATCH 18/44] Add first pass of read_waterdata_ratings --- DESCRIPTION | 2 +- NAMESPACE | 1 + NEWS | 2 + R/readNWISunit.R | 8 +- R/read_waterdata_ratings.R | 161 +++++++++++++++++++++++ man/read_waterdata_ratings.Rd | 108 +++++++++++++++ tests/testthat/tests_general.R | 37 ++---- tests/testthat/tests_userFriendly_fxns.R | 9 +- 8 files changed, 295 insertions(+), 33 deletions(-) create mode 100644 R/read_waterdata_ratings.R create mode 100644 man/read_waterdata_ratings.Rd diff --git a/DESCRIPTION b/DESCRIPTION index e79ce806d..6890b9308 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: dataRetrieval Type: Package Title: Retrieval Functions for USGS and EPA Hydrology and Water Quality Data -Version: 2.7.24.9000 +Version: 2.7.24.9001 Authors@R: c( person("Laura", "DeCicco", role = c("aut","cre"), email = "ldecicco@usgs.gov", diff --git a/NAMESPACE b/NAMESPACE index 67434a709..4817ef167 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -55,6 +55,7 @@ export(read_waterdata_latest_daily) export(read_waterdata_metadata) export(read_waterdata_monitoring_location) export(read_waterdata_parameter_codes) +export(read_waterdata_ratings) export(read_waterdata_samples) export(read_waterdata_stats_daterange) export(read_waterdata_stats_por) diff --git a/NEWS b/NEWS index 280ee62a9..6312cc19a 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ dataRetrieval 2.7.25 =================== +* Added read_waterdata_ratings to access USGS rating curves with +new modern endpoint. * Increase flexibility of chunking by monitoring_location_id by including it as an argument in each relevant function. * Clean up deprecated code. diff --git a/R/readNWISunit.R b/R/readNWISunit.R index fadc33886..89399818f 100644 --- a/R/readNWISunit.R +++ b/R/readNWISunit.R @@ -280,7 +280,12 @@ readNWISpeak <- function( #' attr(data, "RATING") #' } readNWISrating <- function(siteNumber, type = "base", convertType = TRUE) { - message(new_nwis_message()) + .Deprecated( + new = "read_waterdata_ratings", + package = "dataRetrieval", + msg = "NWIS servers are slated for decommission. Please begin to migrate to read_waterdata_ratings." + ) + # No rating xml service url <- constructNWISURL(siteNumber, service = "rating", ratingType = type) @@ -476,4 +481,3 @@ readNWISuse <- function( ) return(NULL) } - diff --git a/R/read_waterdata_ratings.R b/R/read_waterdata_ratings.R new file mode 100644 index 000000000..13f580513 --- /dev/null +++ b/R/read_waterdata_ratings.R @@ -0,0 +1,161 @@ +#' Get USGS Rating Curve Data +#' +#' Reads current rating table for an active USGS streamgages. +#' +#' @param monitoring_location_id A unique identifier representing a single +#' monitoring location. Monitoring location IDs are created by combining the +#' agency code of the agency responsible for the monitoring location (e.g. USGS) +#' with the ID number of the monitoring location (e.g. 02238500), separated by +#' a hyphen (e.g. USGS-02238500). +#' @param file_type Rating file time. Could be any of "exsa", "corr", or "base". +#' If `file_type` is "base" then the columns are +#' INDEP, typically the gage height, in feet; DEP, typically the streamflow, +#' in cubic feet per second; and STOR, where "*" indicates that the pair are +#' a fixed point of the rating curve. If `file_type` is "exsa" then an +#' additional column, SHIFT, is included that indicates the current shift in +#' the rating for that value of INDEP. If `file_type` is "corr" then the +#' columns are INDEP, typically the gage height, in feet; CORR, the correction +#' for that value; and CORRINDEP, the corrected value for CORR. +#' @param file_path Path to save the rating curve rdb files. The +#' default is `tempdir()`, which will wipe out the files. +#' @param datetime Only return items that have a temporal property that +#' intersects this value. Either a date-time or an interval, open or closed. +#' See Details below. +#' @param \dots Not used. +#' @param limit Limits the number of results that are included in each page of +#' the response (capped at the default 10,000). +#' @param download_and_parse Logical to define whether or not to download, parse, +#' and return a list of data frames with rating curve data (`TRUE`), or to return +#' just a list of available rating curve files (`FALSE`). Default is `TRUE`. +#' @export +#' @inherit read_waterdata_continuous details +#' +#' @return List of data frames which contain the requested rating curves. +#' +#' @examplesIf is_dataRetrieval_user() +#' +#' \donttest{ +#' +#' monitoring_location_id <- c("USGS-01104475", "USGS-01104460") +#' ratings_exsa <- read_waterdata_ratings( +#' monitoring_location_id = monitoring_location_id, +#' file_type = "exsa") +#' +#' head(ratings_exsa[["USGS-01104475.exsa.rdb"]]) +#' comment(ratings_exsa[["USGS-01104475.exsa.rdb"]])[1:15] +#' +#' ratings_corr <- read_waterdata_ratings( +#' monitoring_location_id = monitoring_location_id, +#' file_type = "corr") +#' +#' head(ratings_corr[["USGS-01104460.corr.rdb"]]) +#' comment(ratings_corr[["USGS-01104460.corr.rdb"]])[1:15] +#' +#' rating_2 <- read_waterdata_ratings( +#' monitoring_location_id = monitoring_location_id, +#' file_type = c("corr", "exsa")) +#' +#' bbox <- c(-95.00, 40.0, -92.0, 42) +#' +#' bbox_query <- read_waterdata_ratings(bbox = bbox, +#' download_and_parse = FALSE) +#' length(bbox_query) +#' recent_query <- read_waterdata_ratings(bbox = bbox, +#' datetime = c(Sys.Date()-7, NA), +#' download_and_parse = FALSE) +#' length(recent_query) +#'} +read_waterdata_ratings <- function( + monitoring_location_id = NA_character_, + file_type = "exsa", + file_path = tempdir(), + bbox = NA, + datetime = NA_character_, + ..., + limit = 10000, + download_and_parse = TRUE +) { + match.arg( + arg = file_type, + choices = c("exsa", "base", "corr"), + several.ok = TRUE + ) + rlang::check_dots_empty() + + request <- httr2::request("https://api.waterdata.usgs.gov/stac/v0/") |> + httr2::req_url_path_append("search") + + if (!all(is.na(monitoring_location_id))) { + if (length(monitoring_location_id) > 1) { + monitoring_location_id <- paste0( + monitoring_location_id, + collapse = "', '" + ) + } + + request <- request |> + httr2::req_url_query( + filter = sprintf( + "monitoring_location_id IN ('%s')", + monitoring_location_id + ) + ) + } + + if (!all(is.na(datetime))) { + if (any(grepl("P", datetime))) { + stop( + "Periods are not supported in datetime argument in the rating curve service." + ) + } + datetime <- format_api_dates(datetime, date = FALSE) + + request <- request |> + httr2::req_url_query(datetime = datetime) + } + + if (all(!is.na(bbox))) { + request <- httr2::req_url_query( + request, + bbox = as.numeric(bbox), + .multi = "comma" + ) + } + + request <- request |> + httr2::req_url_query(limit = limit) |> + dataRetrieval:::basic_request() + + resp <- httr2::req_perform(request) + features <- httr2::resp_body_json(resp)[["features"]] + + if (download_and_parse) { + return_list <- list() + for (feature in features) { + id <- feature$id + df <- download_convert(feature, file_path, file_type) + if (!is.null(df)) { + return_list[[id]] <- df + } + } + + return(return_list) + } else { + return(features) + } +} + +download_convert <- function(feature, file_path, file_type) { + links <- feature$links + id <- feature$id + url <- feature$assets$data$href + + if (any(sapply(file_type, function(x) grepl(x, url)))) { + full_file_path <- file.path(file_path, id) + download.file(url = url, destfile = full_file_path) + rating <- dataRetrieval::importRDB1(full_file_path) + return(rating) + } + + return(NULL) +} diff --git a/man/read_waterdata_ratings.Rd b/man/read_waterdata_ratings.Rd new file mode 100644 index 000000000..8732978e0 --- /dev/null +++ b/man/read_waterdata_ratings.Rd @@ -0,0 +1,108 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/read_waterdata_ratings.R +\name{read_waterdata_ratings} +\alias{read_waterdata_ratings} +\title{Get USGS Rating Curve Data} +\usage{ +read_waterdata_ratings( + monitoring_location_id = NA_character_, + file_type = "exsa", + file_path = tempdir(), + bbox = NA, + datetime = NA_character_, + ..., + limit = 10000, + download_and_parse = TRUE +) +} +\arguments{ +\item{monitoring_location_id}{A unique identifier representing a single +monitoring location. Monitoring location IDs are created by combining the +agency code of the agency responsible for the monitoring location (e.g. USGS) +with the ID number of the monitoring location (e.g. 02238500), separated by +a hyphen (e.g. USGS-02238500).} + +\item{file_type}{Rating file time. Could be any of "exsa", "corr", or "base". +If \code{file_type} is "base" then the columns are +INDEP, typically the gage height, in feet; DEP, typically the streamflow, +in cubic feet per second; and STOR, where "*" indicates that the pair are +a fixed point of the rating curve. If \code{file_type} is "exsa" then an +additional column, SHIFT, is included that indicates the current shift in +the rating for that value of INDEP. If \code{file_type} is "corr" then the +columns are INDEP, typically the gage height, in feet; CORR, the correction +for that value; and CORRINDEP, the corrected value for CORR.} + +\item{file_path}{Path to save the rating curve rdb files. The +default is \code{tempdir()}, which will wipe out the files.} + +\item{datetime}{Only return items that have a temporal property that +intersects this value. Either a date-time or an interval, open or closed. +See Details below.} + +\item{\dots}{Not used.} + +\item{limit}{Limits the number of results that are included in each page of +the response (capped at the default 10,000).} + +\item{download_and_parse}{Logical to define whether or not to download, parse, +and return a list of data frames with rating curve data (\code{TRUE}), or to return +just a list of available rating curve files (\code{FALSE}). Default is \code{TRUE}.} +} +\value{ +List of data frames which contain the requested rating curves. +} +\description{ +Reads current rating table for an active USGS streamgages. +} +\details{ +You can also use a vector of length 2 for any time queries (such as time +or last_modified). The first value is the starting date (or datetime), +the second value is the ending date(or datetime). +NA's within the vector indicate a half-bound date. +For example, \code{time = c("2024-01-01", NA)} will return all data starting +at 2024-01-01. +\code{time = c(NA, "2024-01-01")} will return all data from the beginning of +the timeseries until 2024-01-01. +By default, time is assumed UTC, although time zone attributes +will be accommodated. As an example, setting \code{time = as.POSIXct(c("2021-01-01 12:00:00", +"2021-01-01 14:00"), tz = "America/New_York")} will request data that between +noon and 2pm eastern time on 2021-01-01. +All time values RETURNED from the service are UTC with the exception of +daily data, which returns time values in local dates. +} +\examples{ +\dontshow{if (is_dataRetrieval_user()) withAutoprint(\{ # examplesIf} + +\donttest{ + +monitoring_location_id <- c("USGS-01104475", "USGS-01104460") +ratings_exsa <- read_waterdata_ratings( + monitoring_location_id = monitoring_location_id, + file_type = "exsa") + +head(ratings_exsa[["USGS-01104475.exsa.rdb"]]) +comment(ratings_exsa[["USGS-01104475.exsa.rdb"]])[1:15] + +ratings_corr <- read_waterdata_ratings( + monitoring_location_id = monitoring_location_id, + file_type = "corr") + +head(ratings_corr[["USGS-01104460.corr.rdb"]]) +comment(ratings_corr[["USGS-01104460.corr.rdb"]])[1:15] + +rating_2 <- read_waterdata_ratings( + monitoring_location_id = monitoring_location_id, + file_type = c("corr", "exsa")) + +bbox <- c(-95.00, 40.0, -92.0, 42) + +bbox_query <- read_waterdata_ratings(bbox = bbox, + download_and_parse = FALSE) +length(bbox_query) +recent_query <- read_waterdata_ratings(bbox = bbox, + datetime = c(Sys.Date()-7, NA), + download_and_parse = FALSE) +length(recent_query) +} +\dontshow{\}) # examplesIf} +} diff --git a/tests/testthat/tests_general.R b/tests/testthat/tests_general.R index ce207f440..6b047ea93 100644 --- a/tests/testthat/tests_general.R +++ b/tests/testthat/tests_general.R @@ -190,37 +190,20 @@ test_that("General NWIS retrievals working", { AS <- read_waterdata_monitoring_location(state_name = "American Samoa") expect_gt(nrow(AS), 0) - site_id <- "01594440" - rating_curve <- readNWISdata( - service = "rating", - site_no = site_id, + site_id <- "USGS-01594440" + rating_curve <- read_waterdata_ratings( + monitoring_location_id = site_id, file_type = "base" ) - rating_curve2 <- readNWISrating( - siteNumber = site_id, - type = "base" - ) - expect_equal( - attr(rating_curve, "url"), - "https://waterdata.usgs.gov/nwisweb/get_ratings/?site_no=01594440&file_type=base" - ) - expect_equal(rating_curve$INDEP, rating_curve2$INDEP) - state_rating_list <- readNWISdata( - service = "rating", - file_type = "base", - period = 24 + expect_equal(names(rating_curve), "USGS-01594440.base.rdb") + + state_rating_list <- read_waterdata_ratings( + datetime = c(Sys.Date() - 1, NA), + download_and_parse = FALSE ) - expect_true(all( - names(state_rating_list) %in% - c( - "agency_cd", - "site_no", - "type", - "update_time", - "url" - ) - )) + + expect_true(length(state_rating_list) > 0) multi_hucs <- c("07130007", "07130011") multi_huc_sites <- read_waterdata_monitoring_location( diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index ba3240a67..bf3f2a526 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -118,9 +118,12 @@ test_that("peak, rating curves, surface-water measurements", { expect_is(data$agency_cd, "character") # Rating curvs: - siteNumber <- "01594440" - data <- readNWISrating(siteNumber, "base") - expect_that(length(attr(data, "RATING")), equals(7)) + siteNumber <- "USGS-01594440" + data <- read_waterdata_ratings( + monitoring_location_id = siteNumber, + file_type = "base" + ) + expect_gt(length(comment(data[[1]])), 1) # Surface meas: siteNumbers <- c("USGS-01594440", "USGS-040851325") From c4aaca0dc0e2228c7b2268cca558f40816421c3a Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Wed, 22 Apr 2026 08:23:30 -0500 Subject: [PATCH 19/44] Clean up docs --- R/get_ogc_data.R | 3 ++- R/read_waterdata_ratings.R | 11 +++++++++-- man/check_arguments_api.Rd | 3 ++- man/read_waterdata_channel.Rd | 3 ++- man/read_waterdata_combined_meta.Rd | 3 ++- man/read_waterdata_daily.Rd | 3 ++- man/read_waterdata_field_measurements.Rd | 3 ++- man/read_waterdata_field_meta.Rd | 3 ++- man/read_waterdata_latest_continuous.Rd | 3 ++- man/read_waterdata_latest_daily.Rd | 3 ++- man/read_waterdata_monitoring_location.Rd | 3 ++- man/read_waterdata_ratings.Rd | 8 ++++++++ man/read_waterdata_ts_meta.Rd | 3 ++- 13 files changed, 39 insertions(+), 13 deletions(-) diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index c1e929b69..1ba5c444a 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -246,7 +246,8 @@ check_arguments_non_api <- function( #' box are selected.The bounding box is provided as four or six numbers, depending #' on whether the coordinate reference system includes a vertical axis (height or #' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -#' vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +#' vector structured: c(xmin,ymin,xmax,ymax). +#' Another way to think of it is c(Western-most longitude, #' Southern-most latitude, Eastern-most longitude, Northern-most longitude). #' @param skipGeometry This parameter can be used to skip response geometries for #' each feature. The returning object will be a data frame with no spatial diff --git a/R/read_waterdata_ratings.R b/R/read_waterdata_ratings.R index 13f580513..bae45013f 100644 --- a/R/read_waterdata_ratings.R +++ b/R/read_waterdata_ratings.R @@ -21,6 +21,13 @@ #' @param datetime Only return items that have a temporal property that #' intersects this value. Either a date-time or an interval, open or closed. #' See Details below. +#' @param bbox Only features that have a geometry that intersects the bounding +#' box are selected.The bounding box is provided as four or six numbers, depending +#' on whether the coordinate reference system includes a vertical axis (height or +#' depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric +#' vector structured: c(xmin,ymin,xmax,ymax). +#' Another way to think of it is c(Western-most longitude, +#' Southern-most latitude, Eastern-most longitude, Northern-most longitude). #' @param \dots Not used. #' @param limit Limits the number of results that are included in each page of #' the response (capped at the default 10,000). @@ -124,7 +131,7 @@ read_waterdata_ratings <- function( request <- request |> httr2::req_url_query(limit = limit) |> - dataRetrieval:::basic_request() + basic_request() resp <- httr2::req_perform(request) features <- httr2::resp_body_json(resp)[["features"]] @@ -152,7 +159,7 @@ download_convert <- function(feature, file_path, file_type) { if (any(sapply(file_type, function(x) grepl(x, url)))) { full_file_path <- file.path(file_path, id) - download.file(url = url, destfile = full_file_path) + utils::download.file(url = url, destfile = full_file_path) rating <- dataRetrieval::importRDB1(full_file_path) return(rating) } diff --git a/man/check_arguments_api.Rd b/man/check_arguments_api.Rd index 0c836cdfa..0b7dec461 100644 --- a/man/check_arguments_api.Rd +++ b/man/check_arguments_api.Rd @@ -11,7 +11,8 @@ check_arguments_api(bbox, skipGeometry, ...) box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{skipGeometry}{This parameter can be used to skip response geometries for diff --git a/man/read_waterdata_channel.Rd b/man/read_waterdata_channel.Rd index 542d0156f..024cd908d 100644 --- a/man/read_waterdata_channel.Rd +++ b/man/read_waterdata_channel.Rd @@ -129,7 +129,8 @@ information. The default \code{NA} will not specify the argument in the request. box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{...}{Not used. Included to help differentiate official Water Data API arguments diff --git a/man/read_waterdata_combined_meta.Rd b/man/read_waterdata_combined_meta.Rd index d8101c962..198117534 100644 --- a/man/read_waterdata_combined_meta.Rd +++ b/man/read_waterdata_combined_meta.Rd @@ -248,7 +248,8 @@ information. The default \code{NA} will not specify the argument in the request. box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{...}{Not used. Included to help differentiate official Water Data API arguments diff --git a/man/read_waterdata_daily.Rd b/man/read_waterdata_daily.Rd index b1ea82326..ef3d7eede 100644 --- a/man/read_waterdata_daily.Rd +++ b/man/read_waterdata_daily.Rd @@ -91,7 +91,8 @@ See also Details below for more information.} box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{...}{Not used. Included to help differentiate official Water Data API arguments diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index 0f4bcca8c..cdceca0b0 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -103,7 +103,8 @@ See also Details below for more information.} box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{...}{Not used. Included to help differentiate official Water Data API arguments diff --git a/man/read_waterdata_field_meta.Rd b/man/read_waterdata_field_meta.Rd index f253d24be..d68e66731 100644 --- a/man/read_waterdata_field_meta.Rd +++ b/man/read_waterdata_field_meta.Rd @@ -94,7 +94,8 @@ information. The default \code{NA} will not specify the argument in the request. box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{limit}{numeric, The optional limit parameter is used to control the subset of the diff --git a/man/read_waterdata_latest_continuous.Rd b/man/read_waterdata_latest_continuous.Rd index 24ada745e..e980a60e6 100644 --- a/man/read_waterdata_latest_continuous.Rd +++ b/man/read_waterdata_latest_continuous.Rd @@ -86,7 +86,8 @@ See also Details below for more information.} box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{...}{Not used. Included to help differentiate official Water Data API arguments diff --git a/man/read_waterdata_latest_daily.Rd b/man/read_waterdata_latest_daily.Rd index e8872f6d4..6eb5a386b 100644 --- a/man/read_waterdata_latest_daily.Rd +++ b/man/read_waterdata_latest_daily.Rd @@ -91,7 +91,8 @@ See also Details below for more information.} box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{...}{Not used. Included to help differentiate official Water Data API arguments diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index 0f95f16fb..400bf0564 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -147,7 +147,8 @@ The default (\code{NA}) will return all columns of the data.} box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{skipGeometry}{This parameter can be used to skip response geometries for diff --git a/man/read_waterdata_ratings.Rd b/man/read_waterdata_ratings.Rd index 8732978e0..30a833aec 100644 --- a/man/read_waterdata_ratings.Rd +++ b/man/read_waterdata_ratings.Rd @@ -35,6 +35,14 @@ for that value; and CORRINDEP, the corrected value for CORR.} \item{file_path}{Path to save the rating curve rdb files. The default is \code{tempdir()}, which will wipe out the files.} +\item{bbox}{Only features that have a geometry that intersects the bounding +box are selected.The bounding box is provided as four or six numbers, depending +on whether the coordinate reference system includes a vertical axis (height or +depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, +Southern-most latitude, Eastern-most longitude, Northern-most longitude).} + \item{datetime}{Only return items that have a temporal property that intersects this value. Either a date-time or an interval, open or closed. See Details below.} diff --git a/man/read_waterdata_ts_meta.Rd b/man/read_waterdata_ts_meta.Rd index 00c94798b..9731aae48 100644 --- a/man/read_waterdata_ts_meta.Rd +++ b/man/read_waterdata_ts_meta.Rd @@ -137,7 +137,8 @@ information. The default \code{NA} will not specify the argument in the request. box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth). Coordinates are assumed to be in crs 4326. The expected format is a numeric -vector structured: c(xmin,ymin,xmax,ymax). Another way to think of it is c(Western-most longitude, +vector structured: c(xmin,ymin,xmax,ymax). +Another way to think of it is c(Western-most longitude, Southern-most latitude, Eastern-most longitude, Northern-most longitude).} \item{begin}{This field contains the same information as "begin_utc", but in the local time of the monitoring location. It is retained for backwards compatibility, but will be removed in V1 of these APIs.} From 005a2a0780f4835152adf7eaecc18a3d10da4dd9 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Wed, 22 Apr 2026 08:57:31 -0500 Subject: [PATCH 20/44] Add to docs --- _pkgdown.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_pkgdown.yml b/_pkgdown.yml index ed2f068e0..9c5ffec2d 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -91,6 +91,7 @@ reference: - read_waterdata_channel - read_waterdata_field_meta - read_waterdata_combined_meta + - read_waterdata_ratings - title: National Water Information System (NWIS) desc: Functions to retrieve (USGS) NWIS data. These will be slowly phased out and replaced with the read_waterdata family of functions. contents: From 58083ee1b95d6e887a3f4464005e497777e0f2c9 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Thu, 23 Apr 2026 09:54:31 -0500 Subject: [PATCH 21/44] Added new reference lists --- .Rbuildignore | 1 + NEWS | 2 + R/AAA.R | 10 + R/get_ogc_data.R | 11 +- R/read_waterdata_metadata.R | 5 + _pkgdown.yml | 2 + man/read_waterdata_field_measurements.Rd | 2 +- man/read_waterdata_metadata.Rd | 5 + vignettes/Reference_Lists.Rmd | 243 +++++++++++++++++++++++ vignettes/read_waterdata_functions.Rmd | 166 +--------------- 10 files changed, 279 insertions(+), 168 deletions(-) create mode 100644 vignettes/Reference_Lists.Rmd diff --git a/.Rbuildignore b/.Rbuildignore index 7ad0cd654..14c498f39 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -67,5 +67,6 @@ vignettes/changes_slides.Rmd vignettes/daily_data_statistics.Rmd vignettes/continuous_pr.Rmd vignettes/quick_slides.Rmd +vignettes/Reference_Lists.Rmd ^[.]?air[.]toml$ ^\.vscode$ diff --git a/NEWS b/NEWS index 6312cc19a..b162c2cb6 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,8 @@ new modern endpoint. including it as an argument in each relevant function. * Clean up deprecated code. * Updated retry strategy to include retry_on_failure = TRUE. +* Added countries, methods, method-categories, method-citations, and +citations to possible values in read_waterdata_metadata. dataRetrieval 2.7.24 diff --git a/R/AAA.R b/R/AAA.R index 71172f1a0..e02bd1987 100644 --- a/R/AAA.R +++ b/R/AAA.R @@ -37,7 +37,12 @@ pkg.env <- new.env() "coordinate-method-codes", "medium-codes", "counties", + "countries", "hydrologic-unit-codes", + "methods", + "method-categories", + "method-citations", + "citations", "states", "national-aquifer-codes", "reliability-codes", @@ -57,7 +62,12 @@ pkg.env <- new.env() "coordinate_method_code", "medium_code", "county", + "country", "hydrologic_unit_code", + "methods", + "method_categories", + "method_citations", + "citations", "state", "national_aquifer_code", "reliability_code", diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index 1ba5c444a..491c29e7e 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -87,8 +87,15 @@ get_ogc_data <- function(args, output_id, service) { } } - if (!isTRUE(args[["skipGeometry"]]) & "geometry" %in% names(return_list)) { - return_list <- sf::st_as_sf(return_list) + if ( + !isTRUE(args[["skipGeometry"]]) & + "geometry" %in% names(return_list) + ) { + if (all(sf::st_is_empty(return_list[["geometry"]]))) { + return_list <- sf::st_drop_geometry(return_list) + } else { + return_list <- sf::st_as_sf(return_list) + } } attr(return_list, "queryTime") <- Sys.time() diff --git a/R/read_waterdata_metadata.R b/R/read_waterdata_metadata.R index 9cadec62c..5021817d8 100644 --- a/R/read_waterdata_metadata.R +++ b/R/read_waterdata_metadata.R @@ -28,11 +28,16 @@ #' aquifer_codes <- read_waterdata_metadata("aquifer-codes") #' aquifer_types <- read_waterdata_metadata("aquifer-types") #' counties <- read_waterdata_metadata("counties") +#' countries <- read_waterdata_metadata("countries") #' us_counties <- read_waterdata_metadata("counties", country_code = "US") #' coordinate_accuracy_codes <- read_waterdata_metadata("coordinate-accuracy-codes") #' coordinate_datum_codes <- read_waterdata_metadata("coordinate-datum-codes") #' coordinate_method_codes <- read_waterdata_metadata("coordinate-method-codes") #' huc_codes <- read_waterdata_metadata("hydrologic-unit-codes") +#' methods <- read_waterdata_metadata("methods") +#' method_categories <- read_waterdata_metadata("method-categories") +#' method_citations <- read_waterdata_metadata("method-citations") +#' citations <- read_waterdata_metadata("citations") #' national_aquifer_codes <- read_waterdata_metadata("national-aquifer-codes") #' parameter_codes <- read_waterdata_metadata("parameter-codes") #' reliability_codes <- read_waterdata_metadata("reliability-codes") diff --git a/_pkgdown.yml b/_pkgdown.yml index 9c5ffec2d..b406fcf1b 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -46,6 +46,8 @@ navbar: href: articles/daily_data_statistics.html - text: Continuous Data href: articles/continuous_pr.html + - text: USGS Reference Lists + href: articles/Reference_Lists.html - text: Changes to QW href: articles/qwdata_changes.html - text: Background diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index cdceca0b0..19a39cba4 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -44,7 +44,7 @@ Multiple parameter_codes can be requested as a character vector.} \item{properties}{A vector of requested columns to be returned from the query. Available options are: -geometry, field_measurement_id, field_visit_id, parameter_code, monitoring_location_id, observing_procedure_code, observing_procedure, value, unit_of_measure, time, qualifier, vertical_datum, approval_status, measuring_agency, last_modified, control_condition, measurement_rated. +geometry, field_measurement_id, field_measurements_series_id, field_visit_id, parameter_code, monitoring_location_id, observing_procedure_code, observing_procedure, value, unit_of_measure, time, qualifier, vertical_datum, approval_status, measuring_agency, last_modified, control_condition, measurement_rated. The default (\code{NA}) will return all columns of the data.} \item{field_visit_id}{A universally unique identifier (UUID) for the field visit. Multiple measurements may be made during a single field visit.} diff --git a/man/read_waterdata_metadata.Rd b/man/read_waterdata_metadata.Rd index f8f84aacd..54f50ce01 100644 --- a/man/read_waterdata_metadata.Rd +++ b/man/read_waterdata_metadata.Rd @@ -45,11 +45,16 @@ altitude_datums <- read_waterdata_metadata("altitude-datums") aquifer_codes <- read_waterdata_metadata("aquifer-codes") aquifer_types <- read_waterdata_metadata("aquifer-types") counties <- read_waterdata_metadata("counties") +countries <- read_waterdata_metadata("countries") us_counties <- read_waterdata_metadata("counties", country_code = "US") coordinate_accuracy_codes <- read_waterdata_metadata("coordinate-accuracy-codes") coordinate_datum_codes <- read_waterdata_metadata("coordinate-datum-codes") coordinate_method_codes <- read_waterdata_metadata("coordinate-method-codes") huc_codes <- read_waterdata_metadata("hydrologic-unit-codes") +methods <- read_waterdata_metadata("methods") +method_categories <- read_waterdata_metadata("method-categories") +method_citations <- read_waterdata_metadata("method-citations") +citations <- read_waterdata_metadata("citations") national_aquifer_codes <- read_waterdata_metadata("national-aquifer-codes") parameter_codes <- read_waterdata_metadata("parameter-codes") reliability_codes <- read_waterdata_metadata("reliability-codes") diff --git a/vignettes/Reference_Lists.Rmd b/vignettes/Reference_Lists.Rmd new file mode 100644 index 000000000..4614bb105 --- /dev/null +++ b/vignettes/Reference_Lists.Rmd @@ -0,0 +1,243 @@ +--- +title: "USGS Reference Lists" +editor_options: + chunk_output_type: console +output: + rmarkdown::html_vignette: + toc: true + number_sections: false +vignette: > + %\VignetteIndexEntry{USGS Reference Lists} + \usepackage[utf8]{inputenc} + %\VignetteEngine{knitr::rmarkdown} +--- + + +```{r setup, include=FALSE, message=FALSE} +library(knitr) +library(dataRetrieval) + +options(continue = " ", + width = 50) + +knitr::opts_chunk$set( + echo = TRUE, + message = FALSE, + warning = FALSE, + fig.height = 4, + fig.width = 7 +) +``` + +## USGS Reference Lists + +### Agency Codes + +`r dataRetrieval:::get_description("agency-codes")` + +```{r} +agency_codes <- read_waterdata_metadata("agency-codes") +head(agency_codes) +``` + +### Altitude Datums + +`r dataRetrieval:::get_description("altitude-datums")` + +```{r} +altitude_datums <- read_waterdata_metadata("altitude-datums") +head(altitude_datums) +``` + + +### Aquifer Codes + +`r dataRetrieval:::get_description("aquifer-codes")` + +```{r} +aquifer_codes <- read_waterdata_metadata("aquifer-codes") +head(aquifer_codes) +``` + +### Aquifer Types + +`r dataRetrieval:::get_description("aquifer-types")` + +```{r} +aquifer_types <- read_waterdata_metadata("aquifer-types") +head(aquifer_types) +``` + +### Coordinate Accuracy Codes + +`r dataRetrieval:::get_description("coordinate-accuracy-codes")` + +```{r} +coordinate_accuracy_codes <- read_waterdata_metadata("coordinate-accuracy-codes") +head(coordinate_accuracy_codes) +``` + +### Coordinate Datum Codes + +`r dataRetrieval:::get_description("coordinate-accuracy-codes")` + +```{r} +coordinate_datum_codes <- read_waterdata_metadata("coordinate-datum-codes") +head(coordinate_datum_codes) +``` + +### Coordinate Method Codes + +`r dataRetrieval:::get_description("coordinate-method-codes")` + +```{r} +coordinate_method_codes <- read_waterdata_metadata("coordinate-method-codes") +head(coordinate_method_codes) +``` + +### Country Identifiers + +`r dataRetrieval:::get_description("countries")` + +```{r} +countries <- read_waterdata_metadata("countries") +head(countries) +``` + +### County Identifiers + +`r dataRetrieval:::get_description("counties")` + +```{r} +counties <- read_waterdata_metadata("counties") +head(counties) +``` + +### Hydrologic Unit Codes + +`r dataRetrieval:::get_description("hydrologic-unit-codes")` + +```{r} +huc_codes <- read_waterdata_metadata("hydrologic-unit-codes") +head(huc_codes) +``` + + +### Medium Codes + +`r dataRetrieval:::get_description("medium-codes")` + +```{r} +medium_codes <- read_waterdata_metadata("medium-codes") +head(medium_codes) +``` + +### Methods + +`r dataRetrieval:::get_description("methods")` + +```{r} +methods <- read_waterdata_metadata("methods") +head(methods) +``` + +### Method Categories + +`r dataRetrieval:::get_description("method-categories")` + +```{r} +method_categories <- read_waterdata_metadata("method-categories") +head(method_categories) +``` + +### Method Citations + +`r dataRetrieval:::get_description("method-citations")` + +```{r} +method_citations <- read_waterdata_metadata("method-citations") +head(method_citations) +``` + +### Citations + +`r dataRetrieval:::get_description("citations")` + +```{r} +citations <- read_waterdata_metadata("citations") +head(citations) +``` + + +### National Aquifer Codes + +`r dataRetrieval:::get_description("national-aquifer-codes")` + +```{r} +medium_codes <- read_waterdata_metadata("medium-codes") +head(medium_codes) +``` + +### Parameter Codes + +`r dataRetrieval:::get_description("parameter-codes")` + +```{r} +parameter_codes <- read_waterdata_metadata("parameter-codes") +head(parameter_codes) +``` + +### Reliability Codes + +`r dataRetrieval:::get_description("reliability-codes")` + +```{r} +reliability_codes <- read_waterdata_metadata("reliability-codes") +head(reliability_codes) +``` + +### Site Types + +`r dataRetrieval:::get_description("site-types")` + +```{r} +site_types <- read_waterdata_metadata("site-types") +head(site_types) +``` + +### State Identifiers + +`r dataRetrieval:::get_description("states")` + +```{r} +states <- read_waterdata_metadata("states") +head(states) +``` + +### Statistic Codes + +`r dataRetrieval:::get_description("statistic-codes")` + +```{r} +statistic_codes <- read_waterdata_metadata("statistic-codes") +head(statistic_codes) +``` + + +### Topographic Codes + +`r dataRetrieval:::get_description("topographic-codes")` + +```{r} +topographic_codes <- read_waterdata_metadata("topographic-codes") +head(topographic_codes) +``` + +### Time Zone Codes + +`r dataRetrieval:::get_description("time-zone-codes")` + +```{r} +time_zone_codes <- read_waterdata_metadata("time-zone-codes") +head(time_zone_codes) +``` diff --git a/vignettes/read_waterdata_functions.Rmd b/vignettes/read_waterdata_functions.Rmd index 5cb9c37de..cb2e94cfa 100644 --- a/vignettes/read_waterdata_functions.Rmd +++ b/vignettes/read_waterdata_functions.Rmd @@ -445,171 +445,7 @@ leaflet(data = what_huc_sites |> There is a new function `read_waterdata_metadata` that gives access to a wide variety of tables that have metadata information. Any returned column can also be filtered on, similar to the time series functions above. -### Agency Codes - -`r dataRetrieval:::get_description("agency-codes")` - -```{r} -#| eval: false -agency_codes <- read_waterdata_metadata("agency-codes") -``` - -### Altitude Datums - -`r dataRetrieval:::get_description("altitude-datums")` - -```{r} -#| eval: false -altitude_datums <- read_waterdata_metadata("altitude-datums") -``` - - -### Aquifer Codes - -`r dataRetrieval:::get_description("aquifer-codes")` - -```{r} -#| eval: false -aquifer_codes <- read_waterdata_metadata("aquifer-codes") -``` - -### Aquifer Types - -`r dataRetrieval:::get_description("aquifer-types")` - -```{r} -#| eval: false -aquifer_types <- read_waterdata_metadata("aquifer-types") -``` - -### Coordinate Accuracy Codes - -`r dataRetrieval:::get_description("coordinate-accuracy-codes")` - -```{r} -#| eval: false -coordinate_accuracy_codes <- read_waterdata_metadata("coordinate-accuracy-codes") -``` - -### Coordinate Datum Codes - -`r dataRetrieval:::get_description("coordinate-accuracy-codes")` - -```{r} -#| eval: false -coordinate_datum_codes <- read_waterdata_metadata("coordinate-datum-codes") -``` - -### Coordinate Method Codes - -`r dataRetrieval:::get_description("coordinate-method-codes")` - -```{r} -#| eval: false -coordinate_method_codes <- read_waterdata_metadata("coordinate-method-codes") -``` - -### County Identifiers - -`r dataRetrieval:::get_description("counties")` - -```{r} -#| eval: false -counties <- read_waterdata_metadata("counties") -``` - -### Hydrologic Unit Codes - -`r dataRetrieval:::get_description("hydrologic-unit-codes")` - -```{r} -#| eval: false -huc_codes <- read_waterdata_metadata("hydrologic-unit-codes") -``` - - -### Medium Codes - -`r dataRetrieval:::get_description("medium-codes")` - -```{r} -#| eval: false -medium_codes <- read_waterdata_metadata("medium-codes") -``` - -### National Aquifer Codes - -`r dataRetrieval:::get_description("national-aquifer-codes")` - -```{r} -#| eval: false -medium_codes <- read_waterdata_metadata("medium-codes") -``` - -### Parameter Codes - -`r dataRetrieval:::get_description("parameter-codes")` - -```{r} -#| eval: false -parameter_codes <- read_waterdata_metadata("parameter-codes") -``` - -### Reliability Codes - -`r dataRetrieval:::get_description("reliability-codes")` - -```{r} -#| eval: false -reliability_codes <- read_waterdata_metadata("reliability-codes") -``` - -### Site Types - -`r dataRetrieval:::get_description("site-types")` - -```{r} -#| eval: false -site_types <- read_waterdata_metadata("site-types") -``` - -### State Identifiers - -`r dataRetrieval:::get_description("states")` - -```{r} -#| eval: false -states <- read_waterdata_metadata("states") -``` - -### Statistic Codes - -`r dataRetrieval:::get_description("statistic-codes")` - -```{r} -#| eval: false -statistic_codes <- read_waterdata_metadata("statistic-codes") -``` - - -### Topographic Codes - -`r dataRetrieval:::get_description("topographic-codes")` - -```{r} -#| eval: false -topographic_codes <- read_waterdata_metadata("topographic-codes") -``` - -### Time Zone Codes - -`r dataRetrieval:::get_description("time-zone-codes")` - -```{r} -#| eval: false -time_zone_codes <- read_waterdata_metadata("time-zone-codes") -``` - +See [USGS Reference Lists](articles/Reference_Lists.html) for more detail. ## Discrete Samples From bf2cbc5219188054de61709940c358f8e891cbe1 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 07:29:48 -0500 Subject: [PATCH 22/44] Update R/read_waterdata_ratings.R Co-authored-by: Joe Zemmels (he/him) --- R/read_waterdata_ratings.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/read_waterdata_ratings.R b/R/read_waterdata_ratings.R index bae45013f..9315f2d22 100644 --- a/R/read_waterdata_ratings.R +++ b/R/read_waterdata_ratings.R @@ -160,7 +160,7 @@ download_convert <- function(feature, file_path, file_type) { if (any(sapply(file_type, function(x) grepl(x, url)))) { full_file_path <- file.path(file_path, id) utils::download.file(url = url, destfile = full_file_path) - rating <- dataRetrieval::importRDB1(full_file_path) + rating <- importRDB1(full_file_path) return(rating) } From 334350330ad6d77088366e183d0d676a6008fd49 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 08:38:32 -0500 Subject: [PATCH 23/44] Using file_type more effectively --- R/read_waterdata_ratings.R | 30 +++++++++++++++++++++++------- man/read_waterdata_ratings.Rd | 2 +- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/R/read_waterdata_ratings.R b/R/read_waterdata_ratings.R index bae45013f..d6cc1bec5 100644 --- a/R/read_waterdata_ratings.R +++ b/R/read_waterdata_ratings.R @@ -74,7 +74,7 @@ #'} read_waterdata_ratings <- function( monitoring_location_id = NA_character_, - file_type = "exsa", + file_type = c("exsa", "base", "corr"), file_path = tempdir(), bbox = NA, datetime = NA_character_, @@ -92,6 +92,8 @@ read_waterdata_ratings <- function( request <- httr2::request("https://api.waterdata.usgs.gov/stac/v0/") |> httr2::req_url_path_append("search") + filter <- NA_character_ + if (!all(is.na(monitoring_location_id))) { if (length(monitoring_location_id) > 1) { monitoring_location_id <- paste0( @@ -100,13 +102,27 @@ read_waterdata_ratings <- function( ) } + filter <- sprintf( + "monitoring_location_id IN ('%s')", + monitoring_location_id + ) + } + + if (length(file_type) != 3) { + # there are 3 types + if (length(file_type) > 1) { + file_type <- paste0(file_type, collapse = "', '") + } + filter <- sprintf("%s AND file_type IN ('%s')", filter, file_type) + } + + if (!is.na(filter)) { + if (substr(filter, 1, 3) == "AND") { + filter <- substr(filter, 4, nchar(filter)) + } + request <- request |> - httr2::req_url_query( - filter = sprintf( - "monitoring_location_id IN ('%s')", - monitoring_location_id - ) - ) + httr2::req_url_query(filter = filter) } if (!all(is.na(datetime))) { diff --git a/man/read_waterdata_ratings.Rd b/man/read_waterdata_ratings.Rd index 30a833aec..825a08ffa 100644 --- a/man/read_waterdata_ratings.Rd +++ b/man/read_waterdata_ratings.Rd @@ -6,7 +6,7 @@ \usage{ read_waterdata_ratings( monitoring_location_id = NA_character_, - file_type = "exsa", + file_type = c("exsa", "base", "corr"), file_path = tempdir(), bbox = NA, datetime = NA_character_, From 1a00759b49d7f96a7c9dece6389de57e12b22ed2 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 12:14:11 -0500 Subject: [PATCH 24/44] Re-running docs with some updates from the API --- man/read_waterdata_combined_meta.Rd | 12 ++++++------ man/read_waterdata_field_measurements.Rd | 8 ++++++-- man/read_waterdata_field_meta.Rd | 8 ++++---- man/read_waterdata_monitoring_location.Rd | 2 +- man/read_waterdata_ts_meta.Rd | 14 +++++++------- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/man/read_waterdata_combined_meta.Rd b/man/read_waterdata_combined_meta.Rd index 198117534..f7d22c0d1 100644 --- a/man/read_waterdata_combined_meta.Rd +++ b/man/read_waterdata_combined_meta.Rd @@ -94,7 +94,7 @@ Multiple statistic_ids can be requested as a character vector.} \item{data_type}{The computational period type of data collected at the monitoring location.} -\item{computation_identifier}{Indicates whether the data from this time series represent a specific statistical computation. +\item{computation_identifier}{Indicates the computation performed to calculate this time series. Values of "Instantaneous" reflect point measurements. Multiple computation_identifiers can be requested as a character vector.} \item{computation_period_identifier}{Multiple computation_period_identifiers can be requested as a character vector.} @@ -111,11 +111,11 @@ for timely best science and to assist with daily operations which need real-time information. Non-primary time series data are only retained by this system for 120 days.} -\item{web_description}{A description of what this time series represents, as used by WDFN and other USGS data dissemination products.} +\item{web_description}{An optional description of the time series. WDFN and other USGS data dissemination products use this field, in combination with sublocation_identifier, to distinguish the differences between multiple time series for the same parameter code, statistic code, and monitoring location.} \item{parent_time_series_id}{The unique identifier representing the parent or "upchain" time series that a daily values time series is generated from. Daily values time series have one and only one parent time series.} -\item{begin}{The datetime of the earliest observation in the time series. Together with \code{end}, this field represents the period of record of a time series. Note that some time series may have large gaps in their collection record. +\item{begin}{The datetime of the earliest observation in the time series. Together with \code{end_utc}, this field represents the period of record of a time series. Note that some time series may have large gaps in their collection record. You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: \itemize{ @@ -125,11 +125,11 @@ Examples: \item Duration objects: "P1M" for data from the past month or "PT36H" for the last 36 hours } -Only features that have a \code{begin} that intersects the value of datetime are selected. +Only features that have a \code{begin_utc} that intersects the value of datetime are selected. See also Details below for more information.} -\item{end}{The datetime of the most recent observation in the time series. Data returned by this endpoint updates at most once per day, and potentially less frequently than that, and as such there may be more recent observations within a time series than the time series \code{end} value reflects. Together with \code{begin}, this field represents the period of record of a time series. It is additionally used to determine whether a time series is "active". +\item{end}{The datetime of the most recent observation in the time series. Data returned by this endpoint updates at most once per day, and potentially less frequently than that, and as such there may be more recent observations within a time series than the time series \code{end_utc} value reflects. Together with \code{begin_utc}, this field represents the period of record of a time series. It is additionally used to determine whether a time series is "active". You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: \itemize{ @@ -139,7 +139,7 @@ Examples: \item Duration objects: "P1M" for data from the past month or "PT36H" for the last 36 hours } -Only features that have a \code{end} that intersects the value of datetime are selected. +Only features that have a \code{end_utc} that intersects the value of datetime are selected. See also Details below for more information.} diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index 19a39cba4..d5d4494c4 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -77,9 +77,13 @@ See also Details below for more information.} \item{measuring_agency}{The agency performing the measurement.} -\item{control_condition}{What and where the control of flow is for the gage pool.} +\item{control_condition}{The state of the control feature at the time of observation. -\item{measurement_rated}{Rated measurement based on the hydrologic/hydraulic conditions in which the measurement was made +What and where the control of flow is for the gage pool.} + +\item{measurement_rated}{A qualitative estimate of the quality of a measurement. + +Rated measurement based on the hydrologic/hydraulic conditions in which the measurement was made (excellent (2 percent), good (5 percent), fair (8 percent), or poor (more than 8 percent). percent)} \item{skipGeometry}{This parameter can be used to skip response geometries for diff --git a/man/read_waterdata_field_meta.Rd b/man/read_waterdata_field_meta.Rd index d68e66731..1ecfe588f 100644 --- a/man/read_waterdata_field_meta.Rd +++ b/man/read_waterdata_field_meta.Rd @@ -39,7 +39,7 @@ Multiple parameter_names can be requested as a character vector.} Multiple parameter_descriptions can be requested as a character vector.} -\item{begin}{The datetime of the earliest observation in the time series. Together with \code{end}, this field represents the period of record of a time series. Note that some time series may have large gaps in their collection record. +\item{begin}{The datetime of the earliest observation in the time series. Together with \code{end_utc}, this field represents the period of record of a time series. Note that some time series may have large gaps in their collection record. You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: \itemize{ @@ -49,11 +49,11 @@ Examples: \item Duration objects: "P1M" for data from the past month or "PT36H" for the last 36 hours } -Only features that have a \code{begin} that intersects the value of datetime are selected. +Only features that have a \code{begin_utc} that intersects the value of datetime are selected. See also Details below for more information.} -\item{end}{The datetime of the most recent observation in the time series. Data returned by this endpoint updates at most once per day, and potentially less frequently than that, and as such there may be more recent observations within a time series than the time series \code{end} value reflects. Together with \code{begin}, this field represents the period of record of a time series. It is additionally used to determine whether a time series is "active". +\item{end}{The datetime of the most recent observation in the time series. Data returned by this endpoint updates at most once per day, and potentially less frequently than that, and as such there may be more recent observations within a time series than the time series \code{end_utc} value reflects. Together with \code{begin_utc}, this field represents the period of record of a time series. It is additionally used to determine whether a time series is "active". You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: \itemize{ @@ -63,7 +63,7 @@ Examples: \item Duration objects: "P1M" for data from the past month or "PT36H" for the last 36 hours } -Only features that have a \code{end} that intersects the value of datetime are selected. +Only features that have a \code{end_utc} that intersects the value of datetime are selected. See also Details below for more information.} diff --git a/man/read_waterdata_monitoring_location.Rd b/man/read_waterdata_monitoring_location.Rd index 400bf0564..5072a644f 100644 --- a/man/read_waterdata_monitoring_location.Rd +++ b/man/read_waterdata_monitoring_location.Rd @@ -56,7 +56,7 @@ read_waterdata_monitoring_location( ) } \arguments{ -\item{monitoring_location_id}{A unique identifier representing a single monitoring location. This corresponds to the \code{id} field in the \code{monitoring-locations} endpoint. Monitoring location IDs are created by combining the agency code of the agency responsible for the monitoring location (e.g. USGS) with the ID number of the monitoring location (e.g. 02238500), separated by a hyphen (e.g. USGS-02238500). +\item{monitoring_location_id}{A unique identifier representing a single monitoring location. This corresponds to the \code{monitoring_location_id} field in other endpoints. Monitoring location IDs are created by combining the agency code of the agency responsible for the monitoring location (e.g. USGS) with the ID number of the monitoring location (e.g. 02238500), separated by a hyphen (e.g. USGS-02238500). Multiple monitoring_location_ids can be requested as a character vector.} diff --git a/man/read_waterdata_ts_meta.Rd b/man/read_waterdata_ts_meta.Rd index 9731aae48..3188d4b8b 100644 --- a/man/read_waterdata_ts_meta.Rd +++ b/man/read_waterdata_ts_meta.Rd @@ -70,7 +70,7 @@ Only features that have a \code{last_modified} that intersects the value of date See also Details below for more information.} -\item{begin_utc}{The datetime of the earliest observation in the time series. Together with \code{end}, this field represents the period of record of a time series. Note that some time series may have large gaps in their collection record. +\item{begin_utc}{The datetime of the earliest observation in the time series. Together with \code{end_utc}, this field represents the period of record of a time series. Note that some time series may have large gaps in their collection record. You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: \itemize{ @@ -80,12 +80,12 @@ Examples: \item Duration objects: "P1M" for data from the past month or "PT36H" for the last 36 hours } -Only features that have a \code{begin} that intersects the value of datetime are selected. +Only features that have a \code{begin_utc} that intersects the value of datetime are selected. #' See also Details below for more information.} -\item{end_utc}{The datetime of the most recent observation in the time series. Data returned by this endpoint updates at most once per day, and potentially less frequently than that, and as such there may be more recent observations within a time series than the time series \code{end} value reflects. Together with \code{begin}, this field represents the period of record of a time series. It is additionally used to determine whether a time series is "active". +\item{end_utc}{The datetime of the most recent observation in the time series. Data returned by this endpoint updates at most once per day, and potentially less frequently than that, and as such there may be more recent observations within a time series than the time series \code{end_utc} value reflects. Together with \code{begin_utc}, this field represents the period of record of a time series. It is additionally used to determine whether a time series is "active". You can query this field using date-times or intervals, adhering to RFC 3339, or using ISO 8601 duration objects. Intervals may be bounded or half-bounded (double-dots at start or end). Examples: \itemize{ @@ -95,7 +95,7 @@ Examples: \item Duration objects: "P1M" for data from the past month or "PT36H" for the last 36 hours } -Only features that have a \code{end} that intersects the value of datetime are selected. +Only features that have a \code{end_utc} that intersects the value of datetime are selected. See also Details below for more information.} @@ -108,7 +108,7 @@ See also Details below for more information.} \item{computation_period_identifier}{Indicates the period of data used for any statistical computations. Multiple computation_period_identifiers can be requested as a character vector.} -\item{computation_identifier}{Indicates whether the data from this time series represent a specific statistical computation. +\item{computation_identifier}{Indicates the computation performed to calculate this time series. Values of "Instantaneous" reflect point measurements. Multiple computation_identifiers can be requested as a character vector.} \item{thresholds}{Thresholds represent known numeric limits for a time series, for example the historic maximum value for a parameter or a level below which a sensor is non-operative. These thresholds are sometimes used to automatically determine if an observation is erroneous due to sensor error, and therefore shouldn't be included in the time series.} @@ -125,9 +125,9 @@ this system for 120 days.} \item{parent_time_series_id}{The unique identifier representing the parent or "upchain" time series that a daily values time series is generated from. Daily values time series have one and only one parent time series.} -\item{time_series_id}{A unique identifier representing a single time series. This corresponds to the \code{id} field in the \code{time-series-metadata} endpoint.} +\item{time_series_id}{A unique identifier representing a single time series. This corresponds to the "time_series_id" field in other endpoints.} -\item{web_description}{A description of what this time series represents, as used by WDFN and other USGS data dissemination products.} +\item{web_description}{An optional description of the time series. WDFN and other USGS data dissemination products use this field, in combination with sublocation_identifier, to distinguish the differences between multiple time series for the same parameter code, statistic code, and monitoring location.} \item{skipGeometry}{This parameter can be used to skip response geometries for each feature. The returning object will be a data frame with no spatial From e2257af6569fba0caf5ccb30ee077408b4caa225 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 12:23:56 -0500 Subject: [PATCH 25/44] Remove more tests that hit NWIS --- tests/testthat/tests_imports.R | 212 --------------------------------- 1 file changed, 212 deletions(-) diff --git a/tests/testthat/tests_imports.R b/tests/testthat/tests_imports.R index 509eede51..a8916640d 100644 --- a/tests/testthat/tests_imports.R +++ b/tests/testthat/tests_imports.R @@ -1,55 +1,3 @@ -context("importRDB_noCRAN") - -test_that("External importRDB1 tests", { - testthat::skip_on_cran() - - siteNumber <- "02177000" - startDate <- "2012-09-01" - endDate <- "2012-10-01" - offering <- "00003" - property <- "00060" - - obs_url <- constructNWISURL( - siteNumber, - property, - startDate, - endDate, - "dv", - format = "tsv" - ) - data <- importRDB1(obs_url) - expect_is(data$datetime, "Date") - - urlMultiPcodes <- constructNWISURL( - "04085427", - c("00060", "00010"), - startDate, - endDate, - "dv", - statCd = c("00003", "00001"), - "tsv" - ) - multiData <- importRDB1(urlMultiPcodes) - pCodeCols <- grep("X", colnames(multiData)) - expect_true(length(pCodeCols) / 2 > 2) - - unitDataURL <- constructNWISURL( - siteNumber, - property, - "2013-11-03", - "2013-11-03", - "uv", - format = "tsv" - ) # includes timezone switch - unitData <- importRDB1(unitDataURL, asDateTime = TRUE) - - # Need to think of a way to automatically check timezone conversion: - # expect_that(as.numeric(unitData[which(unitData$tz_cd == "EST")[1],"datetime"]), - # equals(as.numeric(as.POSIXct("2013-11-03 01:00:00", tz="UTC")+60*60*5))) - - site <- "05427850" -}) - context("importRDB") test_that("CRAN-friendly importRDB test", { filePath <- system.file("extdata", package = "dataRetrieval") @@ -71,146 +19,6 @@ test_that("CRAN-friendly importWaterML1 test", { expect_is(importUserWML1$dateTime, "POSIXct") }) -test_that("External importWaterML1 test", { - testthat::skip_on_cran() - - siteNumber <- "02177000" - startDate <- "2012-09-01" - endDate <- "2012-10-01" - offering <- "00003" - property <- "00060" - obs_url <- constructNWISURL(siteNumber, property, startDate, endDate, "dv") - - data <- importWaterML1(obs_url, TRUE) - expect_is(data$dateTime, "POSIXct") - - unitDataURL <- constructNWISURL( - siteNumber, - property, - "2020-10-30", - "2020-11-01", - "uv" - ) - unitData <- importWaterML1(unitDataURL, TRUE) - expect_is(unitData$dateTime, "POSIXct") - - # Two sites, two pcodes, one site has two data descriptors - siteNumber <- c("01480015", "04085427") # one site seems to have lost it"s 2nd dd - obs_url <- constructNWISURL( - siteNumber, - c("00060", "00010"), - startDate, - endDate, - "dv" - ) - data <- importWaterML1(obs_url) - - expect_true(length(unique(data$site_no)) == 2) - expect_true(ncol(data) == 8) # 3 data, 3 remark codes, and 4 (agency, site, dateTime, tz) - - inactiveSite <- "05212700" - inactiveSite <- constructNWISURL( - inactiveSite, - "00060", - "2014-01-01", - "2014-01-10", - "dv" - ) - inactiveSite <- importWaterML1(inactiveSite) - expect_true(nrow(inactiveSite) == 0) - - inactiveAndActive <- c("07334200", "05212700") - inactiveAndActive <- constructNWISURL( - inactiveAndActive, - "00060", - "2014-01-01", - "2014-12-31", - "dv" - ) - inactiveAndActive <- importWaterML1(inactiveAndActive) - # - # The inactive site became active, need a new test. - - # raw XML - url <- constructNWISURL( - service = "dv", - siteNumber = "02319300", - parameterCd = "00060", - startDate = "2014-01-01", - endDate = "2014-01-01" - ) - raw <- httr2::req_perform(url) - raw <- httr2::resp_body_xml(raw) - rawParsed <- importWaterML1(raw) - expect_true(nrow(rawParsed) > 0) - expect_true(data.class(rawParsed$X_00060_00003) == "numeric") - - # no data - url <- constructNWISURL( - "05212700", - "00060", - "2014-01-01", - "2014-01-10", - "dv", - statCd = "00001" - ) - noData <- importWaterML1(url) - expect_true(class(attr(noData, "url")) == "character") - expect_true(all(dim(noData) == c(0, 4))) - - url <- constructNWISURL( - service = "iv", - site = c("02319300", "02171500"), - startDate = "2015-04-04", - endDate = "2015-04-05" - ) - data <- importWaterML1(url, tz = "America/New_York", asDateTime = TRUE) - expect_true(data.class(data$dateTime) == "POSIXct") - expect_true(nrow(data) > 0) - - # expect_error(readNWISdata( - # sites = "05114000", - # service = "iv", - # parameterCd = "00060", - # startDate = "2014-05-01T00:00", - # endDate = "2014-05-01T12:00", - # tz = "blah" - # )) - # - # arg.list <- list( - # sites = "05114000", - # parameterCd = "00060", - # startDate = "2014-05-01T00:00", - # endDate = "2014-05-01T12:00" - # ) - # - # chi_iv <- readNWISdata(arg.list, - # service = "iv", - # tz = "America/Chicago" - # ) - # - # expect_true(all(chi_iv$tz_cd == "America/Chicago")) - # expect_equal(chi_iv$dateTime[1], as.POSIXct("2014-05-01T00:00", - # format = "%Y-%m-%dT%H:%M", - # tz = "America/Chicago" - # )) - # expect_equal(chi_iv$dateTime[nrow(chi_iv)], as.POSIXct("2014-05-01T12:00", - # format = "%Y-%m-%dT%H:%M", - # tz = "America/Chicago" - # )) - - # Time over daylight saving switch: - tzURL <- constructNWISURL( - "04027000", - c("00300", "63680"), - "2011-11-05", - "2011-11-07", - "uv" - ) - tzIssue <- importWaterML1(tzURL, asDateTime = TRUE, tz = "America/Chicago") - expect_false(any(duplicated(tzIssue$dateTime))) -}) - context("importWaterML2") test_that("importWaterML2 internal test", { @@ -228,27 +36,7 @@ context("importWQP_noCRAN") test_that("External WQP tests", { testthat::skip_on_cran() - rawSampleURL <- constructWQPURL( - "USGS-01594440", - "01075", - "", - "", - legacy = FALSE - ) - # rawSample <- importWQP(rawSampleURL) - # expect_is(rawSample$Activity_StartDateTime, "POSIXct") - url2 <- constructWQPURL("USGS-01594440", "01075", "", "", legacy = TRUE) rawSample2 <- suppressWarnings(importWQP(url2)) expect_is(rawSample2$ActivityStartDateTime, "POSIXct") - - STORETex <- constructWQPURL( - "WIDNR_WQX-10032762", - "Specific conductance", - "", - "", - legacy = FALSE - ) - # STORETdata <- importWQP(STORETex) - # expect_is(STORETdata$Activity_StartDateTime, "POSIXct") }) From b95ee1fcc4e62b738ed035e9614b6985cc3b0a31 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 12:39:46 -0500 Subject: [PATCH 26/44] Added data_type to comma, field_measurements_series_id to field measurements, and removed a bunch of NWIS tests --- NEWS | 3 ++ R/construct_api_requests.R | 3 +- R/read_waterdata_field_measurements.R | 2 ++ man/read_waterdata_field_measurements.Rd | 3 ++ tests/testthat/tests_general.R | 35 ------------------------ tests/testthat/tests_userFriendly_fxns.R | 5 ---- 6 files changed, 10 insertions(+), 41 deletions(-) diff --git a/NEWS b/NEWS index b162c2cb6..2a00027a4 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,9 @@ including it as an argument in each relevant function. * Updated retry strategy to include retry_on_failure = TRUE. * Added countries, methods, method-categories, method-citations, and citations to possible values in read_waterdata_metadata. +* Added field_measurements_series_id argument to read_waterdata_field_measurement +* Removed NWIS tests + dataRetrieval 2.7.24 diff --git a/R/construct_api_requests.R b/R/construct_api_requests.R index c4cb00b2f..4fe15147c 100644 --- a/R/construct_api_requests.R +++ b/R/construct_api_requests.R @@ -119,7 +119,8 @@ construct_api_requests <- function( "statistic_id", "time_series_id", "computation_period_identifier", - "computation_identifier" + "computation_identifier", + "data_type" ) if ( diff --git a/R/read_waterdata_field_measurements.R b/R/read_waterdata_field_measurements.R index a65a2437f..d0718abe6 100644 --- a/R/read_waterdata_field_measurements.R +++ b/R/read_waterdata_field_measurements.R @@ -20,6 +20,7 @@ #' See also Details below for more information. #' @param qualifier `r get_ogc_params("field-measurements")$qualifier` #' @param field_visit_id `r get_ogc_params("field-measurements")$field_visit_id` +#' @param field_measurements_series_id `r get_ogc_params("field-measurements")$field_measurements_series_id` #' @param vertical_datum `r get_ogc_params("field-measurements")$vertical_datum` #' @param measuring_agency `r get_ogc_params("field-measurements")$measuring_agency` #' @param control_condition `r get_ogc_params("field-measurements")$control_condition` @@ -83,6 +84,7 @@ read_waterdata_field_measurements <- function( observing_procedure_code = NA_character_, properties = NA_character_, field_visit_id = NA_character_, + field_measurements_series_id = NA_character_, approval_status = NA_character_, unit_of_measure = NA_character_, qualifier = NA_character_, diff --git a/man/read_waterdata_field_measurements.Rd b/man/read_waterdata_field_measurements.Rd index d5d4494c4..b4de841a8 100644 --- a/man/read_waterdata_field_measurements.Rd +++ b/man/read_waterdata_field_measurements.Rd @@ -10,6 +10,7 @@ read_waterdata_field_measurements( observing_procedure_code = NA_character_, properties = NA_character_, field_visit_id = NA_character_, + field_measurements_series_id = NA_character_, approval_status = NA_character_, unit_of_measure = NA_character_, qualifier = NA_character_, @@ -49,6 +50,8 @@ The default (\code{NA}) will return all columns of the data.} \item{field_visit_id}{A universally unique identifier (UUID) for the field visit. Multiple measurements may be made during a single field visit.} +\item{field_measurements_series_id}{A unique identifier representing a single collection series. This corresponds to the \code{id} field in the \code{field-measurements-metadata} endpoint. Collection series are defined as the set of field measurements at a given monitoring location for a single parameter code using a single reading type.} + \item{approval_status}{Some of the data that you have obtained from this U.S. Geological Survey database may not have received Director's approval. Any such data values are qualified as provisional and are subject to revision. Provisional data are released on the condition that neither the USGS nor the United States Government may be held liable for any damages resulting from its use. This field reflects the approval status of each record, and is either "Approved", meaining processing review has been completed and the data is approved for publication, or "Provisional" and subject to revision. For more information about provisional data, go to \url{https://waterdata.usgs.gov/provisional-data-statement/}.} \item{unit_of_measure}{A human-readable description of the units of measurement associated with an observation.} diff --git a/tests/testthat/tests_general.R b/tests/testthat/tests_general.R index 6b047ea93..8945174fe 100644 --- a/tests/testthat/tests_general.R +++ b/tests/testthat/tests_general.R @@ -97,41 +97,6 @@ test_that("General NWIS retrievals working", { expect_is(timeseriesInfo$begin, "POSIXct") # nolint start: line_length_linter - url <- httr2::request( - "https://waterservices.usgs.gov/nwis/dv/?site=09037500&format=rdb&ParameterCd=00060&StatCd=00003&startDT=1985-10-02&endDT=2012-09-06" - ) - dv <- importRDB1(url, asDateTime = FALSE) - # nolint end - dailyStat <- readNWISdata( - site = c("03112500", "03111520", "02319394"), - service = "stat", - statReportType = "daily", - statType = c("p25", "p50", "p75", "min", "max"), - parameterCd = "00065", - convertType = FALSE - ) - expect_true(length(dailyStat$min_va) > 1) - expect_is(dailyStat$p25_va, "character") - - waterYearStat <- readNWISdata( - site = c("01646500"), - service = "stat", - statReportType = "annual", - statYearType = "water", - missingData = "on" - ) - expect_is(waterYearStat$mean_va, "numeric") - expect_is(waterYearStat$parameter_cd, "character") - - # Empty data - # note....not empty anymore! - # nolint start: line_length_linter - urlTest <- httr2::request( - "https://nwis.waterservices.usgs.gov/nwis/iv/?site=11447650&format=waterml,1.1&ParameterCd=63680&startDT=2016-12-13&endDT=2016-12-13" - ) - x <- importWaterML1(urlTest) - expect_true(all(c("agency_cd", "site_no", "dateTime", "tz_cd") %in% names(x))) - # nolint end # Test list: args <- list( diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index bf3f2a526..fc387aa14 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -162,11 +162,6 @@ test_that("peak, rating curves, surface-water measurements", { 4 ) - url <- httr2::request( - "https://waterservices.usgs.gov/nwis/site/?format=rdb&seriesCatalogOutput=true&sites=05114000" - ) - x <- importRDB1(url) - siteID <- "USGS-263819081585801" gwl_1 <- read_waterdata_field_measurements(monitoring_location_id = siteID) expect_equal(unique(gwl_1$monitoring_location_id), siteID) From 6fc79d5dec7dbec61727a2f68e14677e4049cdbb Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 12:52:31 -0500 Subject: [PATCH 27/44] clean up dots --- R/get_ogc_data.R | 2 +- R/read_waterdata_ratings.R | 3 ++- man/check_arguments_api.Rd | 2 +- man/read_waterdata_ratings.Rd | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index 491c29e7e..001fdee90 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -261,7 +261,7 @@ check_arguments_non_api <- function( #' information. The default `NA` will not specify the argument in the request. #' #' @keywords internal -check_arguments_api <- function(bbox, skipGeometry, ...) { +check_arguments_api <- function(bbox, skipGeometry) { if (!is.null(skipGeometry)) { if (!is.na(skipGeometry) & !is.logical(skipGeometry)) { stop("skipGeometry should be a logical TRUE/FALSE") diff --git a/R/read_waterdata_ratings.R b/R/read_waterdata_ratings.R index fbf38c62e..402b9011e 100644 --- a/R/read_waterdata_ratings.R +++ b/R/read_waterdata_ratings.R @@ -1,6 +1,7 @@ #' Get USGS Rating Curve Data #' -#' Reads current rating table for an active USGS streamgages. +#' Reads current rating table for an active USGS streamgages. More information +#' can be found at https://api.waterdata.usgs.gov/docs/stac/. #' #' @param monitoring_location_id A unique identifier representing a single #' monitoring location. Monitoring location IDs are created by combining the diff --git a/man/check_arguments_api.Rd b/man/check_arguments_api.Rd index 0b7dec461..d53e12ce6 100644 --- a/man/check_arguments_api.Rd +++ b/man/check_arguments_api.Rd @@ -4,7 +4,7 @@ \alias{check_arguments_api} \title{Check other arguments} \usage{ -check_arguments_api(bbox, skipGeometry, ...) +check_arguments_api(bbox, skipGeometry) } \arguments{ \item{bbox}{Only features that have a geometry that intersects the bounding diff --git a/man/read_waterdata_ratings.Rd b/man/read_waterdata_ratings.Rd index 825a08ffa..d8c6c4c4f 100644 --- a/man/read_waterdata_ratings.Rd +++ b/man/read_waterdata_ratings.Rd @@ -60,7 +60,8 @@ just a list of available rating curve files (\code{FALSE}). Default is \code{TRU List of data frames which contain the requested rating curves. } \description{ -Reads current rating table for an active USGS streamgages. +Reads current rating table for an active USGS streamgages. More information +can be found at https://api.waterdata.usgs.gov/docs/stac/. } \details{ You can also use a vector of length 2 for any time queries (such as time From d583fbff0b80e520d8e6ad0fcf97fc96f7c50fbb Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 13:23:17 -0500 Subject: [PATCH 28/44] Add token message --- R/get_ogc_data.R | 5 ++++- R/read_waterdata_ratings.R | 2 ++ tests/testthat/tests_userFriendly_fxns.R | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/R/get_ogc_data.R b/R/get_ogc_data.R index 001fdee90..89ebb6306 100644 --- a/R/get_ogc_data.R +++ b/R/get_ogc_data.R @@ -91,7 +91,10 @@ get_ogc_data <- function(args, output_id, service) { !isTRUE(args[["skipGeometry"]]) & "geometry" %in% names(return_list) ) { - if (all(sf::st_is_empty(return_list[["geometry"]]))) { + if ( + all(sf::st_is_empty(return_list[["geometry"]])) & + !"geometry" %in% args[["properties"]] + ) { return_list <- sf::st_drop_geometry(return_list) } else { return_list <- sf::st_as_sf(return_list) diff --git a/R/read_waterdata_ratings.R b/R/read_waterdata_ratings.R index 402b9011e..6953b628e 100644 --- a/R/read_waterdata_ratings.R +++ b/R/read_waterdata_ratings.R @@ -151,6 +151,8 @@ read_waterdata_ratings <- function( basic_request() resp <- httr2::req_perform(request) + log_rate_limit(resp) + features <- httr2::resp_body_json(resp)[["features"]] if (download_and_parse) { diff --git a/tests/testthat/tests_userFriendly_fxns.R b/tests/testthat/tests_userFriendly_fxns.R index fc387aa14..c5c7f6d86 100644 --- a/tests/testthat/tests_userFriendly_fxns.R +++ b/tests/testthat/tests_userFriendly_fxns.R @@ -153,6 +153,8 @@ test_that("peak, rating curves, surface-water measurements", { )), 0 ) + # This does come back empty because 50268 isn't at this site + expect_equal( ncol(read_waterdata_ts_meta( monitoring_location_id = "USGS-10312000", From 8be0492bed3379b35373ad2404b1f19385aad171 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Fri, 24 Apr 2026 14:26:02 -0500 Subject: [PATCH 29/44] use httr2 for download --- R/read_waterdata_ratings.R | 15 ++++++++------- man/read_waterdata_ratings.Rd | 1 + 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/R/read_waterdata_ratings.R b/R/read_waterdata_ratings.R index 6953b628e..3663592af 100644 --- a/R/read_waterdata_ratings.R +++ b/R/read_waterdata_ratings.R @@ -62,6 +62,7 @@ #' rating_2 <- read_waterdata_ratings( #' monitoring_location_id = monitoring_location_id, #' file_type = c("corr", "exsa")) +#' names(rating_2) #' #' bbox <- c(-95.00, 40.0, -92.0, 42) #' @@ -109,12 +110,8 @@ read_waterdata_ratings <- function( ) } - if (length(file_type) != 3) { - # there are 3 types - if (length(file_type) > 1) { - file_type <- paste0(file_type, collapse = "', '") - } - filter <- sprintf("%s AND file_type IN ('%s')", filter, file_type) + if (length(file_type) == 1) { + filter <- sprintf("%s AND file_type = '%s'", filter, file_type) } if (!is.na(filter)) { @@ -176,9 +173,13 @@ download_convert <- function(feature, file_path, file_type) { id <- feature$id url <- feature$assets$data$href + req <- httr2::request(url) |> + basic_request() + if (any(sapply(file_type, function(x) grepl(x, url)))) { full_file_path <- file.path(file_path, id) - utils::download.file(url = url, destfile = full_file_path) + message("Requesting: \n", url) + resp <- httr2::req_perform(req, path = full_file_path) rating <- importRDB1(full_file_path) return(rating) } diff --git a/man/read_waterdata_ratings.Rd b/man/read_waterdata_ratings.Rd index d8c6c4c4f..4b516e345 100644 --- a/man/read_waterdata_ratings.Rd +++ b/man/read_waterdata_ratings.Rd @@ -102,6 +102,7 @@ comment(ratings_corr[["USGS-01104460.corr.rdb"]])[1:15] rating_2 <- read_waterdata_ratings( monitoring_location_id = monitoring_location_id, file_type = c("corr", "exsa")) +names(rating_2) bbox <- c(-95.00, 40.0, -92.0, 42) From b0cd06e69c3cf8527fe8f68358b4a36f1be6f185 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 10:54:20 -0500 Subject: [PATCH 30/44] does this work? --- docker/Dockerfile | 26 ++++++++++++++++++++++++++ environment.yml | 13 +++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 environment.yml diff --git a/docker/Dockerfile b/docker/Dockerfile index 84140bb3e..715f1a56f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -26,6 +26,32 @@ RUN apt-get update -qq && apt-get -y --no-install-recommends install \ r-cran-readxl \ r-cran-whisker \ r-cran-ggplot2 \ + r-cran-reticulate \ && rm -rf /var/lib/apt/lists/* +# Install system dependencies for R and Python packages +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + wget \ + python3 \ + python3-pip \ + && rm -rf /var/lib/apt/lists/* +# Disable the annoying bell on WSL2 +RUN sed -i 's/^# set bell-style none$/set bell-style none/' /etc/inputrc +RUN echo 'set visualbell' >> /root/.vimrc + +# Change the name of this environment to something which pleases you, if you +# so please. But the name will not be relevant for most cases, as reticulate +# will be pointed to the environment no matter what it is named. +ARG CONDA_ENVIRONMENT_NAME=dataretrieval + +RUN wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \ + bash Miniforge3.sh -b -p "${HOME}/conda" && \ + rm Miniforge3.sh +ENV CONDA_DIR="/root/conda" +ENV PATH=$CONDA_DIR/bin:$PATH +COPY environment.yml / +RUN conda env create -n ${CONDA_ENVIRONMENT_NAME} -f /environment.yml && conda clean -a -y + +ENV RETICULATE_PYTHON=/root/conda/envs/${CONDA_ENVIRONMENT_NAME}/bin/python diff --git a/environment.yml b/environment.yml new file mode 100644 index 000000000..cd4077f85 --- /dev/null +++ b/environment.yml @@ -0,0 +1,13 @@ +name: dataretrieval +channels: + - conda-forge + - nodefaults +dependencies: + # required + - python=3.12 + - pip + - numpy + - matplotlib + - dataretrieval + - pandas + - geopandas From 2cf55c15b16e4929ea78886e169247c83548dac5 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 12:06:13 -0500 Subject: [PATCH 31/44] Move into docker folder --- environment.yml => docker/environment.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename environment.yml => docker/environment.yml (100%) diff --git a/environment.yml b/docker/environment.yml similarity index 100% rename from environment.yml rename to docker/environment.yml From dca100fbd5dc7987abef9c15dd63a639f6aeb18f Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 12:20:50 -0500 Subject: [PATCH 32/44] ? --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 88e7f4901..2597af0d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,6 +43,7 @@ build-image: rules: - changes: - docker/Dockerfile + = docker/environment.yml script: - echo ${CI_REGISTRY_PASSWORD} | docker login -u ${CI_REGISTRY_USER} --password-stdin $CI_REGISTRY - docker pull ${CI_REGISTRY_IMAGE}:latest || true From b56d7836a35486b0950e4735255cabac61a35a63 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 12:21:40 -0500 Subject: [PATCH 33/44] wrong symbol --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2597af0d8..fcc3a7382 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,7 +43,7 @@ build-image: rules: - changes: - docker/Dockerfile - = docker/environment.yml + - docker/environment.yml script: - echo ${CI_REGISTRY_PASSWORD} | docker login -u ${CI_REGISTRY_USER} --password-stdin $CI_REGISTRY - docker pull ${CI_REGISTRY_IMAGE}:latest || true From d66f077257792d1ff6bf667865bbc7f3eb2503c0 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 12:34:02 -0500 Subject: [PATCH 34/44] rebuild docker --- docker/Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 715f1a56f..5429c7810 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -37,10 +37,6 @@ RUN apt-get update && \ python3-pip \ && rm -rf /var/lib/apt/lists/* -# Disable the annoying bell on WSL2 -RUN sed -i 's/^# set bell-style none$/set bell-style none/' /etc/inputrc -RUN echo 'set visualbell' >> /root/.vimrc - # Change the name of this environment to something which pleases you, if you # so please. But the name will not be relevant for most cases, as reticulate # will be pointed to the environment no matter what it is named. From 1f51661d1f486c938f171c857f10836c3fa97313 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 13:01:02 -0500 Subject: [PATCH 35/44] try to build docker again --- .gitlab-ci.yml | 8 ++++---- R/dataRetrieval-package.R | 2 +- R/sysdata.rda | Bin 326552 -> 327820 bytes docker/Dockerfile | 2 -- docker/environment.yml => environment.yml | 1 + 5 files changed, 6 insertions(+), 7 deletions(-) rename docker/environment.yml => environment.yml (78%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fcc3a7382..57a51c0ee 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,13 +43,13 @@ build-image: rules: - changes: - docker/Dockerfile - - docker/environment.yml + - environment.yml script: - echo ${CI_REGISTRY_PASSWORD} | docker login -u ${CI_REGISTRY_USER} --password-stdin $CI_REGISTRY - docker pull ${CI_REGISTRY_IMAGE}:latest || true - - cd docker - - docker build - -t ${CI_REGISTRY_IMAGE}:latest + - docker build --cache-from ${CI_REGISTRY_IMAGE}:latest -t + ${CI_REGISTRY_IMAGE}:latest -t + ${CI_REGISTRY_IMAGE}:BUILD_${CI_COMMIT_SHORT_SHA} -f docker/Dockerfile . - docker push --all-tags ${CI_REGISTRY_IMAGE} diff --git a/R/dataRetrieval-package.R b/R/dataRetrieval-package.R index a899f4831..9eda9c1f0 100644 --- a/R/dataRetrieval-package.R +++ b/R/dataRetrieval-package.R @@ -211,7 +211,7 @@ NULL # # property_list <- list() # for(service in services){ -# property_list[[service]] <- get_properties_for_docs(service) +# property_list[[service]] <- dataRetrieval:::get_properties_for_docs(service) # } # # num_cols <- c("value", "contributing_drainage_area", "drainage_area", diff --git a/R/sysdata.rda b/R/sysdata.rda index d984e226a41f4863d93d639afb1d9cca19b362b4..76776c7dbd7fe3820d3f3cfd3f23415c36b3ec8b 100644 GIT binary patch literal 327820 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

@yA>$oj%rpI5n(AGM!kM@d&rgT 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

8|zF;SB9~PzaLeTPU?V-l{Jd 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 NQ9uI#00001Sz1g8(y9Oe literal 326552 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

~b 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ⅈ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Ν&>kx6rbh&an5h;wbkhjpacRO&gJ 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%0AbB5Yxsp<=y$*;}> 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 diff --git a/docker/Dockerfile b/docker/Dockerfile index 5429c7810..619769667 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -33,8 +33,6 @@ RUN apt-get update -qq && apt-get -y --no-install-recommends install \ RUN apt-get update && \ apt-get install -y --no-install-recommends \ wget \ - python3 \ - python3-pip \ && rm -rf /var/lib/apt/lists/* # Change the name of this environment to something which pleases you, if you diff --git a/docker/environment.yml b/environment.yml similarity index 78% rename from docker/environment.yml rename to environment.yml index cd4077f85..d439ec070 100644 --- a/docker/environment.yml +++ b/environment.yml @@ -11,3 +11,4 @@ dependencies: - dataretrieval - pandas - geopandas +prefix: /home/user/miniforge3/envs/dataretrieval From aa39d97ea2648af0cb46ee870c8832b89058bdf9 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 13:09:49 -0500 Subject: [PATCH 36/44] try again --- .gitlab-ci.yml | 2 +- environment.yml | 2 - tutorials/quick_intro_deck.qmd | 266 +++++++++++++++++++++------------ 3 files changed, 174 insertions(+), 96 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 57a51c0ee..ff16d5dd3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,7 +47,7 @@ build-image: script: - echo ${CI_REGISTRY_PASSWORD} | docker login -u ${CI_REGISTRY_USER} --password-stdin $CI_REGISTRY - docker pull ${CI_REGISTRY_IMAGE}:latest || true - - docker build --cache-from ${CI_REGISTRY_IMAGE}:latest -t + - docker build ${CI_REGISTRY_IMAGE}:latest -t ${CI_REGISTRY_IMAGE}:BUILD_${CI_COMMIT_SHORT_SHA} -f docker/Dockerfile . diff --git a/environment.yml b/environment.yml index d439ec070..382e14bc9 100644 --- a/environment.yml +++ b/environment.yml @@ -1,11 +1,9 @@ name: dataretrieval channels: - conda-forge - - nodefaults dependencies: # required - python=3.12 - - pip - numpy - matplotlib - dataretrieval diff --git a/tutorials/quick_intro_deck.qmd b/tutorials/quick_intro_deck.qmd index 7046eef8a..3d123fe43 100644 --- a/tutorials/quick_intro_deck.qmd +++ b/tutorials/quick_intro_deck.qmd @@ -15,6 +15,7 @@ title-slide-attributes: data-background-size: 15% data-background-position: 2% 2% editor: source +engine: knitr editor_options: chunk_output_type: console execute: @@ -26,33 +27,45 @@ execute: ```{r} #| echo: false #| include: false -# library(dataRetrieval) +#| # library(dataRetrieval) library(ggplot2) library(dplyr) +library(reticulate) +py_require("dataretrieval") options(dplyr.summarise.inform = FALSE) -dt_me <- function(x, - page_length = 8, - paging = TRUE, - font = "0.7em", - escape = TRUE){ - DT::datatable(x, - rownames = FALSE, - options = list(pageLength = page_length, - info = FALSE, - searching = FALSE, - paging = paging, - lengthChange = FALSE, - initComplete = htmlwidgets::JS( - "function(settings, json) {", - paste0("$(this.api().table().container()).css({'font-size': '", - font, "'});"), - "}")), escape = escape) +dt_me <- function( + x, + page_length = 8, + paging = TRUE, + font = "0.7em", + escape = TRUE +) { + DT::datatable( + x, + rownames = FALSE, + options = list( + pageLength = page_length, + info = FALSE, + searching = FALSE, + paging = paging, + lengthChange = FALSE, + initComplete = htmlwidgets::JS( + "function(settings, json) {", + paste0( + "$(this.api().table().container()).css({'font-size': '", + font, + "'});" + ), + "}" + ) + ), + escape = escape + ) } theme_set(theme_grey(base_size = 24)) -update_geom_defaults("point", list(size = 3)) - +update_geom_defaults("point", list(size = 3)) ``` @@ -111,11 +124,14 @@ In this ~45 minute introduction, the goal is: `dataRetrieval` is available on the Comprehensive R Archive Network (CRAN) repository. To install `dataRetrieval` on your computer, open RStudio and run this line of code in the Console: +::: {.panel-tabset} + +### R + ```{r} #| echo: true #| eval: false install.packages("dataRetrieval") - ``` Then each time you open R, you'll need to load the library: @@ -125,6 +141,23 @@ Then each time you open R, you'll need to load the library: library(dataRetrieval) ``` +### Python + +```{bash} +#| echo: true +#| eval: false +pip install dataretrieval + +``` + +Then each time you open Python, you'll need to load the library: + +```{python} +from dataretrieval import waterdata +``` + +::: + ::: footer ::: @@ -157,7 +190,7 @@ Within R, you can call help files for any `dataRetrieval` function: ```{r} #| echo: true #| eval: false -?readWQPdata +?read_waterdata_daily ``` :::: {.columns} @@ -179,14 +212,12 @@ Examples ```{r} #| eval: false -# Legacy: -nameToUse <- "pH" -pHData <- readWQPdata(siteid = "USGS-04024315", - characteristicName = nameToUse) -ncol(pHData) -attr(pHData, "siteInfo") -attr(pHData, "queryTime") -attr(pHData, "url") +site <- "USGS-02238500" +dv_data_sf <- read_waterdata_daily( + monitoring_location_id = site, + parameter_code = "00060", + time = c("2021-01-01", "2022-01-01") +) ``` ::: @@ -370,10 +401,14 @@ We're going walk through 3 retrievals: ::: -## Workflow 1: Daily data for known site +## Workflow 1: Daily data for known site {.smaller} Let's pull daily mean discharge data for site "USGS-0940550", getting all the data from October 10, 2024 onward. +::: {.panel-tabset} + +### R + ```{r} #| message: true library(dataRetrieval) @@ -382,13 +417,39 @@ pcode <- "00060" # Discharge stat_cd <- "00003" # Mean range <- c("2024-10-01", NA) -df <- read_waterdata_daily(monitoring_location_id = site, - parameter_code = pcode, - statistic_id = stat_cd, - time = range) +df <- read_waterdata_daily( + monitoring_location_id = site, + parameter_code = pcode, + statistic_id = stat_cd, + time = range +) + +nrow(df) +``` + +### Python + +```{python} + +from dataretrieval import waterdata + +site = "USGS-09405500" +pcode = "00060" # Discharge +stat_cd = "00003" # Mean + +df = waterdata.get_daily( + monitoring_location_id=site, + parameter_code=pcode, + statistic_id=stat_cd, + time="2024-10-01/..", +) +df[0].shape[0] ``` + +::: + ::: footer ::: @@ -399,12 +460,11 @@ In RStudio, click on the data frame in the upper right Environment tab to open a ```{r} #| echo: false - -dt_me(df |> - sf::st_drop_geometry(), - page_length = 3) - - +dt_me( + df |> + sf::st_drop_geometry(), + page_length = 3 +) ``` ::: footer @@ -421,10 +481,7 @@ Let's use `ggplot2` to visualize the data. library(ggplot2) ggplot(data = df) + - geom_point(aes(x = time, - y = value, - color = approval_status)) - + geom_point(aes(x = time, y = value, color = approval_status)) ``` ## Water Data API Notes: Argument input @@ -444,9 +501,10 @@ Use your "tab" key! ```{r} #| eval: false #| echo: true -discharge <- read_waterdata_daily(parameter_code = "00060", - statistic_id = "00003") - +discharge <- read_waterdata_daily( + parameter_code = "00060", + statistic_id = "00003" +) ``` ::: {.fragment} @@ -492,9 +550,11 @@ Here are a bunch of valid inputs: time = "2025-01-01" time = as.Date("2025-01-01") time = "2025-01-01T23:20:50Z" -time = as.POSIXct("2025-01-01T23:20:50Z", - format = "%Y-%m-%dT%H:%M:%S", - tz = "UTC") +time = as.POSIXct( + "2025-01-01T23:20:50Z", + format = "%Y-%m-%dT%H:%M:%S", + tz = "UTC" +) # Ask for specific range time = c("2024-01-01", "2025-01-01") # or Dates or POSIXs # Asking beginning of record to specific end: @@ -526,10 +586,12 @@ Let's get orthophosphate ("00660") data from the Shenandoah River at Front Royal site <- "USGS-01631000" pcode <- "00660" -qw_data <- read_waterdata_samples(monitoringLocationIdentifier = site, - usgsPCode = pcode, - dataType = "results", - dataProfile = "basicphyschem") +qw_data <- read_waterdata_samples( + monitoringLocationIdentifier = site, + usgsPCode = pcode, + dataType = "results", + dataProfile = "basicphyschem" +) ncol(qw_data) ``` @@ -549,21 +611,31 @@ That's a LOT of columns returned. We won't look at them here, but you can use `V ```{r} #| echo: false - -df <- tibble(dataType = c("results", "locations", "activities", "projects", "organizations"), - Description = c("Results data and metadata for measures and observations matching your query", - "Find monitoring locations that have data matching your query", - "Information about the monitoring activities conducted that produced data", - "Information on the projects that have results matching your data query", - "Information about the organizations that have provided data that matches your query"), - dataProfile = c('fullphyschem
basicphyschem
fullbio
basicbio
narrow
resultdetectionquantitationlimit
labsampleprep
count', - 'site
count', - 'sampact
actmetric
actgroup
ncount', - 'project
projectmonitoringlocationweight', - 'organization
count')) +df <- tibble( + dataType = c( + "results", + "locations", + "activities", + "projects", + "organizations" + ), + Description = c( + "Results data and metadata for measures and observations matching your query", + "Find monitoring locations that have data matching your query", + "Information about the monitoring activities conducted that produced data", + "Information on the projects that have results matching your data query", + "Information about the organizations that have provided data that matches your query" + ), + dataProfile = c( + 'fullphyschem
basicphyschem
fullbio
basicbio
narrow
resultdetectionquantitationlimit
labsampleprep
count', + 'site
count', + 'sampact
actmetric
actgroup
ncount', + 'project
projectmonitoringlocationweight', + 'organization
count' + ) +) dt_me(df, escape = FALSE, paging = FALSE) - ``` ::: footer @@ -590,10 +662,11 @@ p_code_rt <- "99133" start_date <- "2024-01-01" end_date <- "2024-06-01" -continuous_data <- read_waterdata_continuous(monitoring_location_id = site_id, - parameter_code = p_code_rt, - time = c(start_date, end_date)) - +continuous_data <- read_waterdata_continuous( + monitoring_location_id = site_id, + parameter_code = p_code_rt, + time = c(start_date, end_date) +) ``` ::: @@ -626,8 +699,7 @@ https://api.waterdata.usgs.gov/ogcapi/v0/collections/continuous/items?f=json&lan ```{r} #| output-location: column ggplot(data = continuous_data) + - geom_point(aes(x = time, - y = value)) + geom_point(aes(x = time, y = value)) ``` @@ -647,18 +719,19 @@ The next slides will demo how to use those. ## Data Discovery: Time Series {.smaller} ```{r} -ts_available <- read_waterdata_combined_meta(monitoring_location_id = "USGS-04183500") +ts_available <- read_waterdata_combined_meta( + monitoring_location_id = "USGS-04183500" +) ``` ```{r} #| echo: false - -dt_me(ts_available |> - sf::st_drop_geometry() |> - select(data_type, - parameter_name, - parameter_code, statistic_id, begin, end), page_length = 6) - +dt_me( + ts_available |> + sf::st_drop_geometry() |> + select(data_type, parameter_name, parameter_code, statistic_id, begin, end), + page_length = 6 +) ``` ::: footer @@ -668,19 +741,24 @@ dt_me(ts_available |> ## Data Discovery: Discrete {.smaller} ```{r} -discrete_available <- summarize_waterdata_samples(monitoringLocationIdentifier = "USGS-04183500") - +discrete_available <- summarize_waterdata_samples( + monitoringLocationIdentifier = "USGS-04183500" +) ``` ```{r} #| echo: false - -dt_me(discrete_available |> - select(characteristicUserSupplied, - resultCount, activityCount, - firstActivity, mostRecentActivity), - page_length = 6) - +dt_me( + discrete_available |> + select( + characteristicUserSupplied, + resultCount, + activityCount, + firstActivity, + mostRecentActivity + ), + page_length = 6 +) ``` ::: footer @@ -692,8 +770,10 @@ dt_me(discrete_available |> * characteristicUserSupplied can be an input to `read_waterdata_sample` ```{r} -discrete1 <- read_waterdata_samples(characteristicUserSupplied = "Phosphorus as phosphorus, water, unfiltered", - monitoringLocationIdentifier = "USGS-04183500") +discrete1 <- read_waterdata_samples( + characteristicUserSupplied = "Phosphorus as phosphorus, water, unfiltered", + monitoringLocationIdentifier = "USGS-04183500" +) nrow(discrete1) ``` From c9a26990ce9ac67d577b2f723b8d02ce51622496 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 13:12:57 -0500 Subject: [PATCH 37/44] ? --- .Rbuildignore | 1 + .gitignore | 4 +--- .gitlab-ci.yml | 5 +---- tutorials/images/help_file_2.png | Bin 53976 -> 86424 bytes 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 14c498f39..819a77239 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -70,3 +70,4 @@ vignettes/quick_slides.Rmd vignettes/Reference_Lists.Rmd ^[.]?air[.]toml$ ^\.vscode$ +environment.yml diff --git a/.gitignore b/.gitignore index 6debd82a7..02d0a38fd 100644 --- a/.gitignore +++ b/.gitignore @@ -12,10 +12,8 @@ docs /doc/ /Meta/ /Temp/ +/public/ vignettes/*.html vignettes/*.R - - /.quarto/ - **/*.quarto_ipynb diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ff16d5dd3..8ad2bd742 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,10 +47,7 @@ build-image: script: - echo ${CI_REGISTRY_PASSWORD} | docker login -u ${CI_REGISTRY_USER} --password-stdin $CI_REGISTRY - docker pull ${CI_REGISTRY_IMAGE}:latest || true - - docker build - ${CI_REGISTRY_IMAGE}:latest -t - ${CI_REGISTRY_IMAGE}:BUILD_${CI_COMMIT_SHORT_SHA} -f docker/Dockerfile - . + - docker build --cache-from ${CI_REGISTRY_IMAGE}:latest -t ${CI_REGISTRY_IMAGE}:latest -t ${CI_REGISTRY_IMAGE}:BUILD_${CI_COMMIT_SHORT_SHA} -f docker/Dockerfile . - docker push --all-tags ${CI_REGISTRY_IMAGE} buildcheck: diff --git a/tutorials/images/help_file_2.png b/tutorials/images/help_file_2.png index 232e10289c52299d5c0635ffac9509151d1586bf..52af3b94c2a83a16820290b36e2447ad4a3c3e83 100644 GIT binary patch literal 86424 zcmY(q1yEc~v^9zoJi(n1g1b8e2oAyBT?cn}4G`QJEQ7l{1b2eF`{3^UlkeX9s$SJh z%~YT6bNY1e?!DLAt0NVENTMMVB11tzp-D@9SB8Ru>41WQUiyFlDTyu#MuPkxIY?
{QE+$o0EA!3K3nT<;4+?;fT<2@v-ZX zWv;?viDHU=`$O`n8io;0G@4?F(5Bsnj8`7|;D3ic>CnznQ{lI5Z7w9?R zoKwYSf9Z7X;z}{I&yXujr;xg3<$iCYMIQ1|^aJ@eE$xzYPf~&(qxYbsMPf21y4p-N znv2-$TExH0As>57mS9Q7bFEPY4sre~Fy@d_2r74>KU53%X8Er~6qOUnEA(IWzBFo) zs{h*IUw{4I`X)JW9skpCEHPK(-z`OddSc!n|N9fcst~0AUq@K?`#E^Ub!^xfV{YMI zpnd$9TQ~5|9g+UK7-;Uk>G0LCZb@o%jEa)e_uDvku>FnDbeV`!H~JH{W1h=Fnz^a@^ zbp+xEQPe#&NMB*shon-I&-%a^ztVHqR>cUENrZ%X2`08k2htKDJ^S>E+H8D2xtngB8W$R2h z>OY8M#3gaCmieKL_3tXacAlJl-$veh>mT-xnt^;LxgY-~&p70$1H}CR)UeCvHaBVd zp!8p1(lMlPvBRhtfh$TH^xrHSheVbiasCEzqko;D|7UBge{RZ;(AxHptBzul|JNoc zenv(bBfL}c5Q#g~BF~_{KVQ{Z5w>7C5u6jofzaD6zj327&Fbgw`=CMVkp+E{aQ6&a zZxA*de7%ma-B=%ZlLs2Fr678kFUUmExmWMz3>v;t-BkwR$(~#Enh~sS3N(B2bK`y2 zci&H*^YJRU-Eg<_$#GRtxO~V6_qe;lVE$pZa|yVw{k)BYD(D}qdrRZpxpQ`nasB6y zIhX%dkuBJ5CY5xp5Bbgk%$;*K7$xJmi)WMWWR3z{uePC)AcO_GsyH2MlfC@XZq(D3X=D4{zsx>GeLvSaf`M%gLj^ zAgR91TzuXN`-Ddmj(Gj=QP02w$L)^~QLNVV-U@3yK_w_Hi4|-5qfIrY*2rfn=h_P! zbx$KmZoMrSVI7kdWJuoJ?8dMg{Mu^lQZKev>Q-C`X7D);`ht9|gi@oaNmM~I2Kwtp=pe9sA^(+L3 ze8YpfNU^iH0_dfk>Cf(1bvYO~&~kT`IoQ}r->!6ugqc5Go@kAzjf-yrPMmC}wZ=@Y z?M#_f|NQM782p!gspr;Zz02E5F0QvL{x{wkEI&L@yaf-EPJ=y)(xI>^e-(Z#X9t`T)h{m0pv#)yTSGjh{?jGF z{ONVxiqNef7x@5a-Nvi;=>}b6wTz~|vGwxN7+5{Fvo6;bssLTArx~p&#UiBq=3wFAyCtc7HZ~5UJd{J+ z3JS2bAiBkwZxj_SgI_D}Go4BAZQIcnM_M_{JYT+L;>@Pp?FhE+k*lY?MZMb5H|r}e%hJv+ zlT}mT!%3dZRLaK_oa+x#^)1e7%@BP`*3ohn(c z&%Xui!2?eG=>+&M@qvE7YjqSqjt?zQ@^i2Ez*taL!FN4ytzx|qcgUu<(SK-h-cg3^ zo8L|SxXaIT@;n19f~cE9EUJNe{{D-2dnUw{Az7=N&Ru?#C|Swv_$iORZm-TK?(S>v zJ#*Ka-OiuD9yL0T(licnLY1SRTSB~ZmitiFnDhwr4Chj{5;S@zsuPzR0T1+Q!=Vg^ zoDsJUmNtt>P6}sRir$zi`>E*TemD7&k-f{INg*9>UYgIaDR?ga`u7f0&9N3Xgt>Ka zn_MY!q3p>ZHt`tik z&g&xs{0D=kTm2(}jG1Vmje^&U&0|jXY2f-pH7TVH zSKKFuFFFRuLvEsfOHWTuFZ=aB3b=SN|C@m;BLS>M&)bfZHCOwKDj9u-SJj)>p9%fY zx%trdrRCLP-fKU9z5etdT}AY4=MeaIvb41&ci}}}wt%B~m(+g+p!XKcZ1WCBb!TyP zwXnl&R)BB9ib;-f!wnG@&P&$Zqb7<~ce*b1UTU-1yC9jjV+I#^iz$lm(eBo6msErK z?7@Kk@mYx^wv+ruD@GLr!A*7;HqfOUR9lwEIigm_NsDovnI0o zPbO`C0*-yC|4W#gb6e)iNW2&PoX{8>@p^LW`N2k{-t<+S z&xWoS_eeo;>%=j|Uz5MhFgy;jP%S(kvb|_2kQNTE>n{CLY*FV?&z2{~DO$}`$vE37 zv_0?;HQ6{r+3od@S$-nspXv`yG&ZZZMM2(9|=F&D2S7=M%TP zJef8yzhE+RZz29N34b`~T~8KvDjEKfViDqp`7_c22z=5cJf?J{J2Hn1o|Uu!lV__B z0$_DvC>;sQDdoQb-f9;g0Uq6ayeJl3L0j=HK=pk)NtVsiiIGKyv|FgD6%Qg0z_{}+ zpe@xklWcQIajL}+LHsOOU|sg(ldU`~xUvyl#T_0>U4q_t<&_8S>Eub_k^$pltn#-& z=Uq+wLRdv@Iv28I1&p!KrwVKh1dg267hfNsFBtn?S1_3pTq8sDgxpR?=)lhT1#4w3 z-3vVB_DQjE&1;PW^7dK7@SEkk4i2yLHidBoGzId)q(rj!lTmMeDdjkOvD+j^J z(48KtK}L>yQ4I?A#-cC~|DD_1jGrkVZM6~@@Wa!ScQCe7A$);ohED=nTunr!hehHk z(pE?7-kfqGA~An+A||uEYr!6wzl7EUW=RUSJWt0#!$Yu6ZP0yx+-`}~ViE85!^Y$g z;izJV{lcj_+TKWnuZM%lea2ZuxsFLTTphPdf|9tHDdXXjd^}d5tq+hLyISDHGzF2n z>gNZCd_WucvOQ*yJ3PjuB04MZ^l9&UL}5uMyKi;nkAg1!Uc4l; zDw~@SZy`kt)6KF0Cx*q|vu|qrcVFOlA&tpSS7i4d89Sy!I=p3v`hY>;rk(XDaDfYjs-4AJ?)TUvLPC35iXYid?(9jv~9NFv|V2>h-KdXwFBwVd$n4syYn7;iY?jJ zbIYZlepW+A-NclyA>#8IecK38qd=cbxitTmyS%|D(w&)1-IHd2O7Er?51(-{TYciY zRgJUF{*j<+v7)%kBjuoQ$BK+K_Ntet*YtY{JMSy1JGUxHec0+`>oYWOrfrVV)sLRr zL^=+y#*Fs@4UyhK3u>pGU6PCrsf2Dh8Gld|0LM?yl{pQ)siR>9$*a1G-RT9Xey4WL z2O8@8T`SLp*WpIhKRiTCGy`=024uo8NtFB3gXgg?#+b^+Q~JGfB+G=zGNXiq=%1b# zPKzuS&bRjU=(U<``0t4yaOf8djs;tjUF{)JOsUXFZN9J2&)o!Ua;C%_&W_j78(chv zSTA1&5Vpd8mA@~u9heAR#`p^lX7`8OF`f2R0ll@MdR~+#*8{BZdv=TCK629SJ@<#% z7SvbfgheLQJedDUTZ7g{_XzWUXAV2bTPOq zDX_0XOC~^UaB^DH-x1r?D-=HfV!MSyzQ6D!EgRJ#DCjT_5`Q6?dwIK`96qaN^K%!U z9w=lDjcKtXG{nY#rsRxy`7`{Ll9%!jr$FmoE2|oPp^`x4HyH$MeMglWGc+YS-u{>o z^)S6gw7k4xWobz~d&kZ`IPmvZKxJZ9fM6Qxp0ik`1KowsGP8 zks5ZLO=C0uxj!$Q3#>u+XQlsv)e-R)EWTcNjN0A#;;&_%F>~R$~fuwt?gNdI4j@AEeZZ9F#=Gi~-8 zZ~t4ZdBB35+@4tewt~Xf>3={yeOypbz9t_15mEY4GHt{&HSe%>9Eb?|e@OxfLi!mS zx4H4Kxk+vITC~Y#2_h^hd4<6(hd%XnhlklsudWzX6W6XkdPvVS+vj0%x`So*?SiYl z_%*w}oKIPmq`Lgnj9Q4=kvK z?MCH9a{QnE(FnRr65hl{P@J529}Y2ZVy!?{`Cw={X9u*xf82%R9s!EucS*$A+1Ws= z#9Vg51rJdF9jt&w%?l5njZRFopbi>2Lg+;%Oo9=~gh)^6uR@P!mmuqZT-RwUW z1e1Q4TAmFU<%DjN?*$W`eL^DdOYS|#P*m{_{1X(p+X}*DKi&B9!!%;mPUI7^o^>M}uY+Sj*&%*Z2;a@5p+}bLxT{Ycn0<%uW{MPKN z9YgYI3aO~$6SE_2R(YIi*`(!U`Z(m41xYwKxD@qNBz;vVPDz=eLOolGOaG*oTL0vM z>x{}zNK1OD|F>zdmi#FeHvV)9>*>rrzy&X31V6F_VoFPOy-#6A6jGh{bzOa^HWjfGR1z+{J9>$4=%O0H6s06# zoE;l`go!Yg&}5?+?~#|K(!ne8IpYIYz5d37L77vhNUXvKVRoBV_Prb~9E|89_7{(> z*z7zS&5*Ggc3C^TH!@XIlai77>aL5UJC(mQn-%-*Ccz* zjz|&U$?$LVzVe)mHJ7G&)>-_@NkM=sfMLhKaATAg6@{6R1#J-ulPV4k4Ha&?c)q)r zk}>HP|GwPr-$LwS<>D%-0VkTBo@*G+^o4~<{b#{Dp#~Qr@P%Ciq zhD*==)Y=6KOnk4(oaXi)JQFXoayRd*x9gp{tZ!3-Qkz5I{2{JZvt*m?9B|*7g%oC# zkND!q%K$NGlk9vtxiJ!jo<3bnVx)Q3D4bkV3)5fmDH3IE*@=5(Q^$5h`+uY8r6F$u zvKq_M9t+1~7Dckh#3jARFqDA9LMBL0H>7h^NN=dGcX+yywzS62$<zKx@xSSh2COJhysodG!>J~&R035RVQkkkgOZUIal{|dAJ;H2ett(_PCv%%02 zxO|V{w5{_ll~-ExatK`VyhZjwqJ`ZEurfa6OQQ<5s!IKpB(>h>vp<#|&dwRrscwFZ z5EFAtEadTPd6^K#kJlSQQh627AbYm#r15zsxF-E&xdiitRl1XYndeCU$w56+gzI>* zi1gz3E;Wo5Sz{OQZ=SFZ4p`mK&{Dc z6);#o%doaAMHK657pcmpF|1={>iT6PTpzLO*wRctk)KAfW7rI184FiiJILyqfhMlR zYv6_oEE4QoVU&IC%k^L*2o;yysvpqZG*ji$s4zhhy zD9AW{5yzs2uqS!Dbq5nF-ZeRQ=wunC3CD8g%5QLNGc(ezAQr&Y*Vr7M7@x|hQKMYP z5O&H)E0t(z1$ne}1?b+wlHbX_;c?1pIz$3S^5k>ra!POC_b0N0$IZ`|MY9Z+qY&`@ zI5OP`sEZV_vE@xx3u$%V<1yHUR>Xs;p=fBh(9}@c7Hw%tmt7+V89qlD$K*M8AZM6I zFIJk@K_i2ZhKEb!(z!BMkDMI}c@Vo^r&t0)V%^k{`gGb;EG6ouZW0|NL;|ePv=4t4QL?I+D@lW zy8fK`Ag38JS<9JN;cxS)S)*GsSve`wx2xn3(dQ|0qBRb_cgyn&72hkGGn9rJfUZ(C zFEO@(FWN-?&k2B46ro%3IvlnwSHtyPVc}PhJTSPlB+L7q<&DeTb_FAGb-G*f{ymU* zE>~t|sP&ylSH+7Ws`QrTlBRv1uN}iKcmJ<_;(_aRO;gj=0X+BLloZZG$D7oAnnjY> zO~kWr`Vmxa00-AT2(L=}d`yItJx4lmaIf?xfkXd$4SSmyn&#SqKS$C&AD!-Fr0l zirA`EZtH?mJN@8eoqpGuEGMsLgB-X_Q`&Jy;6v$t`!T|vZL$1J}Jqm%28+w8RU5!4N5)uAq;l93ip=|N10Sz5At$P#U}`vA~sD!>|EM4C_fj> zSEP{qch=)mK;+IKE4cK_tSra@Cjnu@TJr<>K>hCSS8Vu~*4Ux~3hRnWs|?-ZvLe$F zQ^oSSwNQL3+fq?=bA-GUQ>a@s`7Btn%z7gxF@Qg;uW$mM=9=q=S@Mdbssiz`V<$?cYwuq&y>jF=!^wjs^~L?Jte4pH+~ z6?0-qMpn}j{(T$$mmpxL&|L&|hl2;9ah=DrVZ3`RbUHdpakBvskFJ zLt0vPFQ-dS-aKRGY5X@$NJjFj-Jo41E$vrw^2-Ep&0v9i24vM3h2<4kb75nviZ{eM zN#rg6>8#vi;9`X-$&fJ?{gN$t78vV>adtO!oiCtIc22^(+@i}N8 zxK(072G=~{wQZm7!Nzqf>B>GhIk9dNWJ_^JT`mO<{TykRZ~9pzb`#6CyXDUoAm&HQ z?_nDEo;;V&WOvQy^*Wug`%=d*-m7Dt*n&4=6LucI+5<8P%)B4LK}4*{4{vTr53sZI z`kNKOl8=42(cT=jq@ParASoHt;^jaBj&NX?T;ufNV{`BeM%~WN`NqEs^lx{ol43PkPZ_1)- zLX){oEkFgO(}a>g8Cs2|78gzXZF?5KQm|*QIxfv)4=ACV&_o5T*_l}X{hDIXm1Sc- z{)JwUQAn>%bZ6QX8{20+50ajehdH$yd21z82#+hXnEcYS)$Ag}{WS97M)_d&eJkx1 zNM62zFJDewckIJSjnNU^)d_lk&ZRlLgPYLxrKq!*kess>WcwXvC6TQ^&EjodB#(Vk zDV>$=Y$A*}L> zEKSIjjZ3~aIkEr2wk)X!bKPhN858-Mdh_Jn5ioAoKn`&? z+sB?7GwWMBKBw?E7YjBHSII$0EpkBK=-tAvGUnq0s%mdn3$PD694%_b#+X)CM~fWK zAAv*W8EL1CS%NR5`amGKGCgkXlbeh`OEaok!1ouMu({*RTnw%m*$cSFi9B(;xQ_`tCRv=MYnns5{E^{-2g_Fz$RpPuG27pw-q6i^TkzoPng%A{& z_l&3!ZIqE!0?6&1&Pn0t&{-ycbQc~Xp+8X{(3-DbjDZ-6hiS}1^c7IShrH23sBs=W!7}La~r{D93 zcP5>`BczL%Pr}iU2|e5dssMsd|KibWTIP1v#6!IFZtP@FdR9m!n4_VYSI3n!ZecK} zgau9rdxqf-y z;&F^0)n+9H)_V1Nw+=xRty^*cS>zXMFGhaqV39AKP`?yr?iv{%O}&~1d-M9Wql&9J zE@D+Lao|n@W32Ft*^VFpyf51*EsNhj(D{IQs-s;*Y149v)?8OjPR5BX$~eCinH_|a zm#tpXqDUQB710LW|4CE24`U*G(DMdATG&Oe`lkjoHYPCyQae@91x#JhWJ|ut%fUbk z55|%G{yj(1G)=NLg>(qbq0&FE=!+l~HyZV9nn5GP3?R!gE?StJ4n-Lr9;-$l^;muq zP$f%sGM@>Fy^|fN2>b>Gf8oLJalXjPl*JRY@5r9?sVb85z^fjN*n8%{!sPy?n2=;$ z_T3WVC{=wN!rq%I(!*N$UIL*aBO`T-?Kj6-cA@RN`q!uqI*`b}%YEs3l*7_qJ0%wI z3i4#H`a((BKk|^TO^t-a3Wq=_8GvI-Dy$c1l`)pV8GSSRb0XFGq0htx#e<0GnAhv( zBV;#0>Z>u8oZ&b@CmJ!MwU02&f9Ob?+dJ`;wD`-3!XnrEgv5{Omrn;#4=B$pj+}LM zN^JKwHWYLA{`C;lw_cfq%`G8>_76yP zd*y9pr$sX{6{v!QnW!A{{pT2lO@rrU^N>k@8%72haHbdbeTM{*lPwu2S4#9xkP5kI zhTFvuNYC!!^!7~sW5=yYMOXE^$ltFg+SMFvX|J5Y1RJsF7-XtR&ZYT5tzif-URfrH z^nZVPYJtdO8-2wF%Xxck+Ex_Ngoi2i)~tg%_P#K`T;gErfNS8l`H_N+@QMApQ0?#8 zG35>KP6bmoI?lUur&lw^W7!#D#s7NUET77H1lVLy`BnLUc6R)}3ehT5szL~wS%}Ku zbNQg1Kz(C_^X>yJ8~b!|haxkuA%DZ#n)z4O>N`bK&A=y+)%JobUFn2lUS3Y(UJ-$? zp8&zp(bun3K_#0<7gMuS-vDdygc;fw9vxy=+FbG^!BAm->DFEaKcQSmEM(F0ZtjK* z6E>}S{{H3rN-)xNNA~&S)Xr7mUD0)BJ`DuA(3J8G0WuQAA>tTl83oxr+dW<=C%v7W zjLTaWkIUKFet@sB?e#M(q`#YxYmiINzFj^4b)su{y z&f%=YR#Z|19J9c8z+t7CAH2uVjQo0;W+}0^jD7Zc&Zj|^xhSmL8iM=2VlF`R1BJX# z%Dia>!Zj708N-rgRS+tI9`a?pUEBB-z=nvryHNp@)rF*pb2A0-lu5+x#RFe$jR6iY1BuJue~fRF0g7b ztTWHYMD~N;a>irTKl*Q|mllOsvqRV2KKy7|Gf&I90H1&_oJTCGt9mDqx!RRvj&Uib^W+E>lg9hZNAT}TxmV6#546&b3CgaIlOO`TC2*cp^r#h`_$h%PbQX$ zRju59@FWDKZ^3EL4w-$WXZWW`!PmT++qv9yYm=6dNw`AzM5bO5$Jvq1>03K76Imi~ z+;ubC9|}zd`N*~dvKJbP3C$pm-wORlNV23$e`mZ%HC+Ecsmvi0IeB162plnbI9$gU zKhYUpB2b{wA@R4JTx*LQ){D|x4l#@Prfl(gu{Kw|@O))6XGL>`T)u~M-nL+LaWF%5 z>gIo%8FIfa;QYM$s$COYhw+CHGw&wL*tDQ^OHBFTk~ega+bF4fvgB7~Gua55xL=zvoB-#g{GrpOaIq8e7Irci$s!Ht>y!o!X?)6NEK z&?WrMS(g6v^mLla>L+r;XNZx-*t}~%7&zGzH-2ep=^A(Yk6-A-MOc#!8!B$!sV?X_ zxKNFzR`d!=FX=6~Kt}n+x{iVN#Ymn;J>Q-5W+*=s7PN9_rXFZPsF$lppTpMJ($X7$ z7<2L`5hZN;2Q{4X_a1QTpU6=T?l5#)x#9dALvAFKU3ovY*$f?RT81;~UL`0j1m zv@NxY0F4Z|cfgSNNus`1ZfxeOh9lk(q%U8WS4yaW5N5Z6r|1Dk1U*yzqquGQi{5{{ z@rZdHghAg{P*PPD7e_Pm1`uY*@1Sw~Kot>{K_o@~7W}Dv2fi}*dj6kD{zd89h^quc zEfPwTCB*m~{gp2t0`EzzDd+$Q_?rYL_nVl|jp=zAbe_3a8*TX>kED4xz}g1hD0n|Q zd#@D$M(zLxFyki3|A83jaJCgqN*o({+xY0|Joc$`V|`p^e&|XmFATYwwjC0x#Y~c`r#h{wKIJX z!mEv%;B6vt;FHW=t|x_tISG)m#ZR(#qS?*@of!2;Q-!qTPBr}SUp*lzDe}JRItXdW z8gL4s|G9H{e~rb6augWGDX%qAcaGy8fqNSZjFcPbo%7ME za|lpG>6OGbtK#scf>$byp~6h8r}pSJq%XMlV{$NSVkWMF0EAyzKm638N6()4`V;+z z@qhx;aU#!F<)uZ8CmBiQwrtlj%|~bUN&;sKK07T_Uf9?;*eVUyUYtZ3@`F>ZZeTuY zxoj)Pk-m%o4Ek<${!v;E)j3>-vMDRRg#bx4{*{zlp|dxgm%qQq#;wdPeB4aFYpHrs z)V03j+Es3Hx5Xmb+iV@C2%bc{!iJ(e-sHpmxT}rbru@y238nVzRs%li)*y3z5$U`} z^fb4>?baYP;%h3;mQ%lA{RDB*wdtV9O0d{kQB(E^@SRVFiUIp4PW3|~rLAAPZ2)+D ztM1(pJ^)bUc3E(4XXM{RiR<%b)Y(!VFx_CYbhnOcEc1XKzoKCv+qtGNcXkGC0o~;P zOz-2Sjl^BSXtd%VLYj(y?|#R)%E6ALJ-Ya^HuQP9;lWwpDpY*ez?-5;*fV59&uR9y z{n>ER*6lKb`TDhiQqG_yg_(r+50+%Pt#vVXWxjS`mH8qI2Z=n|h3>Zl{<~r#0v7m( zQZb`Ss|yM>%8%ug>a&U$-tk>RH?VIVIvry5j?qjV@ZryH9mL+%D++tw?n*)t&*5>7 zN=GrebEI+KxK|zhy2OJZixD5K{7hLLl|`<|!@zVUug=HG9O;JzG)s4``%)22wsrVE zg>5V*6wHbL74JIJ;};ZVXDtLhk!+h!_daL1>Pfr5@{P>CO_FXky}#MKDWa4=u}%7b zLa+nUZ9KP1GI?$`4E9#4`r7LRo3q?EyG6c;?qq=n&X%+&b--dCN+Rqi}80K@yA?r#7qiho71m^Bzu&5GVLU_x z|8uYiy(~dm`k8-po96qnn=M56IOWZFS{oW_3ZsSyJm0x+A`sSo z|JDSSd7NlksQtXAVAB8TPQzPjnBHh&SKMc7i-UOMm3E~x_Tq_@KROjRQQ0@7iT;>Z zkF!|sl()7OSAExv{r+87;c`+xZp@nGk@9{Gr^RRN`B@*W!97V)mj&pJOLnLv{CeX~ zws|CS8fkVwU)18e4jEKuhnhHTr-zf?`x^6F8QHn#cJFrdrj+kL)cHIqWt$)Et(RW9 z5O-2e(b6rCU&dyJ5=)24f;opkR$(Ah@OyL7vK2%%RuP5!GGQxINjJb*m*i?tv2{jv zo@e_mRNI^Z?@3zbQtLnR2ss*B;is&&C3R3plRcA*n7dr|u7a5-DmACQOr%iTNZP6{PmY z!!Yx)O-8fkNP%RFGRQ@EkNNdimB4~4OsdW4 zf~T>3aiJkz7f-_I>hFG@jFE@Glg~o&jJW*3<>Boh9nIxNp=-}p6W%ng&5H^8XJ&BABkZuTWelXG<-Zm!UP;h%W$)yd3s4!n=>cPRzrzhd6>p&Z@bh`k( z(l^LL6uS>|%?yd8@ds-iabCpza#2P>|4RCc?>0UnW_r#9)>`+(k;E-mT8(LA;56U{k+n@Q-M>A==ES zkAP0q?#p+>+jtf>D}UIHNn*Ei@d_jSF*D6b5iT&Y0KP?lC?vrCf$@2ni0M6V5NLu3vNkcQWqlwE0CI7BpzH|KTGi*y?nX$f_cB;MV&#N7z4SCg6@d#xrN?!CzDBdWdYA$ zbYo5TMKxGf$C*2yp}Gzo0R%;0K?dg~hY5tIVv>mwISbb#$!hpXHuw*Rd@Jr9(3ekv z(+aUj*UjFi?Gs%@e8KZH8T74o{F)+aJpu{rfpyiE%RIzeO)BG+VxB%;N`IgvXaD@2 zNF0cD-t`e0O_&J?gzNB3!Y$n5_hEz@iC|+ibu4^WkRByNr<)Kx?zqLo zF6O+?TXdm|PbxKnntg_>I@=V0N|mxH1iYW(;A(`fwc|7-CoM9w#^E(hTW!_8J@X){ zjL8(|%|djpro5*$R%PG4C)Fz_Bc^mD&{J9ExI<@j*^Y^eeXu=}`7Mw>b<8xtH0nt3 zuwj?wepzcQTQJl|g9*Ncch`av`d5MiP~^M~F)kr1X=uc3A+MA!%;@4c$G6@4!cy*8 z7$5e?Y18IBy}=cv`HDP))w96TU2eyr&wRU9CF`P$3QOZCMZpWb3Rt@@3w5jNU{{Rm z?7&^__*mg=;OK{dZm%+V`Oo^@gn+=5eRY?eT6g=j@l?`|IGk&{txSxkHh9-p_u|G- z98W7#`C6H;e5aln_9sVA&f~$t`#I@r;i?1s%r8j*R$FddrV4)y$4BofmA7@Uz-eoa zWT!8pvjx+ho7*K^@ao2y^{5B9pKaaik~iwyFAeC!kV;8kbr5;4Pj*=8s+D19mYK

s8)rSN(kYs@uHSz43Z#o%6OK?C_%6Uko&EwD`rF^-|A`-eb+b8hp$H z0RqOB#XaY~GaO9!KW!yFwgIPh>=K0i<~wojqWJ2meQ{J#wZS-Ed9$2v>(dpW@jpf{T>aLBnOd8yJ557$+P`iH zU#Mk}L9X=J^IdgOQ(ojWd)e9*{~X@Joho5^stbHzn}iIXMdzCA=jHJ1JK9pUHb-#p<*Y)xT0XyPTB^H7VKQzu1Z*`RA|)7s>8V8_hiFc5)}e3i(Yt#A0}B z(`dg^zS+fM&A6v@C=GO+YHCPyJj5YeE&*C!fVwX<%9GBWtVy~wIg_SF zh`TzegI|LNvDRKmH8l=-qMQ`724=x=`vbpdZ}WYpR|}!hGsIwvk^4F`0$tOUFoT_^ zw}WOYYgz+u7h0g8cgmG@S-+~I67=JdTere#ji4$=KG z2b+iGfC*wzU18ZP{$#pch(L7Oe%Z$f;a!Kr@q@*ASw{0yl`e~elV{C%ZXmP3lZg<- z@-m_CZftc+=J8AKUUJ5>?>*AV?CH0t-IG{+=MEnB2G0r`8wrHB?k^n<_b%>CS z1tuq?dun{`v4DW$yc!b4#9^1;@%e#OUKk3(b3m-6TCL_Sqc_2S_)W2*EL=>-Z;7)` ze@UD$b#J@%Oy{NT`a_Wp=XA788t;1S(Pq|!`d2f8$_uHSCgzJweT5mZz0PZcY z9a&Mv%UCu?>{AI<*Q|n)_P#lY>te%J8r1W&kMc0t`Ex0LG!V~kc%N{F&YedekM+!{ zDdy+!OnPQ2oY$@wVY}bw)KH9#!G(3YZrNi86(;w0>r{os<_m5# zdV+Cn3t@hGjSeoOAAcG^&~*UhjNMHL+&GqvXWaR+w7?H)gtJ*Q@5qD zhDWP+>;?MCa-MLyR`K`>N@5GQTgFC+6nYB33_KcaV|3&kx(2$tspaGS$o)(oGgj_0 zJ)Ok^Kmf?kwZ95yJ{)XhM>R{X3^#e!QN_0-@fPxDo0{{rovB<4`Fk86ygbaE1zMs$ zkHW7nxrX2_d`D)>E-VBkrf+>^wae%Q>ec-h?0FFapLiEi22Pj5aUl(w4Z5lj6l zz>&ke6Q|%#bdLC3EY}=$1mCiYBUf1L0FypjcfR+&B{ec9H#}`6^oVdiPav1!%_v^N z=SqFAw7OpBzeGXe_hw92jF&Cf(i-3r9)1-Z?olrEtre!uwuYp93PMxtC8s_vBtkE% zR@kh@mWsIx*U{=P=?^Nr+fMZLm{;av>rK(emhhUk^c&8Q3U!s`VcB}~HoTO;$u zO`Pf}&YRy|t5*w>udvoqW1RE=l!)uXIPI#+Yr5lG_w?T9ZHhWpjCih@9R>^MzLEHo zwCG8aoeOLzQRzvuJ(t2A!!~(lUmEA0{UlEgC)GF^OrKeD27`G&Vdkt(>1U7`?VH{OlfvT!RV9nnkr5>Z!si3&7AYeq???ysk+U zeP*3g1YRS@^Yd4}job8p^xnjt3a~3Svf}(2IN2#(kY{qpN6#4=o_O+gaPhoJUg=S5 znP*+vMf-Fv=?pL~0fY!7AExqcs#n4RXX#3ePB5|Yljj&0slNWds|~juFvLHQGetvm zyg)6X#PV_mTdozB*_$Z(49t_2vQj$h>OPS<+rx~QcVv2U9zZw7Ywps?;)&aUo^W(} zB`ROWk10EM$QjhXwp?z67qm^OY=Vshqsnr@_M8h>E%SUFGf-on*q^n^6A}|kN;+6p zdq1X1%b&t0Bo=V0Ku%PC`k^ecU8{r*Kf|GS`z7G?FYWHeP{&-i-jQ)-#q-vMK~5D{WpJFeE>aOMIO{ z)ssW=>fifKgItVUnrB>EI@cpI!)nU~1L{!;>k%iJu%Y9UFF2W8;cXa<#YO!!9`c2{g+M^EA6jxHS5sZqegj=ix69cXjt@bQMVJH<~p|TUjY#2Cf@fIBaHb;M!LA zzEroJ`)1wJW6HwjGpX=8{vhwO_qVky&1~q4d=V&hi$bj zrfi%;VAd5=G{7UrrF5mBd@C;c!-kb$5hoZo$snAEFjw~n1ClfATc`O5M$K^!m$%xOI z-9zZk4To5=1?~$n`SBjd|B<}Aq$X={tcpc^=Ik&IIn01*wxQd6gHOzRG7PHgpzTpN zw|3ZXQVd7r^jHy5KpY+YabYbhD@V~li~OFHIR2jbOIEvjF*DF=kd>K+ssCO^7nOXf)~cQD`ol6$yRJphZ40I;hpuS(JkH7+o{LE5n%c=; zLc3Z(494K!2o-*SgMlogN-!I5D86@j_d;L&k5E`O=$Y@FXmYA$Mj=MVrG{x#=k*OW z?I&=V$SBR^jDYTyI$Gq7iQ%o~zOS8LTQGou!_3xyc_n;IDkb&?>0w$Pl^KZaTXe4V zkCGV1)Yj#u9bjN)9oN?vHWz*+-#UXTU7uB*_R|^;liJx-G1v#RjrxA?BR{r>PUa4} zP!4OdP{8Ozsnx}w$eF!__|y)xJT-K7KKKZ=>oW&_ z`v$T56!AuWFoS0V<_ld^6#7ebV~Rp{<)-N8k2AQ@CvJ_na=Ud$CCUf?PA<44a!!a_ zYfE&c$jgsLkUpRX^lp77Cx^})rxK~cfBpiqVTg#>kQ$v|dg9jhczDUCZx4vE@j)LXd+2zs+598_ zkF~e(ilceLg+oXncoGs^0wlNum&FpC;O_2j%iYIM>7qgxHXI$1@wmCVP)Auk{RaH{5vV7|5 z$#0t1`x!=Ue4(kOYmvEBd7K1N2+9z3?~FRxxY8Jn7R zOi#~?^?xBYA`(oLg7~hg^=MJ%Z`5S{FZJpm?IyS4P6=Dc^+9L(LU3%HeC>mj8 zBO3T%&JarA#59|pNeEU&NRWS=$qqsQx2iqr!sU_Yvm^d9?3CZJD7EMzP~7%W0D z^2?*+N`&YAf3TV}>>z$|gTzgXKYqZssH+dH$jglu9nhOw8~pZ)MLer#m;bMa${d_2 z15P}z&`~C;bQA2Uc2RD0L({ymj)-4tIvt$6PZ|=JcC4?D-qI&y8zops{4OBxxX7FW z4IOCrw1WVqWvy@3qon-);ITm#C<tNC^bGV*Anw zq~Y$Ly`sz`HK|>lVOk5~X)8b{yVZ8%h8P%jRdqQtj@PqLgx?R(SaGL843fQXo)4GY z)uO;HH;*&OnVIQcGGU~#<@6>8VU5}rpggJwvI+CIp~pgX&ZHtEJk@_G}uvvqJhic_LYhV05so}DdbG4Gq(Zb7r% zhMrq|5(%i0jlH9%zbiCNZQ13?meapl=09*(r&Fz5KXF^$_w1NFlW{da_Wpg_w@V`C zx)g*;t+j^775>;9za*S(qo5>}FE>0uIgF}_CvK9U#?{)IL+)29))+t2K=v}3DQ*=k>hw_M_`+q$_1|d zjGg5{DOmlsr8S4g(rak>KxaC&BRYrtM`<1HVbZg%y}h;@B&D=Nc@o*GP6i*34G--- zF8YtzuGaJCXIXDil-$x;5e|SrMX&o?0^;DZ`7Q@}?ChpXWgiDun*C%G1AfSWh{RU@ zU?y{doLYnLq4R4+j-^3gIBiiTtU4D4S65S45ZE6^|KYWkq$aD7AAv#cRd1x;p~<6! z&ILFu@=!mYCBeAHMyP_u96?d_0ekOV1Y1}f|?qSMvQWKY+7%~QFH@px%l9jygB zW6^(g@OS}tt-qConO{{$OL44u>@otry~^rxjo)I6?vkwh-q6L6ff=UyfJ!D=TgRDL z`6_$v55iC^M(Qt~ z9u1OfX^3fZtfH*$tK{$^gFQ?{3RBI^T?A+onYgd(_T{kqaq!Np!d<$ldy}9=gzb|z zd#U4f^eqiy%*{%7=hTR-{b9#;Z2huZIQ2ER>H{&E>2^B2T{rX4l~B*Ztn$*V1xMWl zf(=~c2WXX)VG+fr;DV=4IS zLKgj9DGhAguBz-gx#EUEZE^9%t3XQb+q$R~u+BY5E>bdn4(`tfmgVcQ1c4$*y)>8X?rM7&DZesHR;mm522`1s>YE_saR(;WiX#HSEThe& zogQ*A_uLA+g@Nzfh?u+dsF!`~VeGo$`_5b~BMv}KnNX)s7~6O`6+yH`~YRRu6V`NThShqIx@>}ajJZ?JiSBfGKKsnH*DZXQ+fTuvBsNC@Y7pr& z8#{JH?{(IOrHHhfl?3Hd(JSZi`MM3`*q49_zj_xbrjRVehKH=@#q|CP^X9~2-XJjB!1&F*Apzhg5{;QO8V96^UKVWdEh;EScmYp3Ao zfY?Bwe-c{)payc1J=GMl&#QxpcpMHv9Bmrv5@YSLnnn_#lyxKK_vk$p z2IkBaCqjsm_#4?f&7}>dcTP4gQz}2f+Cj)jm&iKl3M+$j(+@t*x|w-6VAutVkPHjq z9V*Z({y%@DPUZ>OoA=Nr7mg-dpo=|F$jnt^4Y(o$_E7D1{NCit&Pw^XPJh7>FMc$9 zAO$7Ywz@~EZAJ8+D#b#pXB1Xhi|Rh7`>+=`QE(G$4F^ve+LQnFu$O&P_~#)536ili zFAhe5`@L{mX}^QvB=Vi>tflGdt;wRyLs*c}C!M8aj4|U+7k!X()N)OS4<%%OdHd(p%@U8@qmKeaiK*Bl<{^Myu*&92`)NLaD3M|qKL;{O z}5Tysf;uriPsd^o_d4`1*W$rl|OESb~He zZs&@Cy2osSD zaPWKkgXTwE7?ufHv8(2!2y2gmLAEG=5nk@Wr8YkF>e<5U^34?aDE3&vyX6i&?DUD& z{>BjLXk)!Iv~_9nZbWLP-FAzf5_zn|S9mZvBL-@3CZk(LKZJ2Wh{I7>C~KC)3r6&_ z^zV7}x;}Z&I(w*-+8e}=;zq_76=xEki|ptJ>;cY===Ht7i%bOT#vIky0Q<$6%=!); z88=jflJi$_=GSwLn5N?t3)pW6AFTR1bJ#=6D!Xqh&c~xm=C-pXS<|Xj$<>_bsJLQl zf;VGYg+=W?S@W)iyG#>|F@h!V=I0R^7?SUKnCZgI4?9~zmfQXwn?Zc3swy7+;wQ0S zAvE$@-UmfVPo_GVNj(*p42x6va(Qw%ReZi5acn+Ut85KkCSSUr(v^Q;Qr6hGU3rd= zM1^-O_;47{?VYNA>@xHtxWh9&BMMqcd$QNrp=V~opZ)vUc^?hiB|G46w#X05R-Ggv zr*4~%nI7joH|IZQaA8v1y%$pWAv@L|b!lazZ@*H(SZU@PSxfvZ#AS`q=k(Js&HlO} z9rMY#(jOhtB+x!WsHfab*>59$$Zeo+U*UNp_N9k;Y(2hnzwPcUmE-h&dOD>{JGPyo z3p~WTz7ZN;O^!-qPpJuYN|2nwWcl)2xcS_1|E|Xm4gR2gtwZr;1E*Es@xx;v|(tKaqMtvLuqnxFywZP`4D za>TjaIcw|N46=yV%V{$P>EmQ|S|Kpaa78(WoSr1S$_Dh&BERAf8TaOW-FoL0XueyY z{SJ;YqS2l(K8MYrTG&;jt6qq$Ud7rLLcv;($tXjl3aj{z>dn!wu{_hQHcX)DtIH`J z&Ubt4z)Tr^PFveI;U;_`OcR}}vB_7B1C~W!VQ*Q-+z~qayTp1%N0{;xpWotm6`kzH zQy&?EQoPj+EjiI_{eGgEJogmmm{b_Q1DU%z-_qkbKHnOjJ0D4n+0mmi7E4Zhn~480 zCNgpLTpXkk%opoPLg!Yr3;8!hQb{dF}3s z^rMc)=!e!T>Kzq#kDp#B=Sa^2f)a+7#^%Ml0|T4u5|P5&+A=1;9p*rSa=;|{<_kmu^V21UoUx?seXhf>D#XRePNbx9)(w&8=9=_p`F3lrL7+f z63^o$j%RfRdaAKPtX@%M z+?bpR!slf3=w@c!RYmcx4I62iCsEW6-I^3mW-}3ZEc4tLM zyPH79cIZf)x|4ah*2ycTmk`@ObW9sm9V#ALno*YHJY8WGW%*P4D_>PxEEvz6T|0Q{ z_O@i=15!|6z#Fqkx5>-4Mv^PR6|hqM`0l;M&PL?+z(E$OPGZ~cs7afKq45$$d27tT z-1{*dM|G2P=B(5=&9p4&iKJZP?f8BOX4Gy8-jQmt^|*(#t<~CG+U?u|l0CWJ$y8UU zWM=~^YQf-=6l>Y>FT`+fsRW#hqLx&I`irn+l!oh6JtafJk5Y`M;Y4jPw5&9vYZuDZ zD{RitL6N$z+5OGs%pR;Oe^sk1`ZjlQOT}sObl(<2rsvkEVEZqn8Q7UVIfg|vbACWe?ZbsgYPlq4o;VHPLzarp~|CV5#oled0 zJ{4xNQ3kjFdHqofx?ZnTepkCG$Tbo$*bzlh8(x>uq5P*#u)1h@RpL3Zr(0dhd8ELA z%e`I3VsZ^x1H_tI<1Ro3(@my6HZ?2wCLtQSNdT5;w;mJS;*0qt}c7@rPhrI zPX0B>nRjJDeesx@3hL}L5+_WAMp;g}%W@S=wC(%uI(_-FjM&X+*KJ#2Jr!QIhz zm!-+hzu`Pf)A>~84>wK{ztsaxs^#oYiWMMbsDptt0UNN(Kztr3^H?kJXGbc&}F1Jmd@&X*7##biE$r2*VQ*}jNOn{kXpBo}jSx}{5~*c6bsi(*dX`T=8>0$O~xr3ezx0ba4z3u z9l%i~CgC=}Lo48Y(G#qGBS4$;SH~-l?YLDw@Udxb4k=EzJs_k{#Co^v#FOlr$KP7o zV`wn_^4`Vbji|lC+g)CP^h&cJhDZNxh_7H{e`ylis9Rc?EplM<<%9p6NGA)@!v+>E zOp<%5xFe}$$z>Mv*AQr)i|kBIIduMLL^dk9qQik?uU3e6=>G8dJM-VctJ_i;EK zEYb~H)2rH6h0|(y2<`*2K5!VKtbi2gZPiwd(Wjf_Hxta#rp`wLic`?~UVNbS(fKHwjLpY{ z=E%5nj2)9RgzSBB|Lz&Uf-6=I>|nZ4@jV z5d!h;y2*Nv`*$_Q`ZkXfe1E`#b6m~f)8Z6|z;13UpJf!t*mAklw;!n8w>~NGTAFF- zP|^4JX~0%9-=CmlkO|esg%3}Mx6!f))0$Vx^U z`X0Am{}dP|pv);ITCVe{sD)-8LU+a}AvQC~h#ZaHe>n~Rg8L|_sDj|u8CTXvv#!hM z!9k2T^g$LMHt`n4meoj8(V*?iPPe(2@e-U-@KCEd`fXO@+tx7Bi z?%vT%CS~MxbAc(yM(D`gGQvMw5^9~TjOe0;YVUu7{otmLGD!YIcmtq9bsv)G0r2mHM`bjD9 zdHhLSg#g3EJdF??iOtzZUSQ!S)i=1PiOSpX38!Phy?FheP;7g6jA(LZ#`c@tJCkah z9-bpMH;x1!Bofs$G$4eUXaOyiT2pH_J>6zogf zd^*>eJ0%^$#8owjt*a42-nczYO)tQ3UE?{0s7)m5y+IbDXpd9%hLj%%WpSgCBGsxvnRwv2C?1?y@--E>kWUA$U*p%E9$>q6Ul1 zcOfFTy}&H!{!K)S#oyQcqOKNUC_pxAtDmZPxhH@LI@IQU@XX)e&fGcT7$Vy2pNY{( zmKyhq^sJ_?q{NZiJ)+n7`nyo5oUUTh3alD~blqP>CC5v`=fF;7IGJlgL3SAwClXmQ zlk&NDcg|_qyc?0jMz^l5jH9z~?y0pjmNhjMEQW-#kUmzOHh3l{;S}9Spy!F_qhP=_oWDzpAxxNfL*rnU#ur zIM!&$cPLRJlOtqfR$9iaZ)_xJM_J`3OW}zvxRaRBjOGyXwMY)5XEy_lGXV)?HiWEe5C;l35SGmVrVSS>Oup7x2>- zS=p7*w6bm7$$b4L@7y|7`rI#O%s3wqLU7$Xi!?cVTZ39X8(LFV7s|f>^+5yYfSS(n z;GgZoq3}Xh6Ul-hgDs%}yYx(8iy?x{ktDqvON?@wYk3@8K5WLl+!6?fpPT8Ka(Txe z6q-ABQ?*MoSf1wqM9nT21ma^c;%}Gj242;6yO;7`X@_!)=6zU5J)_t~I(v4@QfUp2 zGK3Q3PhN2vlQYG!H?-WMkgJ0*!H;yIQhq?}Qa?QBh;E@L((-IVH}r>Umu$B=lpKGy zNRB{FNOWLvHNiy&vp94256Th$4D`NO%N2rVx^wf?;>_c2rm_RMIRud;ry|)lc{*s% zyH`x;b#aeBa=Cl=t4p4Vey6Z7NBGXY7ZkH{?b*WunhZ~64C>c(QmHX;!EO$J@x&3X{x?65J6K40vZQPIC97C#_?)a1TM)H&_0{mr< z+rmGm3fe48&?QiQ#6W<3C}XASE12gMnj4FYyyHvG`DPQZw(*v}g&|WRd5>M!(D#dt zh|Jk|1l7GG*8Nn)g6=yFAw@7iBcrqU@}vN(9H}+oUz2l=-!=4@VEY}Z8WxYuMKqE5 z)KQlt-;igU$D$>EE7Jniq>%uNI|$@sB+_aX&bXo(O|W8*rGT5%buwb-`iT+%Odm%s z@h^_&#C#~icn2lSaXVB4+oCp~$g1yQ>l1qg?1TysmKufrO*f@FbGNMX?-};h`)H;Tgvd+x3 z8wLCD2!w7OYj^zC*nnA>DY}2K-A}~(cmot!+m(JK%DrAQu0_Yd2ocN-PtqW|3t=5< zk3TQ8nLfTuJSbe((S@a$GQ90D1X2LqzTgh_Pt0(SX+I)fAk*~*VxUaBtLT=vt<~EW zlNl|H0u0vLd^r;wPjO7zvx88cZ5v(P`#_71n|3cp5$q1w4&VCMnh0)yiXgiHwcE$g zn2=no6&#ETE4)ODb2iUr202}QHdgH2z94x>RVN&=3RO_7lfscqz2Kbx-6C1%>|~wG zUKM?uW|IR_D%IF(DWH5(!gcw4CDdVu7l6Ze@g?}p3l0m%1XPOKHB`v~-5|Nim#o$z zDBbVnaw?o7T#B~`Z?H&%;&i?RIQuSr*+YH#IyD%ulPfUppZ7F3s0Qg4Bvb9IGqt;g zrE#}o#u9FrY7Jfz#RfZh(nZaCfnsCZ}})x@L( zXcnXVCzmJ3QByTe;vhb0T`csBaE%v;9X23~6;R*$LXd+j{$xQ-0VwZ=K*{-tRjItB*#R^vjOpL^y#W+Y4OV6Aw%{?E1?e;k^hx6`Ad6An#coSf>R=*&>X3jd zVAO$4?0;N2&k6tXZi;;GNZbbe&k6lXY%>~pexICv~Qb-dxS!? zpfs7-#R%bTz~<3TW^thAUkSyNptWhrLE#yKTdOTwZ<)&N5j)k@7q4jwKHnFptP0mh zGzBQp?`InG(m30M(DfXJe9j*wprLequrDU9I`Q5G_V9cwnn~~)5z(h0g09Fll6NqB zmjHxsJrw@ZCb@GvcuoqmAsbiu<<;w`rQyMeT=olnD}6*}%FmKMzOvt)K7Ak}8b5eZ zwS*T{o2itaHVDW|pZulCba3IvLiLq<0gK0; zfsK}(uhu{TiH)_2Tf>(qr{WN)beY229*AO`;~jFT3z$9c()hpSVxv$fF(*Hb=ZiGl zUW5nt2|!X7>sz>|@YUL(GveaZMfpSrsn5t9OWK0FC{0ED*0~B)jxQ>D_szG12Yp4zZd! zyA*-k+}B>d*bPG>&A&!XFWaFzW?C53iH^UR%>~_y5Yno{kJGLqkJDsM^>s;FIq&Il zd79tbHSmp>Nof$^cHz&rN4%ij87pDH*ua!#+WBrr5T57_I3E40{Ye2?)8rmF=hx5 zyw)2w$d-O=G1^%N+W888xvw0#nVJi|CGNHJ-TmRkmKC(7z4X2Bg&Z2-hn+;r-zupJ+3T$&B)8DscNS724KECZ*VRUI;c--PxV z6BkD~pL>9i`yQw>&0T~$oSsJ?M93-ZT9b4RQm7NEaXH1kx3 zpq3$evYq0{g8z*Y^-Ebxf@2R%NP^e>7{gS%{8GEqCFQle{Atg8L)y%(Q5;YYMc0oY z>z|$ShXOYAZcOw*dhr1ezPw3-M|G-Oe<{yX++9vi+B7TR-D0E3j|nj-|7n`jA7G%~ z@yHDU-Uc@BSjuLudoWbO_N;Mr0zU;G%xG%a5dNO`9|dSh1W;mr(0sx1D94Oqv4X5E z(2V5#jMeiIFO7}$588l}?TC9Hd~x?Og|GnHMZ_`M)Zo=v;q?qCa0|Rb(lc4;l*>oE zh7Nocn$n=)^_2hlGWE3?ovdNtzF`D`3VARBQxoV+&W=4noky{`Bng7bo*0MGvs#;a~gQ5OD zU*T`H?w5cm9lq_S_C<5iAyA!oneCTJ(79ovF=P4p`GRFReXu?@8Uy%uif}SUarb>n z^Rl3Mb$lirPsbG}`m}@v!mBaCaZIl6!#%j};PG^%OLi?3dtl#v^^^hSikp9v`Tg$V z2ga}lz<Z!|nXGb&qcHtY9Jelb2Ku9h*=LfNk#9u4UNz|FNW&T_{8UB3rpjl%? z6X@Hn+T`M4&%+ruRz>J@v&Jg2%QK;<1P{NRE{T2PIo{3Hf@OYbDPT=4Yrt=MOH0b# zom0#GF-VlowS9zgrR$_iFts^A#Imu~!g#v~0-?2U;ck7KmFLfT97tYEpBEj?&F@Gx2 znwgCwwk5qbL4V*w*sZ2FE&I5|gX zW?DIOEMv+@niL!O5m9c63cySOF#dH^*u%~#x(e&?4+0C_Z&YX+#+*n)ry1EPg7tH_ zijrI7E80|6z(d1bj(SP6d zELj7npz3F;1msx#56}S02yf-dphbs@ZhF590q!e~PkhK58J{IXQ(5|jorYm_gm}bE zG|=EPL=c8Ou2tSA3$8secM4TGG`EK=9p5QunlA^IOhi`feGgAZvumO=G*A0#2m`kQ zJFV4YKPDOtWItxOL^%7hZByCfYoBQ%!iNbVjNPM z%>m6KU011{A@iPz(Lg7yG*N<_t34Bs?x=uGuNttEo;Qnjn?2lxdY3}h-Z12FSErOfO>j8{nZIOz`S_L7O?Ml69?zWr+77T7v zDt*v)I)tzc4mW1qu(y9GHzU{)=pEHG&)Ob1B(5cCX%6F~VpMI4!<|9}fr%S;R8yFw zMd9Q-@0(j=J?iA0TU~x!#?ZqDT``G;8Nm(ET4XF1MADgp8tx;ZW?O|OSFheRA>Ri< zg~R!P?8etnmVZ>2tJSl{VK52q`;RgsD=96Jnp{v9phj^W0kF2hV`5LJ+q>Gs${krH zt3}y47&EyVN$MNyZ$&>>-hro7z>zhy2x$WVQDl#GaLibsS@krb!+GR&l1ICz!9jNv*M1vDP?hv+|B#&JTTpOYrg zx6DSGV&~$!lyKEbjZrwO+%#~JB)?cT17fU|in@K}A8!tv(4rvAjV*#!)~9D%`o{Il zrXoXCGO@vd)ag1^BUa2zv?cbNo2_TD+@ZSAewA;Z+sw8jGqE-d?jv>WeLRJ;{bw|B z=Qy)S$m4vRquHRyZZO=1Y4NZ4YL_Kv+XYO*X7SVE;D@I+As3JyTfzqt2O2jHcYL0J z?k|=Si65L`>8PX^neF`kg=1^l_o%eBXliQ>w zC0TVbp#tsj@OkfeU<<3wpN)L-zA>_t@YxEMhsi>Wn`>GBHh7$-o=Ije;UT_{VNf$- z>9$NMB3V|%nm8I-@9d(g00Br^DW24eUP@|CQ1_dOM9eW{LJ1=yazgP0!S-Ftn~VLa zv}rDt%=D9(v8>Q{w!!P9FL9z8)Q(R(3RUpHiE%gi9_zZZE_F7a`W-Q*%?u-6G0ehS zr0A_Jd^tENKg}~H-(_xzslCdiLTfGw_uf8M4ZVernJX#l7tKA%6ZOY_@Lvp444(jA z9LL-)K~Ct&w%~$U60%jz&&aM@_&-Y__%s_T;`E^xZ=l>|t@pWK&hpOtxOCpC;>SP+ zDDH&@t|R@BuZuhfFkh>=iF3>EsM}6;gq>WGLEX0W4#|7Y4f%}lu1n1=onVn>cvkMz zir5G0CwlU!&F@{_0OSnxoz#k_G6+7I#@FT!_86PqLyH;JO$jt3X17}d%sOXRF0Pgo z8-w9-1I?)8HLn5fT{{jR6kMN;o(W~AJ7j$p)deaeU%_mhA#v6S)_nt?!pRirMYro# z8kaL`aHR=8#|F*_H|4-pZB+^WOCa$0t90ukXT-l_A{Ww6%Bfic2n{f6RQW9e{S5fN^Mi~XZIFY)jh9s20} zJC{t2uolmuU`nq)6JYPKP zX7on^KdPA%-wU%c{pIr(-D+Etx_#4WA_bBH?K`Yxj>LhVu@t?1jVv0A!!=WGXrPBWKqgFjO5a&YQXuEB{!#PQdcD##8Qb z+c_Xuw6~2TL9R}VFAJZj z<-NV&l%VzcH|Cl9OX~zG;XkJ<2mB$W0~XnO8=2I`(t!#hZV5|seY@4gRIlVVi*4aH z=SstEatjM50D>XoY&(V1JZeQCq29I249f2{YwAJn!N1jDr9o0r(Ljgnv`o3Mm`|is z%RDk>F^B;TwPOUIv7PhcYP!LLRpcV38vr7nxCn ztTmYO{eVc)u8EOX{57JJg*ymV6F$u*gltVJ-CphQhmYNUABGcJMC~|Dz;DG-;oVE0 zW8Mt$YqXr&x}9`k{tL@=_&UWuwZ;wY11A$eQ-%kzXegrts8aF2kyPqmLskf1Y>X=t z;^YMN|1x;K$xxlmRh3eY>(KkS6&xIpGz~+?X1OUkc($!~rSaAyMY`OHo(fgPNWnk> z({nj)u;Ow=R>n4_039k-^X$mNoxDL;*DEid>X@tQxF_T@*><%1?7X5EPy!HADBfOsr?~KISf&(o`Xds=8fbt1!_ygUF3Z z5`x94N8aIs!k0Udj?2<1zxE?olq)5ik0}ohZEF@EeKtQor-rC5`7@9_3`Ck9yEq$Q zVqzNIq}xBj>=6f+;*z_S+I|bsk1FT;2bqsNdPGtI)b5U9<^nd($N$ zD2qwwoBH$T&v#C_K$YTdPgp!diuslpuMkp0S_@h95mb(jR15rpr4ApklWT%c;mIH) zQxb>3hGYp)1vX)2c3Ltd5s1K#*Gkqmtk~{|cc&P>;^gfeZ{fTA(Dic*@fn*(duk z-Yl*cAN_*=LTapUA9a1-4S;lsVnNB5FfDmuAzZzXTpy@LfI5yJRTd^0H4bygSu z3f^zQjiM#f($X_zn>AkXNYG7i{Ez-1wr+u?UaOYe_A%bE+w-sZJj0{VR_KKaGx+i) ziP139y6SOcnxM#VaIirNB)=LjB_yEXqD3ikviSX9b?+w(x!M4p!y~tgZ(8#eKSND% zqW|l$(Qd-m$vWBOJ1cP<5Hy34^-nppVps9q{Ml2vRf!DsUWsq9WZF>wuJZ$*FC97MaIY z*oCcX+ZHm?H!ZoT%kk^0ACtS)0X`51W9c!po~4TF4)qg$3FmU5T7hHkoEC=3C6?Q1 ztG(@a$Ty_pXNvOL;O*{STx@O^HgN57zb7{14K;Pq#^ue20)_LH@DJ3e6ON+s)*~iY z1QbW-|GMscIUa0wE2rQL%hGi+Ku|YPA2N_a_l4>kl7+6B9T`C+fpKP%ETraFV2$j` zka5su$oQ|LF0P>!jSEhpAwmwJKt!WS8bY#Z>)kk3yx_WTHFFD~mCJm%56t0{v_Yd& zF~MDgGWt(pwgCSgbn$U|Rdft)yH^&k*#7ZQ)cTbaMwg=u?*5ZB zzcw06I#+)NR=1N6x_meZS_kBW1ZqKC; z^%w6MpPc^iOy5CG(K`1NE%fG5_|~S~x4LMa1FQ$NBngyK{{^2*1v55IuBJX8lX<&! z@{BD1%K%CErd!lU;E;A7e1 zl$-jpO7v#%H%!{dscCgKc1s%@YrIH4prkCJq!-DO^X%G`=MKd^m)*wD2&z!G)Y7f>ZvDUSj#TOx!^i{Sq&Vu1 zu&FpIUfaAR&sJcg!6_l8M0&GRwQTXrDs&WOXInn>EV4{6A>m8bnl5Uw*v88J;Xf}T z(X3cOeNBN{@0#;ylJ0o<*yipzcruqt7j&@76N`zfgi0 zSSuud+ozia$7blVo$PSOgIknj77y>bDPGXz{WBiep7CZ`vmnf^5whPPDOuy-4nJ4w zkZG2DihvkvXQ^EK*Zqe76dk=cVah*#r<-vY-->BchkZ7g=0Ny$JyH-i$#ne9ugU`W zzD2_m`!Q8b%^8U{Bx(gev->3rZ5lS8IeCp=AfgmI3ATP^AWXFbZ z_gxZy#kRE6lx#Iy@xLi$A`t8(UbH9^G^IYnu-F^$dq)Wi|K=ldV2ZA`+JdIRLTDUU z>}IvBn|S-8JqC*_)n50zonVD@juIDV>JuNkafwLD0$%>t%D~bNRl?9*Up8Vy&M>6B zaf<(bc8^gd{%V*B@%(k6W@21(pq%7~Ck}3M^Q8&Ja-B*^Z8!YWc)GA_BeK^kz_tt3 z_cI0pWCwSO`4?Gk8ez48I(W8o?OX3&gcw*A(<6JdDe^Jm?lkizhAyd-+BYat)I0juT%EZzPV(U7PtgxS<9|;zp-~GxG(;~2T=XeBX;!}@H?y$l3?I4o#GyFrp zYXD#F(whDo|HS1p!YpwW(e@g6F1}zL#&S@mK))x{NR^0>W6Wz_u(6<765P!k6~)~X zQ14db1Z0S8P-W{oK%Xd;DEdy__gaZ{(LTp6jsPJ$E;;)Zjw9912f`&A6Cm+3&_~53 z(XKXA*5&c|=vs7{h#@V}o#R5eG%!OsxO{;lbZzkkECX5q857_lX>4q^qYQ>vKs}DW zG|ujz{XStEx7FC#eJZ9-oa$}?(CEx;)24jbqr*gt&*opjTeeY6&K{oyE%S7F9zWu; z)~Gpi@6bA=QXr^4YEH#5g_@Ugikk#MxdZeLGmcGbO2tbFZI2G#cQg z)_-%vg;Vl!1r6Hyz}?PV{iHm@ufq4OMpWNIOVW=cRfd%%wVU6h@zHmFr&TfLs(Y=) zW2tjZs1lRUP|n~?2-&1=OY8WY)hsY2gB0B(A#FPI(b!MdM(mH|93$>$kV18ffAMhc z8%4X10{5vKc~iq%6YkpP8irnP(5Y$bTgeyCMS!QmIgSM2<*2>GoL9AoP-?}5vou69fZjHt264WOwOw*#ozCo)Q_C1rpX-a z#;W8Yv$?MI=4OS^ib$HxZ5lHDpMgjv=F^zfy39vJ&efKPe7F*aT4Pl<7#4H9PBwU= zdFT2|MqEH*{z7&>{yM@tV4TZLtr`AVRa@V1eo0B8wYOU+I7J`!2#TBNosqN>F*fZu zs(e&j7#(t*4Bpt#3+3URwu5kK?|dIEzKTA;QpD2yI*`|K+oK_g0$1S`fgVafmzz6p zw(qHNHauB%bi#HF5S7^a?Facv<=3p(u-LCqbEwKwnEpUppHrw5nbgYhwnOK<;u~*i z1&x^g1ceYw7iSDUafuif%yJkYpIahdH)7ZhT2V?&WiFSe9HBq^GBbWQM5t_Mz4ZEL zL!b)_C$Ca;XC-zB+=c!kOXqhcGXVqYz zI7OQ~{>k@&SGqN$|4ddiyT35Y3LIg<)fg}rd3@C3!TM_Wh(Xrc3Z5#`9jmPcpro}g z4Qgl}UgK4%mr0dFl6SD6oLeX{QFU8fQsX1WJMFs5KbZDIrEAK46((cgK=%K#m2=Gi z^BB$sPg7GsXFT$dy7uIDX2sd$2AFO}jhK8kPKK{J$s~?e#KWai4eL9v6ItUCuY>016 zp+z;^W7zqEF3!Zv{%ol+KL~TY*N)CxI7Ku>`6JJD{|!)t;+@3*PmXGhX58A4>R!vjqsrx3y`tm|R$2O!DH6(6|7Ztb9~>?)Czl$>9|B9rxiB4MX?ut0xFf zQzb%`!ipIhKy3!$7qHyvJph$KG3x|pVGH*pU0DvTBxUlGSR3oT6d_*@t@4t8l=iQQ z`@WK6a|Tb*IR7KPu)Qz}q-Y$&Bjc@&aIF;Nte$HY#14e^)%O#)O=L@@>wl{$BEqg(!M7D` z`y&n4DNYqZfC3VoZ4;1h13*IRAkEvB#d3&d;Vq+pGFsSvDea}l=7jS>{&<>2On;g} zzEu7c&1(&R07TdM5|IMDqiBee$=FttHG|M9mxj&R&HD0zCGqFK`n_Q|E`k}c0Df+r z9LAsr5K@}UHNjezR%r;~7jS@E1S-CGOf96hzfdy(lEWXYHaygu?EpTY>Hj_~V`dQn z$ZRhk)u9UicdR859Onyy5B#swgY19zoxBhMUaE4yzVIYoE_B)eKF-UMhF z@{&WI&U-a_(TzB9O+Yq~XL|1H+#EbFyLGsD^R-d(LNL&2x`uT)0%zl4uHu>HqoUfv z0l?@3go$D7(g3*^kSt}9^JVxJAAG-(uH`>IGqmUXNoJZLt>{Z}DK7Dgq^!mFqf?eW zj7fwC0W?tdy5dY&lailg74<#-B@#BELSQZ!FH8q+%2dWZV4|%SMk7M}P ztvt(RLx#QQTy@ORvN>02F*HrJcQr2;Toz_0_$^Hd3NQIC)}uSk3oE_j3Me{8AKQV( z6u9$#B75WCwIvy&t7u$$pa6$x+4Yei;sbyzN1#rHSOUeV^PlKH-=7RKKWutq()zMF z>A=y{3%RXX!;t}s^nmF)?y|2BGbnLUw*YOI;*A6nf)*9{PAnF0m;Mr3Se`M_pPfAQw_?kp2 zHs6oPALxfSY{;Y^r;emAmUZ7Es=V;(3ru6%j9GXbW&N!!O3|&eEVbg*l-x$L*78Vv zJ{)#HhbWw9tgV>cQ3N{5h#o5~T(84;*lXa$SFZ}CP@TQE+M~dJ zmS&fRxF9Xvz0zmAkp~;H^(Ag+!s|~Pix!iIuN^95`BWD;7Z)beLIQGKZrODc)`bb< z!u>uuhis=$Td0o-&^GK4^@=H6*O88wDaogxBeEMAP>oFXg|C*nRge{vx7-<>u<$5< zt_(+>zMW(~==YiRv`dkCuO!{Mjk15ziahOxE|1A zr)K|1odfi4tPZj}7e{n;D{(nAPO~*jMz1KL@0z06rClsiz2KoX7!gcYsdmdNaz_*8WKnvkEo?^<=wd+NS%=)LgT7%lHaMi8>lJx0_SR(Ids zZ^0a2wHQU(yh00W4A^CTgtxVa-r9CsOee~oVzkZ7Nm3jGl+bK)eBLcCJtbo%1^{BO zM?VAS7ZfB!8bj#C10=C)EUx_%-6_#(3eFm%N!SNWSpB}c&wvC2pqKw%zx|CFo}YP z#6x=2TPuIAMHTY8Ug}t#N0}3ETbBJiJ849Il)D5ZM}9$ zc<|bN$-KAiJ-fvOS_01TK7PkQEmN0xNfv|tFF)sgw*()=TMS#L+VsW;+E3qbK)}U# z6n2MV#)x3HYZYk%`om-%c!k``_^Y%hK2Txkx+E4IM_$wt0`(d zm)t|yJ?3+_LZMUIB*xJ)*L-u~IZb>SyN56UKFLtK%d>m~Zm0bQk zGhX3oVt6xnwE3(e%8T7EL|$|}l--O`+<#`11RiZ(legO(0PgeaM+pbW$PXl+ODPLA zK=6H37+*PP`a+jfzY^kyCliZe5)!B_%hyx(S#+(oYrM0hkmDm*l;-1KB9Qyp1dr3> zXqDE{t69Hv?x`QL=)LrU@*T|xr~|uhw%4A~7pNzl%3%Rl+ocx8o|M$z&4y%D=AoL% z$@3+el@>23&{&$)+zs#_>}|L7Ek7zwSYD}30!k|5{sU2mvIY zn}FjaUxc@6TepknwM6-rdv`69N>Du%XD~sbo}K{7X$7DXcLsUyMMYrvHSt57l zhh6**5kT0?ox=QTDVKd1%WJV-`JjIt>Y|FrgGK8tt{bZXAHHl41DO_^wVJ#@_N3*& z=_=;fP1_ykjoVY6fBegBixxSuukTP~xv2$@)8o!Z9C7eHd<%n*;POzM^2*DFUGt^e zSnc4a(~0`K&B#6Q6g%3qv{%yGRn^txzf2u6NT6;)38B@^-;YICmYIO%1i@$ljM(70*41zOl)V`p8w7l=4z@F7sX>r-z70CBy9L#qUKGv<(l-MnOM)iMZMQNZYO!sq}N-YfNz*?_#4velg6VvescCeG2U6gvY-3 zmFhSxawvB3!D8j77cyUSy?=b>Qb62xBGk&y;LB-O?0X%d-?})yfYr`J^JN<>uJ!{G z=ch7zjo8n zvlzQ}@6L&vEvE$q_@C%E@&*bajly?=SyZlCjpnlVFShX75He7FV&}{yKkCmGLSiZ{ zb9-@a;eK}^1GG`GERX1)?R#H>?Y$YOcIU{3zsZgEOD)kUr<}yhqVhKb=91$~4XgR& z7h68QOaljDLroFC@NIwOjlK^~bwC#2{p~+dv%xXBJA??xjNc5}oe4z@*$txWp{JTJ zb8CHlKYr1tW!L-}jW6HK0r=`|Qq^BDs>>C?zOt)UKEGHHnMIj}sL!4Zj7^aY;TI_D=mBx18(_suu%V=fhT< zCK3(Hxzp&rASZ)oOlQhqnD>X0cFx_bU-&8(8O01COHL;dOb*F(nb%~Kjt~XU8wt98 zzvL155dCC(CHE7l6=v0KgtAd{Uo&A%+e5Oezci$gk34t_Dp6x}dBy$&B^(_h_dY`; zm)4CXT#9fU%Qg;6kBL?^iJ$UXmyz(KSl^UP#C3~`40QNv3j8=ue@I569k!$-#V=os zIZ1i3L!9oxoI*Z^01{f)aog&$&{gwpF221Bt)AVleLd(^9D1A>r(H{Ya(5=(YLEY{ zs9;@WvP5?U#ByEfgk3%M5U%3!@dTO`(%(V8fjg`4l0>>0W#K=yDO3; z`N|2R-9;^t<(D^nj0qZ_Z0)9?aIr8EyP}3ni`=n9e}~>5!0DJ@g9F$H2QD6fQ_c>~ z>gAvH*}Gt1Pf_!)ozru7_)KBdTyn{1xeH?sjg<@}_t@D|OgQSkZI-*NoQF zBJ{lPwBn!)dcBabjfnF#6&xzFxY+5J(I^;X;a{kjFDpFF`ijm$DrRQ zdOpcuJYc&bi*uFlNjQD(49XAPF%S8t^UmGf&GLK#NMd8=Ky8nx_)>Q!KEcS_-bWD| zx=NE1zCX=$o6)Abmy<|RlEO3#=o)b29v^1brAB1Eg?1V&rzJJ{FNezv#@r7<+KKMPv1amv-e8T5r6aAu{mv!ij^yc|# zy%6)0t@rP=2i*Wa=B=LP526dLgef*DT-o5piw^49H6(roD=Vwe6&AXj1j^FJxNEr< zJ}l_6mw8sv9GQ`85_AHal!$D?t6wqg>-|_Uws2YG(T~SN8R-n2zv%5atq#m9!&aYp48QY>`8xzL+p=H4qB)+?$K z#G!fRA7f~_X`s-8`=Y~I6+a!=aaJofNl}s>jar1M3n0lT=fy1t1b)DaJLo;pnRMvm zk+EYLyG=!Sx-yrMx&YK*xrLn;JEfEipO&l5a!)s{`zC6bdBST?(7d8-m1-EUD~m>E zTWDkxRmqQ#M^AJTGa49=^4IFPtSDlwB+MN540YQf9d{2(byz?1y&CLIUk;vY{IF7o zDScd0twqs5%`Gs%+y7~Xsg!dn&HmM@_gs=*etIGallAk5%B4ZoP2i=HbVdcXW8`AZ zgLR!V(hWYTtMwR?QNOv38g?A|A^3O$-cqE?uyduxW2;VUS{2Bd^!Q=C1JYxZvO@}e zu@RP2h_}4AztT}_joQ57y#X_R@Dcx2MhlfhhP=1XymHvtzF?b5+|H6@lAJipoK%0C zt385vw3b=N4Jah?ri_clOdDx!y90b3xu|QUHUz>_cd#~4`0>RR@I~UtVq#Ex&F|SvmMg$XwM+Ur=%`cWwq3arYJT(l zIYVNvf&C*Xc^}37vM2A6La8JhbKp57r7U!)9(Z+cBu7t|?qNzMh%P=Z&!J9;gCvJp z0T*PN1i+z*3Eeu81IOfKWSA6|KyodCm1Nq`vnhV4lhw^b9=GH8l4Q{-rM1|{nVJ}7 z<)I^fo0}qH+aab?cot6L^zO;OTy5=NKrwsA1uuQ6`+0#qhiU28;0x~pt6NqOkNgBkX$;0-ADaK3qD5@Pt8QwW`X{& zCqY?-26;dsK@nOz9FT_lWi>1uB0Sk@O_GEN#@cyV)R#Ef5ogGwZoI_w0+#X$6KExw z?w(3ioIk*V=kdZ|69L8eOXsj35FFS+nLY%1)yTjiXBadB z)RGLhTp;pwfM6H3$Zj&%;T|=9oYtSs2mpt9vtt%n7Ky>W`^K9iM?&LF7VbdmhPlPF zerZ29s7D4N84ST^P;-c*%G1g|xC8_Cv$F*dt1!GnW~|{? zHkhTDh;~e>xYGBZvKvsGi4F!jV-b@~E1OrfCG(@@+_1~lR-l7D_SGmYtsFm_MKv2C zV4x|n5*Io8Fh0op!kcaCpI5v*kTD%mOzkhW>FW_OHN$*gD*inUSr38&5>IIHAmQ8{V3_06_J4$|-@m9(>;){T1E9_AJY{YH00Y{9fvk%35{-~oBU zGdeL|7b@fV>>E>X{|Q=1)erVFh9knG9(Rkg*}B6?@L;U2^sC-|kh~B^>bD~~H1)BL zc#?X-34=Uc@e;_X`0*u}p}BiFrnkpHjt)uUM_JN19PlbAMNE859rM+IM=rl;_sLQK z|D8Ri7_Q8X z%78Y!)VZkNuXiLy24_7`addS;6~)w!p2aZ&8e~RB1z0cCLYnQAi|Vf$;&FyOA2T%S z#xTRVE4t1&>qm8AvI~c}1hXm@eYnT1G4B3SXBupkHTvGeBf{R~%XN`=PD>0qY3d#J zan9x05jV9A(%%F{Jf4%$$8i+{3f`ksde^GKb*Lv<{R2!@Go)m!C1nzlhQ9ZBXL&bNXp&NR};fn2!1DA&OtqzGs{Z!@%nW~!gGUz(X%DOUg zsF!T;lom&wJDM8ypzrsQ1ulsX9zP8sp{L~OD{v_nDwh!ULnVU1uuk$`0WjqT+e5zX zh&b4OOu8e%U5I=sfvKiz`?)KXdzN5S<-7KK@qrdgoJd2~t&(wVsS0j1yGRvGZ>D`Q z=4bJ1;31FKTow^}izC@5nEGZe^jQI*icd+o`E(6GjLAIP>f)za9TVRVm957hq~}Jz z3`sE|HC%p`g~H&eahp@7Nt6fbR+>xsxfh%tOd}YEB3U6PTgnZ3q_0TX(8z4xdJIlK z<_=DtQ9CnIf4_bDlZfuaUdQdz*$1OtJmhGJ{nu-7vL1AFmv(H*VHkxw;Ih1Mh^G!E zG^km8JlNTCewbu-b`M%<$WAjuFU5EKs$3G2@Ma1g;zbi9a$*n!qna@-U02SS%N zC9*zmy?OfO)26M#=O&P0I@nuHMd3E+C#eY+Me=@n>zvkoq#EowUbts6$CAMOB7l!b z{?M-x8!qR`moAK8KQer%MW=4eBF0LR0e3Yep*BMm9ALzY4!c~Kb+Q`nP|tIwZn>mm zA>=_UIN0SnG%GMF+{-ZRb1b*kBeh1@;Wl`6svNG%kxTN+bWnRYd&c*YKUPTG;BtaF zEwYsfpxYU7^93b6PyV6OI}P%NLBs6ni#t1FFY0G@JP(Vs$Js!U7rW}|#ja~l4&l$a zL?kr!WCCc%2cSg3B(_AEdxm;QcQTZkc@J>GFZ}ZShbVr8j|6_=6oU+@U^hP4JW-p2 z??}1hq#X9Hp=g-EVUFhHB_(eget8Eo6g!H2waHE%)S1u9tf5yp9+G+L&nzNwdCqQd zgeBwB6!xyNYUHbUk(;os;f9jDkw%(K^pY<+&x|2NX|13;nG05Az$0N`L}{mqU@{YV z(ri-7^-YG1@R4dd{(ADkpXUT(c1T9sp~2A4u<=A42qt-hUL1ln(!2LDZ~}Lb_wc(o z0{c^g1)}li$Qc|ME)iHn@Vn+nSCclM!-Df)CgC@}A`kf~R1T#P+G8{kX%<=O)aw|Z zpn>m97Y6#|5bri%Em!bVSCN5+Ws&4R^RlIJGl_J(g@gsgO?K!>`y1{zwjcVTJ{PYa zD#s8c5Ldb7AnZOHoXGmp=1{BLR;3LSX|sA`gJk(Hep7p|S;6?X79imfmomq5DWS_v zK(p(yPz^{Rtg1kvXPlX5W{r&e5ir{Zvc+v1R{2Y?PaPA=UOw4xDsFM18h20iY_Ubl zF^bN3UqcD8?yVRc;z%cUnuhz{zBrR}6J8zbrguy?YxcUpF4sn9B_2=D*6`{M#Aj8P zwo`kpaDRkVbw1$-G@Qj;S13A`Q)!fglL`77-q~f)WKvpl5TWkXKU@cYAk47j3KoZj zFMVyMc~Gh0{KmmB=mG90y5U)5KlzPXK;Cz4L8-vrY~TKPnNj( zH5kk>YUz~DzFYm2p={NgY!!#1QYM6f^F`a6>Pzv{$6|mO3Q|5`4PoU)yl|k)=DLrs zQRSwUu_V(AAA+hRy@M9|!3T3TA#U=wEaBen*hB(TM6=b&Pm0}qa3Nlz1B-^pr|`-8_MRjd6sv|HaUA$m`#Ue@E^TWmMBUEDGRlR(zJds4H1mCct?&2EgJ zBT07qLf0Zi=4JtQu|0IZIgQCNUA{ zcglb|RtvfEIMcEs8Z|7wJ5Sq2kLcGE;H(q?k%NG&O-Hgkv6Fq72gnYN#E?y`Zzwo~ z^)5hA8cv>NUGRJ^bV$FOi%C`jzA>#&zyv2lxhlF26rLQn1>WDV1s|HknKI|jQa&l* zMf(1*a=m$WfnA`53Bc#aH{}8cFp~tykbL z@c3)|L2y6f*2K754)@i)<2&ttb3VR*5|gQ5!obgyc$nD_Is1aX2l2yY4O-Ed`TNg~ zzO+nB2sAoaIdZtkNSnQRe5AB})99@$A7L?WehzZ_Oy5^qb+sWWbZ3_tfdR#@U>wN<@%xf_#`0pm&9rC^d|WOL zckSc>{G-qGaN>aPPEE=j4~Fu}DG171zVRKsmW;LnGAaEslWN%L^ep;QWi$n+-R$Hqw)%|vIYpA_Dye25NlVP3bp>!wck*&}MZNGtfY1+FvO z6W?qY`%Hh(#9?5}+V}r51s=xq>X8Bx(MLeVMHf>MHyc#J+tn|1SpSS;tfc_=Fa$au z8wqp}9X#TeZ{i#nU|ooY*%I9Lir!^22bFn6y7{kT21EU%X@927yFiQlTo#Y zuNKTa>-;GeZ<6AYpbg^Tn%J=&zIp6S{&E}}3Vn@;DmVR!Y5wX6$4}>G#i}tT#33Lp zZx|j>)=TyAvP_jgd_2!gbg5gnSPX~<7;eQq+*#Z+-{c?V6b4NxGE8LIiZz>pZjqig zbIkIg3AYagbWVx;GyT|(2q}B2e<6ZB4w?(bk+3V}lR?TooWs_g5qKj)cidR1zG zstjVU^tfvF+`*|<=`JXrmf6yxtLqQ$WXxGB2|l*7I#{9;%#d<1GAn%dy;0JGb`t;m zIij{Y2cPdftLiBy_A6FB;g)r=MQ>Bfmm0(EpDTj%K+6(>mAVO>vK(`Y|7unVU=tws z-N+0Q`eU5yI@unhNlAHL_HmIg zo>u-+E79%390n8wL{SzcUrvlb*y@H&4fIT29KrGHyU2~9vWU@h~i#@;oHXp?+^*Bd0b0H+7w1f zUbVSb`3GDPon&rmF{%nl@p5oJ9oFj3r~K#&6w3mA=xD|`97hT~*XNM(a@{3u`qj`}%CWkb-Tqg1< z!xMx#`M{8&;rkTz6A$8m6;>ksUt-F-Jth~WDXCu)3bZZegN7{3*(f)`kb`ZAVYxK_(_8%P zoe#JOHq^wK1+^$HxA>0zRg*#K!7HtGL_?-nLB@>b7*9L+8z%-oG-!wbh{Cp8r>cq6 zY{({-vA3KP)4jIiy((J<&*+kDk8p}?x1HCV+1JuoYCRG)nl4S^zx8QIco231Zx4ns zq~Udo^%(Q{(qmTf?@|&H8DZ2L2a|mFpa1Bpm@hcyXWGNRpHb=%-by}5fOB4aMoGJu zV$j69A%?+!I_9i7zh3_I?QeNRNOlmHmlDT@)Uh&_U9P%74ukTHJpNzWjF-AE^IvP_ zzlHq25lz`x3Lc~K+J_fgSz!SBix?_jp!Z>+TXs^B*4o6oc)%+;^K5C?_XfX+An;;% z%tix3Z63EzuIqhbC4pUu$uvp?X97$EDSdbB7V_FVvSX$q1W^nZgLu0DLl!B3bp9e@ zz~F|B-PR7?1w!`WFLlU)n`_`UJH01;WH4P{9yqVj%`e>>>d5}qbq_?ibhdddI9$JY zJ>@)XE4Qf_U!Sq&;zpDk7VO08Hwc4naURNt$*j+0{p?0rOTS5x%knWTi<771 z5N-5AUpYJzFtk6|#mK|9^CW0CBX7ayEf-d-`+e3z76~l{TQPnKl!9P0-=WkMp$$@j zV^yH?J6APto4s8wVVG|TApzJB-~ExyoQ!ayPTc8HTa#>+d2TdR!|G5?%b3i!^+UG= z{az74t)XsMpw4&{60B3lN=);J$L-U0WyhpMVj2i*J2z z_*h_N0`dxOE!BWI^!w&a1Kgk8GXz*rcX}m*^MYag4^StHYCv}wh(p0cucYjojIVd+ zaq(h+i;;kMY<$Lrr`B{T%C-;)teQwqj$jf=+TI>-aWI6x?ZZtTwnmJ|~3qhOzLW8#kV=Aj+!!&J?< z6ASTp?KCx<__|-tWDZJquwoyae>&mVyby>Ut42Y^5y$X*i1GD_p95c^uI$?D?k%G{ zMl44(o@npOe1lGy?|=@4L2%pPGz}dfqRKFfVD<|>v3x`P^HmXAFqvt_`iw|=H7J-D zdwIzGAW=vP2;p$G7-IE?*fa_}1mBrd{1sSBh07FEX)Z6BVGOR9{2(u((`~|&t|8&p zO6090Fm10w6C?ebbEi%8PpiUOLia z=3d($qv$r3kEZjqa6x(F zbdyccr8|J{r+sTmiFU!b$RPS-oGh>zDUxYee>ci!X6y2|d!XDEH8h_6&MpvZ-R@c5 zka|qX9j&cxf9EuQxhtw&z$+@A^1C4LX`5`d+f^W?sSFV6u zxM1L^fivn2biHpbv0lKFj>zMhy5@ma?Wj!NzX+NB>N=#g-k%wAv`3`$3)tNK4cwj? zp&JDrdyh9t!7ELJR#mUs#AFrt#5CsL{3S1;?07k&bxOu*5?kT0hpoC`W^u3;_NtN2 z!c^AxMXAo8{VTG{b9{?dDu3GSK6w=F`@%S%?EvH!L1K-KR5Eq{xH|GD{5RSLt@Jyn z06$S(L#6_gd0n3r-uHT1H}AnABF`>RysgJG%)^8NU258H($%|mv+8p(0soL(ojYu{ zrfG&a=L(-;uy<*CoHXlN!xge-k0Z(;kP1*qwyQI?!rGc97xtW2+ zCQi!nw`}-FjC>VjkYm#|N{G^yi@g{bNAp6+3qZEObgbuvW{l-#UjXqHSpYz{ zoQ8Dg#p~k0PII1&Z_NYvu_$lVlinSH;LDa*{eA}+mzYdKH0RkSvp4>sF#{w(-sV5u zG1r9FbD}sGaHt%$^Q{z+0CEKHUHF;jA@+}Q${*kv)AX&;Y^VIqG#vF`{DvaVL~9Y* zzgCJaKpd5-OSICIC){6=X>LdY1vEZs-_Ac`jig5x(F<4W72Okxo^yBgwV}JPuW%6MsD2t_^BO3zlW8>E33%KJz`L-|Z!6cpYgS2Z)5fFbiyBE@kd8 z>-SHYf=NojA^iN7WXA3Zs~q0#WGCs7`B^kfr1JOEDKiJ<1F~ZQIgPdnRX<`M30o}< z4fHw1r6X?r515QLlbW(1>N5r#N;v+a-Pj-u?|MOg?nbmR3|K&fUz{1W2*(Yyd5)yp zkkDIehdqx-q`S7L9uX9|OQHG*5FNhZIOI-hS%nmdgee3Z!>Y~;FF^Rr~Q!142eAsd}Z@}wod z5ev)5g~3O-&ANExJi!tFC}$=D3X~+&O_M8ZPXnufUImb;=zBsN$W}y2n&_DpXLu7n zzYvGndRq0D3C>&A*~jiDZYcj`T`xo-b{kwQ&4v`rIOv<_)>@oc4fAFvEGv`FW4flU zO{vMn&*>%bshjG(#omL*pA|B~PeHT68OPR>15d3upYu<-_Lbdh&v5r z=$003^ZK1bR@I^@&Ox(LPzSn{Z_v#N3;m2`)>xV+zba0ZGPt8|b+^#*qc6H&i*OP} zZCmQe{^mhQ2oC`|D7WOG+A!71iF9|EbJ@_<9FLu7*(Q8vJzT=j?k{*!9Zpa4BI-)MH$RBr!=+MYV zGH2K32R1d>_4GPejb;aaD0eZ*+jESMr-CJNuldKvdAr8NjesvF`XQ543`s$(?L zIH9)1E7lMrS+P;Lc&qart)rP>KRX9sfx7l~)6vTT0Uvgi&v}fv)d6+vjhov9PY!DWNWUgVXb`} zpf;PThv#5sPRuiJ)2^T0GL}!^DPTQNA*;IwR;xS3b)&=T+6v6Ny_2di#B(@UfYnd) z0CY5R-?Z5=f*znf?2S_ zsR`LS{AnOr%R(RPru-Ed!K)FFi&3K18-Y#&3+pe`_{d@R-0QYZPIl?EM28H1+dyhv z(cb;du!qutc1h0zvVxWft4_T%MNv#4uQM|ocTw<#pEk^1rP_&Yud2j;+Yevi*=>a4T{i z#Eo0q?Ni~G!Zgk=1}pOCzpXTT$OnuH4 zrVRgm=CPrv(d9KI_8xKh-xkx;KxgZHl;Ny;i3v zJoPoKSrwTCXMAf*%wL2*g1%a2T5Ks9V{eBPDd&eBNdV~H-NF&}4ee?JK>2>uRve>Z zTJ5_qe#F+#N+89`9aph#uDb(E98=72ML0G$gQ3C3+!Jl@g)Rg@vXj%^Y?2CgiC*mB zURF53J8umC+?i=eSw*tWG+vou_w?$fu4rzo@PlVtCrD3_1$C+kV%1wVB3TK*IMV$U zT3*@AinPOhh=is>SZ)kh$=pkNZNdUi_2QdWfGT5wrYK8`a(Ei$#L~FpT;uCQ=H_>2 zxT|&1<}`X97!&w<+GFSIS_a^NV?ZX(G)Q)~N{4wMcvZ}^rkBtDaby&3Fp{*76FR!B zIq$9(e;i|9(ONXJI21*bN)6=LutTg$O8BqY=DEd7fe1l@dTyM|gM*WqH^C`+# zzYA@6#qt@@T3?QoEIY%V{HwmTL7`1yQ)^@x0;43sZk;;SMaoozGq^E}c!9o9j zHxP9CP0Lm1wmyOptxrRxbQ6Wn5;X$Vpg@~oBxE9k=t|&cA_c6*vM%sQ`|}n5Cy0>z zcE!vUp#lzwv}eu?ZgF{r^J84#c?SsX92(9vsDFk^Wu!UsLz>bx zR^@$43y)jKPqd9t_))`miF~6&njyc-S&1dX_fy&XXYaNYa@&Sa8#U{~4{J{Ji9UQ_ zx$_|e@UWYV#K>DeKmC$<^eyjFzG8uXZZF^)P>FZ-I75#~i8ius>`MHs;x$gGP6~YC zo;=UBHUcdU^j_Zy^Ry@#mk(I}U74{l)pRRR)2wDl&np~rRy0~2dkw_H$!$uWyIn(C zPBc2r;Y_qmio0ABG@V2To!@_F!sLBo!oUSSF-f3nT9I351Cd=<&wC`9dWy8{&lplc z>vyRegzBD-cUm2E20lG=^_HRS{>6ODFx!6Mj9)a*JVVN3A7fo@p@0`et*C zy8i>wHrcmzPaN#*cE58}(!il*aYs10gBYQ@N3aD7_jOX@TD--6<+2>A;*?ob{@M+s zM=BtNxCxjJqurn}cc{hU!otKn+wWEx; zcI#mBxa3iE=8I}~R2LIoB)%sL-SWYF-O-|9()?@UM*|&?u+lgFb_VT|ol*S@0f;F1 z&zFN0TLO-;d?cp0#lQ874co)k;NhLBUVWkA5DJhylN8V)X;GvANJgWU3N#(Y)=-X&qrc8kFvrS}P?W9BPV2otfl)J%E(Yli* z9a^+l(&_T!i`cFglIVGDiiXbtG{Pl?YT@ryPU|z^aCFkpNq_|)=L3OP3+Zgs5TTkqt5^D2E$)sm_G{metz{l ztl-1E>fzzvV-mh_31ra1^-BSrj0Crngm#TdD=qHP|03XYSyafN=RJP5NXN&VBY?yk z+4`5$QtL-x$P5U)m1>Oe{U5%yC7f@>e*Oz{NB$@ARqpcAax#A1(j9SWzuKH7OuMN) z#2J1X>CYD5EG>Lo3c&|MWF11sAq!%uIl(ofc~?vC08K1`Q-`%yzu%m8bYdYOgBy0x z$61KFei?>1vhl(=eK?jJ0B5c84q0&lGIDAef2rVVPp)sM?eJ>Y4FCoH6IlNVNg;iv zhkNr(o+VkOZG=p3p~R9XG_;i(`eDE7PS&s1scAvNDa}AEFRg&YoUC3Wap68IcK(ve zRX%(tJr5xNeGT)D2m*GODc%3Ge%uDXiQYG*O`f2~mhGs{Xitne9$i@P+3v#2a?aET zJnB+WaXRwVBo;}tP>ksi&dsb`@&T83uIqzb>{Wi|oy>@qT}jcb*M^DMa^5=~@oR_l z#>!HbBCnOs2YTaqC&UGnnbV2)9xYzF?T@Dw*Y6603rw8GcD_Df!yXs;+5LCvCc<$+lsSun~0z0 z_EETe6n_Fvz@{=eQKzsJ;X#_(IR+^65&xMXzwz==cj$IfR+7qMIzfAOoMrP_Aa@V| z$wznnDj~gpG6*WHcOOAW_N0W8ws_I*r9S7c0lXQJbKLUxHh0-d`DllFkRtJNo2+MU zn3ud8@^9MoSS$<2jLN161d=l&DqYXIuqKHKfc2d9bX~H35y!*QKuM2HVTo~|FZw<( zM58^Hkp1nX*fPhcr{%9jd5F&N5K(A!3;igtfrX5qTXOUZ`JBhV$NCb6y~`>RQ!g`@U6xw#hLW+^8YT~;6;9|j@@m#O5xf*t3fT>qv}z?>5;c9)w7`9zqJ4@tFD=Ksv|mU0$Aq0SBY6I6YD*i3)}*O5<6ysswtLhuVeLD1uVrv2 zFaD$fjJZ_n%7p+Xj`WLH>eukz0$7sFPa5*mn`o{boU=*?e&$FL#V)Xk=5+swMkF9g zD6Gqq<7U@PggF53R*Qim+bCrBOg@M0qB8Dv4pdL3>+TnS2Q%DwBu}xAt_FBVdwA9^ z_+kv#12>S9uW9+bryYS*8g+uLP?20r`F=2zKy2i>dUn?$R}}Hj8}b&mk)UO{d}=hY z{-0n&V4Wr~bVKFwzEOXsD_-s^n z43F}#^5k;pa_O##az;QPV(>;$>x~_eiFTJB=}jJ*0qmftC*+tp60vvEs##pZX=1@d z40z}CKVmZEdEzje(e7_EHUDsVfJ=Qf5xSmm;nS- zfARzYf2gf_xtv*HBf0cvvJ1V_KKBV35SZIwz(lQgn3M;>QYGKPJIErY zEoxVwX`Wzf%}`{4`iYM|Q|*lxs9e58?1W?$56bJF{CojT!{8WL?bU9;3?s~GjCn8C zoAXLv4>~!_Uq7c`16PPwdzPrn2~A*S1H3h$mJG&#K~%TeHM!2f*6cuAds<;0&^%R_ z4z}Au>32nTK6qQ)?H*Gox$Mxk!@?h3&3el>VsL{$tQ6p?qf@|M-EnVtQUh`r>GMRk0=m{pokL>i1wSx3UroS zQHDRlB5Nw;V-Ssf@+(o;2=Ma8Nb{cC)H**nP{=;%l8_i1lYX|aHuBm9W<`EnX4C*Y zVpNO+RxwzSxx|HO#`=UJyuyVj%&}hFd1H8M+O?{Z1m#hMGL$DeON)laa z&g?IEh7hPhP7bnl?-m_;kAPp`jT=B65U>05KcX7qzH{l6H1VyQi(&QaKLA=^C)cA> z-ME&YFgvA|_wP@eHMoyI0-`K zO3^%UtLw`7-@KjP(I+xjB`+X~I22X9SOzdO2^@ zD<3$+&xw$d&EmDfAR&zXZ^@fL41))eC#cd4lnz{?tQ}t+mUc)uXVr zxN?@m<%T86>29lnd}Z?LsZf)ajPQ|zIMZ(i(|LDnhRx^3g&Ln1laMvkE)C`l?$c5j zHqjTP;NRHDp^I{1%@jQzm1~+b?!%1#G7dBAgMR`H(7yN`Cu0~^n#2js_y~=KwhZHH z^b3Q$kHA=F8Po8dwV#OLG8sZhZV%1%Aa+l*PQhgz;dxr#=oHn03gyM!me!_BqGt0c2%>J|O*Ih}?p zj)4@xyI$GwgU8iuwNt8}qfMqR^DUAh$(hjqGSzS+q8y=Q&V1yNB+pZP0*&l6tqRyX zVi8AJH+6&P^9h+2-13PAZtpQxk5u%){lxu?e2-mn$VK z)!!2!BMnih{zU{J2zM#*IFwuDcC!t}wQ|Q)&d;zQ8I(tZgovImGCs1;*u0VwdN9C( zrnAJ&yrfPs92hG7)xg4TgZ*iKU_zmg+efL>`Hc@o3)?CG6>madxi>DghUnPWRxMPV z9ZQoF^R3&ySWdN6Tj&yeE~1dt_Qy|6#GU+&ds?`ZZWj4LO_9fGe`1E1p)@lG1D2`j zJ<_AbRg1r~!JwMr>?i%hU;L&cf#l=E>$!jdX-zyi)gRje(Zsy&FJzeE3W-A zPMhS1o+=80hXW6S!+MvHQ*!%iNcQ_`lLzG(1nj}C?)wM%QiS~Z3zYM>`&RbhRELW} zAMhE5e6nJ*^mc(YOez1|8g7Mi{BpSU#sZcX{32DEIDZ53pSNjeJk(^*7&Dd8;j0P3 zUxPoK)(xG%%-nao?Lzqi`^V>`L0sMXG+hw1i*E*-mp6anseMvzbmZ1_fptOe<#^4{ zFy@i(VN${2m|FT`$gFcUwS4muWA$CAVl41D-fKvy%iT%xX8R%BJ4k?f^lf3R$8s4TPcSL82WpdC>` z!9Z(~+d3KHDbv6AGV&SwqbfOB;HX3?N>&9>Fj~ll8n#mLa911RQ_~iorj$(qjMl^b zDAr$us2T*6#2UID*Q~0q+M7>*3oX5pW!2vNMl#6k}@&&i-2Hp^f@re0x6-IWMku;pJUyL@6lu6H;!1&t|n;`#d zd{hz51c`Xpt({_B+Wl<1$7n6M^E22v)vtv2cJwtHV*zj>J?JhcI!;G1Y5#RKWIhzW zOU`*t&FpqW`?tcu1+*}B&f;IIzpplUOjj4hoDck5vTt%%pC+W`?$RJ7;7ki^oS0X>eJbx-M}x zV`LI&$T_gfcdH9eNhUY}NThx;7i&>YF27+&mv{Z*;|PNM;gfC3)d*$M?LdTuz(f)c zuw`Z&B7UNza3ZIW$ru=ac#fo}3e9o5$OI7tT5>!wjyBo#gkyh`+@{DKQlepa(SGQ+ zSCv(s2H|`s&b4mZV`L}{RMRRW_X9N|)=y+Y|B>xcVn#?>mY|T8Goh0!4b9iiMFfp% zLs=@}J_8cso?Dp0nH?+Pu7wyB2eoTsK=TyXv@+*ewdPr5A+hlK2R5?gXAwK$S|Fl3 zv`9e=Wdkv);eIIhP9+iFjR1mFgx&1$!-3R(;SeGbPST@>MwpdBJp^}Dq8lax!Dya( zUcrOH0vgOQ2*KD${lo~qfKmz%Fx+hyXS0FYZ0s5RoE#J)iN;_<7Z>JAeOnPT zGom__90;OCZD(M5Zj;qr8qg{N&`-&ys}PQtTA&NxU&?36MU@mVE;2B07d0(#LzWQN zo-oPrMgBp<_uC9C6dY*&qUCEj2+VPGccE@SW-t1Hl~@w8sgQb8mU^G4ti`9__HXOW z-GB$oPyd;b=gGimAl&+8iJ1%u*8Ye7vC1R*W%tfFQ;%f(#Dq-B(d0y)$S(N@tPRY= zJQv1MW5(uzYfvc}_fs|b_C4O};nAqa1Ezc63A)TmTX4M&Uw#0pwF`e~63vqtXU65V zTs`i+xQ;_Ab)TI%Vo1U!(thu^>!^_h=X(&JT$(3!+ELNZ?}opyufLM!ON{tLp3A~~ zH2sVzU$WRiLs+zO(9k34(5DNn3D(a^PA(oriCva5Lqbh4yz|5Bg0wi?FZzW!P036P zYy~(r2nQ8c^I=f6CG|oQ6!q0e?adSwcc`@RLsnV92zlklj|fe|K0j+*v67>-o@)=s zD!ZBMmLfU=k@4@w<-EQl4TK7Ut95+L)ZpS#uq>ru!XX6izefh82!lO+tPi#@{kQzh zBLEiLke86Q_O4d9JkVDHAonmSukH#a)E+1=he?`M@1l9^%iyfLCRa{1)j<*_$nZO88qMvUI>fW1M)=dorC2+n zumLd%u`OW3VwtM;4_FI$?pzzo>1kYSHy}~20YC3520mS_Vt1{;T+taYos~txs&h*^ z&6N0=NeeG|-$cGDh$3es0E!({{E63)xitG7tJ3Y{)C@k@*bIzVz|1WtVy*Q+g?&wK z2$~}vWERJ3A+~Tff)iRiM1FSmfHEwG_oz3GHLw9=m}Dn1(>;X3Plfw+#X$y4^wz3i ze$}Erg3&B!ovJ|EbG?Q%e&sNYL;@~5AL_Wvokc1ef_kgDgljLIem+TEDM<(fis@7o zB_KlBX<}&VrKcr_Erj)zHE z-Ez=Bij`5uY%1qi-B7N&?p>+OH?gy^ho+#L!17#j&DXuJAovX1&dWaD*wk2>Psg(+yJE=BMw_*m1Tqc3Q=E-da)l0G8hxK4+qN9agPUD% zCp|E&5ShGcV0L3Oyy<|?=yHE!7HWhxtOM1Mg+VS%}Rjr*Yu5T8YI=yG(-^fXTyJOdZ$;SsJ>(||gGbz$L2IQ(aEg~Y~T zTTnNE+!og6aGzCto*asXZr=o!algc7&b_0Hwe^CvwqEI|+rJP%ffxm>nJ9a;|NaCT12|vMgtO>&jmf#> z83|MpzXX_9#{1*5V&)c3off@lr6ibE(TUs>tn=JNxuID;)V16|bk!~yYWoK9_ev-T zin|ZW>rw=@E7ZBbko@HHxwMR7`*NSNDKxI(Q?=moqvW{oOwx&Ev_S*uo;hH?M;XfW z!VA4kbP=`zf4Fb;qh5Xaem^-0_1;@8!XrML`^t;<3^D$u0A0JJ{=_({@nXmL*&H{{ zo@+1&>DPXd`coYIF?yn?k`mFEY5(?ot6_)d`u ztmYK-*`vBetQ~58$K!J)^wB#W(X|}3{x1Juo>o1biFlFs2b^a(D{)0wRkGqNe<%jV z;`xtgwye^0!_u$Go~S|qH>p!YU$+*8{VRyqT#X$GumH=yvI|4|2KiOASl7tsr91Y} z=W>)KTs)bOb0Qy6ZKhLt;Gvddq;1#4enD`G2167)$eYqUt@!e`hzY>bRr(p8VM;i+ z>?zuTs_sDSp%6Q>+L*qV3;HVSxa*orBjYAGqaZO6uTrYf)0MpS2kAA~RcBB>f>vCd zo}lDZ!B;T$dUrsk61iy8uA!7q5GJ7WKwd|lrmw|!&Gqto%1$n_(ey6fWkD|hWG_Kj z$CV{y79=~`sxZb{s!w9w-r9Q5i86?OJf^Z0Njrt$B_;FqfqK`pgQpE2BCgHnePHEa z?~lLR3ya6W9MkW zJ(dyh_M9>>F@=eP`lzz(k1aI?XOr-e3|mRzq0-9g4XcIob5@+6oqiO!?G=Q9$B2lK zai~sRxqH;*whi9Fh7%i<*HH_wv&|{+ElnjNN~7R@(kL*QWGJ%(vRJwU8t}hZtK1iI zl0b*2uvr<+YluD9=kB@mq-lKaDptmdR41Wb`RmI$Z}J@hq1AiVCsTbut-OH0gZ6=8)4a zOCx6RezNk;1Jx5P%?`=KiQQG2obDq2o=9+!Y`YoTb0vneNW7MvgkCF|ZY8lE`h4}% zz=60X0X?Z$IpAb%n2P164>dY$b0E|DN!!m|iHM7|2j+kpa7Bry$*(yTE())%_GstA>S2FsYhWyOv%me@{ zxh((9)$7|P{Ngj{^+KnRNkgijqy_l0W2K|6FW~EzR^n@!aI}W+b%D#O-{wnft;V%* zP6aMMpeVM~gK>OtZbnj+i_|5E9f131RU9F@$EfdU5XZ+0HP(A>CN0Tv4a%}^(=E|% zy9yzL)il^cfPGTB`y@(xTdUo_G}ku+n6Efh^a;@rG0I45{+?8s`y8o^gX1T`X;~GP z=$-ss2fi!F(wkoKvc;=~ZdCAv3X{He%0D zpHS00wvU?C1@C}lLnz@C(95g>@1Esm)_p)m_8?5Kr)vCa09<-a&7#wFJ%TwtW%oPAFjs|`Q~bO z%sdIJ=UPAKeL(*dLVq0-PG)0NQgs8Cljek%+`iS(>i315uGD6S{t0TU(C~|!z==v$ zXa2};2fZZNjU(JAA0+_E2#I7-%Yz|s4o~E#`5x~=yqMcQ1MTGBXFbzlIwhrtC27Fg2jo_K1b65{dA*-vP#-1VhBE)QrX# z{FVo2(ufI+ROco0Iuh4=g@a_{arC`Wyx=?pKy4rQ^z?hJ=^-Cuw$&}f)4+RsT&T@F zmpXgjGFEAUE%V#f0*S zQG%58Ow0%qn&?`3gf$aX6H+=MmNvO0UaJZU^he2f!* zQK>eM%4+U$y+REgFdg$?nq`vwQE6Jp?&Ph3Ho!;9>Nt*Csy5F|te8g7DXHGVp7&Fx zYZ}tY9gz=8Eu*ZlE24+C=)jdMOVA=8!Q-O*^i#Z?EQfU1Z&p zXN*`20_s}CDBwrXuZ!3^vnDB#z=gF)tOjyM~S4tsb zgFkYqux)FLFUH&f-#$csHyv%bbCGsa;GnbLWJkJ{H=KgTCm0*3HJpR9n&wC_A2(fe z2oB3r?&5`S-Pv+a0pbqBIH_ZIEPllnqgG7M=vWXcEMFF1$zc1GBuDsMDWOQ2QdtVkdbVY7W_r{$S)p!UrmzhNlYTF-^^Iq6;*Ge%0vzqUIawxHs-=BJssjI-+ z834&|Jt*J2j^v^oPAsPg^84ufe#K6?a^P?Il4-{3)0O74@$Q(v#&shdPmb?Gp=$r4 zo9UG!3=LUmG8vbHWn|puwjI&=JMYr6>C62=(W?{RSr<_0e?f@Ah?B>#x;(+(F|hjR z8|d#nEF%E`xbsK8@{LPH^MRj4WX9aROCBRfT3J*msc&I1!<9SXV7D!ag)S@D$N1ay zf68pv(e0ytU-S4D1j)n0$ePcZJQ4}!*1_vE zT~nf85r=&R`6%k!!_6z~WOVXD-jfe7w_;4x6pcVu1}RUNveBprMZ3ZZ)96#eg7fST5md#Rwq@Yd#>{K9-R;^V@?&B#xhVjDM( z!9jo-hLSq%^^Rw1LFqT2%jfO^A5heUIr$`~^Lrucsv-Mr$GtYH!q^jSMVC76QLhyR zvyRm6O8&J3{;I6zAxCQ{>=Uij0)SqS3#B1ujcfEMnfs3u!gmlz0N2*{7*e>wsYb7x zQ0K5m#|(zcSlkWrI`oRyAEF`9<-a12yKna_t_q&U;jNR4_uoaVZB*7H$%@vuZLq_e>z;QKxb5BITg zq#?w;FCFxh+agQq-sw-R4gFGar}432=9Vu@3M&cSMfnAd)Z8KdAmEleL>z~7lxaP! zm!&E3Osa1cA0K^Al;ALg`bQL-Iy?F|N89~s;z^j2PJH6iDUqcW#MQ5)A7n=?y89IU z5VzyZ7Mxs#v(_@sFN(WSaQf<|_;PA@6ZE;^{Hko361K12mw$*RrrQ*m9O*pbCa?JN z+I-ywylT^mX2CNWeU8>}NzUlC5IgvkR!Lq=#PL4m>*gLR?q0GbK`75jU zCm=r;)qo9WJ^B>%e_{*iAmD*ip}jAF2r*=D&RDgI*tca{SE9zW2Po-2!(M9&NKuxy zYnNYPj50Lm;hq#z8=R;WIPF=fi1Vvzx`eDRV$@e3%p@H$*UFdJZ8LncP_wk+@lJ0( z01JuBe0ZGv;3+#-5#^!2;J8+B>g>1TLbAuC_C6NT zK9As5#<%of6DnG2h=oxl8^UNJJ%K2rgMeSOB+Ook6$tCca)87+eyvmQFyQjR?L=LR znHHdoFW0qbOxo-uzv$j*X-pWtAl={oIYC=ZcU5dq62-i&8*WQU$-jQs(Bf7|F^UHTMHI269=<1lI6_{__)=HB8d&Xd*UIN%85FbKDX!Xz zxRmvtBo~Qr?CnLRh1!fS6FcKnfMoFJ%Wn={B7DhGzsN!g9gKO5shn-e94ENU=FbF? zQyl){>|bojyNn~xnSN5U{GS?*`LFOf6*t{%LuI*pR=%S-#7YeY*j%1*YkuK{+;fo^ ztbncJ5o06NP%h_J5LHjOpRV!H0h20=-!3{kJlP89MeUNZL0McbSyc9G^pzLcc~Ms* zOkLh%R3qRM0b$3W(Vm~FQOzyD?vt^0IDaS0FmJK6s ztw$Blu2h&sn4_wlR{VG?BijUatsH&7Iv1`{GIH$|WB+MkT^0s~nVH{- zmZqFV>h7taIXzwMGJ*oxnTdlqW{M~pFrDu6pV)b^QGAkaeA~k0;N0w$zH>5`zyc>8^_9=wdA>?49m$1yeW=u2ZL)5_2uU;@f?8@xpMNta!xnZ0VzQ@HWU6fBLgky z#n2+6|7;O|dyXK@Yxmnv_?^Wt$BplC{ag-|Oi(}(yo6+bc%D~xd8^h0r04@&@xuEH z70g7yirXI~pHB>$*pSan1sMEQ8EGRW>6SgmeS7g)ygLaK@>@5b~Pg?*{ait1ao`oUB~JO@qPMLRFZ#J3HtCW8&Fs0|Dau{S_k^d6$)W;@%4YB3-317*T9~WcpY}O-X*;S z#cAk2pT3WPI*2wkAg&1>MLFJu%KLxA(N;J!2FPad1P4eyQ9%AEA%kD$kUz8RR42TC zP`s6cfHRO&goWK0HL2>?HBxAp^(IKx$qZ+}k4K4l&%9qn_*X554RpmJs~f+|e1Pq+ z5I#_!GR4GheWDhaTVQ-ebxz7ajz8(ZIO(ju-&_r}aY#Y=G#wR<6^-S2cLmv5w_BJN zR*2WYmh!%{saGN0h|I<2rDjsH6ML)k2;7K%`ws1mUPSp(N*oTY2mTtC<;|)Cx1)vr z71KN_2v*WvKGdvI<*Xqfs*T7GBg_Tq_r+(HwYUkMQvm94<=1+-^!+fBK9)b-*Vbgg z5zG=JO?#d$*k2U|8EJfE6qSFT-hPu^k{~@HU_=oZU!!HJ-;8+nD@QC(!~0(i>#k@S z6i8U!umVkxgx6m~%3Rfca<3a_Rg#tiTN8OAfiWAdGpQ1Kmla3~Nu?vi7MQpPaf?Qw zy5Op!8D>FGAdk>sjL4+yTLdtNY1JtT0VnSK8q+es;(@59eE;aX4*-4b{L#pUFX;e= z;7_oL7xy#VCuW|M*Bs=h^pD)CZ876-O~adlpX4Goewh>7>7z4=3mA{S z<;U673(p-?iQVw3FV8AICe-XV$N-S&^n>{9EhNr&ycj8YcqHoW;_9^+q@3ME36uR= zu;);*iS&4t_N(g&*mOHX-5CgKtxr+8fV>H5{-k)5^mrcMB3h>n(^_TcHy5}VFywV= z^Oth;JG^VaV*>qfEp(Z-rTDiHoJbg8izl|2&#f6k{dvRqb3^-Zu#KnL^=$5*D?ZDt z9_ga~F(r=}7g8b`127TYwcRy^X#P?|(GSyGQOJ&CYuZ6PP4Gk$;U{t^fz;9Q2)2>L z)YU25C!sON{&c>i_@1xC2oQ0pVMQ$as>>3T5-Db`B_eAl{XJ7rt2!})gf*DSak(+i zLZel;Kh{d97?s~C_Kg%S*MfQ<7UIpR{GwAf78k1YgyI*Y^pWb&BUjEbq6V#u%nr>^ zlHcj~LQe*be-QM7;y{Hqn5Fs_&*@u8 zdC6zn?C4%fjz-u86s9VBexpXoFOPLGfOLV*qNNUY!)?HA?3^#1pnF_@fd3A2klH|$ z5sPvv`~VJj#=t-~?J>QUI)}V(JnAPI;;-(R6Ueq>_TDA2+znnVPpeF^{_@HfNb7UT z>+ceeyIK?J+|L_?Jc*8d3LyA*m=}~hsQc4^`AiEB+R@({cy1Oy{gGj$Q77r5zA;e$ zpO_MF^{3czv%tjqODHTv4L+8ivU>Hj5J6Pn6cGjO%fY96y&Nf6N2LtYnaFdjP2tEr z-W?{tLd*jK&PU3ChP;xg!4bxo<3kXX{IA8Atb)=uf&N+N(0ke1HGUl8@Cj=4^x%&> zS1pB{tS)!{c!Pl82vvGrMt|oAMClO)YGLNQ{>7YxB^ZutdlSu2mj>jjZ~{Du;}23F5q-wgy=T}F4hHgV9d;_p=Y6Lc zxL{*k!Pj*_-FWVwR=uAd*mp<5d7pw6QQZ<)?jEWhDuB$@_ifrSSjZoju$NAE`2sLb zbgeiSip!8X>lbN9g4ZdO6qk)#N1<&bG@l*V?;-+xp@mxNP5gxah*W{w9_D$e`K<9} zaojnux!2M8lyZ~}A~RR=q$aGa&S60?7?R=j+t)Ryg3}&b#f%1)Q$U$;=frtugI4rJ ziFiM`z%3rjOV4PZzo?$J;fgRk5@3`bX2=1j%;ib1Hgi{^!1#TuNK)-a86W z+^4HY6g_P6SiFak1XPKTZa<_gG=H&^nM#ZZ|Ldg!JEn(l_(jZ>Q(8GqlcAtEPMUdt z$*V7ByusA%$~*)fo0?$(`oFJvzl0gHHt@&%SVbR7*`wPYDuPGJO=ZkbYqQjtvq@Qu z#p-~>E^v4jDe()-Elq^5D$gT1>`c!t&S`Lbrz{{#oi+>#=0$#H26AS)YsXSFF>#8X zkH8ORvmtUskA&jf@!W=2=&G`5C513w;d&M|4q3M@F%>o+I8MONFpXb-n(G{s&R&$d zYohgRzw%#=0j_u|Rr9}^mP{!B8Wfq1ykdC&1wZeHazEr{H45y@BL&nlCDAOvFE9xW z2B=*+QEr#~+@BalWxxFcKrksc`%5~1oH?mGRVn5@oqyFL=(mUIYD$@k96x@sg4v^S zy=8U@^7hN)U%Y%{{7>-^(;M1%-j=xQZUtSjCH!D!Ii%e&_1jRY(DDi4le^mE?8MQY zRDf{HZfgd<-Yi&2#K9dPQsG@B2%4)aB9qsOpHCF{f)~NsrSk3G_(J8+c~^f z8qPx#489FjSP2DdO{ib9a&CDu)xlZM%-9y=MU4e2TXyFj^sz{jUA5W59C~u_$nZRp zcPWP0Gxj3eJ%pR?Uh1Af)b1>%4#5}yhwmxedD?PT{`~$PyEN{xFmW1YwmJ$Aa(QhN z#&j~rjSjvzCGFwCAebkYptjR1!-mhLFIj1r$0nEO#QVJz@qM46uCAd!fPYF{ZMa)0 zWnT<{oq_A4Q^EiL6{xRg+1^KJ2&lf7?9sk%p3pXx({&c3mKn9_%78G|b1@)7wv3*v zJV8sRh^`BdQ2ipU82#SV<8=2&?~^hHjD@^(n%H?8bXNL<1V10C&Lr0XyMh!yv#b*> zqSN;gMy^{%rR(mSxBrm!jpWqH!@qeT)Z7h-HL6q9R@=SW@uY5?gRd9W_g_P27#jDe zU6qWPm>q8zRsC+kJ%cd&$K(FPQ}F*f6%=_-!Cd;YR)XkwMibC3;vP)#2IcW6U>b)n zCivbJ7FYps-AgnN)bwOmC&=8H>`reiz&Eh`M!nwE$(b}k;YXU0`do28=6Bb^5U_iS zaP9L}j1Rtp($GS#Ud`H|DpUuwRHfUy@>HuwnA!EqgMeOX#iY*R2Q#n`EhqewhRR?G{pEKbKc{@5bo*3^mUlh*_;LtG3{%JcU(00b&%dtu2}1Y9wBx z{IZqsaq8>IN#%vBdlU!=P+^#TI=5X%E#&Tp`DUlkdfC?~&e66- zM=KZ;i5fXa3yja=&k$x+Dvw*Hh6Ya=+SRO;28j6M_4wHRTT}Hw0u9 z>VhFg1F6elb@EsO9QddBCrMu`td$44pJ7kX07}N_f5v@dmc`th!1MIx! zz$!RA)l@efw!*aPzj`_FQ1P4Ny;|i*lwPB}A?461uISgZ3ZS}m-_I&F1XL5o^KY(y ztK<^WLyC$-=X0WE@1x^*I4d*^UH=?`1}A3J_(n}X*pySpf7JF<>Bx}BvPj<{kI44yq&E^_3ez65iUc=%UEzhu+f(naRwVV&FJta#z&W4h=ibOAlTVi; zfo{WIIH{*CitANMAKuBIn)FMkQ5FIOSC&x~rp|0cj!R^~@*Q4jNfA;UF?DhCh90JO z^xP}9gGPh}L!%OobPL(A6CyrcO6&}u9SMO~WT(Rk59eIs zrSIPjyD2`TlR`p<&=_sfu#CYH2Dq3` zR8IY2dck@V7H7~JomSnAS^sK^0?|S<*gLUMaMkO9P zhMu{;uNFXJqxz2>d!rKnzadHzsw=P|rJ2Ue{Ya7bJYHFT{r8VcgieV;S+h<1051`@ z8`cTuA(mi4u`?4WaJM#&qQ-!B1}`e0Gxc`m!zs_f-M#*Fr|;&uvmuBcmD(H~&x(FM zFIGClZL~?7gf2A{$jR@3&!JTSOg%d)lwPRL+8c~r+&{0wiG6*dzsx23vBDlzoS9MW z?#x{(-(xDm-%t~a6Px3X%ZQM9JtAcYm?xeUC~v~9BYSMp#IyVTBqOf89}n*txl}cj z!nIf%Y{lCQghe%?yiacb(oMNg0E$oS@$A2-iPrD;+e6E@x-Z7&&;ULqR<9fP!cmF6 zaI=hNzmm7arDaos$!vv8HEBn)lQT;;;8KL9uJt*{x*Wh!7z*Yi^F3(uAh)GHZ8Hm zWt<*Ay&lx={kODuEU-d;UGBL11}L0Z$aM!%SMf-eGE`ik7*{m9Nnzx*C}DQtS$%1d zOR8F2=86e{GkQQ(-;~qwe7~WedL3G)6cRA74!1VcEbb%lvisz69X=wIayu6m&Ngy! zP9VRnVA+tbtNP*es9b!Bn%qXzjQF+PZIIUs9{pCzmSJI;1v|d@uEYh%aIxbg`3fak zYcg&7smMkQC>PSa%1!77rYc7Zr|Puj2P|!qVT?x2`oJ06K9jJk?dJYeO1%AF!D6#qc2m>*HMKh(DhZ2?~J6e~)g>hE6n@KLEwGj8-#)5T_YlV^zX z)RmGw7PhT<3k=s(Irf99FUPQTbNgMH8_l$Q!qY_t?8+_BiLYC*)}IUS%7*SDvI1cV zssn+toURdwb}(miqMn>S>3rA|uX!y!0cC`=y2X3TH~i?mo~I#P^8_v;Rs{wBTQv`lNBusVdKEHtMiH zIE}aSOzsqb7O6?xytq;{kk%zUiBP&C@*LRJ%BY}7NiY2K4FUH&%t;&#J7|4E(E~!^ zC%(VX6~NgYeB@tt)R8$=NyV)5zqyUWxB#St`TE`fuL6brVD-Y4nnnqbZKfc0hWA|O zF(Jg0e?>It3h0-(IY!0TO;z};B zpf4RT{SgE%?tpmXt^&L2%EiSdU>&q@9tT5YBu;pA5=eHdje|BXh`j*K-bAp+zl9bz8!3hOUEkEUY%a43mJd zTG<@4p{64|o8-C!6{9;F0R2qeJlCbsG!P`o;?Y4!#Au==)i<1V&yMykYgm1pssGM% zfsioRMOFW-Hbw>$;`v|91Brmu-Gm7?_qA)M!o-P+Fw>7`s z@p2GIxa8rSC8*|F ziXQcL%VNC!Hsu?xeniN!|IH*N{iTqR=t_H*c$JvL9{Y2bfVY-EGgqh$^s6sc)^~!I zpL8#aTaq^RY@gvJ!Zap}YFZTqV`%Dx?485Wg z9ttJ)+N646hz zXZJxa1{jLY`R)Uypo*d?)?kTAgLx8nl~r*2U}La}0sJzE;id^1LP;^w&MT^P=R2KW zl0lqv>I=V)#n?%T7;B!J{j{=nWr;zUL9qZ>(r`KT`Zc-8O6*aswt+Rs18d(}I4wKJ z#DI6}rIxiKxyht<#oy=TJR`vKRG+h%&+0!AD>1@UTCm`bqc(cIHjwnb5yKF01wf9m zm02}4Dyv7|n@F1~U#b;N7?Y@;OmomCawuC@kV?_S=3ETA(|)CKWF|g-XB<)=$WtO5 zmbzEXtWYC5CF8DKQam9@ZQi>!iJ{Z$Evc|^S2|8M98bK@eAKd@-TN$trfR^AgVu83 zdSa$f{g(-a*-T!jntps)N9 zT`E1d9)}E381VkFy$r(sF;T6nn&qFrSNt*aOxz)6jNUAsp8(9qbSgPp(*R{VbSp_M4caB1E2PNZv^tcg#=)J96 z(X4EJwO28On86)H3x<}aOFQykc<*pHf@J)ay0;w2xExi;{csUpMR7#=`&VqqVVS{i ziOiE{(HN;!wHKV#T^S}Q$bXsBjEU@ZT4E2m-yf&_s&L#DcE~u8O+?Cet{=kpKJG-8 z-%)3$;iGE7VUqU0T-yiP!S|Gu-|VdTv89jY2{YD8#&fKkYhuM=^Y+k5w~%Z3UPa*pbo@SU027B_0g)I^j0 zLY(Ehe9J|fCeu8$iSW;cKaoVohw8|^)zcvZh;p-Xcf`K^@R7Y%J=ka9P~A@acP+qz zkR%i!CGF95GC6*h3VgCi)Y`+ar~GC}T2P}63lu9pT1A|%uw2@|7IdCOXO=_O^p3{H zcsh9I8)rqqt<`^}dStQ0RI}FAyJj)x9%rerEf4ml!?Md6KG+z{gl7bL;l>-!dsVz^ z`x@Vrd6i(W`8>|1ucy{s$%_ok8N?2cM(8(EhC;5DZX2ADPD>k@wA?yXx?l0`ocyG~ zS-v$;`VTvkX8PN-WxuK4A<1bPXF?2^C42ZsK?)}A?AuYY&xd9x+}s5hr=?bvn2uUn z?j!YTzkAR4`o9`EjDOwsP24yZkS#pkgy#I1HMIO98nLydFuM+jzk)u#bDdpsCVDfy zDEw2D+G)vS_(yz;YGZ`QF-)*0bt)0s+@6vqIG*s-zc%oG;FFc?X2(jfmJ)ghL8#(Y zHb@tGBx*w{E7%&2e+M7lm^V{CT+EQIp)7768I^I!b=w$Js6P4`;Aa)UvN&0m*pj6SdQv}cpnz}ep{3?Wxgj{9Nl6_2GsFES6^yJhghe%3Lv|{et`$tTXVd1Up$T?uzh~pUjAN0}PjsG9?Q69N2#78@5HmsyAE%-e( z-Ub$;!(-B>b~~vkBf}E%f5`#Ss-=7u9r}^Fs%LO2>@)o4eGHT2fxEmKFC< zrXjy%uE719bdHk#n{+ZJU{_Z!_$4)MpAY{hs1%P)a9ct8FRH=jWfMBgOoL?#h*%O( zR3^#;FP{2$7HV?RtMvH!3DUWMMU;@q4~g`SerNa;?Phf=z&EmjX6t*DqavP)r6aqGv^Dd{lmikn_Q8~#_yzCkbuuC>qra(eDwcPDb&I<8 zYJL3y*UL*oW2C0^-q_WUp3s*Y-*C+)o$(5rKio{R>Ub8m8<)c#NBEg2MYKog4-n!m z)xHE)*fW}v+b+;B8G{gugPj;-0V7Mt@P>T}${(?XEt4?kHS~j3h<^l{qeFdu+>tzu=j{|&ySCwNpJo;G$fb32w(W_?yBG{(V8RW zJeOiZ#Lemee51#EhM4IUt`g}(1S;KU#pOg14pY#0QM^3T`-s1}1Z0^#Tr&nGO;v?c zYcpY=y2v;AmWu)3>EznK)@8Q8rRh*w|yi(-unj_Xju#q z=WeIbvT=qFptr*AiD*$pT`=0`*GEFpH654VfXQWL*50eQ zqKsY5Tki7)XY|hIn^e3pX=~!dkUhvdif;S?Nb*`XbfbK&jsE89i7{f;`upN{sqV1czf}kR9Ujcqtt=e{ zLk6mJRMxNiTq6ank?LaWa8Tp$-a{1*$~_PtH{+2;CG@WOR(%1n$O02BNmmM_TPN3} z@-hTmc@v|4GBi3gf25yBZZqsiZPYtjE#|K*0Tz3E?mZAN`#nDh?!5DrxDw2-oh?h} zy>2LkocFm9#V&hamD2Nd*7j; z`oYft)g_xXS=l7o=D}jrO#IYh=RkF~p0NSYqd9}RpICDZLS>B>rK#A_BX@w-m9}gD z3>nNShW|vWaye`O#($=O(~J^Jt(}kaz+I}RI*~%h>3>uL4_Bq~wg4is%*8({ zGkkv`_M8s;h=muO+Q#9Wnp5XAxf{OX$Rfs6O1@IwFf@d5-~2;@L~1>QL_$4V%5G-! zAKiXW_AZ&$>Yeau}V*DI1K?-Y!g`Eug-wBqa?Tqsy zU3<2IQ7N-jf>?o|%T=*`24vJ22gP9nUOxa^bFr(dUWfnLshl`t++75uLyhcjzERu* zv}30yQZBKHv#D95%Tk3e`Is1Yw0Go7-xv=}C4 zcRiGPO1A4S&^i}QD-p3Xl&{CIBUpNkhU0VnK7^A1ik!{wgEL=ornD?{O^T;{uqB>c z#1Bp5?bwWFMj_-0^%XKSFaOCYSx)__17LO95!L=?ZeA#u`Cr-Ryr2C)BuC3udO>4y zrGmkU{fRrFigMj@@Xb0Q^KT7(GUp4*w)z-Km$`t5Q(>&kBDBhK+ds*phNa!MTZ){@ z{^Ov*&Q1+M2557u9HQFCE@^;vHmlxvK`G#C+65=Z&_iHlKZJTX%#@S+p$B$nE$(tC z72PV}UuhySQRCNkL0p1()!52w*dDRY~ z6{!j?&BA;YF7nmB#YD3?l`Yr}25=x>T>#};hC&k%qwhyjdn@y^!zy@|zPZV5mB^9X zCNt-Qd#Owrbo+EF`)-|eGzVQaJPJ1{UZftCF*7ZUESI9jZ&SYq-AlLXmEl@DzLZ(2P1|QN+87so91B ziEYewV9z%Q`HvV32x}I)hAV7==U&924<9m?E_@rp-5$h{!QfVDweKm+2UJUTcExU- zz}jJa^}0lo$oP2RdNQwxgfpa_Xg_9i9E|p)P?7? z(BhMn5I*R)etuai+VU&wCB9{GkvlX#xX`}65Ab}hi(^wV5Uk(L3o?PN(5s5O`TVOm z_P)99G79Bw;_{?%|6A2a*Roq9;6}YXgQiL*@jl^a%n}k!-NmjfOiaTS{l@lEP)^%? zq48Uc?<3D!BQAjDG|mGT!U_`nu#bk~r`QE8o8#a=lM8l*Z{e8(9`QSyC{B%2^1D>d zT~S+WMSfxIQa9?q^-boO`ppU1m3=}C+npfkxd6>-7FcG?Uv6Fa-GpXNuxYA%p%#s- z;i$r9h;{``5Sufa`spz{XQO61?Ek6jE~DaT)^-604^D7`yEC}E6M}^#1b26Lx8MW_ z?oM#m!QC~u+u%C5oXIPD?Q_oe@vqlnV7j|n>Z-fy0Yc{JMMsspod!)B2cOs{lJHS< zxm zv)H2F=`wQt+%Ec53@L4QK#re;y~WT#Nintjq)D{wJsLgQ-tn{{byV}(az(0Jy%C)M z=#6!E950-?*TsY0nvjz%DTmMy`xE2?e|eBM*kVPihDIB z7kQY9`LoR4HttMm&c)loa%1C)XoPjO3Eqf5Gp4Y7P~{}HFC>b6u3l}=P6G4z$0g5n zp?_Y49D`CdIV|_*^i9hH!wA&T;^Zu(_dEm(nMOW`h}n|mT1l;B%T^;YB)RoLt1)~O zgNi^3#w3>vKgN`In}TLEvL{x@jts>#vxuUul?=q=u)~qAA1^J5h-k*s&0=nQe6g2K zMIVbC_mcH$^8J!f&avv9S(H_jbvm%*nVzlrIRQB_f@c z$e{=q;2G&Sk7$96iho7rB!*7A?tu}~W;eK<=a7?fnK?6h)X|-sYx;tTYytx-G|)~G z*io~ZUPj-0*A&S~JJ=~=v5XABFbcrGMrwDtTYpe_>Ur$w-@&Ke5hR8UFL@&%R{#7$blni5()nM}94L8ucz<+D`bV<8frQFGV%lr!SA!tcBX z5VcLTR<7g8=y(3S-r8kg)x@*(%t4(s3tz*e`wJ{$N4JmCVwB|$e2+{i=2M38r!ZuV zp-%3ZvAW*y$8YQA+deU3x{W?tP?ALIG|4(TPl&s?VbxQf%(7njOGwAf9sz2rO>JT} zy2RmG=fd-pM_#Mf8Bib8D!Wq!`o}z(2cP}U0bM=c&yOBS*g!ZdBC{R6Z3Hh&b_d&h zqOqHXB6(lau~O1K^+^38N8xQv->8-Cx0c}XtE8qq)udQk9bj*8o~B)Dx7;kX-%Nbs zi$P_~>+0o_u$Dy5rB{~SCJ6U9S$*9;dh_BDC8Kbci$1sRg1VI%a)j^_X%iG3tnyqz z@yYCz)l-x9shg!dG>JU}&WJ^&xmTB{Hkm?$neEEzYDzQH4gr>kiO5GvKDmcxsn@E> z0Z1AiFZ5+;XPALPkHwM092M)r{D6>YZDFw|`wxZAP5)tg9(V)UW%%10r%&EA9UAI&(Z+blveFO_mDS3cs|!36l%U#Aweg6Fa~Iu>MH)ktBo{EbR-OX#~^hUkCL zSv%=Htw`7=5uWYmTnfq*H+I&ylXwXE1UMR}r}_3hB(FSlBmF`q?Q#{SSnbDh;`u@b zC+H-T&A}qE>CoN3ORM`cZq2B>o{Vl#VaUW>yxh9kRoB+HHDs52zRF; zTz?xu+T0dyS(Wf|y7=Y=Y;D+NV(rWlyp{&7PPPzQikDOUiXqYWOd$Yn_07#mR1P4( zbBq%gfy#co0aRp?XwBn@cI`+11O${^f79%G0)&804!fMWz6;NbJNLA|z5fN`ZI7{t zU^D6<(Ne>{Mm*+GPg1o4a2R$Dbb7vP;cOqvq_$x2oLS~9uP2`%Q9aqb!A!?8jQP$! zcf*nY`v8oe5`Rb-k(tZ&1^eKssl~%i8%;F8r6_pzIyv<)FUNyaW!dVik8QAC8EA=g z|4|bpq#VqpR@7g9D;Sx=VCFuBA3rI5bS7ba^~+*eCnn~N$4(7%9oH}I1LgImN;v%E z!<<&z?+JzI zb#qEf9;-8ucKP#QeXZ&S?h?Fl_P}=2a#3iMH+O|rK*M;%*ZGowJePxVlJDf)y2P7A zw9~zbN!4TB;(H-jZ#w%KOe>=QOp&t1RnEGv>(>0B07Kb-tQ)5CI*u@)tG%Y0l5a8qU?x9-)yobumlxIz^sa z!rU4Y9TEqO9Y)^3wC91_Po)5(1sccYTbg<{)$!ro9$vLmlq2FRhk*JD@wrD}mP#8- znd|e=OquRCS$9N~>%J-TU2Y2|5B!6i{u`Q#i}dI~r-lSQZ6K88QCc0B+XjgG*q!zF ztI5_0D&jT1ubYanu;@WJkX(qVt|?}NlR0+<7KT#Kx}?)a`MlvJd0Kld%%GqJtI1+} z0T4$`SX>9vuZ!WD0FwMJIEAg?85L};fqnXVs5S@+AaUWQ0b zp?w-%dr)#}qf>c;KYmqsO5e3*9w<{iC-x=w1PV~;;$#SER$-#hYCU6JqGDVh7nnJF z-g%rLR?Oj0Ff&0d9jsi@JV+%~?XT`>tfpDP>S>0vQKy2rMt(RW1u_GwbNMJ5GJQj* zO?3)0U7kw%qa~RZWeUdp9GZ!X3~8}+td=^5ZhtG(l|cQje!(GF%^<%4JhCZJ<~Yft zJ8U*m?{u_5eeJ)k1lL3UqK}8AZeAfR5$XxT_*AtO-;pKHriEM=H^D)U(3)j+&mGUl zqHvsx!3MzPO{>>6GO`Qg#x)~+aj^G5ZQ|q#^qS4Npd3^`U9O+qmc(OQl2MQp)bf48 zI>Z~np6`754a+mBA#!l&40uF@c)>Q|`Wq92$wza)Wxu*>YYmB(Wtc1zP?2m$d2jan35A%zxrfbTcWgJTN+iNZ@!7`-`_Q20<%Jp>zO+PeLe#m zQ5cKBNk;Y!$5Fal^S!YkJQw$HRxvbwA$l7f0CdrvosL&j(Ti??ig`U8&*wlIhr`_1 z7LONT$5UX;3@0X)*=J-k6xFYy6~ur!zdh~+M_@AGvE({HnlEjV5}_FU`Z{4wXz1od z0IvcczAo%qA{`)hqaq7{DpFLy$ITAiBePbAkm4$2R-_!h+-B-HG zodU{PN&M5W5`Ya4HlLrLgvnQXE$vd#T@rU&Vg#*G?6`Ol}r`xH;8Xkj0 zR;kne=9{@Bl|Z^zwGU5iYzJ|P1QA2xC1b~fAzK^aDBM?Uw(yt-fvlJCorF$U@so~L0(I{GhSN*QC?cVNF1OH$j> zjVt|ZmL?lq=%8{JoIH9HTzwP|V_>?$?Flh0HwN~ikjtO_DLEywGBNpXX8ebR#p5Ab zHPJ%UM+suF8S+hmQ= zI)iX^aOu%YSW3%~5x}Jw;1y7};9tl40^BQy!YziN-4Y2v1=A?f1Kd$yd=VIGQ{f?G zyeyfm9uqy8rMe^?K};drys8ibP)zkRuhYv!)tUGjrAavGu%4+QWPDPvw)wIP%B@Q zu_3#y^W<(4Mfe&s^*ljX1^8KA5!7%Ng^-#t!*K7kDewY&WA2%zdux}$jCoy^xADcA z*bufQv;^%G>g9Kq%8Esy*Y<>cyBYbqk!S<&H`{8J>$?~_TZQVYwmghyI%`AE31J50 z>%%NpoCH9?9pF(JcZ7=c(uA^blu8V~!8hyDh!H9!Gt1){|4L^ifl4gSF_3nV=H2^i zHw>%zFaXKfS6V$I#@#wf%~8Agk>Hb(x98d56OE&NlEa@Se|CA)JALbtE%i{R&*onE zDye<=B|VGcxrK{`GEk7jh?YlrS`Kp&(c8j+ysY`Px$@bnd-3}N1`~} zYG}y0;l_b+saaL><~T-0zQ0K%0B1u5rmtEgh038Fbp>fMEtj9*LLCDxb_aFFE#Ae( z2OfkvSeTsUlCf8KhDpoQKf&iB0~Lu+JGLV$%jdDdZD?A{WFy|Tf(HGd6`q)%*=lWs z0vS}-vEpeZOaeF^N-0A*;a@R9s=yJ>QZDv;m8=UagB%TX+SDoEIa7ZTx|U8?Dd{&w zHoTZ_-d7lw_mO=G*r&Hu(cP(Lsr;UljF{GE?)Y0UkpC?bIk4V;7+R=nBy_e#`~q*~|op{c(8nQ(B~N3tY*9oRKG!Z?Q` zvm0aMl22*y_2K5AVt{k$7Y(pR%H%mnRA5FJ#B9Mo#x6!M!MthK@8+q~)2x$CB{qJ^KgNCLHhb~g6v*~m5|f|(!N{$#!qaphkYw)%4Qf9` zFbY4ip1Q3XWc7@+L|nT#IK9FYmH9#G(NVp#5a3OIzKEkmnKDv@iXIyBuRAJ6XZ)Pd_q3>(9rWWIP)Pu-ugN7g7~fh44qF17I1}) z5?19D8b0MR%o1~s+9bEXI2HUBeJ`A1dNGYzk~tEv6m@inTJfx}DG7WeXd+5Bke-yV zZR0lmmHQj>`CO$%6gmKu$C>7vG?9VDI#ek!yktSgx zDO%>OMJY^=J{eQXxSEGshe5-De#Jdrc%S1bXdh&r$s#~24Ra-X5BI5%?0WlYh9($Th$)s6=`^7FV?0`%`*@%4@ z3yw(oN6mF(sV;_a3nhE~>d>wUCvpNDFB#u*mLDdJE+6l5fZ}TiX7THmS4D`@&TbqjiJUW5UBy88D?KI|W@|$veA} z6lcvoO$oPbRxNRSY|QX66!6RW0v#oq*KTjsITZT97zd==F0uxfa=N%99*!=I5G80B-CaQzjh$W?NZ}HK zri;P(#J>jra-37{!%R3qHF6C3?U-C=btB25XyuS+aBjXT3~2b1Wzk3AFRDthIE80mVAjB|J6}2wk_lSxg4wYKpq|v zg%N?JkiV*`-m~R%VtW%Jer$}E-XI?7>h074wzw3^*tS0X72uPDYMO$2P!VI}T6cEW z*wGcuLMlcTp2%m%&m^nse&A)vSn=jOSTOVBfGc90X~&7yarbJ-k-*S^QUppd<+EqD#l{XuHY^7ax!apyfLqk8T%tb zZY#Badfv8zhVGjp6|YD8g7;1YeIHUE=Jdz`iacWCA_~QIC;0Y0SDCJRmrY<3ExCtD(2lupGCUd`6rj9=M2x*fy z9?0xaTG|Gke^fQV(?1G60tJd^l?_I7s5&@zWf{fC!`TdbqVUd4C zi>yfr5|tyM8lWSGyv?&pE>|c(iVuoIJQFscZm7#F?uRo*)53W4121Wy`jr2h2H7jZ(0|Ex?%U^sh&we7G zY6hK5jS#mI<5)lqBqi+>4oqMUpvM0<00I=G!uqsJOhuG=K{_n4hBJFvf) zj96ALnUiBZ)7aYL>mpgWGi&UB6QW`MA#;H9qtcf2Ck^6$w5m$`G{G0&u*7eMl`(*y zr>fo)c&a*G{QMM$pMkFLzl1*wjYroeb%Wi(m=)3Z>-h7{_iqDpoO%X$sOZ>KMe3#| z-%YKFvr83lSm)dxqS`zt)|$!%u|yR$aXSQBdbd_z#x7J`VDre>*lqez?;(Tr$iQ1|&DgORB1BIa)8!J;F?E6lpp&})hSRNHfq%Pz==nt-{+eV;om4dzR2bRi`gVnow*d+_$l7 zr{0sP%62X6ycl*pM^?!Xd4wfRHF@PSa`9&P2E( z?OaB7eSgS566@Mb@KhTBfl+XUE8V<9?F&$=32g_bW)1s3FnHLM>Me@G!?+vMzkb{v zsuPp7p+&I&A4PU;zVJbdD+oVf-i)4YIpSQkyxAM( z<#`PUYaCKWJoL%r)=l|eT#gmN`wlLNh)S|0H65p#7nvR^=msl(L$ zfv0v8gksc5t&RG@; z(w(AI|7B*OTR=m&ICR58I&77Klh#;_{=Ja74rn4>j8?kHRSD^VP~FI?X#^1PE{eU zhCKVfNWQWm6aw-Oe$=h@#Oom(=udc$vyU-xWZb>6Uv#gx4iEHM->j${J?1YX`vDKE zQ-3eTn#PoXk06E}KS(-Y2n=2OzA&@HCk}+G0890j48F)ku!LFR53tP1C{+VTBcVuP z&cKsL7yez5wHGIoFkaye@{%KuDDYyoKIA5(*YIUZha2Ic&y-8ym@6V5UvJ=NxEZYB zn|AeO7E9}*ijz*p_Ca(rGSuZd2GT`$AgxzqDs*dqEQ@yT;@Ns-4#V8VXN zoSxR18US!lf8UH@*CFCeP}>iB>ARZERCz5Exko(0Bban|`P9-vEK*!c5Go&w%Y-1< z$$v=9-ZCX@q3fA(`s1S8s_qXgs`(5(c=VW>9`>6m|!uO;D?*=G-XQuA|a zhpAM>k5tVh$KPLb|H{DENj?@VZ&j%oT!t(?gktjELs40~Dji&(W>+8NNSB1Zt<{X> zyK-qDJEHhsh7B`M{n%u;;D5~%?8m=Ave5Q3KKM+zy(%EF#g#xy!(Y9Kb>R|TKsqks zMsLvuP{H^Gn^{M87Zd;O5Jfqoq_qBdYpCp1`=JRkb)}Heqa2@V$(IOG z{u68H6E=!8t;Z~}PCu2euj7fCFEAu+jF7s#N3jdomj@R^a6D(EO0jIq-r~LjQP1ps z#=)R|_~LR^gyr4x6i^9}xC9nd?irTK@$R-nJG$&@M)UDKm(V7zt%zN8v~j$l1l1x~ z3f&r&+=Lfg;3g=dagzR-HMGIk11=-4jkM6?UnBj&4q=1vS-wU6KpzRf_GDtn)$ zo^R+^?X6`yOnGi)^Qj&)Qp-$F?_8yXL&Xh`p3z!H`Rw)7+!M?xMMx;TdTDfFUVORf z*ctb7-|x1^#oAuWPM7VO188irv$%2l#J^JfMok+%&^0%nyTUEp9hoAK(C?2|`b85( zaY(;Jlef8wv1svB_jReOf0y(VX)o$plo2VUr*MNHEK~qWD`k3{FNSaIxuHbV&wEEQ zH-zK*M>BJh*L}$%I#wCt{KC8nC-+7B z1&KGr_mGL~`sccHyc@xsCv`t@_Gpt|4Msm&zgDFxCSgI=pVi-vcD1;Lv^X`8s}5 zp`dMAu*QTXFXxgj5NKTEcYdIPpl}m5v@ihvHU@=KQmvW8YU(yx2cV=#&MWh2M(vbO zEsa@#jt@oHLM@BguwL<|bulsat%xWd5=-nRMzrz4pVEHfAsOurxsUP;;a~q6y_X#A zytU2EDT*Ec$=5UW2!nAz**0CeB4Ww z<-R8J`dhKKaAwX1{lNEQ<@;o|Q}8JGdgdl4X*hWE3)eoQ2@0$om?}jpc~h92QmDQm zPi_z&eCR7bvPJlX$JN46DGdM(a>kfPnUvm=%t5<@XE5WMAEPpC5F+l zE@y96oi$$9#qIsJG~r*v8H$9ObUtzCiF92s144p8azD%&?)+3&P+2W`aG_O#0MhWj za9bYx-pc3Un;DQw;Kht3Rnzf~ISlN$(@X~Q1s3Ez9QKA@F>x?66IzT3bMB<0$fqQK z+-vPW@VO@ka1D^GCTjV`V+e>}sMIgK?K1Q#aUkE7?>u{JZ4DB^P^@tx1dib(52!8R z1aB~l^!R?F8y?x%q=sjP+?8Zs)noXT-)ax$X1+8Ey6Hm7N~n>u;b&@rKFCZn-69ek zq*w@i=mZ;%da^~$Aeao|nFcW(=FV^$48@(i;g!A>vF&XC+~0z^)Na}(NZ6K{LI0DY z$v64s1T_mzWm11M!kc_J{933HT{P>)iLQbq8|&PSY9{n}(m5u|sOgLy^SG zJ>SzfFV0w~iotCyK@Foqq9CI^YA(;^klJyUy2q2wJS@5($@EBTJcZjF@+W*Zk41*} zOeRenL6)BH;Sf)e3n8oG2nH!ZLDa5_F*s!E2S#d9bWI+(523!dxRQJvq~go z+ z&ATg}+tM2;Y+q=;Rn=0&HZN|iV1&UvqpaWM7x3!fVM1oxvz52xV=2I7L_!SxJwM{QUFZJjI zT!4;ZyEDq!opHQ`Hyb1Ud+;<7WlhkZZcZudM2O%1H#0&R8jt>>0~o-t6-QskV2@u` z*SHa&on69PJjA1LI(iH9(031e%c?=@*}zt~h$JUza-n1}Q!I_Yto;$w5&@|}xq0DD zc-H3c5~P%HrpM)f^mEGaU;RvkTke~Dy+w)k>(UB-t`uv>}0a#}ULI?Ys%e-~=z2 zX`AQd>~r3{Fs^X3bhm$lR7o=Wp635$kOl$h?V+_s)-r(isqLF$tHjFsS%Hf^xdY3c z=Zn}fNoE~n7+r*^$hjc$sxfI$wkLWHRg$ z2FiKNdL_ImV8?{gQUTQ8unD$69f>1@_mz~dH|d5~1j8Zu)(6V38sO>ol*$tlI`mlA z$5bLWd06(7fa1cb4S^*pCE)ZWW> zQb9A!6mIJp{5pRQ5xVbu_R7~^~ z@Od7k2+Xb#lD;Tu>@84nq^G47P&*o;Ub%6!EI$^Jmb=E9`7Zi3^5HA`3*h<}ddOi> z3pAANsC>Ep zqFY()G&_P~L~oK>^weEq+8eSI%nZ0PZGbf!1?t|1LFAqD4lNMh?<^A`wPmoDnIyXw z=uwtBQNnEG;h&A>Pd!7|oVPpj9<+@YFW(9@U955$Xzz8JbL4ew=QZ9tAA?Wnv1i2@ zT6&jQecY`}eI*T(lCsAmfumvv6nPp&#+APqc^0d*QD6o{zAo<(+jbl7!J@;jyY*jo z`)a+;Pq<$mP$&=xKW~%8ICvfg-NJow(pd}OvWwip<0)9r5yX(KYf{n|e5#tb9w+0H z!PnWP70JL;feom9clcojKcgXOf!Cq3;N9DrNOK;RTZYK@YC5p`dp`4=%)5o`Hq5U8 zWVh=nnG`O|-ygk0?$*fWfFFO5v^^t`TtZbo(62xQEwb-9Jc`VDl#_{3()CFHmdKw> z;v*p)^JE0zGa`w`F&KA;zMY-UjkPIMCQ*TOT${F-nNx2xeiBY7-Ro$Rv4@1R!Lz4w& z&V2(OI41+JciiFhEG)QQZIZTO^{QjoO^-7~&e&Hn`oc2S!m=uTHc1N^u*vb60XDNn zd@@4*8`vagt!K<_qE|Y>%07cnM}?JNPb;|#38Jh=+e}C+YR{B~>=#qZsB5|n#FdUs zen?7I^Q{cV$PY9#gdB_W4GzO)!sE2{E}UvXH){|lahkQ<%*wTQ_xU{~CsRhQohlr& z&}(m%t>8K}yyuOIInwi*Q)(Jz5=e_M9xw%VGu8#ZOFTNH)*8c+&7txfU(4>wMKBtM z(ACxPsoe`Cclp3#KZf_C(GdA2d0Dpd1o`OnF$noYBe8k5VCzz_`?lRH=rD|W$JJc`?Ggv+k5tm;J~f>%F9B$$L#E}Tzn7D=D{UR>>(ttQAdQr9dJL~%ETWg* zPH+mtLgwndDeLVnu}WnUP9>VMHjDFB%rS(nyB>fvK4R0_1y}QFYN&&S!^5b2Yi6J@ zPdX3f`bd=sR{lgJipPmUk$HJF`2^yY^X=pb1X?H!D;IgDnjj%Ai_}FQ__d>)R!AB$ z3+K8S_m?YB!acWJ;fs@tb&tB9pNKnzo(wmX^yus+|D+qGOT@@rPkK*!K@-Ex_?Wm?CcYvFz)wzLAy1%Upji>wP z*(9*XzfA4C*%Ksuw*3PVBh$`K6K{uLn+HA$M!V|-0!paQoaTQ=HGdQfdjy>rn_P$E zsmYR}n4}9RPN`$fY&gi9+2IqkF32=4%j-1+IiIYvEmZp(cv)!2z)k@mU%QT_IyuXy zbEtwG+RtHC!F9g1Nf`B&DapFC;$(RbhI_iz!nxlMqp|AB>h(~DR!?qnM-|9i zQ8b<=)~>k~EUgD?2R^^1$^Hq2G8amQO-m#6PlV3$LtyZ^PCx6=Rux1T0b!HFZkh8e zwKIWJUFLeZxewWv3?3h&>JO|T)`@|iT70`fM6j>fkz*`Zla7h%%PU(iC4RfFEac6i z(!6gR$#!t4M3TQm(^DL}204bS5_dR45WOtC`69Z-o#?XihRek%Xz3QGaY;LSh<5WUrt%@_xiIi6Hw}N-3MO%Ruk8zNo>R7QyOyQtg z<}a3bgPev1VX>BK

3={s;#C=(D^f1C)DH^a@6#2fEjfg@#^ry%LH4$mi#b))lwF z7L1x-}&)N>}SkEVR<1T}JdlDaR=U?jo9T2(Z-au9TiQti7KWBwjdTgM|7 zxr3Sfbr<#gM(0;j@)W%=|DVySmy0%BjTITYR0sN?rlp|z72>JROu?d~yaV6Um%h~Iojt_rZ(}=omE23IN@6D@4k7%raA*ssR`wxvyqZ`Ou~pKLt30;mgWxLyqK& zSeqD`;=!GK{7G{70YYUdgB^d+Pwq{?;F~uX9deRlpRsq`8hq_6OQF7J%<{=9@jm$Yop@50WOz-qm*<9S3g zLL3bLDo|SF6CB9`(huGKveZ9=ZIyFthO_q%Ptp$0{vC=Huo#m)=JSlcYzyY~_b<7Q zGX9Of+ToVD#F5i6Pom#6)$JvZQ&&ejh>bAQfDKN5Z<>Q5hR!?zZ`SE%>%B;ahQ8?c~?A;;6o@obs+fD|_X9WLD){lj8P% zQw)@UA+j3j zEcS8_MFAdi{UWDNTUEnnJsvtYP2Z0P73VMspIxEVPMUnBt)Qdl*jO|kwhjO0S$2#Z zj%0HXpO~}Qp|{#_i)3y!siG0%$5#7hHS)9pZ_apO9>`^&0=Wzl4oI&ns@Z+fV1>>? z3Gx5R2KM;=A;x~W6d@E}++OqPAGNTctb{lF(1_>uIYY$ub4oMeMakc!e%Fi=#Qc>@ z90%i)zO;zv%Q(atRph$)qXi%>a8DXU+?huQ1h8-x50SrC`m3Nbmv3edrtloR7(!^f zfL@?83#bA$scz8k*R7}I)``4vwitGVNBx;aOA-RW_?7$Fcxpi(VRY#%9&&*1?qfF5 z%ks=v%-p1-BVKzlR4$MIjveA(qMP?oP<2+~mzb~NW!xioV!yZQXVi*#<;v_9Bz$`A zKtsodVmaHH?AtxAPN|;ndfB@mg^=g~WEFECFGI0G4t87SDJUi6Jkl8_nys_O=SVJ% z*eHi?Ci@b)k18=G7wezMDq~Z(Tc_$tOkN29FWMpoFBLoYWetLJ^J~l4`kErv9T&>x z^yDiJe}!Bfp#Bqb#T02OB;@J*H_vL&SvtJ%-+5LS{wxTSjJ-SY)aq!4|KQI(c0utX z5sNF}{9BOp7D^P-rdk&4aJQ2hJ3hamUb=lmxImDP?e~mJRrVx=^E_!UUNq0h?IcRs zs;?3;Cq!hwdzF4vnDHgeb@&l{AHnF?18GTE$g0sN=6&5Ctr%2v$hx#ebl>|Z%708l zg`VyuWATr^n4BfG-CU$iS%Hjo4(OvZrdsWER6%J>F1Qxt$Wsw4g});;6pKa0oD(H1 zWj}P}00Sc*IK=utzGl1nLkVpV&aoR(>ua0j-8EAfsghhNU|wz?I;xGw_a3zU8^Bz| z<`01;9N*XJWRaIO`NAUPw-!qkAE{FL(pbmzvLVHz2F&C@NKo>QPk&l^MNu42fa>St z*NcRd)akgpSVx2ALp~bk zUh|9UA3yA5FaJe~JAx!vJ*)W?Mg3~Jac%INanU5IRUKgbN~Yq@Ha8q_gqlhvETR_i z7P_{l`SCf;Xp#s|XjA*|Gg>!18X=Zcri7)kHf1snrEv(<_GfdmU#9$mk>#>^ga7~J zPwQ6%G|gi0E@b-@_X^OCCl*s|hpBZFe~=*0eJQi0x*RcT2b7*f!BO+#_09#9WbO7h z5eU$c_+mWST$31&wNO!%FOblBHgif;OC#3V!QpUzVxKuT|@VzNp7!`fVxbx&`wCZjUrZ)|kq52Ba=cpODvl z<%FcePIA8XZ6&>|==cx)2rC3fals1}Kb@>0l{>2P$l8pl4Nd4s`cGP?e;e;v6_iYj zeGvFiD}rS-dfhR&hl&9k*<5Wa{dJPhDbUjNR%Mu>L2WVCJo=Y4v&!@DQ!!~&% zxP4T7z&&x}&k)PJp4Pr_jUP#3Fm%O+tb#s0QxKGphhW3u!d==piqz9+1LKh|K9XQg zo749ifCO18oTvH8K>`iKXf)}eyf#Xhwx9I3>=YolpiBm>zXs%Vx#A|U^n_ApV>~vz zKcssOTL2ciJA-J5NMDNR*Eth=FYB;Kd&S=M|IVtGT8}-LcFL#!|0jdtiGS~G-7*W;6_ujN1jXsdAMJptvX6mg46b&}ENzQZ_U2Hzo zk|B`|5wg=6)#%oI1%v&3-_&Hwn^bEvrYy{koRDQt6wnm$W~oe*>n0r(~tgljl}sx6Xk;=lRB>rcfts`$^z#O0ai zaT;B?$4WHo^h@4z=!4kv%M=w$X4QWMG6&wG!gnS&GNku@mO9`VYAj1)iS;AvIkPUf zx(wRk)z#$PMZrGqbC&Y|EBC3=v5+=VqU&ry4|T)trtPnVT>rz?nq^htpxeoHsK2On zLjDc0R5S?a0_n-z1b3RM*+m(F6V>&zuMD63>UNT*Z0}S1J6wM5xREfwxVpVPTjkxw zv&wO(hQb!FlKQ6qJUS zrzCc+Lqur%36X%;lRCOm?sJEJn2mtQV4q)0W$PH04gv}K<@qC~?vkVlcZZ-dbh8t{WHi#~Z-Jya*9sk)eX!8dl z3aQd|7vw(Tl^i2%?2r|d5`u&bkNuRiJhkR(Tqu8I{ZlS0t@+G&HVcv61Rhrat?Cth z#9Ui_@FCL?8|*u}kRH5{6+gu&%oLhf^~oW}8Kl#Pj|1ufSxHSG>c2rz}H} zh2ahmxWgUD7kne5C_DAh*XBo)tu>qMt|2Rr9t`Okh_#fCf1t{}4bSq3Ah2BJQ^fU( z)Scp3H|To0+X=}*qcGADbdSZIK$tz{>wo#}s;*Ln)O<`FGG?Qt1DDqvn+pdSdEZoa zBz+^GvDW9Khx7YEwaJPk#Fl_gLxZ>4D2*%n|A}@Q=Vk_?I34E;j5MO;p{-oQm4eI? z@p+rSJhH3(!=6l>*BN=&qXT#QJD)y(`<}0MPW zU2Wnh0Fx(njcmmWiCN;lClK)TTUz&o5}M{fOoWzRq6aL0xZNdd35EzXH8ugZm$oK- z`CIGXq>FOk8xpTZC)q^Ibn0Mykt2PXQl5kC`Hp8)7pMET6e@M2{xkYw55w~NnwoRF zGXpzewMMN1>jR$1C=nm*5&=b+8>2MGM@#nF=(!`R#{uA7Xg6|h9b9ycU_`7-bqlITSA&k3F$Xlo*3$Tzx|y8xmg~s=e+tK57X~zhtC=5O<$#Rq+l+CI zR+BZ((&D{2oLA<(=sf1;k7>@GoAXSS26penW2_vDPj08!JT%vKCX4)plb$ByAPp{2 z?2i|eg+&wp?tp*o>)}iUzW0U>kwya^_4~?%S~)7KHwe~`YHUjp6*j0Yg#HhX9+zI9 z0gZLST>LxGF-1xUz21^hM18eF|3(nf2-22AVk-#^u1qTA8LEXSIhQ#V+mb=c&~)TN zClQer$G>z(`Z>aE(@>Z%?AnwZv=O$qFw>2>MucZhb|xV=wd|3)1%?x09>Np4 z+Lw>91pk+SH=TV}+?o+VyQFI@QfK-rsJRL;pfGskEoxH#4RZZcSB05RHVoUpFJEi? zWJtXe)N4(~R!qPD8>S5Kl+y6@D6-sP`4iQw1kiHx@FFXQaROmRG;V_&zo= z`S5F=*Hc)|RQ>rJ{wqKZ#qICiFe1)SBsTRr(lkgXmyIby_1J&^`oYThAG@|5ec0nk zv3x4^WDePYqGrsSJ$o{aPTu@`zgSN|PBG^h9iz?j25(73YuG{0H;`Q+?E7c0KZfDE zzMUp#3|zAny2M+glm45;^*;1ANyMV56I_P_+x`xwnjo>AV&qGFZQCpLeZ959ru^ss zQyZ+1%Z8Src)XsByv9cv{Iirnp=6{0?7{gf%&A7P7po9?%p1s$oRp$ug}7e8{{d|i B9(w=) literal 53976 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%0Dl4i2&&*o+Ff=tz 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�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 Q=nx&9k)F9O7VH-NAM+zMU;qFB From a815d46c7ff728ae83c57fec68d2457c787b91c9 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 13:15:42 -0500 Subject: [PATCH 38/44] ? --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8ad2bd742..a7398caf7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,6 +42,7 @@ build-image: alias: docker rules: - changes: + - .gitlab-ci.yml - docker/Dockerfile - environment.yml script: From 8aa0b9bddb22afcd92ae4c6c497456d408e50a7d Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Mon, 27 Apr 2026 14:08:53 -0500 Subject: [PATCH 39/44] test python --- tutorials/quick_intro_deck.qmd | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/tutorials/quick_intro_deck.qmd b/tutorials/quick_intro_deck.qmd index 3d123fe43..4f3fef16b 100644 --- a/tutorials/quick_intro_deck.qmd +++ b/tutorials/quick_intro_deck.qmd @@ -577,10 +577,14 @@ Use your "tab" key! ![](images/autocomplete_samples.png) -## Workflow 2: Discrete data for known site +## Workflow 2: Discrete data for known site {.smaller} Let's get orthophosphate ("00660") data from the Shenandoah River at Front Royal, VA ("USGS-01631000"). +::: {.panel-tabset} + +### R + ```{r} #| message: true site <- "USGS-01631000" @@ -595,6 +599,24 @@ qw_data <- read_waterdata_samples( ncol(qw_data) ``` +### Python +```{python} +#| message: true +site = "USGS-01631000" +pcode = "00660" + +qw_data = waterdata.get_samples( + monitoringLocationIdentifier=site, + usgsPCode=pcode, + service="results", + profile="basicphyschem", +) + +qw_data[0].shape[1] +``` + +::: + That's a LOT of columns returned. We won't look at them here, but you can use `View` in RStudio to explore on your own. ::: footer From 57d6d0920f8f763b21578f161a62e5cef82bd1bc Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Tue, 28 Apr 2026 08:50:16 -0500 Subject: [PATCH 40/44] Take out some old vignettes --- .github/workflows/pkgdown.yaml | 8 +- .gitlab-ci.yml | 12 +- _pkgdown.yml | 4 - docker/Dockerfile | 43 ++--- tutorials/quick_intro_deck.qmd | 9 +- vignettes/movingAverages.Rmd | 278 --------------------------------- vignettes/samples_data.Rmd | 5 +- vignettes/statsServiceMap.Rmd | 197 ----------------------- 8 files changed, 40 insertions(+), 516 deletions(-) delete mode 100644 vignettes/movingAverages.Rmd delete mode 100644 vignettes/statsServiceMap.Rmd diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 4491fc348..b5a0a8012 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -46,11 +46,9 @@ jobs: any::pkgdown any::rcmdcheck any::DT - any::data.table any::dplyr any::tidyr any::ggplot2 - any::zoo any::sf any::patchwork any::maps @@ -59,6 +57,12 @@ jobs: any::gridExtra local::. needs: website + - name: Setup Micromamba + uses: mamba-org/setup-micromamba@v1 + with: + environment-file: environment.yml + cache-environment: false + cache-downloads: false - name: Create public directory run: | mkdir public diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a7398caf7..fcfcfbe0b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -57,8 +57,15 @@ buildcheck: dependencies: - build-image script: - - Rscript -e 'devtools::install(quick = TRUE, upgrade = TRUE)' - - Rscript -e 'devtools::check(document = FALSE, args = "--no-tests", check_dir = Sys.getenv("BUILD_LOGS_DIR"), vignettes = FALSE)' + - | + Rscript -e " + rcmdcheck::rcmdcheck( + args = c('--no-manual', '--no-tests'), + build_args = c('--no-manual', '--no-resave-data'), + check_dir = '.', + error_on = 'warning' + ) + " unittests: stage: test @@ -99,7 +106,6 @@ pages: - build-image - buildcheck script: - - Rscript -e 'devtools::install(quick = TRUE, upgrade = FALSE)' - Rscript -e 'pkgdown::build_site(override = list(destination = "public"))' - Rscript -e 'file.copy(from = "./public/articles/logo.png", to = "./public/reference/logo.png")' - quarto render diff --git a/_pkgdown.yml b/_pkgdown.yml index b406fcf1b..df8a331bf 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -60,12 +60,8 @@ navbar: href: articles/wqp_large_pull_script.html - text: Large Request Pipeline Approach href: articles/wqp_large_pull_targets.html - - text: Stat Service - href: articles/statsServiceMap.html - text: NLDI Interface href: articles/nldi.html - - text: Moving Averages - href: articles/movingAverages.html - text: How to Contribute href: articles/Contributing.html right: diff --git a/docker/Dockerfile b/docker/Dockerfile index 619769667..697cfa5d0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,10 +1,20 @@ FROM code.chs.usgs.gov:5001/ctek/docker/r-lang/r-base:4.5 +# Change the name of this environment to something which pleases you, if you +# so please. But the name will not be relevant for most cases, as reticulate +# will be pointed to the environment no matter what it is named. +ARG CONDA_ENVIRONMENT_NAME=dataretrieval + +ENV CONDA_DIR="/root/conda" +ENV PATH=$CONDA_DIR/bin:$PATH +COPY environment.yml / + # Necessary R libraries RUN apt-get update -qq && apt-get -y --no-install-recommends install \ - r-cran-oce \ - r-cran-devtools \ - r-cran-here \ + wget \ + r-cran-rcmdcheck \ + r-cran-testthat \ + r-cran-pkgdown \ r-cran-rmarkdown \ r-cran-knitr \ r-cran-dt \ @@ -15,37 +25,18 @@ RUN apt-get update -qq && apt-get -y --no-install-recommends install \ r-cran-readr \ r-cran-xml2 \ r-cran-httr2 \ - r-cran-rsconnect \ - r-cran-connectapi \ r-cran-covr \ r-cran-sf \ - r-cran-zoo \ r-cran-patchwork \ - r-cran-maps \ r-cran-leaflet \ r-cran-readxl \ r-cran-whisker \ r-cran-ggplot2 \ r-cran-reticulate \ + wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \ + bash Miniforge3.sh -b -p "${HOME}/conda" && \ + rm Miniforge3.sh \ + conda env create -n ${CONDA_ENVIRONMENT_NAME} -f /environment.yml && conda clean -a -y \ && rm -rf /var/lib/apt/lists/* -# Install system dependencies for R and Python packages -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - wget \ - && rm -rf /var/lib/apt/lists/* - -# Change the name of this environment to something which pleases you, if you -# so please. But the name will not be relevant for most cases, as reticulate -# will be pointed to the environment no matter what it is named. -ARG CONDA_ENVIRONMENT_NAME=dataretrieval - -RUN wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \ - bash Miniforge3.sh -b -p "${HOME}/conda" && \ - rm Miniforge3.sh -ENV CONDA_DIR="/root/conda" -ENV PATH=$CONDA_DIR/bin:$PATH -COPY environment.yml / -RUN conda env create -n ${CONDA_ENVIRONMENT_NAME} -f /environment.yml && conda clean -a -y - ENV RETICULATE_PYTHON=/root/conda/envs/${CONDA_ENVIRONMENT_NAME}/bin/python diff --git a/tutorials/quick_intro_deck.qmd b/tutorials/quick_intro_deck.qmd index 4f3fef16b..b332a4427 100644 --- a/tutorials/quick_intro_deck.qmd +++ b/tutorials/quick_intro_deck.qmd @@ -22,6 +22,8 @@ execute: echo: true warning: false message: false +params: + run_python: true --- ```{r} @@ -34,6 +36,8 @@ library(reticulate) py_require("dataretrieval") options(dplyr.summarise.inform = FALSE) +evaluate_python <- params$run_python + dt_me <- function( x, page_length = 8, @@ -153,6 +157,7 @@ pip install dataretrieval Then each time you open Python, you'll need to load the library: ```{python} +#| eval: !expr evaluate_python from dataretrieval import waterdata ``` @@ -430,7 +435,7 @@ nrow(df) ### Python ```{python} - +#| eval: !expr evaluate_python from dataretrieval import waterdata site = "USGS-09405500" @@ -601,7 +606,7 @@ ncol(qw_data) ### Python ```{python} -#| message: true +#| eval: !expr evaluate_python site = "USGS-01631000" pcode = "00660" diff --git a/vignettes/movingAverages.Rmd b/vignettes/movingAverages.Rmd deleted file mode 100644 index 96b024b4e..000000000 --- a/vignettes/movingAverages.Rmd +++ /dev/null @@ -1,278 +0,0 @@ ---- -title: "Calculating Moving Averages and Historical Flow Quantiles" -author: "Laura DeCicco" -date: "2016-10-25" -output: - rmarkdown::html_vignette: - toc: true - fig_caption: yes - fig_height: 7 - fig_width: 7 -vignette: > - %\VignetteIndexEntry{Calculating Moving Averages and Historical Flow Quantiles} - \usepackage[utf8]{inputenc} - %\VignetteEngine{knitr::rmarkdown} -editor_options: - chunk_output_type: console ---- - -**WARNING** - -This post is very old! A better way to do all these plots and calculations can be found here: - -**WARNING** - -This post will show simple way to calculate moving averages, calculate historical-flow quantiles, and plot that information. The goal is to reproduce the graph at this link: -[PA Graph](http://pa.water.usgs.gov/drought/indicators/sw/images/f30_01538000.html). The motivation for this post was inspired by a USGS colleague that that is considering creating these type of plots in R. We thought this plot provided an especially fun challenge - maybe you will, too! - -First we get the data using the [dataRetrieval](https://CRAN.R-project.org/package=dataRetrieval) package. The siteNumber and parameterCd could be adjusted for other sites or measured parameters. In this example, we are getting discharge (parameter code 00060) at a site in PA. - -It may be important to note that this script is a bit lazy in handling leap days. - -## Get data using dataRetrieval - -```{r message=FALSE} -library(dataRetrieval) - -# Retrieve daily Q -siteNumber <- c("01538000") -parameterCd <- "00060" # Discharge -dailyQ <- readNWISdv(siteNumber, parameterCd) -dailyQ <- renameNWISColumns(dailyQ) -stationInfo <- readNWISsite(siteNumber) -nrow(dailyQ) -``` - -## Calculate moving average - -Next, we calculate a 30-day moving average on all of the flow data: - -```{r message=FALSE} -library(dplyr) -library(zoo) - -# Check for missing days, if so, add NA rows: -if (as.numeric(diff(range(dailyQ$Date))) != (nrow(dailyQ) + 1)) { - fullDates <- seq( - from = min(dailyQ$Date), - to = max(dailyQ$Date), by = "1 day" - ) - fullDates <- data.frame( - Date = fullDates, - agency_cd = unique(dailyQ$agency_cd), - site_no = unique(dailyQ$site_no) - ) - dailyQ <- fullDates %>% - left_join(dailyQ, - by = c("Date", "agency_cd", "site_no") - ) %>% - arrange(Date) -} - -dailyQ <- dailyQ %>% - mutate( - rollMean = rollmean(Flow, 30, fill = NA, align = "center"), - day.of.year = as.numeric(strftime(Date, - format = "%j" - )) - ) -``` - -## Calculate historical percentiles - -We can use the `quantile` function to calculate historical percentile flows. Then use the `loess` function for smoothing. The argument `smooth.span` defines how much smoothing should be applied. To get a smooth transistion at the start of the graph, we can add include an earlier year which is not plotted at the end. - -```{r message=FALSE} -summaryQ <- dailyQ %>% - group_by(day.of.year) %>% - summarize( - p75 = quantile(rollMean, probs = .75, na.rm = TRUE), - p25 = quantile(rollMean, probs = .25, na.rm = TRUE), - p10 = quantile(rollMean, probs = 0.1, na.rm = TRUE), - p05 = quantile(rollMean, probs = 0.05, na.rm = TRUE), - p00 = quantile(rollMean, probs = 0, na.rm = TRUE) - ) - -current.year <- as.numeric(strftime(Sys.Date(), format = "%Y")) - -summary.0 <- summaryQ %>% - mutate( - Date = as.Date(day.of.year - 1, - origin = paste0(current.year - 2, "-01-01") - ), - day.of.year = day.of.year - 365 - ) -summary.1 <- summaryQ %>% - mutate(Date = as.Date(day.of.year - 1, - origin = paste0(current.year - 1, "-01-01") - )) -summary.2 <- summaryQ %>% - mutate( - Date = as.Date(day.of.year - 1, - origin = paste0(current.year, "-01-01") - ), - day.of.year = day.of.year + 365 - ) - -summaryQ <- bind_rows(summary.0, summary.1, summary.2) - - -smooth.span <- 0.3 - -summaryQ$sm.75 <- predict(loess(p75 ~ day.of.year, data = summaryQ, span = smooth.span)) -summaryQ$sm.25 <- predict(loess(p25 ~ day.of.year, data = summaryQ, span = smooth.span)) -summaryQ$sm.10 <- predict(loess(p10 ~ day.of.year, data = summaryQ, span = smooth.span)) -summaryQ$sm.05 <- predict(loess(p05 ~ day.of.year, data = summaryQ, span = smooth.span)) -summaryQ$sm.00 <- predict(loess(p00 ~ day.of.year, data = summaryQ, span = smooth.span)) - -latest.years <- dailyQ %>% - filter(Date >= as.Date(paste0(current.year - 1, "-01-01"))) %>% - mutate(day.of.year = seq_len(nrow(.))) - -# Let's just take the middle chunk: -summaryQ <- summaryQ %>% - filter(day.of.year %in% 1:365) - -summaryQ <- summaryQ %>% - bind_rows( - summaryQ, - summaryQ - ) %>% - mutate(day.of.year = seq_len(nrow(.)) - 365) -``` - -## Plot using base R - -Many of the graphical requirements defined by the USGS are difficult to achieve in `ggplot2`. Base R plotting can be used to obtain these types of graphs: - -```{r fig.cap="Simple 30-day moving average daily flow plot using base R"} - -title.text <- paste0( - stationInfo$station_nm, "\n", - "Provisional Data - Subject to change\n", - "Record Start = ", min(dailyQ$Date), - " Number of years = ", - as.integer(as.numeric(difftime( - time1 = max(dailyQ$Date), - time2 = min(dailyQ$Date), - units = "weeks" - )) / 52.25), - "\nDate of plot = ", Sys.Date(), - " Drainage Area = ", stationInfo$drain_area_va, "mi^2" -) - -mid.month.days <- c(15, 45, 74, 105, 135, 166, 196, 227, 258, 288, 319, 349) -month.letters <- c("J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D") -start.month.days <- c(1, 32, 61, 92, 121, 152, 182, 214, 245, 274, 305, 335) -label.text <- c("Normal", "Drought Watch", "Drought Warning", "Drought Emergency") - -plot(latest.years$day.of.year, latest.years$rollMean, - ylim = c(1, 1000), xlim = c(1, 733), - log = "y", axes = FALSE, type = "n", xaxs = "i", yaxs = "i", - ylab = "30-day moving ave", - xlab = "" -) -title(title.text, cex.main = 0.75) -polygon(c(summaryQ$day.of.year, rev(summaryQ$day.of.year)), - c(summaryQ$sm.75, rev(summaryQ$sm.25)), - col = "darkgreen", border = FALSE -) -polygon(c(summaryQ$day.of.year, rev(summaryQ$day.of.year)), - c(summaryQ$sm.25, rev(summaryQ$sm.10)), - col = "yellow", border = FALSE -) -polygon(c(summaryQ$day.of.year, rev(summaryQ$day.of.year)), - c(summaryQ$sm.10, rev(summaryQ$sm.05)), - col = "orange", border = FALSE -) -polygon(c(summaryQ$day.of.year, rev(summaryQ$day.of.year)), - c(summaryQ$sm.05, rev(summaryQ$sm.00)), - col = "red", border = FALSE -) -lines(latest.years$day.of.year, latest.years$rollMean, - lwd = 2, col = "black" -) -abline(v = 366) -axis(2, las = 1, at = c(1, 100, 1000), tck = -0.02) -axis(2, at = c(seq(1, 90, by = 10)), labels = NA, tck = -0.01) -axis(2, at = c(seq(100, 1000, by = 100)), labels = NA, tck = -0.01) -axis(1, - at = c(mid.month.days, 365 + mid.month.days), - labels = rep(month.letters, 2), - tick = FALSE, line = -0.5, cex.axis = 0.75 -) -axis(1, - at = c(start.month.days, 365 + start.month.days), - labels = NA, tck = -0.02 -) -axis(1, - at = c(182, 547), labels = c(current.year - 1, current.year), - line = .5, tick = FALSE -) -legend("bottom", label.text, - horiz = TRUE, - fill = c("darkgreen", "yellow", "orange", "red"), - inset = c(0, 0), xpd = TRUE, bty = "n", cex = 0.75 -) -box() -``` - - -## Plot using ggplot2 - -Finally, we can also try to create the graph using the `ggplot2` package. The following script shows a simple way to re-create the graph in `ggplot2` with no effort on imitating desired style: - - -```{r fig.cap="Simple 30-day moving average daily flow plot using ggplot2", alt.text = "30-day moving average daily flow plot, no effort on style", message=FALSE, warning=FALSE, fig.height=5} -library(ggplot2) - -simple.plot <- ggplot(data = summaryQ, aes(x = day.of.year)) + - geom_ribbon(aes(ymin = sm.25, ymax = sm.75, fill = "Normal")) + - geom_ribbon(aes(ymin = sm.10, ymax = sm.25, fill = "Drought Watch")) + - geom_ribbon(aes(ymin = sm.05, ymax = sm.10, fill = "Drought Warning")) + - geom_ribbon(aes(ymin = sm.00, ymax = sm.05, fill = "Drought Emergency")) + - scale_y_log10(limits = c(1, 1000)) + - geom_line(data = latest.years, aes(x = day.of.year, y = rollMean, color = "30-Day Mean"), size = 2) + - geom_vline(xintercept = 365) - -simple.plot -``` - -Next, we can play with various options to do a better job to imitate the style: - -```{r fig.cap="Detailed 30-day moving average daily flow plot", alt.text = "30-day moving average daily flow plot", message=FALSE, warning=FALSE} - -styled.plot <- simple.plot + - scale_x_continuous( - breaks = c(mid.month.days, 365 + mid.month.days), - labels = rep(month.letters, 2), - expand = c(0, 0), - limits = c(0, 730) - ) + - annotation_logticks(sides = "l") + - expand_limits(x = 0) + - annotate( - geom = "text", - x = c(182, 547), - y = 1, - label = c(current.year - 1, current.year), size = 4 - ) + - theme_bw() + - theme( - axis.ticks.x = element_blank(), - panel.grid.major = element_blank(), - panel.grid.minor = element_blank() - ) + - labs(title = title.text, - y = "30-day moving ave", x = "" - ) + - scale_fill_manual( - name = "", breaks = label.text, - values = c("red", "orange", "yellow", "darkgreen") - ) + - scale_color_manual(name = "", values = "black") + - theme(legend.position = "bottom") - -styled.plot -``` - diff --git a/vignettes/samples_data.Rmd b/vignettes/samples_data.Rmd index 8895130da..e3928f873 100644 --- a/vignettes/samples_data.Rmd +++ b/vignettes/samples_data.Rmd @@ -202,7 +202,7 @@ Let's say we don't know a USGS site number, but we do have an area of interest. North and south are latitude values; east and west are longitude values. A vector of 4 (west, south, east, north) is expected. -```{r} +```{r eval=FALSE} bbox <- c(-90.8, 44.2, -89.9, 45.0) user_char <- "Phosphorus as phosphorus, water, unfiltered" @@ -214,9 +214,6 @@ bbox_sites <- read_waterdata_samples(boundingBox = bbox, ``` -```{r echo=FALSE, message=FALSE} -map_it(bbox_sites) -``` ### Hydrologic Unit Codes (HUCs) diff --git a/vignettes/statsServiceMap.Rmd b/vignettes/statsServiceMap.Rmd deleted file mode 100644 index 08b218bb6..000000000 --- a/vignettes/statsServiceMap.Rmd +++ /dev/null @@ -1,197 +0,0 @@ ---- -title: "Using the dataRetrieval Stats Service" -author: "David Watkins" -date: "2016-10-05" -output: - rmarkdown::html_vignette: - toc: true - fig_caption: yes - fig_height: 7 - fig_width: 7 -vignette: > - %\VignetteIndexEntry{Using the dataRetrieval Stats Service} - \usepackage[utf8]{inputenc} - %\VignetteEngine{knitr::rmarkdown} ---- - -# Introduction - -This script utilizes the new `dataRetrieval` package access to the [USGS Statistics Web Service](https://waterservices.usgs.gov/docs/statistics/). We will be pulling daily mean data using the daily value service in `readNWISdata`, and using the stats service data to put it in the context of the site's history. Here we are retrieving data for July 12th in the Upper Midwest, where a major storm system had recently passed through. You can modify this script to look at other areas and dates simply by modifying the `states` and `storm.date` objects. - -To run this code, we recommend having either `dataRetreival` version 2.5.13 (currently the latest release on CRAN) or version 2.6.1 (currently the latest Github release). - -# Get the data - -There are two separate `dataRetrieval` calls here — one to retrieve the daily discharge data, and one to retrieve the historical discharge statistics. Both calls are inside loops to split them into smaller pieces, to accomodate web service restrictions. The daily values service allows only single states as a filter, so we loop over the list of states. The stats service does not allow requests of more than ten sites, so the loop iterates by groups of ten site codes. Retrieving the data can take a few tens of seconds. Once we have both the daily value and statistics data, the two data frames are joined by site number via [dplyr's](https://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html) `left_join` function. We use a [pipe](https://cran.r-project.org/web/packages/magrittr/vignettes/magrittr.html) to send the output of the join to `na.omit()` function. Then we add a column to the final data frame to hold the color value for each station. - -```{r getData, warning=FALSE, message=FALSE} -# example stats service map, comparing real-time current discharge to history for each site -# reusable for other state(s) -# David Watkins June 2016 - - -library(maps) -library(dplyr) -library(lubridate) -library(dataRetrieval) - -# pick state(s) and date -states <- c("WI", "MN", "ND", "SD", "IA") -storm.date <- "2016-07-12" - -# download each state individually -for (st in states) { - stDV <- renameNWISColumns(readNWISdata( - service = "dv", - parameterCd = "00060", - stateCd = st, - startDate = storm.date, - endDate = storm.date - )) - if (st != states[1]) { - storm.data <- full_join(storm.data, stDV) - sites <- full_join(sites, attr(stDV, "siteInfo")) - } else { - storm.data <- stDV - sites <- attr(stDV, "siteInfo") - } -} - -# retrieve stats data, dealing with 10 site limit to stat service requests -reqBks <- seq(1, nrow(sites), by = 10) -statData <- data.frame() -for (i in reqBks) { - getSites <- sites$site_no[i:(i + 9)] - currentSites <- readNWISstat( - siteNumbers = getSites, - parameterCd = "00060", - statReportType = "daily", - statType = c("p10", "p25", "p50", "p75", "p90", "mean") - ) - statData <- rbind(statData, currentSites) -} - -statData.storm <- statData[statData$month_nu == month(storm.date) & - statData$day_nu == day(storm.date), ] - -finalJoin <- left_join(storm.data, statData.storm) -finalJoin <- left_join(finalJoin, sites) - -finalJoin[, grep("_va", names(finalJoin))] <- sapply( - finalJoin[ - , - grep("_va", names(finalJoin)) - ], - function(x) as.numeric(x) -) - -# remove sites without current data -finalJoin <- finalJoin[!is.na(finalJoin$Flow), ] - - -# classify current discharge values -finalJoin$class <- NA - -finalJoin$class[finalJoin$Flow > finalJoin$p75_va] <- "navy" -finalJoin$class[finalJoin$Flow < finalJoin$p25_va] <- "red" - -finalJoin$class[finalJoin$Flow > finalJoin$p25_va & - finalJoin$Flow <= finalJoin$p50_va] <- "green" -finalJoin$class[finalJoin$Flow > finalJoin$p50_va & - finalJoin$Flow <= finalJoin$p75_va] <- "blue" - -finalJoin$class[is.na(finalJoin$class) & - finalJoin$Flow > finalJoin$p50_va] <- "cyan" -finalJoin$class[is.na(finalJoin$class) & - finalJoin$Flow < finalJoin$p50_va] <- "yellow" - -# take a look at the columns that we will plot later: -head(finalJoin[, c("dec_lon_va", "dec_lat_va", "class")]) -``` - -# Make the static plot - -The base map consists of two plots. The first makes the county lines with a gray background, and the second overlays the heavier state lines. After that we add the points for each stream gage, colored by the column we added to `finalJoin`. In the finishing details, `grconvertXY` is a handy function that converts your inputs from a normalized (0-1) coordinate system to the actual map coordinates, which allows the legend and scale to stay in the same relative location on different maps. - -```{r plot, fig.cap="Map discharge percentiles"} -# convert states from postal codes to full names -states <- stateCdLookup(states, outputType = "fullName") -par(pty = "s") -map("county", regions = states, fill = TRUE, col = "gray87", lwd = 0.5) -map("state", regions = states, fill = FALSE, lwd = 2, add = TRUE) -points(finalJoin$dec_lon_va, - finalJoin$dec_lat_va, - col = finalJoin$class, pch = 19 -) -title(paste("Daily discharge value percentile rank\n", storm.date), line = 1) -par(mar = c(5.1, 4.1, 4.1, 6), xpd = TRUE) - -legend.colors <- c( - "cyan", "yellow", - "red", - "green", "blue", - "navy" -) -legend.names <- c( - "Q > P50*", "Q < P50*", - "Q < P25", - "P25 < Q < P50", "P50 < Q < P75", - "Q > P75" -) - -legend("bottomleft", - inset = c(0.01, .01), - legend = legend.names, - pch = 19, cex = 0.75, pt.cex = 1.2, - col = legend.colors, - ncol = 2 -) -map.scale( - ratio = FALSE, cex = 0.75, - grconvertX(.07, "npc"), - grconvertY(.2, "npc") -) -text("*Other percentiles not available for these sites", - cex = 0.75, - x = grconvertX(0.2, "npc"), - y = grconvertY(-0.08, "npc") -) -``` - -# Make an interactive plot - -Static maps are great for papers and presentations. When possible, interactive maps allow the reader more flexibility to examine the data. The R leaflet package makes it easy to create useful interactive maps. - -```{r leaflet, fig.height=5} -library(leaflet) - -finalJoin$popup <- with(finalJoin, paste( - "", station_nm, - "
", - "Measured Flow:", Flow, - "ft3/s
", - "25% historical:", p25_va, - "ft3/s
", - "50% historical:", p50_va, - "ft3/s
", - "75% historical:", p75_va, - "ft3/s" -)) - -leafMapStat <- leaflet(data = finalJoin) %>% - addProviderTiles("CartoDB.Positron") %>% - addCircleMarkers(~dec_lon_va, ~dec_lat_va, - color = ~class, radius = 3, stroke = FALSE, - fillOpacity = 0.8, opacity = 0.8, - popup = ~popup - ) - -leafMapStat <- addLegend(leafMapStat, - position = "bottomleft", - colors = legend.colors, - labels = legend.names, - opacity = 0.8 -) - -leafMapStat -``` From 5d25c06a8cfa438293cbd7ec7581b1aa58f89529 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Tue, 28 Apr 2026 08:59:54 -0500 Subject: [PATCH 41/44] ? --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 697cfa5d0..5f50fb016 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -35,7 +35,7 @@ RUN apt-get update -qq && apt-get -y --no-install-recommends install \ r-cran-reticulate \ wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \ bash Miniforge3.sh -b -p "${HOME}/conda" && \ - rm Miniforge3.sh \ + rm Miniforge3.sh && \ conda env create -n ${CONDA_ENVIRONMENT_NAME} -f /environment.yml && conda clean -a -y \ && rm -rf /var/lib/apt/lists/* From 02ff92a816e975f4b9245e28a08bc103b55339f6 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Tue, 28 Apr 2026 09:11:40 -0500 Subject: [PATCH 42/44] ? --- .gitlab-ci.yml | 1 - docker/Dockerfile | 15 +++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fcfcfbe0b..e381950a2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -109,7 +109,6 @@ pages: - Rscript -e 'pkgdown::build_site(override = list(destination = "public"))' - Rscript -e 'file.copy(from = "./public/articles/logo.png", to = "./public/reference/logo.png")' - quarto render - artifacts: paths: - $PAGES_OUTDIR diff --git a/docker/Dockerfile b/docker/Dockerfile index 5f50fb016..f55720a06 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,7 +19,6 @@ RUN apt-get update -qq && apt-get -y --no-install-recommends install \ r-cran-knitr \ r-cran-dt \ r-cran-data.table \ - r-cran-gridextra \ r-cran-tidyverse \ r-cran-jsonlite \ r-cran-readr \ @@ -33,10 +32,14 @@ RUN apt-get update -qq && apt-get -y --no-install-recommends install \ r-cran-whisker \ r-cran-ggplot2 \ r-cran-reticulate \ - wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \ - bash Miniforge3.sh -b -p "${HOME}/conda" && \ - rm Miniforge3.sh && \ - conda env create -n ${CONDA_ENVIRONMENT_NAME} -f /environment.yml && conda clean -a -y \ - && rm -rf /var/lib/apt/lists/* + && rm -rf /var/lib/apt/lists/* + +RUN wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" && \ + bash Miniforge3.sh -b -p "${HOME}/conda" && \ + rm Miniforge3.sh +ENV CONDA_DIR="/root/conda" +ENV PATH=$CONDA_DIR/bin:$PATH +COPY environment.yml / +RUN conda env create -n ${CONDA_ENVIRONMENT_NAME} -f /environment.yml && conda clean -a -y ENV RETICULATE_PYTHON=/root/conda/envs/${CONDA_ENVIRONMENT_NAME}/bin/python From 56c78b875472091d4f0c0bde49efa890431e4fd6 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Tue, 28 Apr 2026 09:19:45 -0500 Subject: [PATCH 43/44] Can I get below 1 Gb image? --- docker/Dockerfile | 5 ++++- environment.yml | 4 ---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f55720a06..5a49a37db 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,7 +19,10 @@ RUN apt-get update -qq && apt-get -y --no-install-recommends install \ r-cran-knitr \ r-cran-dt \ r-cran-data.table \ - r-cran-tidyverse \ + r-cran-dplyr \ + r-cran-purrr \ + r-cran-lubridate \ + r-cran-tidyr \ r-cran-jsonlite \ r-cran-readr \ r-cran-xml2 \ diff --git a/environment.yml b/environment.yml index 382e14bc9..3c2e4b310 100644 --- a/environment.yml +++ b/environment.yml @@ -4,9 +4,5 @@ channels: dependencies: # required - python=3.12 - - numpy - - matplotlib - dataretrieval - - pandas - - geopandas prefix: /home/user/miniforge3/envs/dataretrieval From 1aadab495ec41086da59813653050ed7a925c0e5 Mon Sep 17 00:00:00 2001 From: Laura DeCicco Date: Tue, 28 Apr 2026 09:33:24 -0500 Subject: [PATCH 44/44] call testthat instead of devtools --- .gitlab-ci.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e381950a2..6c88a8dd2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -74,8 +74,16 @@ unittests: - build-image - buildcheck script: - - R -e 'library(testthat); options(testthat.output_file = file.path(Sys.getenv("CI_PROJECT_DIR"), "test-out.xml")); devtools::test(reporter = "junit")' - - R -e 'x <- covr::package_coverage(); covr::to_cobertura(x); x; ' + - | + Rscript -e ' + library(testthat) + options(testthat.output_file = file.path(Sys.getenv("CI_PROJECT_DIR"), "test-out.xml")) + test_local(reporter = "junit")' + - | + Rscript -e ' + x <- covr::package_coverage() + covr::to_cobertura(x) + x' artifacts: when: always expire_in: 1 week