作者:CSDN @ _养乐多_
本文将介绍标准正态同质性检验(Standard Normal Homogeneity Test,SNHT) 突变点检测代码。以 NDVI 时间序列为例。输入数据可以是csv,一列NDVI值,一列时间。代码可以扩展到遥感时间序列突变检测(突变年份、突变幅度等)中。
结果如下图所示,
一、准备数据
测试数据(0积分下载):https://download.csdn.net/download/qq_35591253/88895803
该数据是GEE上提取的,参考博客《GEE:基于Landsat5/7/8/9数据提取一个点的NDVI时间序列(1986-2024)》
二、Pettitt介绍和代码
2.1 原理和步骤
Pettitt方法是一种非参数检验方法,用于检测时间序列数据中的突变点。这种方法的核心思想是比较序列中每个数据点与其前面所有数据点的值的大小关系,从而判断是否存在突变点。
具体来说,Pettitt方法通过计算一个统计量Ut来检测突变点。这个统计量是基于序列中每个数据点的值与序列平均值的差异累积得到的。如果在某个位置,统计量Ut显著地高于其他位置,那么这个位置就可能是一个突变点。文章来源:https://www.toymoban.com/news/detail-846226.html
在实际应用中,通常会结合其他方法(如滑动T检验、Mann-Kendall趋势检验等)来进行综合判断,以提高突变点检测的准确性和可靠性。文章来源地址https://www.toymoban.com/news/detail-846226.html
2.2 核心函数
def Pettitt_change_point_detection(X):
inputdata = np.array(X)
n = inputdata.shape[0]
U = [];
s = 0
U.append(sum(np.sign(X[0] - np.array(X[:]))))
for t in range(1, len(X)):
v_t = sum(np.sign(X[t]
到了这里,关于python:Pettitt突变检测(以NDVI时间序列为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!