py#SPI实现
SPI源码定义语句,通过定义语句可以知道需要输入哪些参数以及具体的参数信息
输入参数说明:
参数 | 含义 | 数据格式 | 说明 |
values | 降水量 | 一维numpy数组 | 单位不限,如果时间尺度为月,则第一个值对应初始年的1月;如果为日,则对应初始年1月1日。 |
scale | 时间尺度 | int | 用于定义SPI的时间尺度 |
distribution | 概率分布 | Distribution | 定义降水符合的概率分布函数,可选择"gamma"或"pearson" |
data_start_year | 数据开始年份 | int | 降水数据集开始的年份 |
calibration_year_initial | 校正期开始年份 | int | 参与SPI长时间序列校正开始的年份 |
calibration_year_final | 校正期结束年份 | int | 参与SPI长时间序列校正结束的年份 |
periodicity | 时间尺度的单位 | 字符型 | 可选择'monthly'或'daily' |
fitting_params | 预先计算的拟合参数 | Dict | 通常使用默认值,Dict=none |
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import numpy as np import pandas as pd from climate_indices import indices from climate_indices import compute import matplotlib.pyplot as plt #读取降水数据 tampa = pd.read_table( 'tampa.txt' ,sep = ';' ,header = None ) tampa_pre = tampa.values[:, 0 ] #计算SPI #开始年份 ystr = 1900 #结束年份 yend = 2000 tampa_spi = indices.spi(values = tampa_pre, scale = 3 , distribution = indices.Distribution.gamma, data_start_year = ystr, calibration_year_initial = ystr, calibration_year_final = yend, periodicity = compute.Periodicity.monthly ) |
参考:
官方:https://climate-indices.readthedocs.io/en/latest/
源码:https://github.com/monocongo/climate_indices/blob/master/src/climate_indices/indices.py#L70
https://blog.csdn.net/EWBA_GIS_RS_ER/article/details/115290209
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程