APP下载

GRIB2资料解读

2014-07-16陈甫舒秦

电脑知识与技术 2014年14期

陈甫 舒秦

摘要:概述了GRIB2的特点,对GRIB2的结构和分段的作用做了说明,并结合民航气象中心下发的GRIB2资料,阐述了GRIB2资料中二进制数据解读方法。

关键词:GRIB2; 民航气象; 表格驱动

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)14-3201-03

Abstract: This paper presents a description of the characteristics of GRIB2 and an explanation of its structures and roles of section. Combined with GRIB2 data issued by the Civil Aviation Meteorological Center, it interpretates methods of binary data in GRIB2.

Key words: GRIB2; China Civil Aviation Meteorology; interpretation; table driven

GRIB码是世界气象组织(WMO)推荐使用的以表格驱动的编码方式,是一种与计算机硬件无关的压缩的二进制编码。GRIB资料的版本2吸取了版本1的不足,在版本1的基础上进行了完善。民航气象中心向全国下发的GRIB资料已由GRIB1(GRIB资料版本1)变更为GRIB1(GRIB资料版本2)。GRIB资料的特点决定其可以在多种环境下使用。对GRIB2进行解读,理清GRIB2的结构,理解GRIB2编码不仅有利于深入认识GRIB资料负载的信息,还有利于将GRIB资料运用到MICAPS等多种软件平台上,并可与其它资料或算法结合形成新的气象产品。

1 GRIB2概况

GRIB1和GRIB2都采用二进制的编码分段的方式,将GRIB资料分成若干段,每一段都基本按照8位二进制为一组将二进制数据分组,每一段都有对应的一系列代码表、标志表和模板表以解析该段中的二进制数据。GRIB2大体继承了GRIB1的分段方式,并在此基础上加入一些新的分段, 下表1为GRIB1与GRIB2分段的比较。

GRIB1只能编码一种产品;GRIB2则可实现2段到7段、3段到7段、4段到7段的循环,从而可以同时编码多种网格和产品。

此外,GRIB2还扩充了代码表、标志表和模板表,使之可以对多种新产品进行编码。

2 GRIB2解读需要了解其它规则

GRIB2的编码有一些约定性的规则,没有在代码表、标志表和模板表中揭示出来,主要包括以下几个:

1)在表示纬度值时,北纬为正(二进制编码中第一个比特位为0),南纬为负(二进制编码中第一个比特位为1)。

2)经度值为0-360度,按东经方向标记。

3)缺测值的二进制编码为所有比特位置1。

4)GRIB2中除0段和8段外其它分段都包括段长和段号。段长是该分段包含的二进制八位组的数量,其中包括段长和段号所占用的二进制八位组的数量。

3 GRIB2的分段

3.1 第0段-指示段

包含16个二进制八位组,以“GRIB”的国际电报字符5号码的二进制编码开始。后面几个二进制组定义了GRIB所编码的学科、GRIB版本号和GRIB资料的总长度。

民航气象中心下发的GRIB2资料学科为气象产品,GRIB版本号为2。需要注意的是下发的GRIB资料不是以0段开头,在0段前还有“KWBC”或“EGRR”等其它编码,因此需要找到0段,从0段开始解读。

3.2 第1段-标识段

解读民航气象中心下发的GRIB2资料时主要参考表2中的设置。

3.3 第2段-本地使用段

用于资料源/资料加工中心在本地使用,在民航气象中心下发的GRIB2资料中不包含该段。

3.4 第3段-网格定义段

对网格进行定义。解读民航气象中心下发的GRIB2资料,主要参考表3的设置。

3.5 第4段-产品定义段

对产品进行定义。解读民航气象中心下发的GRIB2资料,主要参考表4的设置。

3.6 第5段-数据表示段

数据表示的参数说明。解读民航气象中心下发的GRIB2资料,主要参考表5的设置。

3.7 第6段-位图段

从第7个二进制八位组到本段尾都是位图数据。在民航气象中心下发的GRIB2资料中,都将第6个二进制八位组设置为“255”表示没有使用位图即没有位图数据,因此这些资料中都是以第6个二进制八位组结尾。

3.8 第7段-数据段

从第6个二进制八位组到本段尾都是数据。按照5段中定义的数据表示模板解读对应二进制数据。民航气象中心下发的GRIB2资料主要采用JPEG2000的压缩格式和格点数据的简单压缩格式,需按对应公式计算原始值,再将其转化为浮点数。

3.9 第8段-结束段

GRIB2资料的结束以“7777”结束,编码的16进制显示为“37 37 37 37”。

3.10 GRIB2中分段的循环

