使用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_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文件的方法相关推荐
- IDL和MATLAB读取grib数据
IDL读取grib数据 (1) 需要IDL8.1以上版本 (2) 代码如下: (3) 读取的数据结果在ENVI中查看如下: 可以看到在山东半岛的角上的值为0 ...
- 用Matlab读取Can录制的BLF文件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 用Matlab读取Can录制的BLF文件 2.读入数据 参考Matlab官网 代码如下(示例): % 创建DBC文件,用于解析报文的数 ...
- 安卓读取mysql数据库文件路径_Android开发实现读取assets目录下db文件的方法示例...
本文实例讲述了Android开发实现读取assets目录下db文件的方法.分享给大家供大家参考,具体如下: 最近准备打算写一个关于天气预报的app,偶然的机会在一大神的博客上看到了一个获取天气的api ...
- Python从数据库读取大量数据批量写入文件的方法
今天小编就为大家分享一篇Python从数据库读取大量数据批量写入文件的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将 ...
- python批量读取文件内容_Python从数据库读取大量数据批量写入文件的方法
使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将数据加载进内存,这时我们需要将数据进行预处理,分批次加载进内存. 下面是代码作用是将数据从数据库读取出来分批次写入txt文本文件,方便我们做 ...
- python读取数据库数据、并保存为docx_Python从数据库读取大量数据批量写入文件的方法...
Python从数据库读取大量数据批量写入文件的方法 使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将数据加载进内存,这时我们需要将数据进行预处理,分批次加载进内存. 下面是代码作用是将数据 ...
- matlab读取grib三维数据,matlab读取grib2文件
用matlab读取nc文件是简单的.但气象局的很多数据存储文件是grib2格式的.该如何读取呢?看了网上的众多方法,nctoolbox,read_grib都没有成功.最后投机取巧,用了36计中的瞒天过 ...
- matlab读取grib三维数据,Grib格式数据处理
上次我们说到了如何,这次我们说一下如何使用python处理grib格式数据. Grib格式是一种应用于气象领域的简明数据格式,由世界气象组织进行标准化.通常用来存储历史气象数据.当前有3个版本的gri ...
- Matlab读取Zygo干涉仪dat数据文件 光学检测加工(明码需另付费)
本程序支持在Matlab中读取Zygo干涉仪/轮廓仪(MetroPro或Mx)的.dat测量文件. Zygo干涉仪和轮廓仪 一.结果图 直接上结果对比图.图为MetroPro和Matlab分别对同一个 ...
最新文章
- GPUImage滤镜之锐化
- 非负矩阵分解中基于L1和L2范式的稀疏性约束
- Codeforces Round #655 (Div. 2) D. Omkar and Circle 思维 + 奇偶贪心
- ivx中字体显示_iVX云服务费用优化 · 上篇
- [转载] 【数学问题】利用python求解表达式
- Sublime Text 2搭建Java开发环境
- CSDN10大博客栏目火热评选中
- 细胞亚器互作之细胞代谢调节液泡与线粒体的接触位Cellular Metabolism Regulates Contact Sites between Vacuoles and Mitochondria
- Linux之校准服务器时间
- 2021美赛A题元胞自动机解法(M奖)
- 风云激荡,成功者自强
- 微信支付 签名 java_Java后台微信支付签名算法(MD5)
- springboot实现支付宝支付功能
- 强化理解指针、指针数组和数组指针(从三味书屋到成华大道)
- Word文档如何插入表格
- 白泽六足机器人_ros_v1——单腿RVIZ仿真
- Ext4分区不能mound的问题修复
- sdn主要包含哪些接口_解读SDN的东西、南北向接口
- 总结整理Echarts双y轴曲线图(全)
- 如何在Windows server 2012配置DHCP服务器
热门文章
- [网络应用]十一期间论坛开放注册活动汇总
- linux mint安装向日葵远程控制软件
- 射频RFID 高频标签 NXP Mifare卡介绍
- JavaScript中获取当前日期
- qiankun微前端中主应用路由页面加载微应用的某个路由页面
- chatGPT原理详解
- 黑色白色文字阴影HTML,利用css3的text-shadow属性实现文字阴影乳白效果
- 手机android的文件怎么恢复,如何恢复安卓手机内置存储中已删除的文件
- 【ThinkPHP】Fatal error: Uncaught think\exception\ErrorException: include(): Filename cannot be empty.
- 【无标题】Java面向对象第三章知识总结