基于Malab的栅格水平的变异系数图及分级

作者: 画长空_yin | 来源:发表于2020-05-03 12:37 被阅读0次

变异系数反应了数据的波动特征,本文这里以NDVI数据为例,提供一段2000-2018年间NDVI变异系数计算的matlab代码,具体如下

@ author yinlichang3064@163.com
[aa,R]=geotiffread('C:\Users\lenovo\Documents\Tencent Files\1079192939\FileRecv\TIF处理\2000年NDVI最大值.tif');%先导入纬度数据
info=geotiffinfo('C:\Users\lenovo\Documents\Tencent Files\1079192939\FileRecv\TIF处理\2000年NDVI最大值.tif');
[m,n]=size(aa);
clear aa
datasum=zeros(m*n,19);
k=1;
for year=2000:2018
    filename=['C:\Users\lenovo\Documents\Tencent Files\1079192939\FileRecv\TIF处理\',int2str(year),'年NDVI最大值.tif'];
    data=importdata(filename);
    data1=double(data);
    datasum(:,k)=reshape(data1,[],1);
    k=k+1;
end
result=zeros(m,n);
for i=1:m*n
    data=datasum(i,:);
    if min(data)>-1
        data1=std(data)/mean(data);
        result(i)=data1;
    end
end
geotiffwrite('C:\Users\lenovo\Documents\Tencent Files\1079192939\FileRecv\TIF处理\变异系数.tif',result,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
% 变异系数分级
% 这里是按照 0.05 0.1 0.15 2间隔分成5级 
sy1=find(result<=0.05);
sy2=find(result>0.05 & result<=0.1);
sy3=find(result>0.1 & result<=0.15);
sy4=find(result>0.15 & result<=0.2);
sy5=find(result>0.2);
re=zeros(m,n);
re(sy1)=1;
re(sy2)=2;
re(sy3)=3;
re(sy4)=4;
re(sy5)=5;
geotiffwrite('C:\Users\lenovo\Documents\Tencent Files\1079192939\FileRecv\TIF处理\变异系数分级图.tif',re,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);

如有更多需求可查看个人介绍。

相关文章

网友评论

    本文标题:基于Malab的栅格水平的变异系数图及分级

    本文链接:https://www.haomeiwen.com/subject/tkjdghtx.html