在开始读取之前,有必要先了解一下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_grib 

2.Mex为MATLAB和Excutable的缩写,.MEX文件是一种可在matlab环境中调用的C(或fortran)语言衍生程序,MEX文件实现了一种其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。
该命令实现目的: GRiB Binary Data Section decoding)[2]

mex BDS_unpack_mex5.c 

3.使用如下命令切换到数据处理文件夹

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/

使用MatLab读取grib(grb)和grib2文件的方法相关推荐

  1. IDL和MATLAB读取grib数据

    IDL读取grib数据 (1)      需要IDL8.1以上版本 (2)      代码如下:        (3)      读取的数据结果在ENVI中查看如下: 可以看到在山东半岛的角上的值为0 ...

  2. 用Matlab读取Can录制的BLF文件

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 用Matlab读取Can录制的BLF文件 2.读入数据 参考Matlab官网 代码如下(示例): % 创建DBC文件,用于解析报文的数 ...

  3. 安卓读取mysql数据库文件路径_Android开发实现读取assets目录下db文件的方法示例...

    本文实例讲述了Android开发实现读取assets目录下db文件的方法.分享给大家供大家参考,具体如下: 最近准备打算写一个关于天气预报的app,偶然的机会在一大神的博客上看到了一个获取天气的api ...

  4. Python从数据库读取大量数据批量写入文件的方法

    今天小编就为大家分享一篇Python从数据库读取大量数据批量写入文件的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将 ...

  5. python批量读取文件内容_Python从数据库读取大量数据批量写入文件的方法

    使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将数据加载进内存,这时我们需要将数据进行预处理,分批次加载进内存. 下面是代码作用是将数据从数据库读取出来分批次写入txt文本文件,方便我们做 ...

  6. python读取数据库数据、并保存为docx_Python从数据库读取大量数据批量写入文件的方法...

    Python从数据库读取大量数据批量写入文件的方法 使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将数据加载进内存,这时我们需要将数据进行预处理,分批次加载进内存. 下面是代码作用是将数据 ...

  7. matlab读取grib三维数据,matlab读取grib2文件

    用matlab读取nc文件是简单的.但气象局的很多数据存储文件是grib2格式的.该如何读取呢?看了网上的众多方法,nctoolbox,read_grib都没有成功.最后投机取巧,用了36计中的瞒天过 ...

  8. matlab读取grib三维数据,Grib格式数据处理

    上次我们说到了如何,这次我们说一下如何使用python处理grib格式数据. Grib格式是一种应用于气象领域的简明数据格式,由世界气象组织进行标准化.通常用来存储历史气象数据.当前有3个版本的gri ...

  9. Matlab读取Zygo干涉仪dat数据文件 光学检测加工(明码需另付费)

    本程序支持在Matlab中读取Zygo干涉仪/轮廓仪(MetroPro或Mx)的.dat测量文件. Zygo干涉仪和轮廓仪 一.结果图 直接上结果对比图.图为MetroPro和Matlab分别对同一个 ...

最新文章

  1. GPUImage滤镜之锐化
  2. 非负矩阵分解中基于L1和L2范式的稀疏性约束
  3. Codeforces Round #655 (Div. 2) D. Omkar and Circle 思维 + 奇偶贪心
  4. ivx中字体显示_iVX云服务费用优化 · 上篇
  5. [转载] 【数学问题】利用python求解表达式
  6. Sublime Text 2搭建Java开发环境
  7. CSDN10大博客栏目火热评选中
  8. 细胞亚器互作之细胞代谢调节液泡与线粒体的接触位Cellular Metabolism Regulates Contact Sites between Vacuoles and Mitochondria
  9. Linux之校准服务器时间
  10. 2021美赛A题元胞自动机解法(M奖)
  11. 风云激荡,成功者自强
  12. 微信支付 签名 java_Java后台微信支付签名算法(MD5)
  13. springboot实现支付宝支付功能
  14. 强化理解指针、指针数组和数组指针(从三味书屋到成华大道)
  15. Word文档如何插入表格
  16. 白泽六足机器人_ros_v1——单腿RVIZ仿真
  17. Ext4分区不能mound的问题修复
  18. sdn主要包含哪些接口_解读SDN的东西、南北向接口
  19. 总结整理Echarts双y轴曲线图(全)
  20. 如何在Windows server 2012配置DHCP服务器

热门文章

  1. [网络应用]十一期间论坛开放注册活动汇总
  2. linux mint安装向日葵远程控制软件
  3. 射频RFID 高频标签 NXP Mifare卡介绍
  4. JavaScript中获取当前日期
  5. qiankun微前端中主应用路由页面加载微应用的某个路由页面
  6. chatGPT原理详解
  7. 黑色白色文字阴影HTML,利用css3的text-shadow属性实现文字阴影乳白效果
  8. 手机android的文件怎么恢复,如何恢复安卓手机内置存储中已删除的文件
  9. 【ThinkPHP】Fatal error: Uncaught think\exception\ErrorException: include(): Filename cannot be empty.
  10. 【无标题】Java面向对象第三章知识总结