处理PML v2陆地蒸散发与总初级生产力数据集,由8天尺度合成月尺度、年尺度数据
处理代码
% By Yang,2020/5/9
% 所有数据全部解压放在一个文件夹下
%% 合成年尺度数据
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 = zeros(3000,7200); % 生成uint16的空矩阵
Ec = zeros(3000,7200);
Es = zeros(3000,7200);
Ei = zeros(3000,7200);
Ew = 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 + double(pml(:,:,1)); % 总初级生产力累加
Ec = Ec + double(pml(:,:,2)); % 植被蒸腾累加
Es = Es + double(pml(:,:,3)); % 土壤蒸发累加
Ei = Ei + double(pml(:,:,4)); % 冠层截留蒸发累加
Ew = Ew + double(pml(:,:,5)); % 水体、积雪蒸发累加
end
gpp(gpp==0) = NaN; % 空值设为NaN
Ec(Ec==0) = NaN;
Es(Es==0) = NaN;
Ei(Ei==0) = NaN;
Ew(Ew==0) = NaN;
PML_y{1,j} = gpp*8*0.01; % 真实值=像素值*scale_factor (scale_factor=0.01)
PML_y{2,j} = Ec*8*0.01; % 每个数据对应的是这个8天里GPP和ET要素的平均
PML_y{3,j} = Es*8*0.01;
PML_y{4,j} = Ei*8*0.01;
PML_y{5,j} = Ew*8*0.01;
end
save PML_y.mat PML_y -v7.3
数据网站
补充
月尺度合成比年尺度还稍微要麻烦一点,其实应该先计算月尺度的再合成年尺度的更为准确些。