GRIB2可以按照2段到7段、3段到7段、4段到7段的循环。需要注意的是民航气象中心下发的GRIB2资料没有严格按照GRIB2的循环方式。在下发的同一文件中,尽管网格定义相同只需4段到7段的循环,但实际编码每个循环都从0段前的附加编码开始,到第8段的“7777”结束。

4 GRIB2中代码表、标志表和模板表的使用

GRIB2中定义了大量的代码表、标志表和模板表,从而支持对气象、水文、空间和海洋等多种产品的编码。代码表和标志表基本以选项的形式向使用者提供参数,模板表则是将一组定义好的参数或选项提供给使用者。代码表、标志表和模板表的使用是在GRIB2在定义分段中每个二进制八位组的含义时指定的。

民航气象中心下发的GRIB2资料只用于气象产品的发布,只用到其中部分代码表、标志表和模板表,并且其中许多可以设置多个值的二进制八位组也取值固定,大大减少了需要参考的代码表、标志表和模板表数量。

5 结束语

GRIB2采用分段循环的方式增强了编码产品的灵活性。代码表、标志表和模板表的扩充增加了GRIB2编码的产品种类。在解读GRIB2资料时可以立足民航气象中心下发的GRIB2资料所涉及的表格范围,分清GRIB2资料中固定与不固定的取值。在掌握编码规则后可以进一步研究利用GRIB2中其它的代码表、标志表和模板表,从而将新产品统一到GRIB2的框架中,更好的为民航气象业务工作服务。

参考文献:

[1] World Meteorological Organization. Guide to FM92 GRIB edition 2.

[2] World Meteorological Organization. Introduction to GRIB Edition 1 and GRIB Edition 2.

摘要:概述了GRIB2的特点,对GRIB2的结构和分段的作用做了说明,并结合民航气象中心下发的GRIB2资料,阐述了GRIB2资料中二进制数据解读方法。

关键词:GRIB2; 民航气象; 表格驱动

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)14-3201-03

Abstract: This paper presents a description of the characteristics of GRIB2 and an explanation of its structures and roles of section. Combined with GRIB2 data issued by the Civil Aviation Meteorological Center, it interpretates methods of binary data in GRIB2.

Key words: GRIB2; China Civil Aviation Meteorology; interpretation; table driven

GRIB码是世界气象组织(WMO)推荐使用的以表格驱动的编码方式,是一种与计算机硬件无关的压缩的二进制编码。GRIB资料的版本2吸取了版本1的不足,在版本1的基础上进行了完善。民航气象中心向全国下发的GRIB资料已由GRIB1(GRIB资料版本1)变更为GRIB1(GRIB资料版本2)。GRIB资料的特点决定其可以在多种环境下使用。对GRIB2进行解读,理清GRIB2的结构,理解GRIB2编码不仅有利于深入认识GRIB资料负载的信息,还有利于将GRIB资料运用到MICAPS等多种软件平台上,并可与其它资料或算法结合形成新的气象产品。

1 GRIB2概况

GRIB1和GRIB2都采用二进制的编码分段的方式,将GRIB资料分成若干段,每一段都基本按照8位二进制为一组将二进制数据分组,每一段都有对应的一系列代码表、标志表和模板表以解析该段中的二进制数据。GRIB2大体继承了GRIB1的分段方式,并在此基础上加入一些新的分段, 下表1为GRIB1与GRIB2分段的比较。

GRIB1只能编码一种产品;GRIB2则可实现2段到7段、3段到7段、4段到7段的循环,从而可以同时编码多种网格和产品。

此外,GRIB2还扩充了代码表、标志表和模板表,使之可以对多种新产品进行编码。

2 GRIB2解读需要了解其它规则

GRIB2的编码有一些约定性的规则,没有在代码表、标志表和模板表中揭示出来,主要包括以下几个:

1)在表示纬度值时,北纬为正(二进制编码中第一个比特位为0),南纬为负(二进制编码中第一个比特位为1)。

2)经度值为0-360度,按东经方向标记。

3)缺测值的二进制编码为所有比特位置1。

4)GRIB2中除0段和8段外其它分段都包括段长和段号。段长是该分段包含的二进制八位组的数量,其中包括段长和段号所占用的二进制八位组的数量。

3 GRIB2的分段

3.1 第0段-指示段

包含16个二进制八位组,以“GRIB”的国际电报字符5号码的二进制编码开始。后面几个二进制组定义了GRIB所编码的学科、GRIB版本号和GRIB资料的总长度。

民航气象中心下发的GRIB2资料学科为气象产品,GRIB版本号为2。需要注意的是下发的GRIB资料不是以0段开头,在0段前还有“KWBC”或“EGRR”等其它编码,因此需要找到0段,从0段开始解读。

