Short answer

Drought and terrain exposure mapping combines a climate-anomaly signal (how dry is it relative to normal?) with terrain controls (which parts of the landscape feel that dryness most?) to flag where vegetation, soils, and water supply are most exposed. The climate side comes from standardised indices such as SPI and SPEI; the surface side comes from satellite indices like NDVI and NDWI; the terrain side comes from DEM derivatives — aspect, slope, elevation, and a wetness index.

The output is a relative exposure surface for screening and prioritisation. It is not a hydrological drought forecast or a crop-yield model, and it should be read as "where to investigate and monitor", anchored to explicit baselines and dates.

Two questions the map must answer

Drought is an anomaly, not an absolute. A region receiving 200 mm/year is normal for a steppe and catastrophic for a rainforest. So every layer is expressed relative to a baseline, and the map answers two linked questions.

  1. How anomalous is current water supply and demand? — the meteorological/agricultural drought signal.
  2. Which terrain positions amplify or buffer that anomaly? — the exposure modifier.

Keep these separate in the data model. Mixing a climate anomaly and a terrain index into a single number too early hides which factor is driving a hotspot.

The climate signal: SPI and SPEI

The Standardized Precipitation Index (SPI), developed by McKee et al. (1993), fits a long precipitation record (typically 30+ years) to a probability distribution and re-expresses each period as a standard normal deviate. SPI of -1 means roughly the 16th percentile; -2 and below is extreme drought. The accumulation window matters: SPI-3 (three-month) reflects soil-moisture and agricultural drought; SPI-12 reflects reservoir and groundwater drought.

The Standardized Precipitation-Evapotranspiration Index (SPEI) extends SPI by using the climatic water balance, precipitation minus potential evapotranspiration (PET), before standardising. Because PET rises with temperature, SPEI captures drought driven by heat and atmospheric demand that SPI misses. In a warming climate SPEI is usually the better default.

You rarely compute these from scratch. Gridded precipitation comes from CHIRPS (~5 km, 1981-present, good in data-sparse regions) or ERA5 reanalysis; PET can be derived from ERA5 temperature and radiation. Both are available in Google Earth Engine, where you can build SPI/SPEI by ranking each pixel's accumulation against its own historical distribution.

The surface signal: vegetation and moisture indices

