pdsi: Calculate the (sc)PDSI

Description Usage Arguments Details Value References Examples

View source: R/scpdsi.R

Description

Calculating the monthly conventional Palmer Drought Severity Index (PDSI) and Self-calibrating PDSI (scPDSI) using the precipitation and potential evapotranspiration.

Usage

1
2
pdsi(P, PE, AWC = 100, start = NULL, end = NULL, cal_start = NULL,
  cal_end = NULL, sc = TRUE)

Arguments

P

Monthly precipitation series without NA [mm]. Can be a time series.

PE

Monthly potential evapotranspiration corresponding to the precipitation series. Can be calculated by the Penman-Monteith or the Thonthwate equation [mm].

AWC

Available soil water capacity of the soil layer [mm]. Default 100 mm.

start

Integer. Start year of the PDSI to be calculate default 1.

end

Integer. End year of the PDSI to be calculate.

cal_start

Integer. Start year of the calibrate period. Default is start year.

cal_end

Integer. End year of the calibrate period. Default is end year.

sc

Bool. Should use the self-calibrating procedure to calculate the climatical coefficient (K2 and duration coefficients). If not it would use the default parameters of Palmer (1965).

Details

The Palmer Drought Severity Index (PDSI), proposed by Palmer (1965), is a widely used drought indicator to quantify the long-term drought conditions, for an area at a certain time. The PDSI is a semi-physical based drought index calculated using the precipitation and potential evapotranspiration data, based on a simple two-layer bucket water balance model. Conventionally, the constants to calculate the PDSI were firstly empirically derived by using the meteorological records in Kansas and Iowa in middle US with a semi-arid climate conditions, therefore the conventional PDSI usually could not satisfactorily represent the drought conditions for other areas around the world, which also makes spatial comparisons of PDSI values difficult.

For this, Wells et al. (2004) proposed a self-calibrating Palmer Drought Severity Index (scPDSI). The scPDSI could automatically adjust the empirical constants in the PDSI computation with dynamically calculated values. Several works have proved that the scPDSI performs better in spatially comparison than the conventional PDSI. For more details please see the works of Wells et al. (2004).

This function could also calculate the conventional PDSI with revised constants. Before the scPDSI appeared, the PDSI calculation has also been revised focusing on the local climate characteristics in many area around the world. Those constants could be reset by using the global options before calculating the PDSI e.g.:

1
options(PDSI.coe.K1.1 = 1.6)

And calculation in the PDSI would be:

Ki0=coeK11 * lg(((PEi+Ri+ROi)/(Pi+Li)+coeK12)/Di)+coeK13

Ki=coeK2/(∑ Dj*Kj) * Ki

X[i]=p*X[i-1]+q*Z[i]

coeK11, coeK12, coeK13, coeK2, p, and q are corresponding to PDSI.coe.K1.1, PDSI.coe.K1.2, PDSI.coe.K1.3, PDSI.coe.K2, PDSI.p, and PDSI.q, respectively.

For example, in a national standard in China about meteorological drought level (GB/T 20481-2017), the PDSI was revised by re-adjust the constants in the calculation. To use the PDSI based on this standard should set the global options of R as follows:

1
2
3
4
5
options(PDSI.coe.K1.1 = 1.6)
options(PDSI.coe.K1.3 = 0.4)
options(PDSI.coe.K2 = 16.84)
options(PDSI.p = 0.755)
options(PDSI.q = 1/1.63)

Value

This function return an object of class pdsi.

The object of class pdsi is a list containing the following components:

References

Palmer W., 1965. Meteorological drought. U.s.department of Commerce Weather Bureau Research Paper.

Wells, N., Goddard, S., Hayes, M. J., 2004. A Self-Calibrating Palmer Drought Severity Index. Journal of Climate, 17(12):2335-2351.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
library(scPDSI)
data(Lubuge)

P <- Lubuge$P
PE <- Lubuge$PE
sc_pdsi <- pdsi(P, PE, start = 1960)

plot(sc_pdsi) # plot PDSI
plot(sc_pdsi, index = "PHDI") # plot PHDI
plot(sc_pdsi, index = "WPLM") # plot weighted PDSI

# Without self-calibrating.
ori_pdsi <- pdsi(P, PE, start = 1960, sc = FALSE)
plot(ori_pdsi)

# Without self-calibrating and use standards of
# mainland China. (GB/T 20481-2017)
options(PDSI.coe.K1.1 = 1.6)
options(PDSI.coe.K1.3 = 0.4)
options(PDSI.coe.K2 = 16.84)
options(PDSI.p = 0.755)
options(PDSI.q = 1/1.63)
gb_pdsi <- pdsi(P, PE, start = 1960, sc = FALSE)
plot(gb_pdsi)

scPDSI documentation built on May 2, 2019, 8:22 a.m.