采用最大合成法将月数据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最大合成数据了