t.spei - Computes an EDO/EFFIS-style monthly SPEI drought-monitoring STRDS from precipitation and min/max temperature (via t.in.era5 if not already present), using Hargreaves PET and a log-logistic fit.
Also produce a classified STRDS per scale (_speiclass) using the 7-class McKee (1993) drought severity scheme
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--ui
Force launching GUI dialog
Parameters:
start=string[required]
Start date of the output monitoring period, YYYY-MM-DD
end=string[required]
End date of the output monitoring period, YYYY-MM-DD (inclusive)
fit_start=string
Start of the climatological calibration period used to fit the log-logistic distribution (default: 1991-01-01, the current WMO 30-year normal start)
Default: 1991-01-01
fit_end=string
End of the climatological calibration period (default: 2020-12-31, the current WMO 30-year normal end)
Default: 2020-12-31
scales=integer[,integer,...]
Accumulation scales in months (SPEI-1/3/6/12); SPEI-3 is the scale most commonly used as an EFFIS fire-risk/fuel-dryness input -- other EDO scales (2,9,24,48) can be added here
Default: 1,3,6,12
region=name
Named region to process into (g.region region=); default is the current computational region
precipitation=name
Existing precipitation STRDS (mm per day); if not given, imported via t.in.era5
temperature_min=name
Existing daily minimum 2m temperature STRDS (deg C); if not given, imported via t.in.era5
temperature_max=name
Existing daily maximum 2m temperature STRDS (deg C); if not given, imported via t.in.era5
pet=name
Existing potential evapotranspiration STRDS (mm per day), e.g. ERA5-Land's own potential_evaporation. If given, used directly for the water balance instead of computing Hargreaves PET, and temperature_min=/temperature_max= are not needed. Not fetched automatically -- EDO's own methodology uses Hargreaves, not a reanalysis model's internal PET (see NOTES in t.spei.md); this is an override for callers who already have a PET series and want to skip Hargreaves.
output_prefix=string[required]
STRDS name prefix; continuous output is <output_prefix>_spei<scale>, classified output (if -c) is <output_prefix>_speiclass<scale>
Default: spei
cache_dir=name
Directory to cache t.in.era5 downloads in (only used when precipitation=/temperature_min=/temperature_max= are not given); default a temporary directory
area=north,west,south,east
Bounding box in WGS84 degrees for t.in.era5 downloads (only used when the ERA5 inputs are not already given); default derived from the region
t.spei computes monthly SPEI at one or more accumulation
scales and registers each <output_prefix>_spei<scale>
result as its own space-time raster dataset (STRDS), e.g.
spei_spei3, spei_spei12, following the methodology
used by JRC's European Drought Observatory (EDO) for the SPEI layers
shown in the Copernicus EFFIS (European Forest Fire Information
System) drought/fire-risk viewer:
Precipitation and reference evapotranspiration are aggregated to
monthly totals.
Reference evapotranspiration (PET) is computed with the
Hargreaves-Samani equation (FAO56 eq. 52) from monthly mean
min/max 2m temperature and extraterrestrial radiation -- not
taken from ERA5's own potential_evaporation field, so the
water balance does not depend on ERA5's internal PET/land-surface
parameterization and needs only temperature, the same minimal-input
approach EDO uses for its gridded, reanalysis-driven SPEI.
The water balance (precipitation minus PET) is accumulated over a
rolling window of scales= months and fit, per calendar month,
to a 3-parameter log-logistic distribution using the unbiased
probability-weighted-moments (ub-pwm) estimator of
Vicente-Serrano et al. (2010) -- the standard SPEI reference method
(same fit used by the R SPEI package's parglo(), and
by the t.drought addon's generic SPEI
implementation).
The fit is calibrated against a fixed climatological reference
period (fit_start=/fit_end=, default the current WMO
30-year normal, 1991-2020) independent of the output monitoring period
(start=/end=), then applied to every output month to
produce a standard-normal z-score.
With -c, each z-score is additionally classified into the
7-class McKee (1993) drought severity scheme used across SPI/SPEI
drought monitoring products including EDO/EFFIS (extremely dry ...
extremely wet), with category labels and a diverging red-white-blue
color table applied.
If precipitation=, temperature_min= and
temperature_max= are not given, the required STRDS are imported
automatically via t.in.era5 -- pulling
exactly the date range needed (the requested period, extended back far
enough to cover the largest accumulation scale, and the calibration/
reference period if it extends further back).
SPEI-3 (3-month accumulation) is the scale most commonly used as
a fuel-dryness/fire-risk input in EFFIS-style monitoring; other EDO
scales (e.g. 2, 9, 24, 48 months) can be requested via scales=.
temperature_min=/temperature_max= are auto-imported via
t.in.era5 if omitted, and are not needed at all if pet= is
given.
pet= is an existing potential evapotranspiration STRDS
(mm/day), e.g. an already-imported ERA5-Land
potential_evaporation STRDS. If given, it is used directly
for the water balance instead of computing Hargreaves PET, and
temperature_min=/temperature_max= are ignored. Unlike
precipitation/temperature, pet= is never auto-fetched
-- EDO's own SPEI methodology uses Hargreaves, not a reanalysis
model's internal PET (see NOTES below); it exists purely as an
override for callers who already have a PET series and want to bypass
Hargreaves. Not giving pet= and not being able to resolve both
temperature STRDS is a fatal error -- there is no third fallback.
Monthly SPEI-1/3/6/12 over Portugal for the 2022-2023 fire seasons,
calibrated against the 1991-2020 WMO normal, importing ERA5 data
automatically, with classified output:
The Hargreaves PET / log-logistic-fit / monthly-aggregation /
30-year-normal-calibration combination reproduces the standard, widely
documented SPEI methodology (Vicente-Serrano et al. 2010) with the
minimal-input PET formulation EDO's technical documentation describes
using for its gridded, reanalysis-driven SPEI product. The
classification color table is the standard ColorBrewer RdBu-7
diverging ramp used broadly for SPI/SPEI mapping; it has not been
cross-checked pixel-for-pixel against EDO's own portal styling, so
treat exact hues as illustrative rather than a guaranteed visual match
to the live EFFIS/EDO viewer.
Unlike t.drought, the aggregation level is fixed to
monthly (EDO's SPEI convention) rather than configurable, and only
SPEI (not SPI) is computed -- this module trades t.drought's
generality for a ready-to-use EDO/EFFIS-shaped default. Use
t.drought directly if you need SPI, non-monthly aggregation,
or ERA5's own PET field instead of Hargreaves.
GRASS GIS with the temporal framework (t.create,
t.register, t.rast.list) and r.latlong
numpy, scipy
t.in.era5 installed, if
precipitation=/temperature_min=/temperature_max=
are not given (plus its own requirements: cdsapi,
xarray, GDAL Python bindings, and a ~/.cdsapirc)
Vicente-Serrano, S.M., Begueria, S., Lopez-Moreno, J.I. (2010).
A Multiscalar Drought Index Sensitive to Global Warming: The
Standardized Precipitation Evapotranspiration Index. Journal of
Climate, 23(7), 1696-1718.
Allen, R.G., Pereira, L.S., Raes, D., Smith, M. (1998).
Crop evapotranspiration - Guidelines for computing crop water
requirements. FAO Irrigation and Drainage Paper 56.
McKee, T.B., Doesken, N.J., Kleist, J. (1993). The relationship
of drought frequency and duration to time scales. 8th Conference
on Applied Climatology.