CoolFace
Datasetpublic

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.

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes156downloads
Dataset Card

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) and random_fold columns 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.

python
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.

python
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

PathRecordsPurpose
data.parquet14,166Monthly wide-format master (equal-freq classes + cv_fold cols)
data_annual.parquet1,208Annual wide-format (doc-spec primary)
stations.geojson121NTN station points + summary stats
watersheds.geojson118NLDI contributing-area polygons per station (replaces bbox AOIs)
predefined_splits/spatial_loo.csv121Per-station spatial_fold (0-5) + random_fold for CV
tabular/loads_wide.csv14,166Monthly CSV mirror
tabular/loads_wide_annual.csv1,208Annual CSV mirror
tabular/loads_long.csv39,699Long format (one row per station-month-metric)
rslearn/{tn,tp,sediment}_features.geojson~13K eachClassification labels (oe_labels.category 0–3), monthly
rslearn/{tn,tp,sediment}_regression.geojson~13K eachRegression labels (oe_labels.value), monthly
rslearn/{tn,tp,sediment}_features_annual.geojson~1.1K eachAnnual classification
rslearn/{tn,tp,sediment}_regression_annual.geojson~1.1K eachAnnual regression
rslearn/annotation_task_features.geojson6 polygonsSub-basin AOI bboxes
studio/import_{tn,tp,sediment}.{geojson,json}~13K eachStudio Web UI format, monthly
studio/import_{tn,tp,sediment}_annual.{geojson,json}~1.1K eachStudio Web UI format, annual
audit_output/ASSESSMENT.md—Criteria audit

Schemas

rslearn classification (rslearn/*_features.geojson)

json
{
  "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)

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.

IDTagRangeCount%
0reference_baselinebottom 10%3,98210.0%
1low_stress10–25%5,94915.0%
2moderate25–75%19,84850.0%
3high_stresstop 25%9,92025.0%

Counts shown are monthly across all three metrics combined.


AOI Sub-basins

Sub-basinLongitudeStations
susquehanna-78.5 to -74.860
potomac-79.5 to -76.626
james-81.3 to -75.914
rappahannock-78.3 to -76.26
york-78.4 to -76.26
patuxent_choptank-77.4 to -75.59

Six sub-basin bbox AOIs covering the Chesapeake watershed.


Studio Configuration

SettingValue
Data sourcesSentinel-1 (VV/VH) + Sentinel-2 (12 bands)
Time range2014-01-01 to 2023-12-31
GranularityMonthly (primary) / Annual (doc-spec)
Train / val splitSpatial leave-out by sub-basin recommended
sample_number rangeSet to 0 – 100,000,000 when uploading multiple metrics

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_stress load 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.parquet is the primary doc-compliant deliverable.
  • —Flow-normalized vs raw loads — flag in *_flow_norm columns indicates which.

Sources

All data is public domain.

Related

Citation

bibtex
@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.