Skip to main content

Create catalogs, data, and metadata for hydrologic modeling in the cloud.

Project description

StormHub

CI Documentation Status Release PyPI version

StormHub is an open-source Python library designed to access and process publicly available hydrometeorological data to create catalogs, metadata, and data products for hydrologic modeling. This project automates the generation of STAC catalogs from storm and stream gage data, enabling improved analysis and simulation for flood studies and stochastic storm transposition (SST). StormHub aims to follow the principles of FAIR (Findable, Accessible, Interoperable, and Reusable) practices, ensuring that all catalogs can be easily reproduced, shared, published, and integrated into broader workflows.

Overview

StormHub consists of two primary modules, with a focus on storm data and stream gage metadata:

1. Storm Transposition Module

This module extends the work of RainyDay2 developed by Daniel Wright's Hydroclimate Extremes Research group at the University of Wisconsin-Madison. It allows users to perform stochastic storm transposition (SST) by systematically shifting a watershed over a predefined transposition region and summing precipitation from existing datasets.

Key Features:

  • Uses the recently published AORC hourly 1km gridded precipitation dataset.
  • Sums precipitation over a time slice (e.g., 72 hours).
  • Generates a catalog ranking storms by mean precipitation over the transposition region.
  • Filters storms that exceed a minimum precipitation threshold.
  • Stores qualified storms as STAC items with metadata, including:
    • Storm statistics (e.g., total precipitation, duration).
    • Centroid location of the watershed at the point of maximum mean precipitation.
  • Links to associated watershed and transposition region STAC items.
  • Supports creation of DSS files (hourly gridded) for use in HEC-HMS for hydrologic modeling.

Note on hec-dss: To export gridded time series data from xarray to hecdss, hec-dss-python is required. Please visit the repo for details and installation instructions.

2. USGS Gage Catalog Module

This module creates a STAC catalog of USGS stream gages, including frequency analysis data and metadata notes providing a moment in time copy of historic observations.

The catalog stores USGS gage items with:

  • Frequency data as assets.
  • Metadata and plots supporting flood frequency analysis.
  • Links to related datasets for direct comparison within SST workflows.

STAC Server

StormHub includes an HTTP server that serves STAC items locally, allowing users to visualize and explore catalogs for both storms and stream gages. The server integrates with Radiant Earth's STAC Browser for seamless data viewing.

FAIR Data Sharing and Publishing

StormHub facilitates FAIR data principles by enabling:

  • Exporting catalogs as zip files for easy sharing and archiving.
  • Publishing STAC items directly to a STAC API.
  • Copying catalogs and metadata to cloud blob stores for scalable access and distribution.

Installation

# Using pip
pip install stormhub

# From source: Clone the repository
git clone https://github.com/dewberry/stormhub.git

# Navigate to the project directory
cd stormhub

# Install the package
pip install -e .

Usage

See the User Guide.

Sources and References

  • AORC Dataset - 1km hourly gridded precipitation data, available through NOAA.
  • RainyDay2 - Stochastic Storm Transposition framework by the Hydroclimate Extremes Research Group
  • USGS Stream Gage Data - Accessed via NWIS API.

Output

  • STAC Catalogs for storm and gage data.
  • DSS Files for hydrologic modeling.
  • JSON metadata files for integration with existing geospatial workflows.

Attribution

This project builds on the work of Daniel Wright's RainyDay2 and leverages publicly available datasets from NOAA and USGS.

License

StormHub is licensed under the MIT License. See LICENSE for more information.

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

stormhub-0.2.0.tar.gz (40.1 kB view details)

Uploaded Source

Built Distribution

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

stormhub-0.2.0-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

Details for the file stormhub-0.2.0.tar.gz.

File metadata

  • Download URL: stormhub-0.2.0.tar.gz
  • Upload date:
  • Size: 40.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for stormhub-0.2.0.tar.gz
Algorithm Hash digest
SHA256 92d8cdd4d606289ba44c65a2eb1d2c9c8a492277daabc32adc90d0c4ea5653d1
MD5 79a403123f0988e2e00f5aee56360201
BLAKE2b-256 098cc7d11c3b598816391f46efff2053d814740455cd95dbb8452cc379778fa3

See more details on using hashes here.

File details

Details for the file stormhub-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: stormhub-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 43.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for stormhub-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6c5292730714e908d1a728d642067bace91de9dd08e8a76da0d63cae71b9ba4
MD5 fe1f6165470174ca1d9d73d9c2c63e08
BLAKE2b-256 aa1a0be8c3904d9233d02ef7b2ea0fd79ea11377a2e4d551932ffd4c8265d3e6

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