介绍NOAA属下的SPI与PSDI程序----兼作SPI指数程序国际排行榜
进行科学研究,文献的来源与质量非常重要。程序与软件其实也不例外。使用来路不明的程序,心里不见得十分踏实。然而,寻找与核实程序来源并不是一件容易的事,有时简直无从下手。
在可能的情形下,尽可能地探寻真相仍是有意义的。
在因特网中,pudn、csdn等由于涉及版权等原因,往往不提出处,给使用者带来一定的困扰。
就标准化降水指数SPI(PDSI可能情形类似)而言,经过本人多日的梳理,国内各种来源的SPI程序坐次基本排定,具有国际权威性的三大来源已浮上水面:
1.美国干旱减灾中心的可执行程序:介绍美国干旱减灾中心权威性的计算SPI的可执行程序(WMO采用)
2.介绍内布拉斯加大学SPI、PDSI干旱指数等的专业性网站-绿叶计划;
3.就是本帖介绍的美国NOAA属下的国家气候数据中心(NCDC)网站(http://www1.ncdc.noaa.gov/pub/software/palmer/ )中的SPI指数与PDI指数程序与软件 。因为仅是存在于NCDC网页之中的条目,可能属于某研究人员,权威性明显逊于以上二者。但该程序的优势是篇幅较长、似乎包括更加丰富的变化与处理。不知何故,该程序缺失open语句,影响编译。
第1种与第2种实际上同出一脉,属于一表一里(可执行程序与源程序,理由与说明见备注)。由此也可以看出,网路上以spi.f为名的多种程序并不单纯,甚至鱼龙混杂。
美国的情形已如上所述,其他国家的程序在网上一时没有发现,欢迎有兴趣者进行补充。
附:美国实例数据。见“介绍美国干旱减灾中心权威性的计算SPI的可执行程序”之附件。
备注:
美国干旱减灾中心设在内布拉斯大学。可执行程序下载页面提供的文件“basic-spi-program-information”下的小标题“Inventory of Files”的文件清单为:
Makefile - Unix style makefile
ghcn_filter.c - Example input filter for GHCN data format
mon_filter.c - Example input filter for Mon Drought format
rd_prec.c - Function reads input.
spi.c - Main.
spi.doc - This file.
spi.h - Spi header file.
spi_empiric.c - Function to compute SPI using empiric distrib.
spi_gamma.c - Function to compute SPI using gamma distrib.
上述文件清单内容与“介绍内布拉斯加大学SPI、PDSI干旱指数等的专业性网站-绿叶计划”中SPI源程序目录下各项文件的名称完全相同。
反映干旱强度和持续时间,使得用同一干旱指标反映不同时间尺度和区域的干旱状况成为可能, 因而得到广泛应用。
该指数假设降水量服从Γ分布,考虑了降水服从偏态分布的实际,随后又进行了正态标准化处理,使得同一个干旱指数可以反映不同时间尺度和不同类型的水资源状况,成为继Pamler指数之后又一被广泛认可的干旱指数。
SPI 通过计算给定时间尺度内降雨量的累积概率, 能够在多个时间尺度上进行计算比较, 不仅可反映短时间内降雨量的变化, 如对农业生产有重要影响的土壤水分的动态变化, 也可以反映长期水资源的演变情况, 如地下水供给、地表径流等。
SPI适合于不同类型的干旱定量化研究,时间尺度为5~24月的SPI可用于反映地下水位的变化;2~3月的SPI可反映农业干旱情况。
浅谈标准化降水指数(SPI)
某一地点或区域的雨量如果长期不足,可能造成不同程度的乾旱,影响当地的水资源、农业和社会经济活动。由于不同地区的降雨量差别很大,乾旱的概念亦各有不同。为了更有效地评估乾旱现象,世界气象组织(WMO)建议采用标准化降水指数(Standardized Precipitation Index, SPI)监测乾旱的严重程度。
简单来说,SPI是一个标准化指数,相对于当地雨量的长期气候状况,反映某观测雨量可能出现之机会率。SPI负值代表雨量偏少,而SPI正值则代表雨量偏多 。乾旱严重程度可根据相应SPI的负值大小来划分等级,SPI负值愈大表示乾旱愈严重。例如,SPI负值大过2一般被定义为重旱级别。
SPI的另一个特点是可应用于不同的时间尺度(如3、6、12、24个月雨量等),以分析乾旱现象对各类水资源需求的影响。例如,SPI-3考虑三个月的雨量状况,雨量异常一般只影响土壤含水量或农作物收成;而SPI-24则描述持续两年的雨量状况,时间相对较长的旱情,可能导致地下水、河川流量和水塘蓄水量不足等情况。
SPI的好处是它只需要利用雨量来计算,而且也可用来比较不同气候区域的旱涝情况。有关SPI的计算和应用详情可参考世界气象组织的指引手册。
Climate and Drought Indices in Python (github:climate_indices)
单站点单时段标准化降水指数(SPI)计算程序一则(含详解与实例)
dim_spi_n for ncl
Calculates the standardized precipitation index (SPI) by fitting a gamma or a Pearson Type III distribution to monthly precipitation values.
程序请见:包括了 单站点单时段标准化降水指数(SPI)计算程序一则(含详解与实例)
标准化降水指数spi的matlab代码 一个求取SPI指数的程序
已经在相关材料中找到原因了:There should be at least a minimum number of precipitation values for each month. I do not know how many is the minimum, but if you enter data for only one year, you will get an error, and nothing will be calculated.
资料长度不能太短,因为该程序计算出的SPI是相对于历史同期气候平均态而言。几年的资料长度可能都会出错,一般使用都是30~50年,或者更长时间尺度。
仅使用降水; 可以表征不同时间尺度的干旱或异常潮湿,这与不同水资源的时间可用性相对应(例如土壤湿度,积雪,地下水,河流流量和水库蓄水)
气候不同的地区比帕尔默严重干旱指数(PDSI)更具可比性
计算的复杂程度低于PDSI
主要限制:
仅作为供水的衡量标准,SPI不考虑蒸发蒸腾,这限制了其捕获温度升高(与气候变化相关)对水分需求和可用性的影响的能力
对用于适合分布的数据的数量和可靠性敏感; 建议30 - 50年
不考虑降水强度及其对目标系统内径流,径流和水可用性的潜在影响