美文网首页遥感
MERRA数据预处理

MERRA数据预处理

作者: 荔枝猪 | 来源:发表于2019-10-22 20:44 被阅读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数据同上,改下变量名即可
    

    相关文章

      网友评论

        本文标题:MERRA数据预处理

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