3.2 第1段-标识段

解读民航气象中心下发的GRIB2资料时主要参考表2中的设置。

3.3 第2段-本地使用段

用于资料源/资料加工中心在本地使用,在民航气象中心下发的GRIB2资料中不包含该段。

3.4 第3段-网格定义段

对网格进行定义。解读民航气象中心下发的GRIB2资料,主要参考表3的设置。

3.5 第4段-产品定义段

对产品进行定义。解读民航气象中心下发的GRIB2资料,主要参考表4的设置。

3.6 第5段-数据表示段

数据表示的参数说明。解读民航气象中心下发的GRIB2资料,主要参考表5的设置。

3.7 第6段-位图段

从第7个二进制八位组到本段尾都是位图数据。在民航气象中心下发的GRIB2资料中,都将第6个二进制八位组设置为“255”表示没有使用位图即没有位图数据,因此这些资料中都是以第6个二进制八位组结尾。

3.8 第7段-数据段

从第6个二进制八位组到本段尾都是数据。按照5段中定义的数据表示模板解读对应二进制数据。民航气象中心下发的GRIB2资料主要采用JPEG2000的压缩格式和格点数据的简单压缩格式,需按对应公式计算原始值,再将其转化为浮点数。

3.9 第8段-结束段

GRIB2资料的结束以“7777”结束,编码的16进制显示为“37 37 37 37”。

3.10 GRIB2中分段的循环

GRIB2可以按照2段到7段、3段到7段、4段到7段的循环。需要注意的是民航气象中心下发的GRIB2资料没有严格按照GRIB2的循环方式。在下发的同一文件中,尽管网格定义相同只需4段到7段的循环,但实际编码每个循环都从0段前的附加编码开始,到第8段的“7777”结束。

4 GRIB2中代码表、标志表和模板表的使用

GRIB2中定义了大量的代码表、标志表和模板表,从而支持对气象、水文、空间和海洋等多种产品的编码。代码表和标志表基本以选项的形式向使用者提供参数,模板表则是将一组定义好的参数或选项提供给使用者。代码表、标志表和模板表的使用是在GRIB2在定义分段中每个二进制八位组的含义时指定的。

民航气象中心下发的GRIB2资料只用于气象产品的发布,只用到其中部分代码表、标志表和模板表,并且其中许多可以设置多个值的二进制八位组也取值固定,大大减少了需要参考的代码表、标志表和模板表数量。

5 结束语

GRIB2采用分段循环的方式增强了编码产品的灵活性。代码表、标志表和模板表的扩充增加了GRIB2编码的产品种类。在解读GRIB2资料时可以立足民航气象中心下发的GRIB2资料所涉及的表格范围,分清GRIB2资料中固定与不固定的取值。在掌握编码规则后可以进一步研究利用GRIB2中其它的代码表、标志表和模板表,从而将新产品统一到GRIB2的框架中,更好的为民航气象业务工作服务。

参考文献:

[1] World Meteorological Organization. Guide to FM92 GRIB edition 2.

[2] World Meteorological Organization. Introduction to GRIB Edition 1 and GRIB Edition 2.

摘要:概述了GRIB2的特点,对GRIB2的结构和分段的作用做了说明,并结合民航气象中心下发的GRIB2资料,阐述了GRIB2资料中二进制数据解读方法。

关键词:GRIB2; 民航气象; 表格驱动

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)14-3201-03

Abstract: This paper presents a description of the characteristics of GRIB2 and an explanation of its structures and roles of section. Combined with GRIB2 data issued by the Civil Aviation Meteorological Center, it interpretates methods of binary data in GRIB2.

Key words: GRIB2; China Civil Aviation Meteorology; interpretation; table driven

GRIB码是世界气象组织(WMO)推荐使用的以表格驱动的编码方式,是一种与计算机硬件无关的压缩的二进制编码。GRIB资料的版本2吸取了版本1的不足,在版本1的基础上进行了完善。民航气象中心向全国下发的GRIB资料已由GRIB1(GRIB资料版本1)变更为GRIB1(GRIB资料版本2)。GRIB资料的特点决定其可以在多种环境下使用。对GRIB2进行解读,理清GRIB2的结构,理解GRIB2编码不仅有利于深入认识GRIB资料负载的信息,还有利于将GRIB资料运用到MICAPS等多种软件平台上,并可与其它资料或算法结合形成新的气象产品。

1 GRIB2概况

GRIB1和GRIB2都采用二进制的编码分段的方式,将GRIB资料分成若干段,每一段都基本按照8位二进制为一组将二进制数据分组,每一段都有对应的一系列代码表、标志表和模板表以解析该段中的二进制数据。GRIB2大体继承了GRIB1的分段方式,并在此基础上加入一些新的分段, 下表1为GRIB1与GRIB2分段的比较。

