Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
2865d8b
First pass at statistics functions
jzemmels Dec 29, 2025
7e331a3
Add data.table version of get_statistics_data function
jzemmels Dec 30, 2025
37b9987
Add some documentation to internal clean_value_cols() function
jzemmels Dec 30, 2025
a59b1fa
Move data table implementation to read_statistics_data, update docume…
jzemmels Dec 31, 2025
8875de4
Generalize to accommodate Normals and Intervals output, handle empty …
jzemmels Dec 31, 2025
e143efb
Unit tests
jzemmels Dec 31, 2025
935575b
Merge pull request #849 from DOI-USGS/develop
ldecicco-USGS Jan 22, 2026
7dc16fd
Rename stats functions to match drpy, add examples
jzemmels Jan 22, 2026
5739ebf
Remove constructUseURL
ldecicco-USGS Jan 23, 2026
bf8f276
Merge pull request #850 from ldecicco-USGS/develop
ldecicco-USGS Jan 23, 2026
3e1ea1f
Start updating vignettes
jzemmels Jan 23, 2026
c352011
Merge branch 'statistics' into develop
jzemmels Jan 23, 2026
233f65e
Merge pull request #1 from jzemmels/develop
jzemmels Jan 23, 2026
5acc72c
Update pkgdown
jzemmels Jan 23, 2026
713cc99
Update minor patch version
jzemmels Jan 23, 2026
a4137ee
Update README
jzemmels Jan 23, 2026
5de6103
Update vignettes
jzemmels Jan 23, 2026
9e7b277
Merge branch 'statistics' of https://github.com/jzemmels/dataRetrieva…
jzemmels Jan 23, 2026
d9a25bc
Update Status.Rmd table
jzemmels Jan 23, 2026
e692290
Remove max_results from internal walk_pages call
jzemmels Jan 23, 2026
4b59cbb
Add deprecation warning to readNWISstat
jzemmels Jan 23, 2026
f1159d5
Update NEWS
jzemmels Jan 23, 2026
0fb8078
Merge branch 'DOI-USGS:main' into statistics
jzemmels Jan 26, 2026
533523c
Start on stats vignette
jzemmels Jan 27, 2026
acbf3ad
Add new stats vignette to Rbuildignore
jzemmels Feb 4, 2026
518471c
Joeseph -> Joseph
jzemmels Feb 4, 2026
70b3e38
Consolidate dataRetrieval-package.R scripts
jzemmels Feb 4, 2026
b9eaa37
Add Laura's suggested fields to httr2 request, replace stats clean up…
jzemmels Feb 4, 2026
daa60a4
Fix data.table structure in stats tests
jzemmels Feb 4, 2026
3c3f0dd
Add expect_equal tests for mock page
jzemmels Feb 4, 2026
3bcd987
Avoid undefined global functions or variables note
jzemmels Feb 4, 2026
f55e736
Merge branch 'statistics' of github.com:jzemmels/dataRetrieval into s…
jzemmels Feb 4, 2026
cc213fc
Fix two check notes from GH action
jzemmels Feb 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,4 @@ vignettes/wqpData.rds
_quarto.yml
vignettes/basic_slides.Rmd
vignettes/changes_slides.Rmd
vignettes/daily_data_statistics.Rmd
7 changes: 4 additions & 3 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: dataRetrieval
Type: Package
Title: Retrieval Functions for USGS and EPA Hydrology and Water Quality Data
Version: 2.7.22
Version: 2.7.22.9000
Authors@R: c(
person("Laura", "DeCicco", role = c("aut","cre"),
email = "ldecicco@usgs.gov",
Expand All @@ -26,7 +26,7 @@ Authors@R: c(
comment=c(ORCID = "0000-0003-2521-5043")),
person("Lee", "Stanish", role="ctb",
comment=c(ORCID = "0000-0002-9775-6861")),
person("Joeseph", "Zemmels", role="ctb",
person("Joseph", "Zemmels", role="ctb",
email = "jzemmels@usgs.gov",
comment=c(ORCID = "0009-0008-1463-6313")),
person("Elise", "Hinman", role="aut",
Expand Down Expand Up @@ -55,7 +55,8 @@ Imports:
jsonlite,
httr2,
whisker,
sf
sf,
data.table
Suggests:
covr,
dplyr,
Expand Down
12 changes: 11 additions & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ export(checkWQPdates)
export(check_OGC_requests)
export(check_waterdata_sample_params)
export(constructNWISURL)
export(constructUseURL)
export(constructWQPURL)
export(construct_api_requests)
export(construct_waterdata_sample_request)
Expand Down Expand Up @@ -56,6 +55,8 @@ export(read_waterdata_metadata)
export(read_waterdata_monitoring_location)
export(read_waterdata_parameter_codes)
export(read_waterdata_samples)
export(read_waterdata_stats_daterange)
export(read_waterdata_stats_por)
export(read_waterdata_ts_meta)
export(renameNWISColumns)
export(setAccess)
Expand All @@ -71,3 +72,12 @@ export(whatWQPsamples)
export(whatWQPsites)
export(wqp_check_status)
export(zeroPad)
importFrom(data.table,":=")
importFrom(data.table,.BY)
importFrom(data.table,.EACHI)
importFrom(data.table,.GRP)
importFrom(data.table,.I)
importFrom(data.table,.N)
importFrom(data.table,.NGRP)
importFrom(data.table,.SD)
importFrom(data.table,data.table)
11 changes: 11 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
dataRetrieval 2.7.22.9000
===================
* Added data.table to Imports
* Added data.table importFrom entries to NAMESPACE
* Added read_waterdata_stats_por and read_waterdata_stats_daterange to access USGS daily data statistics.
* Updated vignettes, examples, and README to reflect new stats functions.
* Added tests for read_waterdata_stats functions
* Updated next_req_url to allow paging through /statistics API output
* Added deprecate message to readNWISstat function.


dataRetrieval 2.7.22
===================
* Added read_waterdata_latest_daily to access latest daily USGS water data.
Expand Down
63 changes: 1 addition & 62 deletions R/constructNWISURL.R
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@
#' provide statistics for each month and year within the range individually.
#' @param statType character Only used for statistics service requests. Type(s)
#' of statistics to output for daily values. Default is mean, which is the only
#' option for monthly and yearly report types. See the statistics service documentation
#' at <https://waterservices.usgs.gov/docs/statistics/> for a
#' full list of codes.
#' option for monthly and yearly report types.
#' @keywords data import USGS web service
#' @return url string
#' @export
Expand Down Expand Up @@ -431,63 +429,4 @@ constructWQPURL <- function(siteNumbers,
return(baseURL)
}

#' Construct URL for NWIS water use data service
#'
#' Reconstructs URLs to retrieve data from here: <https://waterdata.usgs.gov/nwis/wu>
#'
#' @param years integer Years for data retrieval. Must be years ending in 0 or 5,
#' or "ALL", which retrieves all available years.
#' @param stateCd could be character (full name, abbreviation, id), or numeric (id)
#' @param countyCd could be numeric (County IDs from countyCdLookup) or character ("ALL")
#' @param categories character Two-letter cateogory abbreviation(s)
#' @return url string
#' @export
#' @examples
#' url <- constructUseURL(
#' years = c(1990, 1995),
#' stateCd = "Ohio",
#' countyCd = c(1, 3),
#' categories = "ALL"
#' )
#'
constructUseURL <- function(years, stateCd, countyCd, categories) {


if (is.null(stateCd)) {
baseURL <- httr2::request(pkg.env[["useNat"]])
baseURL <- httr2::req_url_query(baseURL,
format = "rdb",
rdb_compression = "value")
} else {

stateCd <- stateCdLookup(input = stateCd, outputType = "postal")
baseURL <- httr2::request("https://waterdata.usgs.gov/")
baseURL <- httr2::req_url_path_append(baseURL, stateCd)
baseURL <- httr2::req_url_path_append(baseURL,
"nwis", "water_use")
baseURL <- httr2::req_url_query(baseURL,
format = "rdb",
rdb_compression = "value")

if (!(is.null(countyCd) )) {

baseURL <- httr2::req_url_query(baseURL,
wu_area = "county")
baseURL <- httr2::req_url_query(baseURL,
wu_county = countyCd,
.multi = "comma")
} else {
baseURL <- httr2::req_url_query(baseURL,
wu_area = "State Total")
}
}

baseURL <- httr2::req_url_query(baseURL,
wu_year = years,
.multi = "comma")
baseURL <- httr2::req_url_query(baseURL,
wu_category = categories,
.multi = "comma")

return(baseURL)
}
60 changes: 21 additions & 39 deletions R/dataRetrievals-package.R → R/dataRetrieval-package.R
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,8 @@ token_message)
#'
#' @docType data
#' @export parameterCdFile
#' @examplesIf is_dataRetrieval_user()
#'
#' \donttest{
#' # Please migrate to:
#' parameterCds <- read_waterdata_metadata("parameter-codes")
#'
#' }
#' @examples
#' head(parameterCdFile[, 1:2])
NULL


Expand Down Expand Up @@ -118,13 +113,8 @@ NULL
#' @docType data
#' @export stateCd
#' @keywords USGS stateCd
#' @examplesIf is_dataRetrieval_user()
#'
#' \donttest{
#' # Please migrate to:
#' stateCd <- read_waterdata_metadata("states")
#'
#' }
#' @examples
#' head(stateCd)
NULL

#' US County Code Lookup Table
Expand All @@ -146,15 +136,24 @@ NULL
#' @docType data
#' @export countyCd
#' @keywords USGS countyCd
#' @examplesIf is_dataRetrieval_user()
#'
#' \donttest{
#' # Please migrate to:
#' countyCd <- read_waterdata_metadata("counties")
#'
#' }
#' @examples
#' head(countyCd)
NULL

## usethis namespace: start
#' @importFrom data.table data.table
#' @importFrom data.table :=
#' @importFrom data.table .SD
#' @importFrom data.table .BY
#' @importFrom data.table .N
#' @importFrom data.table .I
#' @importFrom data.table .GRP
#' @importFrom data.table .NGRP
#' @importFrom data.table .EACHI
## usethis namespace: end
NULL


# nolint start: commented_code_linter
# Here's how to incorporate the state_county.json into the historic
# sysdata.rda. The original data included some IDs that aren't in the json
Expand Down Expand Up @@ -205,21 +204,4 @@ NULL
#
# save(countyCd, stateCd, parameterCdFile, pCodeToName,
# file = "R/sysdata.rda", compress = "xz")
#
# services <- c("daily", "time-series-metadata",
# "monitoring-locations", "latest-continuous",
# "field-measurements", "latest-daily",
# "continuous")
#
# property_list <- list()
#
# for(i in services){
# schema <- check_OGC_requests(endpoint = i, type = "schema")
# properties <- names(schema$properties)
# property_list[[i]] <- properties
# }
# rm(schema, i, services, properties)
# save(countyCd, stateCd, parameterCdFile, pCodeToName, property_list, offsetLibrary,
# file = "R/sysdata.rda", compress = "xz")
#
# # nolint end
# nolint end
4 changes: 4 additions & 0 deletions R/readNWISunit.R
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,10 @@ readNWISgwl <- function(siteNumbers,
#' }
readNWISstat <- function(siteNumbers, parameterCd, startDate = "", endDate = "", convertType = TRUE,
statReportType = "daily", statType = "mean") {

.Deprecated(new = "read_waterdata_stats_por",
package = "dataRetrieval",
msg = "NWIS servers are slated for decommission. Please begin to migrate to either read_waterdata_stats_por or read_waterdata_stats_daterange.")

message(new_nwis_message())
# check for NAs in site numbers
Expand Down
Loading
Loading