GRIB学习笔记:样例文件分析 - Section 4

目录

本文通过分析一个GRIB2消息介绍GRIB2格式。

样例文件来自中国气象局数值预报中心GRAPES全球模式的预报结果,选用2019年5月26日00时次的000时次850hPa温度场。

Section 4: Product Definition Section

定义Section 5中数据的属性。内容如下

OctetsKeyTypeContent
1-4section4LengthunsignedLength of section in octets (nn)
5numberOfSectionunsigned Number of section (4)
6-7NVunsignedNumber of coordinate values after template or number of information according to 3D vertical coordinate GRIB2 message
8-9productDefinitionTemplateNumbercodetableProduct Definition Template Number (see Code Table 4.0)
10-xxProduct Definition Template (see Template 4.X, where X is the Product Definition Template Number given in octets 8-9)
[xx+1]-nnpvieeefloatOptional list of coordinate values or vertical grid information

grib_dump示例

======================   SECTION_4 ( length=34, padding=0 )    ======================
1-4       section4Length = 34
5         numberOfSection = 4
6-7       NV = 0
8-9       productDefinitionTemplateNumber = 0 [Analysis or forecast at a horizontal level or in a horizontal layer at a point in time (grib2/tables/4/4.0.table) ]
10        parameterCategory = 0 [Temperature (grib2/tables/4/4.1.0.table) ]
11        parameterNumber = 0 [Temperature  (K)  (grib2/tables/4/4.2.0.0.table) ]
12        typeOfGeneratingProcess = 0 [Analysis (grib2/tables/4/4.3.table) ]
13        backgroundProcess = 0
14        generatingProcessIdentifier = 15
15-16     hoursAfterDataCutoff = 0
17        minutesAfterDataCutoff = 0
18        indicatorOfUnitOfTimeRange = 1 [Hour (grib2/tables/4/4.4.table) ]
19-22     forecastTime = 0
23        typeOfFirstFixedSurface = 100 [Isobaric surface  (Pa)  (grib2/tables/4/4.5.table) ]
24        scaleFactorOfFirstFixedSurface = 0
25-28     scaledValueOfFirstFixedSurface = 85000
29        typeOfSecondFixedSurface = 255 [Missing (grib2/tables/4/4.5.table) ]
30        scaleFactorOfSecondFixedSurface = MISSING
31-34     scaledValueOfSecondFixedSurface = MISSING

说明

1-4: section长度

5: section序号

样例文件的Section 4从 0x6d 开始,长度为 0x22。下一节从 0x6d + 0x22 = 0x8F 开始。

从上图可以看到,下一节为Section 5。

6-7: 附加的坐标值或垂直网格信息的点的个数,数值预报中心尚未使用该字段,样例文件中该值为0。

8-9: 产品定义模板序号,由Code Table 4.0定义。

样例文件该值为0(Analysis or forecast at a horizontal level or in a horizontal layer at a point in time),即使用Template 4.0

10-34: 由 Template 4.0 定义

Template 4.0: 某时间点的水平层次的分析场或预报场

数值预报中心的GRIB2产品一般都使用Template 4.0,内容如下:

OctetsKeyTypeContent
10parameterCategorycodetableParameter category (see Code Table 4.1).
11parameterNumbercodetableParameter number (see Code Table 4.2).
12typeOfGeneratingProcesscodetableType of generating process (see Code Table 4.3)
13backgroundProcessunsignedBackground generating process identifier (defined by originating centre)
14generatingProcessIdentifierunsignedAnalysis or forecast generating processes identifier (defined by originating centre)
15-16hoursAfterDataCutoffunsignedHours of observational data cutoff after reference time (see Note 1)
17minutesAfterDataCutoffunsignedMinutes of observational data cutoff after reference time
18indicatorOfUnitOfTimeRangecodetableIndicator of unit of time range (see Code Table 4.4)
19-22forecastTimesignedForecast time in units defined by octet 18
23typeOfFirstFixedSurfacecodetableType of first fixed surface (see Code Table 4.5)
24scaleFactorOfFirstFixedSurfacesignedScale factor of first fixed surface
25-28scaledValueOfFirstFixedSurfaceunsignedScaled value of first fixed surface
29typeOfSecondFixedSurfacecodetableType of second fixed surface (see Code Table 4.5)
30scaleFactorOfSecondFixedSurfacesignedScale factor of second fixed surface
31-34scaledValueOfSecondFixedSurfaceunsignedScaled value of second fixed surface

Octet 10 与 11 是产品定义三级结构的后两级——类别和名称,第一级学科在Section 1的Octet 7定义。

10: 要素类别,由Code Table 4.1定义。该Code Table由一组子表格构成,每个子表格代表一个学科,并且与表格版本相关。样例文件使用第4版,所以可以在grib2/tables/4中根据学科序号查看对应的4.1.{disipline}.table表格。数值预报中心的GRIB2数据学科一般都是0,所以只需要查看4.1.0.table

样例文件类别是0,代表温度(Temperature)。

11: 要素序号,由Code Table 4.2定义。与要素类别相似,该Code Table由一组子表格构成,每个子表格代表一个学科的一个类别,并且与表格版本相关。样例文件使用第4版,所以可以在grib2/tables/4中根据学科序号查看对应的4.2.{disipline}.{parameterCategory}.table表格。

样例文件的要素序号是0,查询4.2.0.0.table可以看到,该值代表温度,单位为K(Temperature (K))。

12: 产品生成阶段类型,由Code Table 4.3定义。

样例文件为0,表示分析场(Analysis)。

13: 背景场生成标识,由数据生成中心定义。

14: 分析或预报场生成标识,由数据生成中心定义。

上面两个值均有数值预报中心定义,不知道具体的含义。

15-16: 观测资料相对于参考时间的截断小时

17: 观测资料相对于参考时间的截断分钟

样例文件中上述两个值都是0,似乎数值预报中心没有使用这两个值。

18: 时间范围单位指标,由Code Table 4.4定义。

样例文件为0x1,表示小时(Hour),该数值是Octet 19-22时间数据的单位。

19-22:预报时间,单位由Octet 18确定。

样例文件为0x0,表示000时效的数据。

23: 第一个固定层次的类型,由Code Table 4.5定义。

样例文件为0x64 = 100,表示等压面(Isobaric surface (Pa))。

24: 第一个固定层次的缩放因子

样例文件为0,表示不缩放。

25-28: 第一个固定层次缩放后的值

样例文件为0x14C08 = 85000,表示85000Pa,即850HPa。

29: 第二个固定层次的类型

30: 第二个固定层次的缩放因子

31-34: 第二个固定层次缩放后的值

样例文件没有使用第二个固定层次,所以上面几个字段为缺失值,所有字节均为0xFF。