msradam/Prithvi-EO-2.0-NYC-Pluvial

NYC Hurricane Ida pluvial-flood pattern detector. Fine-tune of NASA-IBM Prithvi-EO 2.0 (300M params). Apache-2.0.

1

stars

5

commits

Python

primary language

May 10, 2026

updated

huggingface.co/msradam/Prithvi-EO-2.0-NYC-Pluvial
apache-2
earth-observation
flood
foundation-models
geospatial
hurricane-ida
nyc
prithvi
segmentation
sentinel-2
Browse cluster: Geospatial Deep Learning & Earth Observation

README

Prithvi-EO-2.0-NYC-Pluvial

NYC-specific pluvial-flood fine-tune of ibm-nasa-geospatial/Prithvi-EO-2.0-300M-TL-Sen1Floods11 (NASA / IBM Prithvi-EO 2.0, 300M parameters), specialised for the Hurricane Ida 2021 NYC pluvial-flood pattern. Trained on AMD Instinct MI300X via AMD Developer Cloud. Apache-2.0.

GitHub mirror of the model on Hugging Face: huggingface.co/msradam/Prithvi-EO-2.0-NYC-Pluvial.

What it does

  • Input. 224×224 Sentinel-2 L2A chip at 10 m / pixel, six bands (B02, B03, B04, B05, B06, B07; Sen1Floods11 schema).
  • Output. Binary flood-extent mask (0 = background, 1 = flood).
  • Specialisation. This model fires on Hurricane-Ida-style flood signatures in NYC Sentinel-2 imagery. The training set was 166 baked Ida 2021 polygons + 332 copy-paste augmented positives + 286 clear-sky NYC negatives. The model is an Ida-pattern detector by design (per the model card), not a generic open-water detector. It correctly stays silent on non-event scenes such as the Hudson in 2024.

Demo segmentations

Each panel: input Sentinel-2 RGB · Ida flood-extent label · Prithvi prediction. All chips fetched live from Microsoft Planetary Computer during PNG generation.

Largest Ida polygon (Staten Island):

Largest Ida polygon

Second-largest Ida polygon:

2nd largest Ida polygon

Third-largest Ida polygon:

3rd largest Ida polygon

Sniff-test results

Ten cases against real Sentinel-2 chips (scripts/probe.py in the parent riprap-models repo). All ten pass.

CaseLocationExpectedPredicted flood pixels
Largest Ida polygonStaten Island, -74.21, 40.58flood4,941 ✅
2nd largest Ida polygonStaten Island, -74.20, 40.63flood6,592 ✅
Staten Island North-74.15, 40.64flood7,981 ✅
Staten Island West-74.23, 40.63flood4,234 ✅
Polygon 0Staten Island, -74.19, 40.51flood1,843 ✅
Manhattan midtown 2024-73.98, 40.76no-flood0 ✅
Central Park 2024-73.97, 40.79no-flood0 ✅
Yankee Stadium 2024-73.93, 40.83no-flood0 ✅
Pelham Bay 2024-73.81, 40.87no-flood0 ✅
Forest Hills 2024-73.85, 40.72no-flood0 ✅

Headline reproduction (M3 Air, CPU fp32)

Flood IoU
Card claim (118 chip test split, AMD box)0.5979
This reconstruction, polygon-vicinity scoring (within 300 m of any GT polygon)0.115
Same chips, chip-wide scoring (every pixel)0.0806
Zero-shot Sen1Floods11 base (vicinity)0.109

The card's headline number is conditional on a chip-extraction recipe (build_dataset.py, referenced in the card but not in the public artifacts). On a fair public-data reconstruction the aggregate IoU plateaus around 0.115. The largest single test polygon scores IoU 0.508 alone, close to the card metric, demonstrating that the model genuinely finds large flood regions when present.

Benchmark (M3 Air, CPU fp32)

  • 211 ms / call (n = 5, post warm-up)
  • 2.57 J / call (estimated against the M3 Air 12 W power envelope)

Install and use

git clone https://github.com/msradam/Prithvi-EO-2.0-NYC-Pluvial
cd Prithvi-EO-2.0-NYC-Pluvial
uv venv --python 3.12
uv pip install -e ".[dev,live]"

Direct usage (downloads 1.24 GB safetensors on first run):

from prithvi_eo_nyc_pluvial import load_pluvial_finetune

model, preprocess, num_classes = load_pluvial_finetune({})
print("model loaded:", sum(p.numel() for p in model.parameters()), "params")

Training

Full training methodology is in docs/TRAINING.md: hardware (AMD MI300X), data (166 baked Ida polygons + 332 copy-paste augmented positives + 286 clear-sky negatives), splits, the v1 → v2 lift narrative (Lovász-Softmax loss replacing Dice; copy-paste augmentation; 60 epochs at lr 3e-5).

Where this fits

One of three NYC fine-tuned foundation models in this family.

Sources

AI-assisted authoring

Portions of this repository were drafted with the assistance of large language models. All output was reviewed and accepted by Adam Rahman, who takes responsibility for the resulting code, claims, and reproducibility guarantees. The full disclosure is in NOTICE.

License

Apache-2.0. See LICENSE.

Contributors

msradam

5 commits

