作者:CSDN @ _養(yǎng)樂多_
本文將介紹標(biāo)準(zhǔn)正態(tài)同質(zhì)性檢驗(yàn)(Standard Normal Homogeneity Test,SNHT) 突變點(diǎn)檢測代碼。以 NDVI 時(shí)間序列為例。輸入數(shù)據(jù)可以是csv,一列NDVI值,一列時(shí)間。代碼可以擴(kuò)展到遙感時(shí)間序列突變檢測(突變年份、突變幅度等)中。
結(jié)果如下圖所示,
一、準(zhǔn)備數(shù)據(jù)
測試數(shù)據(jù)(0積分下載):https://download.csdn.net/download/qq_35591253/88895803
該數(shù)據(jù)是GEE上提取的,參考博客《GEE:基于Landsat5/7/8/9數(shù)據(jù)提取一個(gè)點(diǎn)的NDVI時(shí)間序列(1986-2024)》
二、Pettitt介紹和代碼
2.1 原理和步驟
Pettitt方法是一種非參數(shù)檢驗(yàn)方法,用于檢測時(shí)間序列數(shù)據(jù)中的突變點(diǎn)。這種方法的核心思想是比較序列中每個(gè)數(shù)據(jù)點(diǎn)與其前面所有數(shù)據(jù)點(diǎn)的值的大小關(guān)系,從而判斷是否存在突變點(diǎn)。
具體來說,Pettitt方法通過計(jì)算一個(gè)統(tǒng)計(jì)量Ut來檢測突變點(diǎn)。這個(gè)統(tǒng)計(jì)量是基于序列中每個(gè)數(shù)據(jù)點(diǎn)的值與序列平均值的差異累積得到的。如果在某個(gè)位置,統(tǒng)計(jì)量Ut顯著地高于其他位置,那么這個(gè)位置就可能是一個(gè)突變點(diǎn)。文章來源:http://www.zghlxwxcb.cn/news/detail-846226.html
在實(shí)際應(yīng)用中,通常會(huì)結(jié)合其他方法(如滑動(dòng)T檢驗(yàn)、Mann-Kendall趨勢檢驗(yàn)等)來進(jìn)行綜合判斷,以提高突變點(diǎn)檢測的準(zhǔn)確性和可靠性。文章來源地址http://www.zghlxwxcb.cn/news/detail-846226.html
2.2 核心函數(shù)
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]
到了這里,關(guān)于python:Pettitt突變檢測(以NDVI時(shí)間序列為例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!