2.2. 气象数据标准格式探讨¶
王伯民
(WDC-D 气象学科中心)
气象数据是一种涉及全球三维空间,随时间不断变化、探测手段不一、项目繁多的自然科学数据。 气象数据所表现的天气现象是超越国界的。 因此,在天气观测、资料交换、预报产品的制作和交换以及世界天气监视网的组织方面, 存在着有效和广泛的国际合作。气象数据的有效交换和存储,对气象事业的发展具有重要的作用。
气象数据格式的标准化是一个为国际气象界长期关心和重视的问题,在这一方面已取得了令人瞩目的成绩。 纵观其发展过程,有一个由字符格式向二进制格式,由专用格式向通用格式进化的特征。
目前,气象数据标准格式大体有四种类型。
2.2.1. 1 气象数据标准格式类型¶
1.1 字符格式¶
字符格式数据指以EBCDIC码或ASC Ⅱ码的字符组合形成的数据,通常,对某一位置的字符赋以一种意义, 或通过指示码对某一位置的字符赋以不同的意义。字符格式 有如下特点:
字符格式的数据不须通过转换,可以直接通过屏幕或打印机进行阅读,可以由计算机键盘向文件直接输入, 因此校对、修改、更新数据比较自由、方便。
数据以字符为单位,因传输、载体受损等某种原因造成局部字符丢失时, 可以通过数据格式定义的规则判断错误的状态,把数据重新对位,使数据丢失的损失减小到最低程度。
字符格式是目前应用最广泛的格式。但是,字符格式也存在着下列问题:
每一新种类的观测资料、产品或新组合的资料均需要一种新的格式。
编码和解码相应地需专门开发程序。
占用空间大,字符转换时间长。
1.2 二进制定长格式¶
二进制定长格式指以定长的二进制数表示数据的方式。通常以2个字节长的二进制数表示一个数据。 本格式具有如下特点:
2字节长的数据可以表示-32768至322767或0至65535范围内的数值。 对于数据值变化范围大于2位数的数据,具有明显的节省空间的作用。
4字节长的数据可以表示-231至231-1范围内的数值。 对于数据值变化范围大于4位数的数据,具有明显的节省空间的作用。
(2)程序调用数据时,不须转换格式,因而速度快,省机时。
二进制定长格式存在着下列问题:
每一新种类的观测资料、产品或新组合的资料均需要一种新的格式;
二个字节及二个字节以上的二进制定长格式数据在微机上与大、中、小型机上的排列可能有差别, 不同机型使用时,组成数据的字节位置须作置换。
1.3 二进制格点标准格式(GRIB)¶
GRIB是一种适用于水平场的具有自定义性能的二进制数据格式, 用于各种格点场资料(即表示各经纬点上同一要素值的水平场资料)。
二进制格点标准格式由参数说明和数据块两部分组成。数据表示采用了二进制压缩存储方式。
1.4 二进制通用气象数据表示格式(FM 94BUFR)¶
二进制通用气象数据表示格式是一种通用的具有自定义性能的二进制数据格式。BUFR码不仅包含气象数据, 还包含对这些数据的完整描述。BUFR码的表示形式不依赖于任何计算机的物理记录、字块或者文件结构, 能够通过数据描述部分的信息,实现对各种要素的任意方式的组合,并通过一个简单的展开过程, 完成对数据的译码过程,因而具有速度快、空间省、灵活方便、运用性广等特点,尤其适于数据交换用。 BUFR的设计思想和方法对数据标准格式的设计和应用,具有很高的价值。
2.2.2. 2 BUFR报的格式¶
2.1 BUFR报的结构¶
一份BUFR报由六段连续的二进制数字组成。0段和5段各由4个字符BUFR和“7777”(CCITT-TA5号码)组成, 分别表示一份BUFR报的开始和结束。1段为标识段,2段为选择段,3段为数据描述段,4段为数据段。
BUFR报中的某些信息,用四种表说明。表A是资料类型说明,表B、表C、表D是数据描述符的说明。
在下述有关1一4段的说明中,“字节”由8个比特位组成,其第1个比特位(Bitl)指值最大的位, 第8个比特位(Bit8)是值最小的位。每个段都由偶数个字节组成。
由1段至4段,其第1个字节至第3个字节表示本段的长度(字节数),第4个字节备用。
2.2 标识段¶
BUFR报有关信息说明
1—3 | 字节段的长度 |
4 | BUFR版本号 |
5—6 | 编发中心 |
7 | 更新号 |
8 | 8 Bitl =0 无选择段 Bitl =1 有选择段 |
9 | 9 BUFR报类型(表A) |
10 | BUFR报子类型 |
11-12 | 若使用标准的WMO FM 94BUFR版本,则为0;否则置局地表 |
格版本号
13—17 | 日期/时间 |
18- | 自用 |
2.3 选择段¶
编制BUFR报者自定。
1一3字节 | 段长度 |
4 | 置0 |
5— | 自用 |
2.4 数据描述段¶
用以数据描述,指示4段数据段的数据表示法。
1—3 | 字节段的长度 |
4 | 置0 |
5—6 | 数据子集数 |
7 | Bitl = l 观测资料 Bitl = ( )非观测资料 |
Bit2=l 压缩资料 Bit2 = ( )非压缩资料 | |
Bit 3—8 置〇 | |
8— | 数据描述。每一组数据描述符对应于数据段中一个数据子集。 |
数据描述符由2个字符组成,包含3个值F,X,Y,各占2, 6,8个比特位。 本文中F,X,Y的值用8进制数表示。
F表示描述符的类型:
F = 0 要素描述符(表B)
F = 1 重复描述符
F = 2 因子描述符(表C)
F = 3 序列描述符(表D)
要素描述符
要素描述符通过表B,指示要素的名称,使用的单位、还原比例因子、附加基准 值、以比特为单位的数据宽度等。
要素描述符表示为0XY,X指示表B中的类别,Y指示该类中的入口。
X:
01 | 识别类 |
02 | 仪器 |
4 | 时间 |
5 | 水平位置-1 |
6 | 水平位置-2 |
7 | 垂直位置 |
8 | 意义限定符 |
10 | 垂直要素与气压 |
11 | 风与湍流 |
12 | 温度 |
13 | 湿度与水文 |
14 | 辐射与辐射率 |
20 | 天气现象 |
22 | 海洋要素 |
31 | 数据描述符算子限定符 |
例如:
FXY = 010004 从表B中查得,表示气压,单位:帕,比例因子-1,附加基准值0,数据宽度14比特。
重复描述符
重复描述符定义对描述符的重复过程。X表示被重复的描述符的个数,Y表示被重复子序列的重复次数。
例如:102003 007004 010003
等于:007004 010003 007004 010003 007004
010003
因子描述符
通过表C修改要素描述符中有关因子的描述符。X指示因子名称。Y指示修改值。
(4)序列描述符
对于经常使用的数据组合,把描述符的一个序列通过表D用一个序列描述符表示。
例如:302001
等于:010004 010051 010061 010063
序列描述符对应的描述符序列中,可以有其它序列描述符。
2.5 数据段¶
根据数据描述符所决定的次序存放各数据。
1一3字节 段长度
4 置0
5 — 由描述符定义的二进制数据
2.2.3. 3气象数据存储的压缩¶
在数据量非常巨大的时候,压缩数据量以减小存储空间、提高检索速度,具有重要和现实的意义。 设计数据标准格式时,必须考虑到这一点。
实际上,用2个字节的二进制定长格式存储数据,就是最简单的一种压缩方法。 GRIB和BUFR中以比特为单位的存储是压缩存储方法之一。
除此以外,气象上常用的压缩方法(在GRIB和BUFR中也有应用)有:
3.1偏差值压缩存储方式¶
压缩公式为 X = (Y-R) /2S+D
式中X为压缩值,Y为原值,R为基值,S为比例因子,D为偏差值。在应用中,基值R一般取平均值, 比例因子S取决于数据整数化后的有效位数。偏差值的确定是为了确保X值为正数。X取正整数。 由X的最大可能值,决定X存储的比特位。
其还原公式为 Y = R+(X-D)×2s
3.2选择比例因子的压缩存储法¶
压缩公式为 X=(Y-R)/2S
式中X为压缩值,Y为原值,R为所有原值数据中的极小值,s为比例因子。 还原公式为 Y =X×2S+R
2.2.4. 4.建立数据格式部门标准和地学系统标准的探讨¶
气象部门所应用的四种数据格式类型,具有其各自的特点,在相当长的时期内,各有其所用之处。 应当指出,BUFR的使用具有其广泛的前景,由于须对BUFR的了解和配套系统的建立, 使BUFR的推广局限于一定的范围内。但是,对于经常使用同类数据的同一部门内部, 参照BUFR的思想建立相应的数据格式,将是一件十分有意义的事。当然,如果能跨越部门, 建立池学系统甚至更大领域的数据格式统一标准,将具有更大的意义和作用。
作者认为,运用BUFR的设计思路,主要通过修改参照表A, B, C,D来适应各个领域的各种数据, 是一条比较简捷可行的道路。WDC-D如果能在这方面做出努力,提出一种二进制通用格式, 并建立相应的管理系统,将是对我国的数据管理做出的一项重大贡献, 能促进各领域内外的数据存储、应用和交换。气象数据中心有志于与其它各数据中心共同进行研究、开发。