1. 程式人生 > 實用技巧 >matlab 處理OMHCH2Od_V3資料

matlab 處理OMHCH2Od_V3資料

對下載一天某時刻的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