基于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