Checking for non-preferred file/folder path names (may take a long time depending on the number of files/folders) ...
This resource contains some files/folders that have non-preferred characters in their name. Show non-conforming files/folders.
This resource contains content types with files that need to be updated to match with metadata changes. Show content type files that need updating.
| Authors: |
|
|
|---|---|---|
| Owners: |
|
This resource does not have an owner who is an active HydroShare user. Contact CUAHSI (help@cuahsi.org) for information on this resource. |
| Type: | Resource | |
| Storage: | The size of this resource is 177.7 MB | |
| Created: | Jan 29, 2026 at 3:47 a.m. (UTC) | |
| Last updated: | Feb 18, 2026 at 7:36 a.m. (UTC) | |
| Citation: | See how to cite this resource | |
| Content types: | CSV Content |
| Sharing Status: | Public |
|---|---|
| Views: | 165 |
| Downloads: | 42 |
| +1 Votes: | Be the first one to this. |
| Comments: | No comments (yet) |
Abstract
This resource contains daily statistical summaries of reservoir storage conditions for reservoirs in the Reclamation Information Sharing Environment (RISE) network. Data is generated daily by querying the Western Water Data Hub (WWDH) API's Environmental Data Retrieval (EDR) endpoint for the rise-edr collection. Each daily file includes current storage values along with statistical benchmarks (percentiles, mean, standard deviation) calculated from historical data (1990-10-01 to 2020-09-30).
Subject Keywords
Coverage
Spatial
Content
readme.md
Western Reservoir Conditions - Daily Data for Teacup Visualization
This resource contains daily reservoir storage data for the western United States, generated for the WWDH Reservoir Dashboard teacup visualization. It includes both daily CSV files with current conditions and historical parquet files used by the data generation pipeline.
Resource Contents
Daily CSV Files
droughtData{YYYYMMDD}.csv - Daily reservoir conditions with current storage values and historical statistics.
Example: droughtData20260210.csv contains conditions for February 10, 2026.
Backfill CSV Files
backfill_{YYYYMMDD}.csv - Historical data for newly added reservoir locations. Generated automatically when new reservoirs are added to the system. Same schema as daily files with Comment = "backfill".
Historical Parquet Files
| File | Description | Size |
|---|---|---|
historical_baseline.parquet |
Raw daily observations (1990-2020) for all reservoirs | ~50 MB |
historical_statistics.parquet |
Pre-computed day-of-year percentiles and statistics | ~5 MB |
These parquet files are: - Downloaded during Docker build to bundle with the container image - Updated at runtime when new reservoirs are backfilled - Re-uploaded to HydroShare after backfill to persist changes
Data Sources
Current storage values are fetched daily from multiple authoritative sources:
| Source | API | Locations |
|---|---|---|
| RISE (Reclamation Information Sharing Environment) | WWDH EDR API | ~191 reservoirs |
| USACE (U.S. Army Corps of Engineers) | CDA Timeseries API | Cochiti, Abiquiu, Santa Rosa, Grand Coulee, Fort Peck, Lucky Peak |
| USGS (U.S. Geological Survey) | OGC API | Lahontan, Boca, Prosser Creek, Stampede, Cedar Bluff, Upper Klamath |
| CDEC (California Data Exchange Center) | CDEC CSV Servlet | Lake Tahoe |
Elevation-Based Reservoirs
Some reservoirs report water surface elevation instead of storage volume. These are automatically converted to storage using elevation-capacity curves:
| Reservoir | Source | Parameter | Curve Source |
|---|---|---|---|
| Upper Klamath Lake | USGS 11507001 | 72275 (USBR Klamath Basin datum) | 2017 KBAO elevation-capacity curve |
Historical statistics are derived from a 30-water-year baseline period: October 1, 1990 through September 30, 2020.
CSV File Structure
Each CSV contains one row per reservoir location with the following columns:
| Column | Description |
|---|---|
SiteName |
Reservoir display name |
Lat |
Latitude (decimal degrees) |
Lon |
Longitude (decimal degrees) |
State |
U.S. state |
DoiRegion |
Department of the Interior region |
Huc6 |
6-digit Hydrologic Unit Code |
DataUnits |
Units of measurement (typically af for acre-feet) |
DataValue |
Current storage value |
DataDate |
Date of the observation (MM/DD/YYYY) |
DateQueried |
Date the query was executed (MM/DD/YYYY) |
DataDateMax |
Historical maximum for this calendar day |
DataDateP90 |
90th percentile for this calendar day |
DataDateP75 |
75th percentile for this calendar day |
DataDateP50 |
50th percentile (median) for this calendar day |
DataDateP25 |
25th percentile for this calendar day |
DataDateP10 |
10th percentile for this calendar day |
DataDateMin |
Historical minimum for this calendar day |
DataDateAvg |
Historical mean for this calendar day |
DataValuePctMdn |
Current value as ratio of median (DataValue / DataDateP50) |
DataValuePctAvg |
Current value as ratio of average (DataValue / DataDateAvg) |
StatsPeriod |
Historical baseline period (10/1/1990 - 9/30/2020) |
MaxCapacity |
Total storage capacity (acre-feet) |
ActiveCapacity |
Active storage capacity (acre-feet), where available |
PctFull |
Current value as ratio of total capacity (DataValue / MaxCapacity) |
TeacupUrl |
URL to teacup graphic (reserved) |
DataUrl |
API URL used to retrieve the current value |
Comment |
Additional notes (e.g., "backfill" for historical data) |
Empty fields indicate data is not available for that location.
Period of Record
This resource contains daily files from October 1, 1990 to present, covering: - Historical baseline period (1990-10-01 to 2020-09-30): reconstructed from archived data - Recent period (2020-10-01 to present): generated daily from live API feeds
Update Frequency
Daily. The generating script runs 3x daily via GitHub Actions (midnight, 8 AM, and 4 PM Mountain Time). It targets yesterday's date and looks back up to 7 days to find the most recent valid measurement for each reservoir.
Auto-Backfill Process
When new reservoirs are added to the system, the daily script automatically:
1. Detects locations present in configuration but missing from historical baseline
2. Fetches 30 years of historical data from the appropriate source
3. Computes day-of-year statistics (percentiles, means, min/max)
4. Updates the parquet files and uploads them to this HydroShare resource
5. Generates a backfill_{YYYYMMDD}.csv with all historical rows
This allows new reservoirs to be added without manual data processing.
Processing Workflow
Data is generated by rezviz_data_generator.R in the teacup-generator repository:
- Downloads latest parquet files from HydroShare (during Docker build)
- Loads location metadata for all reservoirs from
locations.geojson - Detects new locations and backfills historical data if needed
- Queries each reservoir's data source API for the most recent storage value
- Converts elevation to storage for elevation-based reservoirs
- Joins current values with historical percentiles for the target calendar day
- Computes derived metrics (percent of median, average, and capacity)
- Writes the output CSV and uploads to this HydroShare resource
- Uploads updated parquet files if backfill occurred
The script is containerized via Docker for reproducible daily runs:
bash
docker run --env-file .env ghcr.io/cgs-earth/rezviz:latest # yesterday (default)
docker run --env-file .env ghcr.io/cgs-earth/rezviz:latest 2026-01-15 # specific date
Data Quality Notes
- Lookback window: Current values may lag the target date by up to 7 days if recent data is unavailable from the source API.
- Historical coverage: Reservoirs require 20+ water years of data for reliable statistics. Reservoirs with insufficient historical data will have empty statistical columns.
- Sub-daily sources: USACE returns sub-daily data; the most recent value for the target date is used.
- Elevation conversion: Elevation-based reservoirs use linear interpolation between curve points; values outside the curve range are clamped to min/max.
- Data verification: The
DataUrlcolumn contains the exact API call used, enabling verification of any individual value.
Related Resources
- WWDH Reservoir Dashboard: wwdh.internetofwater.app
- Source Code: github.com/cgs-earth/teacup-generator
- RISE Reservoir Conditions: data.usbr.gov/visualizations/reservoir-conditions
Contact
Kyle Onda, Center for Geospatial Solutions, Lincoln Institute of Land Policy
Related Geospatial Features
This HydroShare resource is linked to the following geospatial features
Learn more about Related Geospatial Features
We highly recommend that you add Spatial Coverage to this resource before searching for related geospatial features. Otherwise query times can be excessive.
| ${value.text} | ${value.text} |
Click a point to search for features that overlap with that location.
Select a feature for more information.
Related Resources
| The content of this resource was created by a related App or software program | https://github.com/cgs-earth/teacup-generator/tree/add-R-workflow/R-workflow |
Credits
Funding Agencies
This resource was created using funding from the following sources:
| Agency Name | Award Title | Award Number |
|---|---|---|
| United States Bureau of Reclamation | None | None |
Contributors
People or Organizations that contributed technically, materially, financially, or provided general support for the creation of the resource's content but are not considered authors.
| Name | Organization | Address | Phone | Author Identifiers |
|---|---|---|---|---|
| Kyle Onda | Internet of Water;Center for Geospatial Solutions;Lincoln Institute of Land Policy | North Carolina, US |
How to Cite
This resource is shared under the Creative Commons Attribution CC BY.
http://creativecommons.org/licenses/by/4.0/
Comments
There are currently no comments
New Comment