基于matlab 的長(zhǎng)時(shí)間柵格數(shù)據(jù)的Sen+MK顯著性檢驗(yàn)趨勢(shì)分析

在前一篇文章中講述了用sen法進(jìn)行長(zhǎng)時(shí)間的趨勢(shì)分析,但并未對(duì)結(jié)果進(jìn)行顯著性檢驗(yàn),通常Sen與MK檢驗(yàn)是結(jié)合在一起的,
因此本文主要講述如何進(jìn)行MK檢驗(yàn)。具體代碼如下

% @author yinlichang3064@163.com
clear
[a,R]=geotiffread('D:\GIS\vegetation\output\yearmax\1982.tif'); %先導(dǎo)入投影信息
info=geotiffinfo('D:\GIS\vegetation\output\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\年全國(guó)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); %注意修改路徑

通過(guò)上述代碼的運(yùn)行可以得到MK檢驗(yàn)的結(jié)果。上述代碼運(yùn)行時(shí)只需要修改起始年份和年份長(zhǎng)度以及文件的名稱(chēng),注意文件名稱(chēng)
按照規(guī)律來(lái)進(jìn)行分布,本文中的名稱(chēng)是china1982pet.tif,china1983pet.tif...china2015pet.tif,保證能夠按照規(guī)律讀取。
假設(shè)讀者已經(jīng)運(yùn)行完了sen代碼和本文中的代碼,則可以得到兩個(gè)tif文件,分別是MK檢驗(yàn)結(jié)果和sen的結(jié)果,進(jìn)而通過(guò)以下代碼
來(lái)進(jìn)行最終的判斷

[a,R]=geotiffread('D:\GIS\vegetation\output\yearmax\1982.tif'); %先導(dǎo)入投影信息
info=geotiffinfo('D:\GIS\vegetation\output\yearmax\1982.tif');%先導(dǎo)入投影信息
data=importdata('C:\MATLAB\MK檢驗(yàn)結(jié)果.tif'); 
sen_value=importdata('D:\zhang\基于sen的pet變化趨勢(shì).tif');
sen_value(abs(data)<1.96)=NaN; %MK結(jié)果值高于1.96則認(rèn)為通過(guò)了顯著性95%
geotiffwrite('C:\MATLAB\通過(guò)顯著性95%的MK+sen趨勢(shì)分析結(jié)果.tif',sen_value,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);%注意修改路徑

更多需求,請(qǐng)查看個(gè)人介紹

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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