GRIB学习笔记:样例文件分析 - Section 1
本文通过分析一个GRIB2消息介绍GRIB2格式。
样例文件来自中国气象局数值预报中心GRAPES全球模式的预报结果,选用2019年5月26日00时次的000时次850hPa温度场。
Section 1: Identification Section
内容如下:
Octets | Key | Type | Content |
---|---|---|---|
1-4 | section1Length | unsigned | Length of section in octets (21 or nn) |
5 | numberOfSection | unsigned | Number of section (1) |
6-7 | centre | codetable | Identification of originating/generating centre (see Common Code Table C-11) |
8-9 | subCentre | unsigned | Identification of originating/generating sub-centre (allocated by originating/generating Centre) |
10 | tablesVersion | codetable | GRIB Master Tables Version Number (see Code Table 1.0 and Note 1) |
11 | localTablesVersion | codetable | Version number of GRIB Local Tables used to augment Master Tables (see Code Table 1.1 and Note 2) |
12 | significanceOfReferenceTime | codetable | Significance of Reference Time (see Code Table 1.2) |
13-14 | year | unsigned | Year (4 digits) |
15 | month | unsigned | Month |
16 | day | unsigned | Day |
17 | hour | unsigned | Hour |
18 | minute | unsigned | Minute |
19 | second | unsigned | Second |
20 | productionStatusOfProcessedData | codetable | Production status of processed data in this GRIB message (see Code Table 1.3) |
21 | typeOfProcessedData | codetable | Type of processed data in this GRIB message (see Code Table 1.4) |
22 - 23 | Identification template number (optional, see Code table 1.5) | ||
24 - nn | Identification template (optional, see template 1.X, where X is the identification template number given in octets 22-23) |
grib_dump示例
====================== SECTION_1 ( length=21, padding=0 ) ======================
1-4 section1Length = 21
5 numberOfSection = 1
6-7 centre = 38 [Beijing (RSMC) (grib2/centre.table) ]
8-9 subCentre = 0
10 tablesVersion = 4 [Version implemented on 7 November 2007 (grib2/tables/1.0.table) ]
11 localTablesVersion = 1 [Unknown code table entry (grib2/tables/4/1.1.table) ]
12 significanceOfReferenceTime = 0 [Analysis (grib2/tables/4/1.2.table) ]
13-14 year = 2019
15 month = 5
16 day = 27
17 hour = 0
18 minute = 0
19 second = 0
20 productionStatusOfProcessedData = 0 [Operational products (grib2/tables/4/1.3.table) ]
21 typeOfProcessedData = 0 [Analysis products (grib2/tables/4/1.4.table) ]
说明
1-4:section长度 5:section序号
与section 0和8不同,section 1-7 均以这两个字段开头,长度和section序号。样例消息section 1的长度如下:
section 1长度为0x15,下一节起始为0x10 + 0x15 = 0x25
从上图中可以看到,下一节长度为0x48,序号为3.
6-7:中心名,由Common Code Table C-11确定。
8-9:子中心名,由各中心自己确定。
样例文件中心为0x26即38,代表北京,Beijing (RSMC)。
10:表格的主版本号,由Code Table 1.0定义
11: 表格的本地版本号,由Code Table 1.1定义
样例文件表格主版本为4,即Version implemented on 7 November 2007。本地版本号为1,由数值预报中心定义。
12:参考时间的含义(Significance of Reference Time),由Code Table 1.2定义。
样例文件中的0x00表示分析场(Analysis)。另一个常用的值是0x01,表示预报场(Start of forecast)。
13-14:年 15:月 16:日 17:小时 18:分钟 19:秒
数据的参考时间。
年0x07E3=2019,月0x05=5,日0x1B=27。
时0x0=0,分0x0=0,秒0x0=0。目前数值预报中心的GRIB2数据尚未用到分和秒。
数据的准确时间由13-19的参考时间加上产品定义节(Section 4)中附加的时间信息得到。
20:数据产品状态,由Code Table 1.3定义
样例文件为0x0,表示业务产品(Operational products)。
21:数据类型,由Code Table 1.4定义
样例文件为0x0,表示分析场产品( Analysis products)。
至此已到达Section 1的长度结尾,数值预报中心的GRIB2文件尚未定义可选的Identification template。