Compute the SPEI by fitting a log-logistic distribution to the monthly climatic water balance (precipitation minus potential evapotranspiration) accumulated over a rolling window.
Usage
ck_spei(precip, pet, dates, scale = 3, distribution = c("log-logistic", "gev"))Arguments
- precip
Numeric vector of daily precipitation (mm).
- pet
Numeric vector of daily potential evapotranspiration (mm).
- dates
Date vector of the same length as
precipandpet.- scale
Integer. Accumulation period in months (default 3).
- distribution
Character. Either
"log-logistic"(default, Vicente-Serrano et al. 2010) or"gev"(Generalised Extreme Value, fitted by L-moments; preferred for water-balance series with heavy upper or lower tails).The three-parameter log-logistic is fitted by L-moments, which requires an L-skewness in
(0, 1). A calendar month whose water balance is symmetric or left-skewed falls outside that range; the fit warns and returnsNAfor that month rather than reporting a value from a distribution that does not describe the data. Usedistribution = "gev", which accommodates both tails, when this happens often in your series.
References
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.
Examples
dates <- seq(as.Date("2020-01-01"), as.Date("2023-12-31"), by = "day")
set.seed(42)
precip <- rgamma(length(dates), shape = 0.5, rate = 0.1)
pet <- rep(3, length(dates))
ck_spei(precip, pet, dates, scale = 3)
#> period value index unit
#> 3 2020-03-01 0.093502089 spei dimensionless
#> 4 2020-04-01 0.654130498 spei dimensionless
#> 5 2020-05-01 -0.130164941 spei dimensionless
#> 6 2020-06-01 0.349064306 spei dimensionless
#> 7 2020-07-01 -1.131718122 spei dimensionless
#> 8 2020-08-01 -0.718395087 spei dimensionless
#> 9 2020-09-01 -0.889619094 spei dimensionless
#> 10 2020-10-01 -0.324701783 spei dimensionless
#> 11 2020-11-01 0.153643269 spei dimensionless
#> 12 2020-12-01 0.798306865 spei dimensionless
#> 13 2021-01-01 0.875630337 spei dimensionless
#> 14 2021-02-01 0.903167756 spei dimensionless
#> 15 2021-03-01 1.291617930 spei dimensionless
#> 16 2021-04-01 1.560017834 spei dimensionless
#> 17 2021-05-01 1.562499545 spei dimensionless
#> 18 2021-06-01 1.583975560 spei dimensionless
#> 19 2021-07-01 1.088059255 spei dimensionless
#> 20 2021-08-01 1.075854758 spei dimensionless
#> 21 2021-09-01 -0.064921279 spei dimensionless
#> 22 2021-10-01 -0.604732222 spei dimensionless
#> 23 2021-11-01 -1.010523471 spei dimensionless
#> 24 2021-12-01 -0.549632124 spei dimensionless
#> 25 2022-01-01 -0.021811213 spei dimensionless
#> 26 2022-02-01 -0.002107092 spei dimensionless
#> 27 2022-03-01 -1.106556426 spei dimensionless
#> 28 2022-04-01 -0.645674890 spei dimensionless
#> 29 2022-05-01 -0.792418831 spei dimensionless
#> 30 2022-06-01 -1.050232892 spei dimensionless
#> 31 2022-07-01 0.228939468 spei dimensionless
#> 32 2022-08-01 0.712806165 spei dimensionless
#> 33 2022-09-01 1.464830196 spei dimensionless
#> 34 2022-10-01 1.746688969 spei dimensionless
#> 35 2022-11-01 1.604585801 spei dimensionless
#> 36 2022-12-01 0.290547628 spei dimensionless
#> 37 2023-01-01 -0.937710126 spei dimensionless
#> 38 2023-02-01 -0.909162220 spei dimensionless
#> 39 2023-03-01 0.122027007 spei dimensionless
#> 40 2023-04-01 -0.411403289 spei dimensionless
#> 41 2023-05-01 0.542612546 spei dimensionless
#> 42 2023-06-01 0.184225032 spei dimensionless
#> 43 2023-07-01 -0.260915796 spei dimensionless
#> 44 2023-08-01 -0.865330867 spei dimensionless
#> 45 2023-09-01 0.452546865 spei dimensionless
#> 46 2023-10-01 0.670326962 spei dimensionless
#> 47 2023-11-01 0.388214919 spei dimensionless
#> 48 2023-12-01 -1.402827757 spei dimensionless