遥感

使用Matlab合成月尺度、年尺度数据

2020-05-10  本文已影响0人  荔枝猪

处理PML v2陆地蒸散发与总初级生产力数据集,由8天尺度合成月尺度、年尺度数据

处理代码

% By Yang,2020/5/9
% 所有数据全部解压放在一个文件夹下
% GPP和ET真实值=像素值*scale_factor (scale_factor=0.01)
%% 合成年尺度数据
for j = 1:18                                                               % 2002-2019,18年
         a   = num2str(2001+j);                                            % 数字转字符
         dz  = ['F:\Regional_Dataset\PMLV2_005deg\PMLV2_005deg\*',a,'*.tif'];
         pml_dz = dir(dz);
         gpp = uint16(zeros(3000,7200));                                   % 生成uint16的空矩阵
         Ec  = uint16(zeros(3000,7200));
         Es  = uint16(zeros(3000,7200));
         Ei  = uint16(zeros(3000,7200));
         Ew  = uint16(zeros(3000,7200));
        parfor i = 1:size(pml_dz,1)                                        % 计算文件个数
              pml_dz2  = strcat(pml_dz(i).folder,'\',pml_dz(i).name);      % 数据的每个文件地址+文件名   
              [pml, R] = geotiffread(pml_dz2);                             % 读取tif数据                        
              gpp      = gpp + pml(:,:,1);                                 % 总初级生产力累加
              Ec       = Ec + pml(:,:,2);                                  % 植被蒸腾累加
              Es       = Es + pml(:,:,3);                                  % 土壤蒸发累加
              Ei       = Ei + pml(:,:,4);                                  % 冠层截留蒸发累加
              Ew       = Ew + pml(:,:,5);                                  % 水体、积雪蒸发累加           
        end
              PML_y{1,j}      = gpp;
              PML_y{2,j}      = Ec;
              PML_y{3,j}      = Es;
              PML_y{4,j}      = Ei;
              PML_y{5,j}      = Ew;  
end     
save PML_y.mat PML_y -v7.3   

%% 合成月尺度数据
for j = 1:18                                                              
    a = num2str(2001+j);     
    for p = 1:12                                                           % 12月
          if p < 10                                                        % 文件名2003-01-01.tif
            b = ['0',num2str(p)];
         else
            b = num2str(p);
          end
  dz = ['F:\Regional_Dataset\PMLV2_005deg\PMLV2_005deg\*',a,'-',b,'*.tif'];% 利用通配符查找各年各月数据的地址
         pml_dz = dir(dz);
         gpp    = uint16(zeros(3000,7200));
         Ec     = uint16(zeros(3000,7200));
         Es     = uint16(zeros(3000,7200));
         Ei     = uint16(zeros(3000,7200));
         Ew     = uint16(zeros(3000,7200));
         parfor i = 1:size(pml_dz,1)                                       % 计算文件个数
              pml_dz2  = strcat(pml_dz(i).folder,'\',pml_dz(i).name);      % 数据的每个文件地址+文件名   
              [pml, R] = geotiffread(pml_dz2);                             % 读取tif数据                            
              gpp      = gpp+pml(:,:,1);                                   % 总初级生产力累加
              Ec       = Ec + pml(:,:,2);                                  % 植被蒸腾累加
              Es       = Es + pml(:,:,3);                                  % 土壤蒸发累加
              Ei       = Ei + pml(:,:,4);                                  % 冠层截留蒸发累加
              Ew       = Ew + pml(:,:,5);                                  % 水体、积雪蒸发累加
         end
         PML_m{1,(j-1)*12+p} = gpp;  
         PML_m{2,(j-1)*12+p} = Ec;
         PML_m{3,(j-1)*12+p} = Es;
         PML_m{4,(j-1)*12+p} = Ei;
         PML_m{5,(j-1)*12+p} = Ew;
    end      
end
% 2002从7月起始,2019到8月结束,需要删除对应空元胞
save PML_m.mat PML_m -v7.3   

数据网站

国家青藏高原科学数据中心

上一篇下一篇

猜你喜欢

热点阅读