2imi9/OlmoEarth-v1-Chesapeake-Bay-Nutrient-Loads
OlmoEarth-v1-Chesapeake-Bay-Nutrient-Loads Annual and monthly water-quality loads (Total Nitrogen, Total Phosphorus, Suspended Sediment) at 121 USGS Nontidal Network monitoring stations across the Chesapeake Bay watershed (2014–2023). Built for use with OlmoEarth-v1-Base embeddings + classical regression, with optional fine-tuning support via quantile-binned classes. 14,166 monthly records · 1,208 annual records · 121 stations · 118 watershed polygons · 6 sub-basins · 4… See the full description on the dataset page: https://huggingface.co/datasets/2imi9/OlmoEarth-v1-Chesapeake-Bay-Nutrient-Loads.
OlmoEarth-v1-Chesapeake-Bay-Nutrient-Loads
Annual and monthly water-quality loads (Total Nitrogen, Total Phosphorus, Suspended Sediment) at 121 USGS Nontidal Network monitoring stations across the Chesapeake Bay watershed (2014–2023). Built for use with OlmoEarth-v1-Base embeddings + classical regression, with optional fine-tuning support via quantile-binned classes.
14,166 monthly records · 1,208 annual records · 121 stations · 118 watershed polygons · 6 sub-basins · 4 equal-frequency classes
v4 (April 2026) structural fixes:
- Replaced bbox AOIs with USGS NLDI contributing-area polygons (one per station, 118/121 with valid upstream basin)
- Re-binned categories using equal-frequency quartiles per metric (was watershed-relative quantiles → produced majority-class bias)
- Added predefined
spatial_fold(leave-one-sub-basin-out) andrandom_foldcolumns for honest cross-validation
Quick Start
Two formats are provided for two upload paths:
Option A — OlmoEarth Studio Web UI (studio/import_*.json)
Upload one metric at a time (TN, TP, or Sediment). Studio auto-detects sample_category, sample_number, sample_true_false.
import json
with open("studio/import_tn.json") as f:
data = json.load(f)Option B — Pipeline / rslearn (rslearn/*_features.geojson)
For direct use with olmoearth_run prepare_labeled_windows or any rslearn-compatible workflow.
import json
with open("rslearn/tn_features.geojson") as f:
annotations = json.load(f)
with open("rslearn/annotation_task_features.geojson") as f:
tasks = json.load(f)Files
Schemas
rslearn classification (rslearn/*_features.geojson)
{
"type": "Feature",
"geometry": {"type": "Point", "coordinates": [lon, lat]},
"properties": {
"oe_labels": {"category": 0},
"oe_start_time": "2014-01-01 00:00:00+00:00",
"oe_end_time": "2014-01-31 00:00:00+00:00",
"oe_annotations_task_id": "uuid",
"STAID": "01491000",
"metric": "tn_load",
"year": 2014,
"month": 1,
"value": 88.1,
"flow_normalized": true,
"class_name": "reference_baseline"
}
}Studio import schema (studio/import_*.json)
{
"type": "Feature",
"geometry": {"type": "Point", "coordinates": [lon, lat]},
"properties": {
"task_name": "patuxent_choptank",
"observation_time": "2014-01-01T00:00:00Z",
"sample_category": "reference_baseline",
"sample_number": 88.1,
"sample_true_false": true
}
}Field mapping:
sample_category→ 4-category label (reference_baseline,low_stress,moderate,high_stress)sample_number→ continuous load value (regression target)sample_true_false→ flow-normalized flag
These names are required for Studio's auto-detection of training fields.
Categories
Quantile-binned per metric. reference_baseline (bottom 10%) serves as the negative reference.
Counts shown are monthly across all three metrics combined.
AOI Sub-basins
Six sub-basin bbox AOIs covering the Chesapeake watershed.
Studio Configuration
Upload tip: Studio auto-locks sample_number range based on the first upload. Loosen to 0–100M before uploading a second metric, OR use one Studio project per metric.
Caveats
- Class boundaries are watershed-relative quantiles, not absolute thresholds. A
high_stressload in one basin may differ in absolute magnitude from another. - Bbox AOIs, not actual watershed polygons. Adequate for windowing imagery; replace with HUC-8 shapes for production-grade analysis.
- Reference_baseline is value-based, not site-based — marks low-load observations, not pristine reference watersheds.
- Monthly granularity is a scaled format; the case study specifies annual scale, so
data_annual.parquetis the primary doc-compliant deliverable. - Flow-normalized vs raw loads — flag in
*_flow_normcolumns indicates which.
Sources
All data is public domain.
- USGS Chesapeake Bay Loads & Trends — Annual Loads Table and Monthly Loads Table (2024 release, filtered to 2014–2023)
- USGS NWIS — Station metadata via waterservices.usgs.gov
- Chesapeake Bay Program Data Hub — datahub.chesapeakebay.net (NTN reference)
Related
- allenai/OlmoEarth-v1-Base
- olmoearth_projects
- rslearn
- OlmoEarth Studio docs
- 2imi9/OlmoEarth-v1-FT-Karst-Groundwater-Base — sister dataset (PA karst FT)
- 2imi9/OlmoEarth-v1-Potomac-Sewage-Spill-2026 — sister dataset (event reference)
Citation
@dataset{qi2026chesbay,
author = {Qi, Ziming and BAI Group},
title = {OlmoEarth-v1-Chesapeake-Bay-Nutrient-Loads: Analysis-Ready Loads Dataset for GeoAI Modeling},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/datasets/2imi9/OlmoEarth-v1-Chesapeake-Bay-Nutrient-Loads}
}License
Apache 2.0. USGS source data are public domain.
