python计算N年一遇的降水经历

借助此文方法

# -*- coding: utf-8 -*-
"""
@Features of this code:重现期
@Author: zlf
@Date:
"""
import numpy as np
import pandas as pd
from scipy.stats import genextreme


def return_periods(data, years=[5, 10, 20, 50, 100]):
    data = np.array(data)  # data为ndarray格式
    # Fit the generalized extreme value distribution to the data.
    shape, loc, scale = genextreme.fit(data)
    print("Fit parameters:")
    print(f"  shape: {shape:.4f}")
    print(f"  loc:   {loc:.4f}")
    print(f"  scale: {scale:.4f}")
    # Compute the return levels for several return periods.
    return_periods = np.array(years)
    return_levels = genextreme.isf(1 / return_periods, shape, loc, scale)
    print("Return levels:")
    print("Period    Level")
    for period, level in zip(return_periods, return_levels):
        print(f'{period:4.0f}  {level:9.2f}')


if __name__ == '__main__':
    data = pd.read_excel(r'D:\降水量.xlsx')
    return_periods(data)
————————————————
版权声明:本文为CSDN博主「毛发浓密的猿工」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46604505/article/details/107231556

-------------------------------

测试:

csv文件读取

da=pd.read_csv(r'D:\t3.csv',header=None)

data=pd.DataFrame(da)

return_periods(data, years=[2,5, 10, 20, 50, 100])

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值