遥感

MERRA数据预处理

2019-10-22  本文已影响0人  荔枝猪

需求

对全球MERRA数据进行预处理为自己需要的

代码

%% 先处理一个MERRA数据
% 原文件为一个月一个的nc格式数据
% 结果:提取出温度变量Ta和露点温度Td为一个元胞,一个月的数据为一个矩阵

% 查看nc文件的变量信息
info = ncinfo('D:\vpd\MERRA\MERRA2_100.statM_2d_slv_Nx.198001.nc4.nc');
% 看一下经纬度排列
lon = ncread('MERRA2_100.statM_2d_slv_Nx.198001.nc4.nc','lon');
lat = ncread('MERRA2_100.statM_2d_slv_Nx.198001.nc4.nc','lat');

% 根据确定的变量名称等信息,提取数据 
Ta = ncread('MERRA2_100.statM_2d_slv_Nx.198001.nc4.nc','T2MMEAN');
Ta = Ta - 273.15;   %温度K转为°C
Taa = rot90(Ta);    %逆时针旋转90°

% 显示一月的图,看是否正确(地图是否有旋转/翻转现象)
Taa = rot90(Ta);
imshow(Taa,[]);
    
%% 处理多年MERRA_nc数据,将以上代码编写成函数MERRA_Ta_nc
% 先创建空元胞
MERRA_Ta1980_2018 = {};

% 输入MERRA数据地址,读取文件夹下所有nc文件,一个文件代表一个月的数据
merra = dir('D:\vpd\MERRA\*.nc');

% 用编写好的MERRA_Ta_nc函数批量处理,将1980-2018共468个月数据从左往右排为一行储存在元胞
for i=1:size(merra,1)                                   %计算文件个数
    dz = strcat(merra(i).folder,'\',merra(i).name);     %数据的每个文件地址+文件名
    MERRA_Ta1980_2018{i} = MERRA_Ta_nc(dz);             %利用MERRA_Ta_nc函数提取温度数据
end

% 保存数据
save MERRA_Ta1980_2018.mat MERRA_Ta1980_2018

%% 提取露点温度Td数据同上,改下变量名即可
上一篇下一篇

猜你喜欢

热点阅读