Satellite spectral indices show how the surface is actually responding.

  • NDVI = (NIR − Red) / (NIR + Red). Greenness and photosynthetic vigour. A drop below the pixel's seasonal baseline indicates stress. Standardising NDVI into the Vegetation Condition Index, VCI = (NDVI − NDVImin) / (NDVImax − NDVImin), removes the static greenness of a place and isolates the anomaly.
  • NDWI / NDMI = (NIR − SWIR) / (NIR + SWIR) (Gao's formulation). Sensitive to canopy and surface moisture; falls earlier than NDVI as plants dry.
  • Land Surface Temperature anomaly. Stressed, dry surfaces warm; combining warm anomalies with low VCI underpins composite indices like the Vegetation Health Index, VHI = α·VCI + (1−α)·TCI.

MODIS (250-1000 m, daily, long archive) suits regional baselines; Sentinel-2 (10-20 m, 5-day revisit) suits field-scale detail. Always compare against a multi-year baseline for the same season — a single dry image proves nothing without context.

The terrain modifier

Two pixels under identical rainfall can have very different water availability because of terrain. The DEM derivatives that matter:

  • Aspect governs solar load. In the northern hemisphere, south- and southwest-facing slopes receive more insolation, dry faster, and reach higher temperatures. Compute with gdaldem aspect dtm.tif aspect.tif and reclassify into exposure classes (e.g. SW quadrant = high).
  • Slope controls the runoff/infiltration split: steep slopes shed water; gentle slopes retain it.
  • Elevation drives the lapse-rate temperature gradient (~6.5 °C/km) and orographic precipitation patterns.
  • Topographic Wetness Index, TWI = ln(a / tan β), flags convergent low-gradient cells that stay moister and buffer drought.
gdaldem aspect dtm.tif aspect.tif -compute_edges
gdaldem slope  dtm.tif slope.tif  -compute_edges

Reproject the DEM to a projected, metre-based CRS before deriving slope and aspect; geographic-degree grids distort gradients.

Building the composite exposure surface

A defensible screen normalises each input to a common 0-1 (or 1-5) scale, weights them, and sums — but keeps the components retrievable.

  1. Reproject and resample all rasters to a common grid and CRS (gdalwarp -tr 250 250 -r bilinear -t_srs EPSG:32633 in.tif out.tif). Mismatched cell sizes are the most common silent error in multi-criteria overlays.
  2. Rescale: low SPEI → high exposure; low VCI → high exposure; SW aspect and steep slope → high exposure; high TWI → low exposure.
  3. Weight by purpose. A rangeland screen leans on VCI and SPEI-3; a water-supply screen leans on SPEI-12.
  4. Combine with gdal_calc.py or QGIS Raster Calculator, then keep both the composite and each normalised input.
gdal_calc.py -A spei_n.tif -B vci_n.tif -C aspect_n.tif \
  --calc="0.4*A + 0.4*B + 0.2*C" --outfile=drought_exposure.tif

Worked example — rangeland drought triage

For a pastoral district at the end of a dry season: pull MODIS NDVI for the current month and the same month across the prior 15 years from Earth Engine, compute VCI per pixel. Pull CHIRPS and build SPEI-3. Derive aspect and TWI from a 30 m Copernicus DEM. Resample all to 250 m on a UTM grid, normalise, and weight 0.4/0.4/0.2 for SPEI/VCI/terrain. Threshold the top quintile as "high exposure" and intersect with the livestock-watering-point layer in PostGIS (ST_Intersects) to rank which water points sit in the most stressed terrain. The result steers field verification and feed-distribution planning — it does not declare an official drought, which is a government designation.

Drought is multi-faceted — match the index to the type

Hydrologists distinguish several drought types, and a single index rarely captures all of them. Naming the type you are mapping prevents over-claiming.

  • Meteorological drought — a precipitation deficit. SPI-1 to SPI-3 and the raw rainfall anomaly capture it; it responds fastest to rain returning.
  • Agricultural (soil-moisture) drought — root-zone moisture too low for crops/pasture. SPEI-3, VCI, NDMI, and soil-moisture products (e.g. SMAP, ESA CCI) are the relevant signals.
  • Hydrological drought — depleted streamflow, reservoirs, and groundwater. It lags rainfall by months, so SPI-12/SPEI-12 and long-window anomalies fit better than short windows.
  • Socio-economic drought — when supply fails to meet demand. That requires demand and infrastructure data beyond the physical layers here.

A common analytical error is presenting a short-window vegetation anomaly as evidence of water-supply (hydrological) drought; the timescales are wrong. State which type the map represents and which index timescale supports it.

Common pitfalls and why they happen

  • Using SPI where temperature drives the drought. SPI ignores evaporative demand, so it understates heat-driven drought; switch to SPEI.
  • No baseline. A single NDVI scene confuses a naturally sparse landscape with a stressed one. Always anomalise against the same-season multi-year record.
  • Mismatched grids in the overlay. Combining a 5 km CHIRPS pixel with a 30 m DEM without resampling produces blocky, misaligned exposure. Warp everything to one grid first.
  • Aspect on a geographic CRS. Degree-based grids distort slope and aspect; reproject to UTM or an equal-area CRS.
  • Collapsing components too early. Once summed into one number, you cannot tell whether a hotspot is climate- or terrain-driven. Retain the inputs.

Quality checks

  • Validate SPEI hotspots against any available station records or official drought bulletins for the period.
  • Check that NDVI/VCI anomalies coincide with the actual season — a winter-dormant pixel is not a drought signal.
  • Confirm all inputs share CRS, extent, and cell size after warping (gdalinfo).
  • Record the baseline period, accumulation window, satellite source, and dates in the layer metadata.

Bathyl perspective

We build drought exposure as a transparent, weighted overlay where every input — anomaly index, vegetation condition, terrain modifier — stays inspectable. That lets a client see whether a flagged area is dry because of the season, the slope, or both, and turns a static map into something they can monitor as new imagery arrives.

Related reading

Sources