GRIB API学习笔记04——GRIB命令行工具
本节大部分包含在内容在《GRIB API学习笔记01》中,仅补充新增的部分,重复部分请参阅笔记01.
整理自2A3-grib_api_tools.pdf
1. 使用GRIB Tools
1.1. 基本概念
命令行工具,用于交互或批处理grib数据,提供最通用的操作,避免写代码。具有一套相同的参数选项,可以将相同的条件用于不同工具。
推荐首先考虑使用GRIB命令行工具。
以下复制自参见1.2.2.2节
基本语法:
命令概述:
提供GRIB API本身消息:
girb_info, grib_keys
查看、比较GRIB消息
grib_dump, grib_ls, grib_get, grib_get_data, grib_compare
统计数目、复制消息
grib_count, grib_copy
修改消息内容
grib_set, grib_filter
直接输入命令就会打印帮助信息。
1.2. 信息工具
1.2.1. grib_info
提供:
版本
定义文件路径:GRIB_DEFINITION_PATH
示例文件路径:GRIB_SAMPLES_PATH
例:
1.2.2. grib_keys
查看可用的key
指定一个GRIB文件,或者指定一个GRIB类型,如GRIB1,GRIB2,reduced_gg_pl_grib1等。
语法:
选项
<td valign="top">
<type> Print the keys available in the GRIB type <type> <b></b>
</td>
<td valign="top">
<b>Print list of available GRIB types </b>
</td>
<td valign="top">
<b><file> Print the keys available in the GRIB file <file> </b>
</td>
<td valign="top">
<b>Print the extended set of keys </b>
</td>
<td valign="top">
<b>Print only the coded keys </b>
</td>
<td valign="top">
<b>Print the type information </b>
</td>
<td valign="top">
<b>Dump aliases</b>
</td>
** **
例:
1.3. 查看工具
1.3.1. grib_count
快速计算GRIB文件中的消息个数
语法:
** ** 可以使用通配符?
1.3.2. grib_dump
显示GRIB文件包含的GRIB消息内容
支持多种显示方式:
l Octet mode:WMO文档格式,支持十六进制
l Debug mode:打印所有GRIB文件中可用的key
以上两个模式无法同时使用。
可以打印Key的别名和类型信息。
还可以输出一个C程序示例,生成带数据或不带数据的GRIB文件。该代码可以用作生成类似GRIB文件的模板。
1.3.3. grib_ls
参见第二章
1.4. 修改
1.5. 获取键值对
1.5.1. grib_get
参见第二章
1.6. 获取数据
1.6.1. grib_get_data
参见第二章
1.7. 消息比较
1.7.1. grib_compare
比较两个文件的GRIB消息。默认按相同顺序,逐位比较,精确比较浮点数。
数据的允许偏差由绝对、相对或打包误差指定。
默认为绝对误差为0
找到差别时:
切换到基于key的模式,找出哪个key不同
返回非0值的错误码
提供只比较特定keys的选项
用法:
参数:
<td valign="top">
<b>All keys in this list are skipped when comparing files </b>
</td>
<td valign="top">
<b>Compare these keys only </b>
</td>
<td valign="top">
<b>Compare message headers only </b>
</td>
<td valign="top">
<b>Edition-independent compare </b>
</td>
<td valign="top">
<b>Where option </b>
</td>
<td valign="top">
<b>Do <i>not </i>fail on error </b>
</td>
<td valign="top">
<b>Messages not in the same order </b>
</td>
<td valign="top">
<b>Verbose </b>
</td>
例1:
比较失败,返回错误码1。
例2:使用backlist(-b)排除指定键
例3:只比较给定键,使用-c指定
例4:比较指定namespace下的key
例5:显示比较结果 –v
例6:只比较头部 –H,不能与-c混合使用
$ grib_compare -H rmf.gra.2013103112001.grb2 rmf.gra.2013103112002.grb2
例7:版本独立性 –e
只比较两个版本通用的高层信息
除MARS参数外,上面两个文件包含相同的信息。
例8:区别汇总 –f
例9:顺序无关比较 –r
默认按顺序比较两个文件,使用-r可以比较不同顺序的文件,但非常耗时。
例10:比较数据值
默认比较精确值
用以下方式设置不同的允许偏差:
<td valign="top">
<p align="left">
<b>Use absolute error as tolerance </b>
</p>
</td>
<td valign="top">
<p align="left">
<b>Use relative error as tolerance for </b><b>key </b>
</p>
</td>
<td valign="top">
<p align="left">
<b>Use packing error as tolerance </b>
</p>
</td>
<td valign="top">
<p align="left">
<b>Compare data values using tolerance specified in options </b><b>–A</b><b>, </b><b>-R</b><b>, </b><b>-P </b><b>multiplied by an integer </b><b>factor </b>
</p>
</td>
设置允许偏差值:
** **
对于下面的数据:
使用相对误差
对于下面的数据
使用打包误差:
1.8. 消息拷贝
1.8.1. grib_copy
参照第二章
1.9. 设置键值对
1.9.1. grib_set
参见第二章