grb文件的读取(转自:http://blog.sciencenet.cn/blog-922140-713837.html)
今天来斟酌了下grb文件格式的读取,现在总结一下:
1. grb格式文件是国际气象组织一种独特的数据存储格式,所有不能直接打开,下面介绍一种matalb代码读取文件的方法,首先下GRID_GRIB代码,代码可以从网站 http://www.renci.org/~bblanton/files/ReadGrib/ 下载。然后再matlab平台下调用read_grib.m文件既可以读取文件。
2. 调用函数的时候需要注意:需要先打开mex BDS_unpack_mex5.c,Mex为MATLAB和Excutable的缩写,.MEX文件是一种可在matlab环境中调用的C(或fortran)语言衍生程序,MEX文件实现了一种其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。
3. 读取数据一般先读取数据目录:grib_struct=read_grib(‘CCSRNIES_SRES_A1_TMP_1441-1464.grb‘,‘invent‘);
如下:
4. 然后根据自己的需要读取自己需要的数据,比如要读取变量PRES : grib_struct=read_grib(‘eta.grb‘,{‘PRES‘})
就可以将数据读取出来,数据是结构体的格式,实际的数据存储在fltarray里面。
5.关于这个实际数据是向量的格式,如何将它转换为经纬度的格式,这种情况下,首先将一维数据reshape成Ni行,Nj列,然后进行翻转成Nj行,Ni列的数据。最后上下翻转,就得到二维矩阵数据了(对于等距圆柱投影网格和高斯网格)。其他一些数据的data presentation type可能回去其他一些类型,这些类型如何还原成二维格式的,还需要根据具体情况修改。
其实根据grd数据的grid属性gds也可以看出怎么还原:
grb文件的读取