多年柵格數(shù)據(jù)(Mann-Kendall)趨勢(shì)檢驗(yàn)法在matlab上的實(shí)現(xiàn)

Mann-Kendall是一種非參數(shù)統(tǒng)計(jì)檢驗(yàn)方法,最初由Mann在1945年提出,后由Kendall和Sneyers進(jìn)一步完善,其優(yōu)點(diǎn)是不需要測(cè)量值服從正態(tài)分布,也不要求趨勢(shì)是線性的,并且不受缺失值和異常值的影響,在長(zhǎng)時(shí)間序列數(shù)據(jù)的趨勢(shì)顯著檢驗(yàn)中得到了十分廣泛的應(yīng)用。
定義標(biāo)準(zhǔn)化檢驗(yàn)統(tǒng)計(jì)量 Z:當(dāng)Z 的絕對(duì)值大于1.65、1.96和2.58時(shí),表示趨勢(shì)分別通過了信度為90%、95%和99%的顯著性檢驗(yàn)。
具體代碼如下:

clear
[a,R]=geotiffread('D:\GIS\yearmax\1982.tif'); %先導(dǎo)入投影信息
info=geotiffinfo('D:\GIS\yearmax\1982.tif');%先導(dǎo)入投影信息
[m,n]=size(a);
cd=34;       %34年,時(shí)間跨度  
datasum=zeros(m*n,cd)+NaN; 
p=1;
for year=1982:2015      %起始年份
     filename=['D:\qixiang\年全國8kmPET\china',int2str(year),'pet.tif'];
    data=importdata(filename);
    data=reshape(data,m*n,1);
    datasum(:,p)=data;         %
    p=p+1;
end
sresult=zeros(m,n)+NaN;

for i=1:size(datasum,1)        %
    data=datasum(i,:);
    if min(data)>0       % 有效格點(diǎn)判定,我這里有效值在0以上
        sgnsum=[];  
        for k=2:cd
            for j=1:(k-1)
                sgn=data(k)-data(j);
                if sgn>0
                    sgn=1;
                else
                    if sgn<0
                        sgn=-1;
                    else
                        sgn=0;
                    end
                end
                sgnsum=[sgnsum;sgn];
            end
        end  
        add=sum(sgnsum);
        sresult(i)=add; 
    end
end
vars=cd*(cd-1)*(2*cd+5)/18;
zc=zeros(m,n)+NaN;
sy=find(sresult==0);
zc(sy)=0;
sy=find(sresult>0);
zc(sy)=(sresult(sy)-1)./sqrt(vars);
sy=find(sresult<0);
zc(sy)=(sresult(sy)+1)./sqrt(vars);
geotiffwrite('C:\MATLAB\MK檢驗(yàn)結(jié)果.tif',zc,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag); %注意修改路徑
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容