生态遥感的学习笔记遥感

使用Matlab计算多个时期的栅格数据平均

2019-11-25  本文已影响0人  荔枝猪

需求

使用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);    

上一篇 下一篇

猜你喜欢

热点阅读