代码改变世界

matlab 处理OMHCH2Od_V3数据

2020-10-14 15:44  omeqi  阅读(200)  评论(0编辑  收藏  举报

 

 

 

对下载一天某时刻的nc文件进行简单处理:

0 eathdata网站下载

    外网下载,白天比较慢,建议挂脚本下载

 

1 matlab处理程序

1 获取存放路径

  dir

    

2 查看nc里面的结构信息

  ncinfo函数

  或者HDFViewer工具都可

 

3 读取nc文件

  ncread函数

  读取时,注意经纬度直接在values里面,但所对应的值在Groups里面

clc;
clear;

Path = 'C:\Users\16965\Desktop\ncde\';						% 设置路径,记得加上最后的反斜杠
File = dir(fullfile(Path,'*.nc'));	        %%%dir 函数读取.nc格式的文件名 'name' ,路径‘folder’ 等信息
Len = length(File);						% 读取文件数量

% ncdisp('OMI-Aura_L3-OMHCHOd_2020m0901_v003-2020m0902t085552.nc')
% ncdisp(full_path)
for i = 1:Len
    full_path = strcat(Path,File(i).name);    % 拼接路径和文件名,并显示
    info = ncinfo(full_path);                 % 读取nc文件信息,但不能从通过此方法得到具体数据
    
    longitude = ncread(full_path,'longitude');     % 提取nc文件中变量‘longitude’,当此变量在Variables里面时
    latitude = ncread(full_path,'latitude');     % 提取nc文件中变量‘latitude’,当此变量在Variables里面时
    data = ncread(full_path,'/key_science_data/column_amount'); %此变量在Groups里面时
    
    ind_lon=find((longitude>=104)&(longitude<=114));
    ind_lat=find((latitude>=20)&(latitude<=27));
    
    
    longitude1=longitude(ind_lon);
    latitude1=latitude(ind_lat);
    data1=data(ind_lon,ind_lat)./10^15;  %%%%%%%%units =10^15× molecules/cm^2 %%%%%%%%
    
    ind_dat=find(data1<=0);
    data1(ind_dat)=0;
    
    
    [x,y]=meshgrid(longitude1,latitude1);
    x=x';
    y=y';

    %%%%%%%%%%%%%%%%%%%%%%%%%输出%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    data_out(:,1)=x(:);
    data_out(:,2)=y(:);
    data_out(:,3)=data1(:);
    num=num2str(i);
    dlmwrite(['ncde',num,'.txt'], data_out);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end

  

 

// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css