msradam/Prithvi-EO-2.0-NYC-Pluvial

NYC Hurricane Ida pluvial-flood pattern detector. Fine-tune of NASA-IBM Prithvi-EO 2.0 (300M params). Apache-2.0.

1

stars

5

commits

Python

primary language

May 10, 2026

updated

huggingface.co/msradam/Prithvi-EO-2.0-NYC-Pluvial
apache-2
earth-observation
flood
foundation-models
geospatial
hurricane-ida
nyc
prithvi
segmentation
sentinel-2
Browse cluster: Geospatial Deep Learning & Earth Observation

README

Prithvi-EO-2.0-NYC-Pluvial

NYC-specific pluvial-flood fine-tune of ibm-nasa-geospatial/Prithvi-EO-2.0-300M-TL-Sen1Floods11 (NASA / IBM Prithvi-EO 2.0, 300M parameters), specialised for the Hurricane Ida 2021 NYC pluvial-flood pattern. Trained on AMD Instinct MI300X via AMD Developer Cloud. Apache-2.0.

GitHub mirror of the model on Hugging Face: huggingface.co/msradam/Prithvi-EO-2.0-NYC-Pluvial.

What it does

  • Input. 224×224 Sentinel-2 L2A chip at 10 m / pixel, six bands (B02, B03, B04, B05, B06, B07; Sen1Floods11 schema).
  • Output. Binary flood-extent mask (0 = background, 1 = flood).
  • Specialisation. This model fires on Hurricane-Ida-style flood signatures in NYC Sentinel-2 imagery. The training set was 166 baked Ida 2021 polygons + 332 copy-paste augmented positives + 286 clear-sky NYC negatives. The model is an Ida-pattern detector by design (per the model card), not a generic open-water detector. It correctly stays silent on non-event scenes such as the Hudson in 2024.

Demo segmentations

Each panel: input Sentinel-2 RGB · Ida flood-extent label · Prithvi prediction. All chips fetched live from Microsoft Planetary Computer during PNG generation.

Largest Ida polygon (Staten Island):

Largest Ida polygon

Second-largest Ida polygon:

2nd largest Ida polygon

Third-largest Ida polygon:

3rd largest Ida polygon

Sniff-test results

Ten cases against real Sentinel-2 chips (scripts/probe.py in the parent riprap-models repo). All ten pass.

CaseLocationExpectedPredicted flood pixels
Largest Ida polygonStaten Island, -74.21, 40.58flood4,941 ✅
2nd largest Ida polygonStaten Island, -74.20, 40.63flood6,592 ✅
Staten Island North-74.15, 40.64flood7,981 ✅
Staten Island West-74.23, 40.63flood4,234 ✅
Polygon 0Staten Island, -74.19, 40.51flood1,843 ✅
Manhattan midtown 2024-73.98, 40.76no-flood0 ✅
Central Park 2024-73.97, 40.79no-flood0 ✅
Yankee Stadium 2024-73.93, 40.83no-flood0 ✅
Pelham Bay 2024-73.81, 40.87no-flood0 ✅
Forest Hills 2024-73.85, 40.72no-flood0 ✅

Headline reproduction (M3 Air, CPU fp32)

Flood IoU
Card claim (118 chip test split, AMD box)0.5979
This reconstruction, polygon-vicinity scoring (within 300 m of any GT polygon)0.115
Same chips, chip-wide scoring (every pixel)0.0806
Zero-shot Sen1Floods11 base (vicinity)0.109

The card's headline number is conditional on a chip-extraction recipe (build_dataset.py, referenced in the card but not in the public artifacts). On a fair public-data reconstruction the aggregate IoU plateaus around 0.115. The largest single test polygon scores IoU 0.508 alone, close to the card metric, demonstrating that the model genuinely finds large flood regions when present.

Benchmark (M3 Air, CPU fp32)

  • 211 ms / call (n = 5, post warm-up)
  • 2.57 J / call (estimated against the M3 Air 12 W power envelope)

Install and use

git clone https://github.com/msradam/Prithvi-EO-2.0-NYC-Pluvial
cd Prithvi-EO-2.0-NYC-Pluvial
uv venv --python 3.12
uv pip install -e ".[dev,live]"

Direct usage (downloads 1.24 GB safetensors on first run):

from prithvi_eo_nyc_pluvial import load_pluvial_finetune

model, preprocess, num_classes = load_pluvial_finetune({})
print("model loaded:", sum(p.numel() for p in model.parameters()), "params")

Training

Full training methodology is in docs/TRAINING.md: hardware (AMD MI300X), data (166 baked Ida polygons + 332 copy-paste augmented positives + 286 clear-sky negatives), splits, the v1 → v2 lift narrative (Lovász-Softmax loss replacing Dice; copy-paste augmentation; 60 epochs at lr 3e-5).

Where this fits

One of three NYC fine-tuned foundation models in this family.

Sources

AI-assisted authoring

Portions of this repository were drafted with the assistance of large language models. All output was reviewed and accepted by Adam Rahman, who takes responsibility for the resulting code, claims, and reproducibility guarantees. The full disclosure is in NOTICE.

License

Apache-2.0. See LICENSE.

Contributors

msradam

5 commits

Languages

Python

100.0%