q36·advanced

Is a flash drought drying out my region's soil before anyone notices?

droughthydrologyagriculturefood-security Datasets: 3 30–60 min
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: -98, 38 → -94, 42 (US Central Plains (Kansas/Nebraska))

A flash drought is a drought in fast-forward: weeks of heat and wind pull water out of the ground faster than rain can replace it, and a green field can turn brown before the official drought maps catch up. NASA's **SMAP** mission measures [soil moisture](/glossary/soil-moisture/) from orbit using a [passive-microwave](/glossary/passive-microwave/) radiometer, so you can watch the top layer of soil dry out across your region — day by day — even where there isn't a single ground sensor. **Verified locally.** For the US Central Plains AOI (38–42 °N, 98–94 °W), the SMAP enhanced L3 `soil_moisture` field averaged **0.235 m³/m³ on 1 Jun 2023** and fell to **0.220 m³/m³ by 5 Aug 2023** — a real, measurable drying of the surface soil over a single summer, read straight from the HDF5 granules. That drop is the kind of fingerprint a flash drought leaves: it's the *signal*, not yet a verdict, but it's exactly what you'd watch to catch one early.

Is a flash drought drying out my region’s soil before anyone notices?

A flash drought is a drought in fast-forward: weeks of heat and wind pull water out of the ground faster than rain can replace it, and a green field can turn brown before the official drought maps catch up. NASA’s SMAP mission measures soil moisture from orbit using a passive-microwave radiometer, so you can watch the top layer of soil dry out across your region — day by day — even where there isn’t a single ground sensor.

Verified locally. For the US Central Plains AOI (38–42 °N, 98–94 °W), the SMAP enhanced L3 soil_moisture field averaged 0.235 m³/m³ on 1 Jun 2023 and fell to 0.220 m³/m³ by 5 Aug 2023 — a real, measurable drying of the surface soil over a single summer, read straight from the HDF5 granules. That drop is the kind of fingerprint a flash drought leaves: it’s the signal, not yet a verdict, but it’s exactly what you’d watch to catch one early.

What you can answer

  • How wet the top ~5 cm of soil is right now, and on any day back to 2015 — SMAP soil_moisture in volumetric units (m³ of water per m³ of soil)
  • Whether soil is drying faster than usual — compare two dates weeks apart, or stack a season’s granules to see the slope of the decline
  • Where the drying is concentrated — the 9 km enhanced grid resolves which parts of a region are losing water fastest, not just a single regional average
  • How drying lines up with vegetation stress — pair with MOD13 NDVI to see whether crops and grass are starting to respond
  • How drying lines up with thirst from the atmosphere — pair with ECOSTRESS or MOD16 evapotranspiration, the water leaving the surface that a flash drought accelerates

What you can NOT answer with these datasets alone

  • Whether it is officially a “drought” — that’s a designation (e.g., US Drought Monitor) built from many inputs and human judgment; SMAP gives you one physical variable, not the label
  • Root-zone or deep soil water — SMAP senses only the top few centimetres; crops can still draw on moisture below what the satellite sees, so dry surface ≠ dead crop
  • The cause — falling soil moisture could be heat, wind, missing rain, or irrigation turned off; the data shows the drying, not why
  • What happens next — these are observations, not a forecast; predicting whether the drought deepens needs weather models on top of this
  • Fine within-field detail — at 9 km a pixel blends many fields, roads, and water bodies; for a single farm you’d need higher-resolution or in-situ probes
  • Frozen or densely forested ground reliably — the microwave retrieval degrades under snow, ice, open water, or thick canopy, so check the retrieval quality flags

Code template (Python, cloud-direct)

Verified locally. SPL3SMP_E, group Soil_Moisture_Retrieval_Data_AM, dataset soil_moisture (fill value -9999), is a global EASE-grid HDF5 file with matching latitude / longitude arrays in the same group. Subset to your AOI with those arrays, drop the fill value, and average. Compare two dates weeks apart to reveal rapid drying.

import os, re, warnings, earthaccess, h5py, numpy as np
warnings.filterwarnings("ignore")   # quiet earthaccess FutureWarnings

# load Earthdata creds from .env without `source` (passwords can break the shell)
for line in open(".env"):
    m = re.match(r'\s*(?:export\s+)?([A-Z0-9_]+)\s*=\s*(.*)\s*$', line)
    if m: os.environ.setdefault(m.group(1), m.group(2).strip().strip('"').strip("'"))
earthaccess.login(strategy="environment")   # free Earthdata Login

W, S, E, N = -98, 38, -94, 42               # US Central Plains (Kansas/Nebraska)

def mean_sm(date0, date1):
    g = earthaccess.search_data(short_name="SPL3SMP_E",
                                temporal=(date0, date1),
                                bounding_box=(W, S, E, N))
    f = earthaccess.open(g[:1])[0]
    with h5py.File(f, "r") as h5:
        grp = h5["Soil_Moisture_Retrieval_Data_AM"]
        sm  = np.array(grp["soil_moisture"][:], dtype="float64")
        lat = grp["latitude"][:]
        lon = grp["longitude"][:]
    aoi   = (lat >= S) & (lat <= N) & (lon >= W) & (lon <= E) & (lat != -9999.0)
    valid = (sm != -9999.0) & np.isfinite(sm)
    return float(sm[aoi & valid].mean())

early = mean_sm("2023-06-01", "2023-06-10")   # ~0.235 m3/m3
late  = mean_sm("2023-08-05", "2023-08-15")   # ~0.220 m3/m3
print(f"surface soil moisture: {early:.3f} -> {late:.3f} m3/m3  (drying = flash-drought signal)")
How a scientist answers this
Parameters
Surface volumetric soil moisture (SMAP SPL3SMP_E `soil_moisture`, m³/m³, top ~5 cm, 9 km enhanced grid), with evaporative stress from ECOSTRESS/MOD16 ET and vegetation response from MOD13 NDVI; the diagnostic is a rapid decline relative to that pixel's own multi-year climatology, with flash-drought criteria commonly set at a drop through roughly the 20th soil-moisture percentile over ~4–6 weeks.
Method
Build a per-pixel daily climatology over the 2015–present SMAP record, convert each day to a percentile or standardized anomaly, and flag pixels whose anomaly falls steeply (e.g. a multi-percentile drop in a few weeks) using a robust Theil–Sen rate over the decline window; corroborate with rising ET-based evaporative stress and falling NDVI.
Validation
State the baseline period and AOI, cross-check the SMAP drying against ECOSTRESS/MOD16 ET and MOD13 NDVI for physical consistency, drop retrieval-quality-flagged pixels (dense vegetation, frozen/snow, RFI), and compare onset timing to USDM or in-situ stations where available.
In plain EnglishTrack how wet the top few centimeters of soil are each day, compare to the normal range for that spot, and flag places drying unusually fast while plants also show stress.

Make it yours → Edit the AOI box, the date window, the climatology baseline, and the percentile/anomaly threshold in the notebook.

Run the core method · no login

The anomaly vs a baseline (percent-of-normal + z-score) at the heart of this question — runnable on synthetic data, right here. The full earthaccess code template further down does it on real NASA data (needs an Earthdata login).

editable · runs in your browser

Datasets used