Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
:warning: USGS data availability and format are changing on Water Quality Portal (WQP). Since March 2024, data obtained from WQP legacy profiles will not include new USGS data or recent updates to existing data. To view the status of changes in data availability and code functionality, visit: https://doi-usgs.github.io/dataRetrieval/articles/Status.html
:mega: 09/03/2024: The groundwater levels service has switched endpoints, and dataretrieval
was updated accordingly in v1.0.10
. Older versions using the discontinued endpoint will return 503 errors for nwis.get_gwlevels
or the service='gwlevels'
argument. Visit Water Data For the Nation for more information.
dataretrieval
was created to simplify the process of loading hydrologic data into the Python environment.
Like the original R version dataRetrieval
,
it is designed to retrieve the major data types of U.S. Geological Survey (USGS) hydrology
data that are available on the Web, as well as data from the Water
Quality Portal (WQP), which currently houses water quality data from the
Environmental Protection Agency (EPA), U.S. Department of Agriculture
(USDA), and USGS. Direct USGS data is obtained from a service called the
National Water Information System (NWIS).
Note that the python version is not a direct port of the original: it attempts to reproduce the functionality of the R package, though its organization and interface often differ.
If there's a hydrologic or environmental data portal that you'd like dataretrieval to work with, raise it as an issue.
Here's an example using dataretrieval
to retrieve data from the National Water Information System (NWIS).
# first import the functions for downloading data from NWIS
import dataretrieval.nwis as nwis
# specify the USGS site code for which we want data.
site = '03339000'
# get instantaneous values (iv)
df = nwis.get_record(sites=site, service='iv', start='2017-12-31', end='2018-01-01')
# get water quality samples (qwdata)
df2 = nwis.get_record(sites=site, service='qwdata', start='2017-12-31', end='2018-01-01')
# get basic info about the site
df3 = nwis.get_record(sites=site, service='site')
Services available from NWIS include:
To access the full functionality available from NWIS web services, nwis.get record appends any additional kwargs into the REST request. For example
nwis.get_record(sites='03339000', service='dv', start='2017-12-31', parameterCd='00060')
will download daily data with the parameter code 00060 (discharge).
If you're connected to the USGS network, dataretrieval call pull from the internal (non-public) NWIS interface. Most dataretrieval functions pass kwargs directly to NWIS's REST API, which provides simple access to internal data; simply specify "access='3'". For example
nwis.get_record(sites='05404147',service='iv', start='2021-01-01', end='2021-3-01', access='3')
More services and documentation to come!
dataretrieval can be installed using pip:
$ python3 -m pip install -U dataretrieval
or conda:
$ conda install -c conda-forge dataretrieval
More examples of use are include in demos
.
Please report any bugs and enhancement ideas using the dataretrieval issue tracker:
https://github.com/USGS-python/dataretrieval/issues
Feel free to also ask questions on the tracker.
Any help in testing, development, documentation and other tasks is welcome. For more details, see the file CONTRIBUTING.md.
The Water Mission Area of the USGS supports the development and maintenance of dataretrieval
and most likely further into the future.
Resources are available primarily for maintenance and responding to user questions.
Priorities on the development of new features are determined by the dataretrieval
development team.
This material is partially based upon work supported by the National Science Foundation (NSF) under award 1931297. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF.
This software is preliminary or provisional and is subject to revision. It is being provided to meet the need for timely best science. The software has not received final approval by the U.S. Geological Survey (USGS). No warranty, expressed or implied, is made by the USGS or the U.S. Government as to the functionality of the software and related material nor shall the fact of release constitute any such warranty. The software is provided on the condition that neither the USGS nor the U.S. Government shall be held liable for any damages resulting from the authorized or unauthorized use of the software.
Hodson, T.O., Hariharan, J.A., Black, S., and Horsburgh, J.S., 2023, dataretrieval (Python): a Python package for discovering and retrieving water data available from U.S. federal hydrologic web services: U.S. Geological Survey software release, https://doi.org/10.5066/P94I5TX3.
FAQs
Discover and retrieve water data from U.S. federal hydrologic web services.
We found that dataretrieval demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.