Title: | Statistical Modeling and Assessment of Drought |
---|---|
Description: | Provide tools for drought monitoring based on univariate and multivariate drought indicators.Statistical drought prediction based on Ensemble Streamflow Prediction (ESP), drought risk assessments, and drought propagation are also provided. Please see Hao Zengchao et al. (2017) <doi:10.1016/j.envsoft.2017.02.008>. |
Authors: | Zengchao Hao |
Maintainer: | Zengchao Hao <[email protected]> |
License: | GPL-3 |
Version: | 1.2 |
Built: | 2024-11-15 02:49:58 UTC |
Source: | https://github.com/cran/drought |
Provide tools for drought monitoring based on univariate and multivariate drought indicators.Statistical drought prediction based on Ensemble Streamflow Prediction (ESP), drought risk assessments, and drought propagation are also provided. Please see Hao Zengchao et al. (2017) <doi:10.1016/j.envsoft.2017.02.008>.
Package: | drought |
Type: | Package |
Version: | 1.1 |
License: | GPL-3 |
Hao, Z. et al. (2017), An integrated package for drought monitoring, prediction and analysis to aid drought modeling and assessment, Environ Modell Softw, 91, 199-209.
Hao, Z., and V. P. Singh (2015), Drought characterization from a multivariate perspective: A review J. Hydrol., 527
Hao and AghaKouchak (2013) Multivariate Standardized Drought Index: A parametric multi-index model, Advances in Water Resources 57, 12-18.
Kao, S. C. and R. S. Govindaraju (2010). A copula-based joint deficit index for droughts. Journal of Hydrology, 380(1-2): 121-134.
Hao, Z. et al. (2014). Global integrated drought monitoring and prediction system. Scientific Data, 1
#' X=runif(120, min = 0, max = 100) # 10-year monthly data #' Yc<-ACCU(X,ts=6) # Compute the 6 month accumulated series #' fit1<-SDI(X,ts=6) # Get the standardized drought index (or SPI) #' z=matrix(t(fit1$SDI),ncol=1) #' Res <- RunDS(z, -1)# Get drought duration and severity based on threshold SPI=-1 #' Y=runif(120, min = 0, max = 100) # 10-year monthly data #' fit2<-MSDI(X,Y,ts=6) # Compute the 6 month Multivariate Standardized Drought Index (MSDI) #' fit2$MSDI #Get the empirical MSDI #' PropagationMCC(X, Y, 12, c(-1,1)) # Plot drought propagation
#' X=runif(120, min = 0, max = 100) # 10-year monthly data #' Yc<-ACCU(X,ts=6) # Compute the 6 month accumulated series #' fit1<-SDI(X,ts=6) # Get the standardized drought index (or SPI) #' z=matrix(t(fit1$SDI),ncol=1) #' Res <- RunDS(z, -1)# Get drought duration and severity based on threshold SPI=-1 #' Y=runif(120, min = 0, max = 100) # 10-year monthly data #' fit2<-MSDI(X,Y,ts=6) # Compute the 6 month Multivariate Standardized Drought Index (MSDI) #' fit2$MSDI #Get the empirical MSDI #' PropagationMCC(X, Y, 12, c(-1,1)) # Plot drought propagation
Obtain the accumulation of monthly hydro-climatic variables
ACCU(X, ts = 6)
ACCU(X, ts = 6)
X |
The vector of monthly hydro-climatic variables of n years. ts is the accumulated time scale. |
ts |
The accumulated time scale |
X=runif(120, min = 0, max = 100) # 10-year monthly data Y<-ACCU(X,ts=3) # Compute the 3 month accumulated series
X=runif(120, min = 0, max = 100) # 10-year monthly data Y<-ACCU(X,ts=3) # Compute the 3 month accumulated series
Compute the bivariate empirical joint probability
BiEmp(X, Y)
BiEmp(X, Y)
X |
The vector of a monthly hydro-climatic variable of n years(e.g., August). |
Y |
The vector of a monthly hydro-climatic variable of n years(e.g., August). |
The empirical joint probability of X and Y for a specific month (Gringorten plotting position)
X=runif(20, min = 0, max = 100) # 20 monthly values (e.g., August) Y=runif(20, min = 0, max = 100) fit<-BiEmp(X,Y)
X=runif(20, min = 0, max = 100) # 20 monthly values (e.g., August) Y=runif(20, min = 0, max = 100) fit<-BiEmp(X,Y)
Drought prediction with ESP method
ESPPred(X, Y, L = 1, m = 7, ts = 6)
ESPPred(X, Y, L = 1, m = 7, ts = 6)
X |
is the monthly variables. |
Y |
is the monthly variables. |
L |
is the lead time. |
m |
is the start time of prediction (or ending of observations) |
ts |
is the time scale of monthly variables. |
The prediction of univariate and multivariate drought index based on ESP
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) ESPPred(X,Y,L=1,m=7,ts=6)
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) ESPPred(X,Y,L=1,m=7,ts=6)
The JDSI can be computed based on joint distribution or kendall distribution
JDSI(X, Y, ts = 6, type = 1)
JDSI(X, Y, ts = 6, type = 1)
X |
is the vector of a monthly hydro-climatic variable of n years. |
Y |
is the vector of a monthly hydro-climatic variable of n years. |
ts |
is the accumulated time scale. |
type |
is the method used to compute the JDSI (1 is Joint distribution and 2 is the Kendall function). |
The multivariate drought index based on the joint distribution or Kendall distribution
Hao, Z. et al. (2017) An integrated package for drought monitoring, prediction and analysis to aid drought modeling and assessment, Environ Modell Softw, 91, 199-209.
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) # 10-year monthly data fit<-JDSI(X,Y,ts=6) z=matrix(t(fit$JDSI),ncol=1) plot(z, type="l", col=1, lwd=2, lty=1, xlim=c(0,120),xlab="Time",ylab="JDSI")
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) # 10-year monthly data fit<-JDSI(X,Y,ts=6) z=matrix(t(fit$JDSI),ncol=1) plot(z, type="l", col=1, lwd=2, lty=1, xlim=c(0,120),xlab="Time",ylab="JDSI")
Based on a pair of monthly hydro-climatic variable (or corresponding marginals), the MSDI is computed using the joint distribution (parametric or nonparametric forms). The current version is based on the Gringorten plotting position. It can be extended to higher dimensions, such as trivariate case including meteorological, agricultural, and hydrological droughts. For the high dimension case, the copula or vine copula method can be employed
MSDI(X, Y, ts = 6)
MSDI(X, Y, ts = 6)
X |
is the vector of a monthly hydro-climatic variable of n years. |
Y |
is the vector of a monthly hydro-climatic variable of n years. |
ts |
is the accumulated time scale. |
The monthly MSDI series of different time scales (based on Gringorten plotting position)
Hao and AghaKouchak (2013) Multivariate Standardized Drought Index: A parametric multi-index model, Advances in Water Resources 57, 12-18.
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) # 10-year monthly data fit<-MSDI(X,Y,ts=6) # Compute the 6 month drought index fit$ProbEmp2 #Get the empirical drought index (e.g.,Gringorten plotting position )
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) # 10-year monthly data fit<-MSDI(X,Y,ts=6) # Compute the 6 month drought index fit$ProbEmp2 #Get the empirical drought index (e.g.,Gringorten plotting position )
Compute the pearson correlation between multi-time scale SPI and 1-month SRI to reflect the most possible propagation time (PT) from meteorological drought to hydrological drought. Note here the propagation of meteorological to hydrological drought is used as an example. The propagation of other types of drought can also be computed.
PropagationMCC(X, Y, acc = 12, lim = c(-1, 1), color = NA)
PropagationMCC(X, Y, acc = 12, lim = c(-1, 1), color = NA)
X |
The vector of monthly meteorological variable (e.g., precipitation) |
Y |
The vector of monthly hydrological variables (e.g., runoff) |
acc |
Maximum of propagation time (or accumulation periods) |
lim |
The limits interval for color |
color |
Color vector in plot |
Plot of correlation matrix
Xu, Y. et al (2019). Propagation from meteorological drought to hydrological drought under the impact of human activities: A case study in northern China. J. Hydrol. 579, 124147. Zhang Y., Hao Z., Feng S., et al. (2021). Agricultural drought prediction in China based on drought propagation and large-scale drivers. Agr. Water Manage., 255: 107028.
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) # 10-year monthly data acc <- 12 lim <- c(-1,1) PropagationMCC(X, Y, acc, lim)
X=runif(120, min = 0, max = 100) # 10-year monthly data Y=runif(120, min = 0, max = 100) # 10-year monthly data acc <- 12 lim <- c(-1,1) PropagationMCC(X, Y, acc, lim)
The input data is monthly drought indices. Duration is defined as the length of consecutive time series when drought index is below the threshold value (e.g., -1). Severity is defined as the summation of drought index below the threshold. This analysis based on run theory is also referred to as threshold level method. Here the standardized drought index (SDI) is used as the example to compute the drought characteristics. Other univariate and multivariate drought indices can also be used.
RunDS(DI, thre)
RunDS(DI, thre)
DI |
The vector of the drought index (e.g., monthly SPI) |
thre |
The threshold of drought index (e.g, -0.5,-1) |
The duration and severity of each drought event
Yevjevich V. (1967). An Objective Approach to Definitions and Investigations of Continental Hydrologic Droughts. Hydrology Paper 23. Colorado State University, Fort Collins, CO.
X=runif(120, min = 0, max = 100) # 10-year monthly data thre=-1 # specify the threshold value fit<-SDI(X,ts=3) # Compute the univariate drought index, such as SPI z=matrix(t(fit$SDI),ncol=1) # Reshape the matrix to a vector Res <- RunDS(z, thre) # Compute the duration and severity
X=runif(120, min = 0, max = 100) # 10-year monthly data thre=-1 # specify the threshold value fit<-SDI(X,ts=3) # Compute the univariate drought index, such as SPI z=matrix(t(fit$SDI),ncol=1) # Reshape the matrix to a vector Res <- RunDS(z, thre) # Compute the duration and severity
Based on the vector of monthly variables, the standardized drought index is computed. Note here the standardized precipitation index (SPI) is used as the example of the drought index in the univariate case. It also represents other drought indices computed in the similar way as SPI.
SDI(X, ts = 6, dist = "EmpGrin")
SDI(X, ts = 6, dist = "EmpGrin")
X |
The vector of a monthly hydro-climatic variable of n years. |
ts |
is the accumulated time scale. |
dist |
is a distribution function.The inputs can be "EmpGrin","EmpWeib","Gamma","Lognormal". |
Apart from the standardized drought index, the percentile (probability) is also provided,
The (univariate) standardized drought index of different time scales from both the empirical and parametric distribution
X=runif(120, min = 0, max = 100) # 10-year monthly data fit<-SDI(X,ts=3) # Compute the 3 month drought index fit$SDI # Get the empirical drought index z=matrix(t(fit$SDI),ncol=1) plot(z, type="l", col=1, lwd=2, lty=1, xlim=c(0,120),xlab="Time",ylab="SDI")
X=runif(120, min = 0, max = 100) # 10-year monthly data fit<-SDI(X,ts=3) # Compute the 3 month drought index fit$SDI # Get the empirical drought index z=matrix(t(fit$SDI),ncol=1) plot(z, type="l", col=1, lwd=2, lty=1, xlim=c(0,120),xlab="Time",ylab="SDI")
Univariate and multivariate return period
UMFreq(X, Y, EL = 1)
UMFreq(X, Y, EL = 1)
X |
is the drought properties (e.g., duration) or indices (e.g., SPI) |
Y |
is the drought properties (e.g., duration) or indices (e.g., SRI) |
EL |
is the average recurrence time |
The univariate and multivariate return period
X=runif(60, min = 0, max = 100) # 60 drought duration values or index values Y=runif(60, min = 0, max = 100) fit<-UMFreq(X,Y,1)
X=runif(60, min = 0, max = 100) # 60 drought duration values or index values Y=runif(60, min = 0, max = 100) fit<-UMFreq(X,Y,1)
Compute the univariate empirical joint probability (EMP)
UniEmp(X, dist = "Gringorten")
UniEmp(X, dist = "Gringorten")
X |
The vector of a monthly hydro-climatic variable of n years. |
dist |
is the function for the plotting position formula (Gringorten or Weibull). |
The univariate EMP
X=runif(20, min = 0, max = 100) # 20 monthly values of precipitation (e.g., August) fit<-UniEmp(X,dist = "Gringorten")
X=runif(20, min = 0, max = 100) # 20 monthly values of precipitation (e.g., August) fit<-UniEmp(X,dist = "Gringorten")