使用MatLab读取grib(grb)和grib2文件的方法 | 您所在的位置:网站首页 › supposed什么意思怎么读 › 使用MatLab读取grib(grb)和grib2文件的方法 |
在开始读取之前,有必要先了解一下grib文件是什么。以下内容摘自百度百科: GRIB 码是与计算机无关的压缩的二进制编码,主要用来表示数值天气预报的产品资料。现行的GRIB 码版本有GRIB1 和GRIB2 两种格式。GRIB2较之GRIB1具有加大优点而被广泛使用。如:表示多维数据、模块性结构、支持多种压缩方式、IEEE标准浮点表示法等。 目前有两个版本,第一版(GRIB1)和第二版(GRIB2)。 编解码工具 - GRIB API是ECMWF开发的用于编解码GRIB1和GRIB2的工具,提供c++、fortran、python等语言的API,并提供一系列命令行工具。 - wgrib2 是NCEP开发的GRIB2命令行工具,用于读取、创建和修改GRIB2文件。[1] 一.准备工作 1.先要安装MatLab,我使用的是MatLab R2016a. 2.安装MinGW64编译器(直接下载最新版即可),点击安装,注意安装路径不要有空格。然后为MinGW64配置环境变量:
3.在 MatLab命令行中 使用如下命令配置编译器: >> setenv('MW_MINGW64_LOC','C:\MinGw\mingw64')4.继续使用如下命令查看编译器能否被找到: mex -setup -v使用如下命令查看mex配置的是哪个编译器。 mex -setup至此准备工作已经做完。 二. grib的读取 版本一的grib文件使用插件read_grib。 1.在MatLab的命令行中使用如下命令切换到read_grib代码所在的文件夹:如 cd E:\read_grib2.Mex为MATLAB和Excutable的缩写,.MEX文件是一种可在matlab环境中调用的C(或fortran)语言衍生程序,MEX文件实现了一种其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。 该命令实现目的: GRiB Binary Data Section decoding)[2] mex BDS_unpack_mex5.c3.使用如下命令切换到数据处理文件夹 cd E:\06实验室工作\农业新闻写作\2017寒假收集数据\2017.1.22-2.22预报数据中国周边区域气象4.读取上面的文件夹下的grb数据: gribname='NAFP_GRAPES_0_FTM-38-CHN-PRS-100X100-1-0-0-000-999998-2017020200-0.GRB' read_grib(gribname,'invent')就可以完成数据的读取了。然而这里出了一个问题,我们之后再说。但是这种方法用来读取版本一的grib文件是没有问题的。 出现的问题如下: 正如提示所说,Read_grib不能读取版本2的grib记录,我很郁闷啊。而我们从中国气象数据网获取到的grib文件使用的是第二版(GRIB2),所以只能寻找版本2的grib文件读取方法。 三.grib2的读取 grib2的解编码工具是wgrib2,因此需要在MatLab的程序中调用。 我是用的wgrib2的版本是1.9.2下载。 read_grib2下载用的是也是别人写的代码。 将grb文件和read_grib2放在同一路径下,同样使用如下命令运行读取grb文件: gribname='NAFP_GRAPES_0_FTM-38-CHN-TEM-100X100-103-2-0-000-999998-2017033000-0.GRB' read_grib2(gribname,'invent')运行结果如下: 大功告成。 附件: grb文件 参考资料: [1]百度百科.http://baike.baidu.com/link?url=cePjYq0LA0d69lh1LPO7T_1cshYLmdA8X0WE422cXjVlWOMvHxIiYi7-vFq_MBenQvcA1sVy4AelOAp9lf6Wna [2]LongShaoAn的博客.http://blog.163.com/jey_df/blog/static/182550161201256103812959/ |
CopyRight 2018-2019 实验室设备网 版权所有 |