Skip to main content

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.

Metadata

Release files for stormhub 0.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stormhub 0.5.2
File Size Uploaded
stormhub-0.5.2.tar.gz 63.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stormhub 0.5.2
File Interpreter ABI Platform
stormhub-0.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 133.8 kB

Release files / stormhub-0.5.2.tar.gz

Download URL stormhub-0.5.2.tar.gz
Size 63.3 kB
Tags Source
SHA-256 checksum
How to use checksums
01224d3eaa3f36561013765314f05703ed9811070831e463c27b3286c3f348eb
BLAKE2b-256 checksum
How to use checksums
281b2f4107149fdd2a4cf21b0f36ba0e71c2995035c5731c9d1169b9209c02a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Release files / stormhub-0.5.2-py3-none-any.whl

Download URL stormhub-0.5.2-py3-none-any.whl
Size 70.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bedc898b3faf79dbfbf862d4d63792a18866360f716a671a08e6e9db83cf963e
BLAKE2b-256 checksum
How to use checksums
08ba68d559d930d1f006b01ac9e57ba076011fcdaf86e3cd6d4a1938fa9f6b4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Release history Release notifications | RSS feed

This release

0.5.2 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page