SPEI 算法及代码实现(Java)
前言
关于SPEI
SPEI:Standardized Precipitation Evapotranspiration Index 标准化降水蒸散发指数。该指数是使用降水和气温数据计算得到的表征干湿状态的指数,可以计算多种时间尺度(1,3,12,24月等等),SPEI值越大越湿润,值越小越干旱,在干旱研究中应用广泛。它是从SPI Standardized Precipitation Index 归一化降水指数进一步发展而来,同时纳入蒸散发的影响,在气温有显著变化趋势的地区更加适用,尤其适合长时间尺度的研究。
关于SPEI发展背景及详细描述,可以查阅文献[1]
SPEI算法
这里尽量详细讲解一下SPEI的计算过程。
首先,SPEI指数,使用一种简单的方法计算潜在蒸散发PET,计算公式如下:
P E T = 16 K ( 10 T I ) m PET=16K(\frac{10T}{I})^m PET=16K(I10T)m
其中, T T T是月均温,单位摄氏度; I I I是热量指数,该指数通过12个月的月度指数相加得到,计算公式如下:
I = ∑ m o n = 1 12 i = ∑ m o n = 1 12 ( T m o n , a v e 5 ) 1.514 I=\sum_{mon=1}^{12}i = \sum_{mon=1}^{12}(\frac{T_{mon,ave}}{5})^{1.514} I=mon=1∑12i=mon=1∑12(5Tmon,ave)1.514
T m o n , a v e T_{mon,ave} Tmon,ave为某月研究时期内多年均值,如一月多年均值为 T 1 , a v e T_{1,ave} T1,ave。 m m m是一个取决于热量指数的系数:
m = 6.75 × 1 0 − 7 I 3 − 7.71 × 1 0 − 5 I 2 + 1.79 × 1 0 − 2 I + 0.492 m=6.75×10^{-7}I^3-7.71×10^{-5}I^2+1.79×10^{-2}I+0.492 m=6.75×10−7I3−7.71×10−5I2+1.79×10−2I+0.492
系数 K K K 是通过 该月天数 N D M NDM NDM 和 最大日照时数 N N N 计算得到的:
K = ( N 12 ) ( N D M 30 ) K=(\frac{N}{12})(\frac{NDM}{30}) K=(