200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Sen+MK趋势分析(基于点数据)

Sen+MK趋势分析(基于点数据)

时间:2020-09-02 02:09:44

相关推荐

Sen+MK趋势分析(基于点数据)

1 回顾

最早分享过Sen+MK趋势分析,当时是基于栅格逐像元的处理,详细内容见第一篇分享。很多时候也会遇到如下情况,分析的数据是站点的连续数据,然后想分析站点数据的趋势分析以及显著性检验。

2 样例数据

把数据在Excel中准备好,如下

3 代码块

用到的函数:

使用mk.original_test计算各种指标.

# coding:utf-8import pandas as pdimport pymannkendall as mk"""Author:俊哥的地理空间 Date:/12/30excel数据样例:20001120011219182002131817221516241615221714131819121614211012"""data = pd.read_excel('D:/data.xlsx')rows = data.shape[0]cols = data.shape[1]print(rows,cols)for i in range(1,cols):r = data.iloc[:,i] # 循环读取每一列数据res = mk.original_test(r)print(res)print(f'trend:{res.trend}','p_value:{:.2f}'.format(res.p),'slope:{:.2f}'.format(res.slope),sep = ',')

4 结果

D:\Python3.9\python.exe D:/PyCode/applyscript/MK趋势分析Excel.py10 4Mann_Kendall_Test(trend='increasing', h=True, p=8.303070332638107e-05, z=3.9354796403996297, Tau=1.0, s=45.0, var_s=125.0, slope=1.0, intercept=12.0)trend:increasing,p_value:0.00,slope:1.00Mann_Kendall_Test(trend='decreasing', h=True, p=8.303070332638107e-05, z=-3.9354796403996297, Tau=-1.0, s=-45.0, var_s=125.0, slope=-1.0, intercept=19.0)trend:decreasing,p_value:0.00,slope:-1.00Mann_Kendall_Test(trend='decreasing', h=True, p=0.0373130539125, z=-2.082322158977926, Tau=-0.5333333333333333, s=-24.0, var_s=122.0, slope=-1.3333333333333333, intercept=25.0)trend:decreasing,p_value:0.04,slope:-1.33Process finished with exit code 0

该函数可以计算很多的指标,如trend,h,p,z,Tau,s,var_s,slope,intercept这里做Sen+MK只需要保留trend,p,slope;trend:整体变化趋势,p代表显著性,slope表示增加/减少

终于出羊圈了,不过还有一点点咳嗽…

更多代码和软件操作可以关注个人公粽号:俊哥的地理空间 欢迎留言交流

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。