美文网首页生态遥感的学习笔记遥感
使用Matlab计算多个时期的栅格数据平均

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

作者: 荔枝猪 | 来源:发表于2019-11-25 16:50 被阅读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);    
    
    

    相关文章

      网友评论

        本文标题:使用Matlab计算多个时期的栅格数据平均

        本文链接:https://www.haomeiwen.com/subject/cajjwctx.html