基于Matlab的NDVI最大合成

采用最大合成法将月数据ndvi合成年数据NDVI,本文以spot的月ndvi为例进行,利用matlab平台,代码如下所示:

%author yinlichang3064@163.com
 [a,R]=geotiffread('F:\项目\data\spot_月ndvi\ndvi200001.tif');%先投影信息
info=geotiffinfo('F:\项目\data\spot_月ndvi\ndvi200001.tif');
for i=2000:2015
datasum=zeros(size(a,1)*size(a,2),12); %size(a,1)和size(a,2)分别是进行合成的图像的行列号
    for j=1:12
         if j<10
          data=importdata(strcat('F:\项目\data\spot_月ndvi\ndvi',int2str(i),'0',int2str(j),'.tif'));
        else
          data=importdata(strcat('F:\项目\data\spot_月ndvi\ndvi',int2str(i),int2str(j),'.tif'));
        end
        data=reshape(data,size(a,1)*size(a,2),1);
        datasum(:,j)=data;
    end
    maxndvi=zeros(size(a,1),size(a,2))+NaN;
    for n=1:length(datasum)
        data=datasum(n,:);
        datamax=max(data);
        if datamax>-1
              maxndvi(n)=datamax;
        end
    end
    filenameet=strcat('F:\项目\data\2000-2015年NDVI\spot_ndvi_',int2str(i),'.tif');
    geotiffwrite(filenameet,maxndvi,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
end

通过上述方式就能够批量输出tif格式的2000-2015年的NDVI最大合成数据了

    原文作者:画长空_yin
    原文地址: https://www.jianshu.com/p/74f1ffa92d44
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