q13·intermediate

Was this region flooded after a recent storm?

hydrologydisaster-responsewater-extent Datasets: 6 1–6 hours (real disaster response timing)
Find the data for your area

Draw a rectangle to pick your area of interest, then see what NASA data covers it (live, here in your browser) or download a ready-to-run notebook with your AOI pre-filled. The notebook runs in any Python environment — it needs a free Earthdata Login to fetch the data.

Current AOI: -83, 35 → -82, 36 (Asheville NC (Hurricane Helene zone))

Was this region flooded after a recent storm?

What you can answer

  • Flood-water extent within 24-48 hours after a storm (Sentinel-1 SAR penetrates cloud)
  • Pre vs post comparison to isolate new water from baseline rivers/lakes
  • Total rainfall accumulation during the storm event (IMERG)
  • Antecedent saturation that primed the flood (LIS / SMAP)
  • Affected infrastructure when overlaid with OSM roads/buildings

What you can NOT answer with these alone

  • Real-time flood depth without combining with DEM + hydraulic model (try HEC-RAS or DELWAQ external)
  • Building-by-building damage without commercial high-res imagery (Planet, Maxar)
  • Subsurface flooding (basements, tunnels) — purely satellite-invisible

Code template

import earthaccess
import xarray as xr
import numpy as np

earthaccess.login(strategy="netrc")

# Hurricane Helene impact in Asheville, NC, late September 2024
storm_aoi = (-83, 35, -82, 36)
pre_window = ("2024-09-15", "2024-09-25")  # before
post_window = ("2024-09-27", "2024-10-05")  # right after

# 1. OPERA RTC-S1 — analysis-ready Sentinel-1 (avoids raw GRD complexity)
post_sar = earthaccess.search_data(short_name="OPERA_L2_RTC-S1_V1",
                                   bounding_box=storm_aoi, temporal=post_window)
pre_sar = earthaccess.search_data(short_name="OPERA_L2_RTC-S1_V1",
                                  bounding_box=storm_aoi, temporal=pre_window)

# Open as COG, take VV polarization, log-scale dB
# Flood-water mask: VV < -20 dB (smooth water is radar-dark)
# Difference: post < -20 dB AND pre > -15 dB → new water = flood extent

# 2. IMERG rainfall accumulation
imerg = earthaccess.search_data(short_name="GPM_3IMERGHHL",  # late run, NRT-ish
                                 bounding_box=storm_aoi,
                                 temporal=("2024-09-25", "2024-09-28"))
# Sum precipitation_cal over the storm period → mm total

# 3. Plot:
#    - Flood-extent polygon overlaid on basemap
#    - Rainfall accumulation contours
#    - Statistics: total flooded area + max rainfall

Expected output

  • Flood-extent map: new-water pixels (blue) overlaid on basemap
  • Rainfall map: storm-total precipitation contours
  • Statistics: flooded area (km²); maximum rainfall (mm); pre-storm saturation
  • Quick-look HLS RGB if any cloud-free scenes exist (rare during storms)

Caveats

  • SAR is sensitive to surface roughness, not depth. Smooth water (dB below -20) looks like flood; rough surfaces (vegetation, urban) confuse retrievals.
  • Urban flooding is poorly captured by SAR alone — buildings give corner reflections that don’t darken with water.
  • Sentinel-1 revisit is 12 days (single sat) — if a flood happens mid-cycle, you may miss the peak. Pair with commercial SAR (ICEYE, Capella) for better revisit.
  • OPERA RTC-S1 is the recommended starting point — raw GRD requires SAR expertise.
  • Compare to pre-event baseline — perennial water bodies show as “flooded” otherwise.

Cross-DAAC composition

ASF DAAC (Sentinel-1/OPERA) + GES DISC (IMERG) + GHRC DAAC (LIS) + LP DAAC (HLS optional) — four DAACs, uniform Earthdata Login.

Sources

Datasets used

📚 Problem Finder KB

1 matching entry in the Knowledge Base:

§14 Glossary
OPERA
Observational Products for End-Users from Remote-sensing Analysis (NASA JPL) — incl. the **DISP-S1** surface-displacement (InSAR) product suite