Skip to main content

A portal to access hydrology and climatology databases in Python

Project description

https://raw.githubusercontent.com/cheginit/hydrodata/develop/docs/_static/hydrodata_logo_text.png

Package

Description

Status

Hydrodata

Access NWIS, HCDN 2009, NLCD, and SSEBop databases

Github Actions

PyGeoOGC

Send queries to any ArcGIS RESTful-, WMS-, and WFS-based services

Github Actions

PyGeoUtils

Convert responses from PyGeoOGC’s supported web services to datasets

Github Actions

PyNHD

Navigate and subset NHDPlus (MR and HR) using web services

Github Actions

Py3DEP

Access topographic data through National Map’s 3DEP web service

Github Actions

PyDaymet

Access Daymet for daily climate data both single pixel and gridded

Github Actions

Hydrodata: Portal to hydrology and climatology data

PyPi Conda Version CodeCov ReadTheDocs Binder

Downloads CodeFactor black pre-commit Zenodo

🚨 This package is under heavy development and breaking changes are likely to happen. 🚨

Why Hydrodata?

Hydrodata is a stack of Python libraries designed to aid in watershed analysis through web services. Currently, it only includes hydrology and climatology data within the US. Some of the major capabilities of Hydrodata are:

  • Easy access to many web services for subsetting data and returning the requests as masked xarrays or GeoDataFrames.

  • Splitting large requests into smaller chunks under-the-hood since web services usually limit the number of items per request. So the only bottleneck for subsetting the data is the local available memory.

  • Navigating and subsetting NHDPlus database (both meduim- and high-resolution) using web services.

  • Cleaning up the vector NHDPlus data, fixing some common issues, and computing vector-based accumulation through the network.

  • A URL inventory for some of the popular (and tested) web services.

  • Some utilities for manipulating the data and visualization.

You can visit examples webpage to see some example notebooks. You can also try using Hydrodata without installing it on you system by clicking on the binder badge below the Hydrodata banner. A Jupyter notebook instance with the Hydrodata software stack pre-installed will be launched in your web browser and you can start coding!

The full documentation can be found at https://hydrodata.readthedocs.io.

Features

Hydrodata itself has three main modules; hydrodata, plot, and helpers. The hydrodata module provides access to the following web services:

  • NWIS for daily mean streamflow observations,

  • HCDN 2009 for identifying sites where human activity affects the natural flow of the watercourse,

  • NLCD 2016 for land cover/land use, imperviousness, and canopy data,

  • SSEBop for daily actual evapotranspiration, for both single pixel and gridded data.

Also, it has two other functions:

  • interactive_map: Interactive map for exploring NWIS stations within a bounding box.

  • cover_statistics: Compute categorical statistics of land use/land cover data.

The plot module includes two main functions:

  • signatures: Plot five hydrologic signature graphs.

  • cover_legends: Return the official NLCD land cover legends for plotting a land cover dataset.

The helpers module includes:

  • nlcd_helper: A roughness coefficients lookup table for each land cover type which is useful for overland flow routing among other applications.

  • nwis_error: A dataframe for finding information about NWIS requests’ errors.

Moreover, requests for additional databases and functionalities can be submitted via issue tracker.

https://raw.githubusercontent.com/cheginit/hydrodata/develop/docs/_static/example_plots.png

Installation

You can install Hydrodata using pip after installing libgdal on your system (for example, in Ubuntu run sudo apt install libgdal-dev):

$ pip install hydrodata

Alternatively, Hydrodata can be installed from the conda-forge repository using Conda:

$ conda install -c conda-forge hydrodata

Contributing

Hydrodata offers some limited analysis tools. It could be more useful for the watershed modeling community to integrate more data exploratory and analysis capabilities to the package. Additionally, adding support for more databases such as water quality, phenology, and water level, are very welcome. If you are interested please get in touch. You can find more information about contributing to Hydrodata at our Contributing webpage.

Credits

This package was created based on the audreyr/cookiecutter-pypackage project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hydrodata-0.8.0.tar.gz (8.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hydrodata-0.8.0-py2.py3-none-any.whl (19.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file hydrodata-0.8.0.tar.gz.

File metadata

  • Download URL: hydrodata-0.8.0.tar.gz
  • Upload date:
  • Size: 8.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for hydrodata-0.8.0.tar.gz
Algorithm Hash digest
SHA256 adcd69e85d31436b8a0c2ee277d1805019a5e14eba0ca00c03124ff0312f0222
MD5 505339ed2e2fcb7dbec22dbc32d01056
BLAKE2b-256 403475b897324cc5c3b4ca3a291117da996fa0cdc3c6db3769817b900103652f

See more details on using hashes here.

File details

Details for the file hydrodata-0.8.0-py2.py3-none-any.whl.

File metadata

  • Download URL: hydrodata-0.8.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for hydrodata-0.8.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9287365ac05cc7e85cc70a478809936dba1b708bd8105756ec42ee5586202902
MD5 ef148fd762e1d6373ad8223d535ae077
BLAKE2b-256 95913e2a07535dd16d48a50e5d946c25c16305f568aa4e6cfbc3ab8447fe240a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page