Is a drought quietly building across my region before the harvest fails?
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.
35, 2 → 42, 8 (Horn of Africa (S. Ethiopia / N. Kenya))Is a drought quietly building across my region before the harvest fails?
In the Sahel and the Horn of Africa, early drought detection is the difference between a managed shortfall and a famine that displaces millions. The point of this page is to spot the problem before the crop visibly fails — when soil water has already dropped below normal but the fields still look green.
What you can answer
- Whether soil water is below normal for this time of year (FLDAS soil-moisture anomaly vs the 1982–present monthly climatology — this is the famine-early-warning signal).
- How dry the root zone and surface are right now, day by day (SMAP enhanced 9km soil moisture, updated within ~2–3 days of acquisition).
- Whether crops are already under water stress (ECOSTRESS Evaporative Stress Index — ESI near 0 means plants have closed stomata and stopped transpiring, a direct early sign of crop failure).
- Whether the dryness is widespread or patchy by comparing the coarse model field (FLDAS, 0.1°) with the fine ECOSTRESS field (~70m) over the same AOI.
What you can NOT answer with these datasets alone
- Final yield in tonnes — these are biophysical stress indicators, not a crop-yield model. Join with FEWS NET / WRSI or a crop model for that.
- Cause of the dryness (failed rains vs irrigation withdrawal vs heatwave) — needs IMERG precipitation and land-use/irrigation data.
- Sub-field detail every day — ECOSTRESS is high-resolution but revisits irregularly (it flies on the ISS), so you get sharp snapshots, not a daily 70m movie.
- Future rainfall — none of these forecast; they tell you the current and recent state. Pair with a seasonal forecast for outlook.
Code template (Python, cloud-direct, ~35 lines)
import earthaccess
import xarray as xr
import numpy as np
earthaccess.login(strategy="netrc")
# 1. Define AOI + the months that lead up to harvest
aoi = (35.0, 2.0, 42.0, 8.0) # W, S, E, N — Horn of Africa (S. Ethiopia / N. Kenya)
season = ("2024-03-01", "2024-06-30") # long-rains growing season
# 2. SMAP enhanced daily soil moisture (9km) — the "right now" signal
smap = earthaccess.search_data(
short_name="SPL3SMP_E",
bounding_box=aoi,
temporal=season,
)
# ...open the HDF5 'Soil_Moisture_Retrieval_Data_AM/soil_moisture' group,
# subset to AOI, average over space -> daily AOI mean soil moisture
# 3. FLDAS famine-warning land model (monthly 0.1°) — current month + baseline
fldas_now = earthaccess.search_data(
short_name="FLDAS_NOAH01_C_GL_MA",
bounding_box=aoi,
temporal=season,
)
fldas_clim = earthaccess.search_data(
short_name="FLDAS_NOAH01_C_GL_MA",
bounding_box=aoi,
temporal=("1991-01-01", "2020-12-31"), # 30-yr baseline, same calendar months
)
# ...open 'SoilMoi00_10cm_tavg', build the per-month climatology mean & std,
# then anomaly = (this_month - clim_mean) / clim_std (a drought z-score)
# 4. ECOSTRESS ESI (~70m) — confirm crops are actually stressed
esi = earthaccess.search_data(
short_name="ECO_L4T_ESI",
bounding_box=aoi,
temporal=season,
)
# ...open the tiled GeoTIFF, ESI -> 0 = severe stress, ~1 = unstressed
# 5. Verdict: drought building if FLDAS anomaly < -1 sigma AND SMAP trending down
# AND ESI dropping toward 0 across the cropped pixels.
ds = xr.open_dataset(earthaccess.open(fldas_now[:1])[0]) # auth'd cloud-direct read
print("FLDAS top-layer soil moisture:", ds["SoilMoi00_10cm_tavg"].dims)
Expected output
- Map: FLDAS soil-moisture anomaly (z-score) across the AOI for the current month — red where soil water sits more than 1 standard deviation below the 30-year normal.
- Time-series: AOI-mean SMAP daily soil moisture for the growing season overlaid on the prior-year track, so a downward divergence is obvious early.
- Map: ECOSTRESS ESI snapshot over the cropped area — low ESI patches mark fields that have already started shutting down.
- One-line verdict combining the three: “Soil water is N sigma below normal, declining, and crop stress is rising — drought building before harvest.”
Caveats
- SMAP top ~5cm only: it senses the surface, not the deep root zone. Use FLDAS layered soil-moisture for root-zone context; treat SMAP as the fast daily pulse.
- FLDAS is a model, not a measurement: it assimilates rainfall (CHIRPS) and met forcing, so its skill follows the quality of rainfall inputs — sparse-gauge regions are weaker.
- ECOSTRESS revisit is irregular and clouds block the thermal sensor; expect gaps, especially during rains. It confirms stress where you have a clear scene rather than providing continuous coverage.
- Anomaly baseline matters: a drought “below normal” depends entirely on the climatology window you pick — state it explicitly (here 1991–2020).
Cross-DAAC composition
This is a 3-DAAC join: GES DISC (FLDAS) + NSIDC DAAC (SMAP) + LP DAAC (ECOSTRESS). Auth is uniform (Earthdata Login via earthaccess), but the formats differ — FLDAS and SMAP are HDF5/NetCDF on regular grids, while ECOSTRESS ships as tiled GeoTIFFs. Regrid the fine ECOSTRESS field onto the FLDAS grid (or vice versa) before comparing. See recipes/r01-three-daac-composition.mdx for the general pattern.
Sources + further reading
- FEWS NET (Famine Early Warning Systems Network): https://fews.net/
- NASA SMAP mission + SPL3SMP_E product: https://nsidc.org/data/spl3smp_e
- FLDAS at GES DISC (FLDAS_NOAH01_C_GL_MA): https://disc.gsfc.nasa.gov/datasets/FLDAS_NOAH01_C_GL_MA_001/summary
- ECOSTRESS L4 ESI (ECO_L4T_ESI): https://lpdaac.usgs.gov/products/eco_l4t_esiv002/
- FLDAS background (NASA / FEWS NET land data assimilation): https://ldas.gsfc.nasa.gov/fldas
Datasets used
📚 Problem Finder KB
Not yet tracked in the KB.