標準化降水指数(SPI)


標準化降水指数(Standardized Precipitation Index:SPI)は、様々な時間スケールの干ばつを示す指標です。短い時間スケールのSPIは土壌水分に密接に関連し、より長い時間スケールのSPIは地下水やため池の水貯蔵に関連していると考えられます。気候が異なる地域のSPIを比較することで、各地の水文環境や水資源の状況についての検討を行うことが可能となります。生の降水量時系列データの特定期間の降水量の総和の頻度分布を作成、その頻度分布がガンマ分布(時には、ピアソンIII型分布)に従うと仮定して累積密度関数を求め、対象とする期間の累積密度関数の値を正規分布に変換することでSPIは計算されます。SPI値は、簡潔にいえば、長期平均からの偏差ともいえます。降水データだけで干ばつをの発生状況を識別できるSPIは、標準的な干ばつ指標とされよく利用されていますが、蒸発散量の影響を考慮していないため、SPIの有用性については懸念が残ります。なお、蒸発散量を考慮した指標として、標準化降水量蒸発散量指数(the Standardized Precipitation-Evapotranspiration Index: SPEI)が考案されています。ただし、SPEIを計算するためには降水量・気温・風向などのデータセットが必要となります)。

Global Precipitation Climatology Centreが提供する陸域の月間降水量データ(GPCC: precip.mon.total.v7.nc)を使いイランのペルセポリス遺跡(Persepolis, 29.93N, 52,89E)でのSPIの計算結果を下図に示します。

参考:下記は、GPCCのNetCDF形式データの 東経52.89139度、北緯29.93444での1901-2013年の降水データののSPIの計算に使ったRコード(簡易版)です。

library(ncdf4)

library(spi)

librarry<-nc_open(“C:/Users/corewall/Desktop/GPCC/precip.mon.total.v7.nc”)

dname <- “precip”

pr_array <- ncvar_get(ncin,

lon <- ncvar_get(ncin, varid = “lon”)

lat <- ncvar_get(ncin, varid = “lat”)

lon_index <- which.min(abs(lon – 52.89139))

lat_index <- which.min(abs(lat – 29.93444))

p<-pr_array[lon_index, lat_index,]

p2<-data.frame(matrix(p, nrow=12, byrow=F))

mth<-c(“Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”, “Jul”, “Aug”, “sep”, “Oct”, “Dec”, “Nov”)

p3<-cbind(mth, p2)

write.table(p3,file=”spi.txt”,quote=FALSE,row.names=TRUE)

spi(3,”spi.txt”,1901,2013)

spi(7,”spi.txt”,1901,2013,”Standardized Precipitation Index – Persepolis”, 1, “years”, “months”)