This page will be updated frequently with information about the status of dataRetrieval services.
Contact CompTools@usgs.gov with additional questions.
On March 11, 2024, NWIS discrete water quality services were "frozen": any public data retrieval using readNWISqw()
did not include any new data. As of dataRetrieval v2.7.17, readNWISqw()
has been retired and replaced by readWQPqw()
. Learn more about the change and where to find the new samples data in our blog.
If you have additional questions about the NWIS qw data service, email CompTools@usgs.gov.
New USGS data (post March 11, 2024) are temporarily not accessible on the main Water Quality Portal (WQP) page (www.waterqualitydata.us). Data are still being collected, but are not available on this webpage. This limited availability is expected to last a few months.
However, new USGS data are accessible in a pre-release (beta) version of the WQP web page and new wqx3 web services. Data are available in the "WQX version 3.0 format" (WQX = Water Quality Exchange) for these new "Data Profiles" (how the data is formatted by the WQP):
Guidance on how to use the new web page and web services are available in the User Guide and Web Services Guide. Additional profiles will continue to be added over time.
Disclaimer: During the beta period, users may encounter bugs or identify issues with the implementation of the WQX 3.0 format: we welcome (and encourage!) your feedback to help improve these offerings, just send an email to WQX@epa.gov.
The current WQP data profiles (available on the main Water Quality Portal web pages and from the current web services, https://www.waterqualitydata.us) deliver data in "WQX version 2.0" (what we're referring to as the "legacy") format. These will remain available for a period of time after the rollout of version 3.0. Eventually they will be retired, but there is not yet an estimated time line.
df <- data.frame(Function = c("readWQPdata", "readWQPqw", "whatWQPsites", "whatWQPmetrics", "whatWQPsamples", "whatWQPdata", "readNWISqw", "readWQPsummary", "whatNWISdata"), Status = c("Set to legacy options by default. WQX3 options available.", "Set to legacy options by default. WQX3 options available.", "Set to legacy options by default. WQX3 options available.", rep("Currently only available via legacy services.", 3), "Retired.", "Does not have accurate information for USGS data.", "Does not have accurate information for qw data.")) knitr::kable(df)
The readWQPqw()
function is generally advertised as a user-friendly function since it only works with a known list of sites, parameter codes or characteristic names, and start/end dates.
As of dataRetrieval
2.7.17, this function will use the default WQX version 2 dataProfile, specified by the legacy = TRUE
argument. Setting legacy = FALSE
will return the WQX 3.0 "narrow" dataProfile. Keep in mind the 2.0 profiles will eventually be retired. For any more flexibility, users will need to use the readWQPdata()
function.
An example of a WQX 3.0 return:
library(dataRetrieval) rawPcode <- readWQPqw(siteNumbers = "USGS-01594440", parameterCd = "01075", legacy = FALSE)
Compared to using the WQX 2.0 legacy results:
rawPcode_legacy <- readWQPqw(siteNumbers = "USGS-01594440", parameterCd = "01075", legacy = TRUE)
The readWQPdata()
function is the most flexible function to get WQP data. Currently there are 11 legacy options and 5 options that use the new WQX 3.0 profiles. Note that readWQPdata()
does not leverage a legacy
argument to specify which profile version the user would like returned, but instead relies on the user's specification of service
and dataProfile
arguments.
There are currently three WQX 3.0 "services" available: ResultWQX, StationWQX and ActivityWQX. The "ResultWQX" service has multiple available "dataProfiles".
| Service | dataProfile | | -------------- | ---------- | | StationWQX | | | ResultWQX | fullPhysChem | | ResultWQX | basicPhysChem | | ResultWQX | narrow | | ActivityWQX | |
Examples:
data_full <- readWQPdata(siteid = "USGS-04024315", characteristicName = "pH", dataProfile = "fullPhysChem", service = "ResultWQX3") ncol(data_full) data_basic <- readWQPdata(siteid = "USGS-04024315", characteristicName = "pH", dataProfile = "basicPhysChem", service = "ResultWQX3") ncol(data_basic) data_narrow <- readWQPdata(siteid = "USGS-04024315", characteristicName = "pH", dataProfile = "narrow", service = "ResultWQX3") ncol(data_narrow) data_sites <- readWQPdata(siteid = "USGS-04024315", characteristicName = "pH", service = "StationWQX3") ncol(data_sites)
There are 8 services available from the legacy WQP. The Station and Result legacy services can still be accessed, but users should move to StationWQX, ResultWQX, and ActivityWQX. As other former services become available in WQX 3.0, we will update these documents.
| Service | dataProfile | WQX 3.0 service "analog" | | -------------- | ---------- | ---------- | | Station | | StationWQX | | Result | resultPhysChem | ResultWQX | | Result | biological | | Result | narrowResult | ResultWQX | | Activity | activityAll | ActivityWQX | | ActivityMetric | | | | Project | | | | ProjectMonitoringLocationWeighting | | | | ResultDetectionQuantitationLimit | | | | BiologicalMetric | | |
Examples:
# Data profiles: "Organization Data" (legacy) org_data <- readWQPdata( statecode = "WI", countycode = "Dane", service = "Organization" ) # Data profiles: "Project Data" (legacy) project_data <- readWQPdata( statecode = "WI", countycode = "Dane", service = "Project" ) # Data profiles: "Project Monitoring Location Weighting Data" (legacy) proj_mlwd <- readWQPdata( statecode = "WI", countycode = "Dane", service = "ProjectMonitoringLocationWeighting" ) # Data profiles: "Sample Results (physical/chemical metadata)" (legacy) samp_data <- readWQPdata( siteid = "USGS-04024315", dataProfile = "resultPhysChem", service = "Result" ) # Data profiles: "Sample Results (biological metadata)" (legacy) samp_bio <- readWQPdata( siteid = "USGS-04024315", dataProfile = "biological", service = "Result" ) # Data profiles: "Sample Results (narrow)" (legacy) samp_narrow <- readWQPdata( siteid = "USGS-04024315", dataProfile = "narrowResult", service = "Result" ) # Data profiles: "Sampling Activity" (legacy) samp_activity <- readWQPdata( siteid = "USGS-04024315", dataProfile = "activityAll", service = "Activity" ) # Data profile: "Sampling Activity Metrics" (legacy) act_metrics <- readWQPdata( statecode = "WI", countycode = "Dane", service = "ActivityMetric" ) # Data profile: "Result Detection Quantitation Limit Data" (legacy) dl_data <- readWQPdata( siteid = "USGS-04024315", service = "ResultDetectionQuantitationLimit" )
NWIS discrete water quality services are "frozen": the returned data availability will also be frozen ONLY for "qw" data_type_cd results. All other data types should not be affected.
When the NWIS services are decommissioned (likely in 2025): there will no longer be any "qw" information provided in the output of whatNWISdata
. Discrete water-quality availability will be available via WQP services. More information will be provided as we learn more.
Here's an example of what will change:
what_NWIS <- whatNWISdata(siteNumber = "05114000") nrow(what_NWIS) [1] 407 nrow(what_NWIS[what_NWIS$data_type_cd == "qw",]) [1] 381
So for site "05114000", there are 381 NWIS qw parameters that have been measured. Since mid-March 2024, the data availability for those 381 parameters are frozen...even if new data are collected. Eventually those 381 rows of data will not be returned, only 26 rows of data will be returned (407-381).
New services/functions are being developed to replace the lost functionality so check back here for updated information.
The readNWISSample
function will be deprecated or updated. Plan to switch to readWQPSample
.
The data_available
function will need to be updated.
If you know of additional R package dependencies that will be affected by these changes, please email CompTools@usgs.gov.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.