需求
使用Matlab读取tif格式的栅格数据,并计算多个时期的栅格数据平均
编写函数计算多个时期的栅格数据平均
% 输入:dz 栅格数据地址
% 输出:data_mean 多个时期的栅格数据平均
for i=1:size(dz,1) % 计算文件个数
filename = strcat(dz(i).folder,'\',dz(i).name); % 栅格数据的每个文件地址+文件名
data = double(importdata(filename)); % 获取栅格数据
data(data<0) = nan; % 将研究区外nodata设为nan值,本例像元值小于0的为NAN
data_all{i} = data; % 存放于元胞中
data_mean = mean(cat(3,data_all{:}),3); % 求元胞内所有矩阵的平均
end
计算多个时期的栅格数据平均
% 输入栅格数据地址,读取文件夹下所有tif文件,一个文件代表一个时间(天\16d\月)的数据
dz = dir('E:\climate\evi\16d\23\*.tif');
% 利用编写的函数
data_mean = Avg_raster(dz);
%% 输出data_mean栅格数据
% 先读取一个已有栅格数据的地理信息
[a,R] = geotiffread('E:\climate\tem\16d\1\tem2001_01.tif');
info = geotiffinfo('E:\climate\tem\16d\1\tem2001_01.tif');
% 输出带有地理坐标信息的栅格数据
filename = 'E:\MODIS\EVI\evi01_18_23.tif';
geotiffwrite(filename,data_mean,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
网友评论