GRIB1只能编码一种产品;GRIB2则可实现2段到7段、3段到7段、4段到7段的循环,从而可以同时编码多种网格和产品。

此外,GRIB2还扩充了代码表、标志表和模板表,使之可以对多种新产品进行编码。

2 GRIB2解读需要了解其它规则

GRIB2的编码有一些约定性的规则,没有在代码表、标志表和模板表中揭示出来,主要包括以下几个:

1)在表示纬度值时,北纬为正(二进制编码中第一个比特位为0),南纬为负(二进制编码中第一个比特位为1)。

2)经度值为0-360度,按东经方向标记。

3)缺测值的二进制编码为所有比特位置1。

4)GRIB2中除0段和8段外其它分段都包括段长和段号。段长是该分段包含的二进制八位组的数量,其中包括段长和段号所占用的二进制八位组的数量。

3 GRIB2的分段

3.1 第0段-指示段

包含16个二进制八位组,以“GRIB”的国际电报字符5号码的二进制编码开始。后面几个二进制组定义了GRIB所编码的学科、GRIB版本号和GRIB资料的总长度。

民航气象中心下发的GRIB2资料学科为气象产品,GRIB版本号为2。需要注意的是下发的GRIB资料不是以0段开头,在0段前还有“KWBC”或“EGRR”等其它编码,因此需要找到0段,从0段开始解读。

3.2 第1段-标识段

解读民航气象中心下发的GRIB2资料时主要参考表2中的设置。

3.3 第2段-本地使用段

用于资料源/资料加工中心在本地使用,在民航气象中心下发的GRIB2资料中不包含该段。

3.4 第3段-网格定义段

对网格进行定义。解读民航气象中心下发的GRIB2资料,主要参考表3的设置。

3.5 第4段-产品定义段

对产品进行定义。解读民航气象中心下发的GRIB2资料,主要参考表4的设置。

3.6 第5段-数据表示段

数据表示的参数说明。解读民航气象中心下发的GRIB2资料,主要参考表5的设置。

3.7 第6段-位图段

从第7个二进制八位组到本段尾都是位图数据。在民航气象中心下发的GRIB2资料中,都将第6个二进制八位组设置为“255”表示没有使用位图即没有位图数据,因此这些资料中都是以第6个二进制八位组结尾。

3.8 第7段-数据段

从第6个二进制八位组到本段尾都是数据。按照5段中定义的数据表示模板解读对应二进制数据。民航气象中心下发的GRIB2资料主要采用JPEG2000的压缩格式和格点数据的简单压缩格式,需按对应公式计算原始值,再将其转化为浮点数。

3.9 第8段-结束段

GRIB2资料的结束以“7777”结束,编码的16进制显示为“37 37 37 37”。

3.10 GRIB2中分段的循环

GRIB2可以按照2段到7段、3段到7段、4段到7段的循环。需要注意的是民航气象中心下发的GRIB2资料没有严格按照GRIB2的循环方式。在下发的同一文件中,尽管网格定义相同只需4段到7段的循环,但实际编码每个循环都从0段前的附加编码开始,到第8段的“7777”结束。

4 GRIB2中代码表、标志表和模板表的使用

GRIB2中定义了大量的代码表、标志表和模板表,从而支持对气象、水文、空间和海洋等多种产品的编码。代码表和标志表基本以选项的形式向使用者提供参数,模板表则是将一组定义好的参数或选项提供给使用者。代码表、标志表和模板表的使用是在GRIB2在定义分段中每个二进制八位组的含义时指定的。

民航气象中心下发的GRIB2资料只用于气象产品的发布,只用到其中部分代码表、标志表和模板表,并且其中许多可以设置多个值的二进制八位组也取值固定,大大减少了需要参考的代码表、标志表和模板表数量。

5 结束语

GRIB2采用分段循环的方式增强了编码产品的灵活性。代码表、标志表和模板表的扩充增加了GRIB2编码的产品种类。在解读GRIB2资料时可以立足民航气象中心下发的GRIB2资料所涉及的表格范围,分清GRIB2资料中固定与不固定的取值。在掌握编码规则后可以进一步研究利用GRIB2中其它的代码表、标志表和模板表,从而将新产品统一到GRIB2的框架中,更好的为民航气象业务工作服务。

参考文献:

[1] World Meteorological Organization. Guide to FM92 GRIB edition 2.

[2] World Meteorological Organization. Introduction to GRIB Edition 1 and GRIB Edition 2.