基于Malab的栅格水平的变异系数图及分级
2020-05-03 本文已影响0人
画长空_yin
变异系数反应了数据的波动特征,本文这里以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);
如有更多需求可查看个人介绍。