赞
踩
MK检验是曼-肯德尔法,又称Mann—Kenddall 检验法,是一种气候诊断与预测技术,应用Mann-Kendall检验法可以判断气候序列中是否存在气候突变,如果存在,可确定出突变发生的时间。Mann-Kendall检验法也经常用于气候变化影响下的降水、干旱频次趋势检测。目前常用于长时间序列的栅格数据的显著性检验,在植被覆盖度,NDVI,NPP等方面尤为常见。
该检验功能强大,不需要样本遵从一定的分布,部分数据缺失不会对结果造成影响,不受少数异常值的干扰,适用性强。不但可以检验时间序列的变化趋势,还可以检验时间序列是否发生了突变。
Matlab代码实现
clear [a,R]=geotiffread('D:\ex\PM25\PM25_2000_year.tif'); %首先导入投影信息 info=geotiffinfo('D:\ex\PM25\PM25_2000_year.tif');%首先导入投影信息 [m,n]=size(a); cd=5; %5年,时间跨度 datasum=zeros(m*n,cd)+NaN; p=1; for year=2000:2004 %起始年份+终止年份 filename=['D:\ex\PM25\PM25_',int2str(year),'_year.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 % 有效格点判定,我这里有效值在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('D:\ex\MKjianyan\MK检验结果.tif',zc,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag); %选择合适的路径
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。