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文件演示所有案例,根据需要对案例进行修改。





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