matlab读取grb、grb2数据并导出、绘图

grb数据是grib码文件, GRIB  码是与计算机无关的压缩的二进制编码,主要用来表示数值天气预报的产品资料。现行的 GRIB  码版本有 GRIB 1 和 GRIB 2 两种格式。本文讲解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文件演示所有案例,根据需要对案例进行修改。





猜你喜欢

转载自blog.csdn.net/theSunrize/article/details/55521994
今日推荐