基于python和免费软件的干旱指数计算

基于python和免费软件的干旱指数计算

1.懒人办法,直接用免费现成软件DrinC

优点:官网直接下载安装方便省事,结果可靠(验证过),官网还有很多说明文件和文献;
在这里插入图片描述
缺点:目前可计算的指数有限;
在这里插入图片描述

2.用python算

优点:很多很多…
缺点(可忽略):需要安装几个不太好装的库,我是用climate_indices算的(注意对python版本有要求)

在这里插入图片描述
上代码


# 相关包的导入
import numpy as np
import pandas as pd

from climate_indices import indices
from climate_indices import compute  # 计算SPEI的包

# 路径处理和基本变量定义
rootdir = r'D:\自己的文件夹哈\SPEI\\';
tampa_file = rootdir + 'pre_.csv'
outpath = rootdir + 'Result1001\\'

lat = 纬度
styr = 开始年
edyr = 结束年

# 气象数据读取
tampa_data = pd.read_csv(tampa_file)
pre_data = np.asarray(tampa_data['Pre'])  # 降水数据转换为np.array
tas_data = np.asarray(tampa_data['Tas'])  # 温度数据转换为np.array

# 潜在蒸散发计算-桑斯维特方法
pet_data = indices.pet(temperature_celsius=tas_data,
                       latitude_degrees=lat,
                       data_start_year=styr)

# 计算SPEI
spei = indices.spei(precips_mm=pre_data,
                    pet_mm=pet_data,  
                    scale=9,  # 3个月尺度
                    distribution=indices.Distribution.gamma,
                    periodicity=compute.Periodicity.monthly,
                    data_start_year=styr,
                    calibration_year_initial=styr,
                    calibration_year_final=edyr,
                    )

spei[np.isnan(spei)] = -99  # nan转换为-99
spei_df = pd.DataFrame(data=spei, columns=['SPEI_9'])  # 计算结果转换为DataFrame

# 计算结果写出
spei_df.to_csv(outpath + 'SPEI9.csv', index=False)

print('Finished.')

可以根据自己需求改指数和时间尺度

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值