zhanghouxing的个人博客分享 http://blog.sciencenet.cn/u/zhanghouxing

博文

grb文件的读取 (更新)

已有 18825 次阅读 2013-8-3 17:07 |系统分类:科研笔记| MATLAB, GRB, Hadcm3

read_grib.r4.rar

今天来斟酌了下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环境中数据处理的效率。(2014b版本上,次过程可忽略)

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列的数据。最后上下翻转(因为数据纬度是从-90到90进行变化),就得到二维矩阵数据了(对于等距圆柱投影网格和高斯网格)。其他一些数据的data presentation type可能回去其他一些类型,这些类型如何还原成二维格式的,还需要根据具体情况修改。


其实根据grd数据的grid属性gds也可以看出怎么还原(经度和纬度均是格子中心的值):




https://blog.sciencenet.cn/blog-922140-713837.html

上一篇:matlab进度条
下一篇:.nc数据读取详细资料matlab2010a及后面的版本
收藏 IP: 210.72.80.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (5 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-23 19:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部