matlab讀取grb、grb2數據並導出、繪圖

grb數據是grib碼文件,GRIB 碼是與計算機無關的壓縮的二進制編碼,主要用來表示數值天氣預報的產品資料。現行的GRIB 碼版本有GRIB1 和GRIB2 兩種格式。本文講解nctoolbox的基本使用,並讀取grb文件數據輸出到excel文件中,並繪製相關圖件。
本文使用nctoolbox工具進行操作並擴展其功能(安裝包見csdn:http://download.csdn.net/download/thesunrize/9757036;Github:https://github.com/Miaor/nctoolbox-extended/)。  
解壓後文件目錄如下:
其中readfile.m文件完成數據的導入、提取、輸出至excel、屬性打印以及繪圖功能,代碼如下:
function readfile
setup_nctoolbox%初始化nctoolbox,操作前請檢查電腦是否安裝java1.6及以上
[filename, pathname] = uigetfile('*.GRB''choose a GRB file'); %選擇grb文件,支持grb、grb2以及nc文件
if isequal(filename,0)    
   msgbox('you choose nothing');
else
   pathfile=fullfile(pathname, filename); %獲取文件路徑
ds= ncdataset(pathfile);%讀取數據集
   ds.netcdf %display file details
 
%繪圖
GPMData = ds.data(ds.variables{2});
GPMData = squeeze(GPMData);
Temp = ds.time('time', ds.data('time', 1));
lat = ds.data('lat');
lon = ds.data('lon');
  
surf(lon,lat,GPMData);
xlabel('lontitude')
ylabel('latitude')
zlabel('GPM')
shading interp;
title({datestr(Temp),'3d'}); 
colorbar;
 
%數據導出到excel
 name = {'lontitude','latitude','GPM'};
 xlswrite(strcat(filename,'.xlsx'), name,1,'A1')
 xlswrite(strcat(filename,'.xlsx'), lon,1,'A2')
 xlswrite(strcat(filename,'.xlsx'), lat,1,'B2')
 xlswrite(strcat(filename,'.xlsx'), GPMData,1,'C2')
    
msgbox('finished!');
end



將readfile.m文件拖入控制檯即可運行,效果如下:

選擇需要導入的grb文件



計算完成後,在nctoolbox目錄下會生成以grb源文件名稱相同的excel文件,同時將數據可視化,並在控制檯輸出grb文件相關信息:





補充:nctoolbox目錄下demo文件夾中提供了很多案例,可使用runtests.m文件演示所有案例,根據需要對案例進行修改。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章