气象资料 (包括天气观测资料和经过加工后产品) 是气象科学对天气过程进行预测及对大气活动规律进行研究的主要依据, 其有效交换是气象业务和科研的基础。气象资料以气象代码形式在国际、国内间进行交换。原始气象资料产生单位按照一定规则和约定对气象资料进行编码及压缩, 生成相应的气象代码, 然后由气象通信系统完成其交换和分发。资料接收单位的资料处理系统对接收的气象代码进行解码解压缩, 还原成原始气象资料提供使用。
世界气象组织 (WMO) 规定的气象代码包括字符代码和表格驱动代码。在现行业务中, 字符代码一直是气象代码的主要编码格式。为满足不断增长的气象数据种类、数量和对数据质量的要求, 鉴于在数据表现方面字符代码的局限性及表格驱动代码的优势, WMO建议在全球范围内逐渐实现由字符代码向表格驱动代码的过渡。向表格驱动代码的过渡必将对我国各级气象部门现有观测系统、通信传输、数据处理及存储、数据使用等多个业务环节产生重大影响。
1 气象代码概述 1.1 气象代码的组成根据WMO气象代码手册的规定和建议, 在现行气象业务中, 所使用的气象代码主要有字符代码和表格驱动代码[1]。
字符代码 (Traditional Alphanumeric Codes, TAC) 是按照一定格式, 以字符形式表示气象资料和产品的代码, 代码和实际资料 (或产品) 间的关系直接简单, 可进行人工阅读、编码和解码。
表格驱动代码 (Table Driven Code Forms, TDCFs) 包括BUFR, CREX和GRIB码。
BUFR码 (Binary Universal Form for the Representation of meteorological data, FM 94 BUFR) 是与计算机硬件无关的压缩二进制代码, 具有很强的表示能力。它主要用来表示天气观测资料, 还适合表示水文、海洋、环境等方面观测的时间序列资料。它不但能表示原始观测资料, 还能表示这些资料的质量控制信息和替代值。
与BUFR码相同, GRIB码 (GRIdded Binary, FM 92 GRIB) 也是与计算机硬件无关的压缩二进制代码, 主要用来表示数值天气分析和预报的格点资料。现行的GRIB码版本有GRIB版本1和GRIB版本2两种格式。
CREX (Character Representation form for data EXchange, FM 95 CREX) 是BUFR码的字符编码映像, 所不同的是BUFR码是二进制数据, CREX码是字符型数据。CREX码没有进行数据压缩, 其编码原理只是将原始值进行整数化。
1.2 字符代码的特点及局限性字符代码具有简单直观的特点, 和实际资料 (或产品) 之间的关系直接简单, 基本不需计算, 对于一些数字化的气象要素 (如天气现象等) 只需查阅简单的表格就能进行编码和解码, 因此字符代码是人工可读、可编码和解码的。字符代码传输的是字符, 因此对通信条件要求不高。
由于字符代码和实际资料之间的直接简单关系, 造成字符代码种类格式繁多复杂, 一种资料对应于一种编码格式, 即使是同一种资料的不同子集其格式也不同, 且新增加一种资料都需定义一种新的编码格式。
此外, 字符代码适应性差, 其代码格式一旦确定, 很难改动, 对可能已过时的观测内容则长期在某个位置用“缺测”字符代替。当观测仪器、观测平台和手段有所发展而出现新的观测资料种类和要素时, 只有重新定义编码格式, 并选择适当的时机进行增加。
字符代码的编解码也是较为复杂的, 对于每一种资料格式就需编制一个编码和解码程序, 当人工编码时难免与标准格式存在偏差, 给解码程序带来一定难度。因此, 随着代码内容的扩充, 其日趋复杂的规则需要编解码程序不断扩充和完善, 增加了系统的复杂性及维护工作量。
1.3 表格驱动代码的特点及优势表格驱动代码最主要特点在于具有较强表示能力的自描述性。表格驱动代码中不仅包含数据本身, 还包含了对数据的完整描述, 并通过一套完整的通用表格来定义这些描述, 用描述信息解释资料内容, 从而避免了字符代码中一种资料对应一种代码格式的状况。因此表格驱动代码具有更强的数据表示能力。
表格驱动代码的自描述性带来了扩展性及灵活性的优势, 当出现新的资料种类和内容时, 只需增加新的描述和定义相应的表格即可。当部分资料及内容变化时, 只需适当调整代码中的描述即可。
表格驱动代码具有数据压缩功能。虽然CREX码是不可压缩的, 但BUFR码和GRIB码采用“最小值消去法”及二进制压缩编码技术, 在精度允许的范围内可达到50%以上的压缩率, 部分资料的压缩率可高达90%。数据压缩有利于节省存储空间, 提高通信传输效率。由于BUFR码和GRIB码是二进制压缩代码, 因此难以进行人工阅读, 必须通过计算机进行编码和解码处理。CREX码则是人工可读的。
表格驱动代码作为一种通用代码格式, 使得编解码工作得到简化。表格驱动代码具有统一的描述信息及数据格式定义, 只需开发一个通用的编码和解码程序, 就可完成所有资料的编码解码工作。并且编解码程序一旦开发完成, 将永久适用, 只需进行表格的维护, 从而减少了系统的维护工作量。
表格驱动代码中, BUFR码和GRIB码为二进制代码, 其每一个比特位都有其特定意义, 一旦有差错就难以进行解码, 因此对通信系统要求很高, 要求其信道误码率低于10-9, 且应有差错控制协议支持。
此外, 表格驱动代码还可以作为气象存档资料标准格式而直接用于资料存档。
2 国内气象代码应用现状目前不论是全球气象观测系统或全球气象通信系统 (GTS), 表格驱动代码都尚未得到推广应用, 字符代码仍然是实时观测资料编码和传输的主要格式。
2.1 气象代码资料的生成在现行业务中, 观测资料产生单位为县级以上测站, 均为人工观测, 内容仅限于地面、探空、测风、重要天气报告、航危报和旬月报资料等, 这些资料都编码为字符代码。
随着中国气象局大气监测项目的逐步实施, 全国将逐步布设自动观测站。自动站观测的天气资料加上小部分人工观测的“云能天”资料后也编为字符代码, 而自动站的状态信息等则采用自定义格式进行编码。
2.2 气象代码资料的传输交换随着第三代国际通信系统、9210国内通信系统的建设, 可以支持多种通信线路和传输协议, 支持报文交换处理和文件交换, 因此逐步具备了传输表格驱动代码资料的条件, 但部分山区和边远县站尚不具备发送BUFR码的能力①。
①华信公司, 国家气象中心. 9210工程数据收集与分子系统功能规格书.北京, 1996.
在现行业务中, 气象资料传输交换的代码格式既有字符代码, 也有表格驱动代码, 其中天气观测资料、人工分析预报产品 (台风、城市预报) 为字符代码编码及传输, BUFR码资料只有通过BQS接收的国外卫星反演资料。数值天气预报产品基本为GRIB码编码及传输, 也有部分产品GRIB码和字符GRID码双重传输。目前尚无CREX码传输。
目前字符代码的传输方式国内基本上为文件交换方式, 国外为报文/文件方式。BUFR, GRIB码的传输方式国内、国外均为文件交换方式。
2.3 气象代码资料的处理通信系统在获得气象资料后, 以一定的接口方式提供给数据处理系统进行处理, 以转化为用户最终使用的实际数据。
对于字符代码资料, 在国家气象中心能处理业务及科研需要使用的字符代码数据。但仍有部分资料由于业务无需求而未进行译码。MICAPS和区域中心以下各级单位也有字符代码译码能力, 但处理的资料较有限, 仅限于地面、探空及其月报和台风、GRID码的资料等。
对于GRIB码的资料只有GRIB版本1的编解码程序, 只能处理标准等压面格点场资料, 远远不能满足用GRIB码进行表示的全部数值预报资料的要求。对于BUFR码的资料, 目前能够对所接收的国外BUFR资料进行解码。因未进行业务运行, 程序的运行稳定性有待检验, 且有必要对其进行优化升级, 并进行表格的维护。
对于CREX码的资料尚未开发编解码程序。
2.4 气象代码资料的存储管理随着9210工程的建设, 地市级以上单位建立的基于商用数据库产品的气象资料数据库系统对实时气象资料 (及部分历史资料) 进行存储管理 (也有基于自行开发的专用数据库管理系统)。在数据库系统中, 对于字符代码资料, 既以公报为单位存储原始字符代码资料, 又以要素为单位存储译码后的数据。对于表格驱动代码资料 (主要为GRIB码资料), 既以文件为单位存储原始资料, 又以场为单位存储解码后的格点场数据②。
②国家气象中心. 9210工程数据库子系统功能规格书.北京, 1996.
对于大量的历史气象资料多以文件集、数据集等方式进行存储管理。
2.5 气象代码资料的使用在国家气象中心, 其业务及科研完全建立在业务数据库系统之上, 绝大多数用户直接从数据库系统中调用经译码后的常规天气要素资料及格点资料进行使用, 很少直接使用原始的字符、表格驱动代码资料, 只有填图系统仍使用原始的字符代码。
在区域中心以下各级单位, 虽然通过9210工程建立了数据库系统, 但由于某些原因, 真正投入业务运行并成为业务核心的不多。其业务应用系统, 如MICAPS图形系统等, 仍然是读取原始字符及表格驱动代码 (GRIB) 资料并自行进行处理及应用。
3 WMO向表格驱动代码过渡计划为满足不断增长的气象数据种类、数量和对数据质量的要求, 鉴于在数据表现方面字符代码的局限性及表格驱动代码的优势, WMO建议逐渐由字符代码向表格驱动代码进行过渡, 并制定了过渡计划③。该计划已在WMO第14次大会获得通过。WMO的代码过渡计划及下文的代码过渡主要指用以表示气象观测数据的字符代码向表格驱动代码BUFR和CREX的过渡, 不包含仅在具有数值预报能力的气象中心应用、用以表示数值预报产品的GRIB码。
③ Expert Team on Migration to Table Driven Code Forms (MWO CBS). WMO plan for Migration to Table Driven Code Forms. Geneva:WMO, 2002.
该过渡计划详细阐述了向表格驱动代码过渡的原因和必要性, 并分析了在代码过渡过程中对WMO信息系统各环节所产生的影响, 包括数据生产者 (气象观测)、数据传输者 (气象通信)、数据使用者 (资料处理系统及行业内外应用)、决策部门等, 并在此基础上制定了实施方案及进度安排。
3.1 基本原则代码过渡计划的目标是最终完全使用表格驱动代码格式来代替字符代码格式进行观测资料的数据交换, 其基本原则包括:代码过渡应在WMO的目标时间内, 由各成员自行灵活确定其过渡时间表; CREX码应作为字符代码向BUFR码过渡的中间过渡; 代码过渡应从数据生产者开始, 但数据生产者不应被强迫使用表格驱动代码; 数据使用者应能接收和使用表格驱动代码数据; 应优先对数据使用者进行培训; 数据使用者应尽快实现表格驱动代码的解码; 在数据使用者不能接收或处理表格驱动代码时, 应进行表格驱动代码和字符代码的双重分发; 应以试验项目或特殊项目的方式, 帮助发展中国家提高能力, 实现编码、软件和可能的硬件自动化问题。
3.2 代码过渡的培训培训对理解及实现代码过渡十分重要, WMO建议在2005年10月之前完成国际级培训和国家级培训。培训分为3个不同层次: ①对表格驱动代码的一般理解及对代码过渡的概括了解; ②对表格驱动代码的更深理解, 软件的介绍及使用, 包括调试及与数据处理应用的接口; ③对表格驱动代码的全面理解, 及实现编解码程序的编程。
为实现以上3个层次的培训, WMO的培训课程分为两类: P1课程针对培训人员、数据管理者、一般资料用户和技术决策者; P2课程针对软件开发技术人员。
此外, 各国还应在国内自行组织相应培训, 特别是层次1培训应针对大多数人员进行。还应向自动观测系统厂商提供相应的信息、文档及组织讲座。
3.3 软件中心项目为实现标准完整地进行表格驱动代码的数据表示, WMO组织软件中心项目 (Software House), 由WMO统一组织进行各主流业务平台的编解码程序开发, 并以源代码或编译代码的形式下发。同时提供详细的文档资料和“数据阅读器”、“表格维护”等应用软件, 软件的维护和升级也将统一进行。此外, 还将通过Email等方式提供软件安装及运行方面的技术支持。
3.4 开展试验项目WMO将组织进行一定的试验项目 (Pilot Project), 选择一些国家进行表格驱动代码传输及解码试验, 以了解并解决代码过渡中出现的问题。
3.5 代码过渡实施建议对于资料的制作单位、资料的传输单位、资料的处理单位和决策部门等, WMO均提出了向表格驱动代码过渡实施的建议。
3.5.1 对资料制作单位的实施建议WMO建议自动观测系统厂商, 应尽快掌握表格驱动代码格式, 以便在新系统中以表格驱动代码格式完成观测资料的编码。此外, 观测系统厂商应使其发展适应于过渡战略, 并最终实现所有以字符代码格式编码的观测系统均以表格驱动代码格式编码。
代码过渡还需满足并行分发的需求, 即在代码过渡过程中, 可能需要保持字符代码和表格驱动代码的并行编码和分发, 甚至需要将表格驱动代码还原为字符代码。各单位应分析其数据流及应用需求, 以确定是否进行并行分发。
代码过渡应可采用数据集中的方式, 测站应以唯一代码格式 (非标准格式、TAC格式或TDCFs格式) 将资料传输至数据收集单位, 再集中地将这些资料转换为表格驱动代码格式并分发到GTS。在过渡过程中, 也可同时发送字符代码格式资料。
当向不能接收二进制数据的单位进行资料分发时, 可以以字符代码格式进行分发, 一旦接收单位能够理解并处理CREX码, 则应转换为CREX码进行分发, 以更好地利用表格驱动代码的数据表示能力。对于尚未自动化、需要人工编报的测站, 应实现CREX码格式编报。
3.5.2 对资料传输单位的实施建议由于各个GTS中心的传输能力不同, 其数据转发对象的通信条件也不同, 因此WMO建议在代码过渡开始时应首先考虑并行分发。如果GTS的通信中心具有代码转换的能力, 对于不能接收二进制数据的单位, 应考虑转换成CREX码而非字符代码对其进行分发。这些单位也可通过Internet从部分数据中心直接调用表格驱动代码数据。
此外, 在资料传输中, 为传输卫星资料和GRIB2资料, 建议各国际通信枢纽的二进制信息长度升级至500000字节。BUFR, CREX和TAC数据应为独立公报, 不能混合, 因此需要重新进行公报报头的规划和定义。
3.5.3 对资料处理单位的实施建议WMO建议资料处理系统应尽快实现表格驱动代码的编解码, 并实现其自动化处理。同时还要根据代码过渡对其数据库系统、应用系统进行调整。
3.5.4 对决策部门的实施建议作为领导决策部门, 在代码过渡过程中应进行的工作包括:提供代码过渡协调机制; 成立过渡领导小组; 评估过渡对业务系统的影响; 制定国家代码过渡计划; 规划过渡所需的软件及设备需求; 开展国内培训; 更新代码过渡所需观测、编码、数据收集和分发、数据处理、解码、存档等软件; 评估代码过渡对开发及业务资源的影响; 为过渡计划提供必要的经费支持等。
3.6 代码过渡进度安排WMO建议应同时采取以下代码过渡行动, 包括:2003—2005年由WMO及各国组织培训; 从2003下半年开始, 尽快安装通用的表格驱动代码解码程序; 各国应根据全球代码过渡计划, 在分析代码过渡对本国的影响、开销、经费、培训等内容的基础上, 制定本国的代码过渡计划及进度表。
WMO提出了代码过渡的进度表, 将表格驱动代码过渡分3个阶段进行:开始试验阶段 (TAC仍为业务运行, TDCFs进行实验)、开始业务化阶段 (TAC和TDFCs同时业务化运行)、过渡完成阶段 (TDFCs业务化运行, TAC终止传输)。并将观测资料分为6类, 其中第1类资料 (一般观测数据, SYNOP, PILOT, TEMP, CLIMAT等) 2005年11月开始业务化, 2010年11月过渡完成。其他资料最迟2008年开始业务化, 2015年完成全部过渡工作。
此外, 在代码过渡过程中, 还须建立一定的监控和协调机制, 以便了解过渡过程中的系统运行状态、数据可用性等信息, 并协调代码过渡引起的与其他部门的问题, 并向各部门通报代码过渡的关键问题及相关信息。
4 向表格驱动代码过渡对现有系统的影响分析向表格驱动代码过渡将对已运行多年的、以字符代码格式观测资料为核心的现有业务系统产生重大影响, 包括气象观测、通信传输、数据处理及使用等多个业务环节。为更好地完成代码过渡, 在制定实施方案之前, 有必要将代码过渡对各业务环节产生的影响进行详尽的分析和评估。
4.1 观测系统WMO代码过渡计划指出, 代码过渡应从数据生产者, 即气象观测系统开始。因此, 在观测系统中, 为实现向表格驱动代码过渡, 必须对人工/自动站的编报系统进行开发更新, 使其实现以表格驱动代码格式进行编码。鉴于绝大多数测站目前具有二进制数据传输能力, 其编报系统应编成BUFR码。少数只能上传字符代码的测站, 则编成CREX码。对于自动站状态信息等, 仍可以自定义格式进行编码。
4.2 资料传输为实现向表格驱动代码的过渡, 国际通信系统必须逐步具备的功能包括:通过GTS线路和内部网络接收任意代码格式的国外气象资料、向具有二进制传输能力的线路传输BUFR码和GRIB码、向不具有二进制传输能力的线路传输CREX码、在代码过渡开始时考虑并行传输。
为了具备以上能力, 国际通信系统应用软件应进行改进或升级, 使其具备如下功能: TAC代码向BUFR码转换功能:用于向二进制国际线路及国内通信系统转发、分发资料; BUFR码向CREX码转换功能:用于向非二进制国际线路转发、分发资料; TAC代码向CREX码转换功能:用于向非二进制国际线路转发、分发资料; 文件交换和报文交换之间的转换功能; 针对表格驱动代码传输引起的通信规则变化 (如简式报头、文件名等变化) 所带来的通信管理、组织和监控方面的功能变更。
对于国内通信系统, 向表格驱动代码过渡对其影响不是很大, 因为9210通信系统和地方通信网络基本具备了传输表格驱动代码资料的条件, 对于不具备发送BUFR码能力的部分山区和边远县站可发送CREX码。但国内通信系统中的数据收发软件和业务监控软件应针对表格驱动代码传输和双重传输而引起的通信规则变化 (如简式报头、文件名等变化) 所带来的通信管理、组织和监控方面的功能变更而进行改进或升级。
4.3 资料处理及存储表格驱动代码的应用及与字符代码的双重传输需求, 要求资料处理及存储系统是一个能同时处理、存储表格驱动代码及字符代码数据的综合系统。
在国家气象中心及9210系统建设的地 (市) 级及以上各级气象数据库系统中, 除现有的字符代码数据译码、存储外, 需要对数据处理软件进行功能扩充, 嵌入BUFR和CREX码数据的解码、存储接口。
此外, 由于BUFR和CREX码数据表示能力的提高, 数据库系统需进行必要的数据结构调整, 以存储原始表格驱动代码数据及新增加的要素等。在字符代码数据和表格驱动代码数据进行双重传输时, 还应以不同的存储结构对同时存在的两种代码数据分别进行存储。
由于数据库系统未推广应用, 对于MICAPS等其他自行读取原始字符及表格驱动代码资料处理及应用的系统, 及部分单位自行开发的专用数据库、数据集等数据存储系统, 也需升级其数据处理系统, 增加表格驱动代码数据的处理及存储功能。
4.4 资料使用作为用户, 不论其从数据库系统或其他应用系统获得数据, 还是自行解码获得数据, 都要进行程序修改或升级, 以便获得表格驱动代码为其带来了比字符代码数据更加丰富的资料内容。用户需要对这些新增内容进行了解, 以实现对表格驱动代码资料的更好应用。
5 我国向表格驱动代码过渡应开展的工作为实现WMO向表格驱动代码过渡的要求, 我国也应开展相应工作。
5.1 国家代码过渡计划的制定为更好地组织实施我国的表格驱动代码过渡工作, 首先应在WMO代码过渡计划的框架下尽快制定我国的国家代码过度计划。
国家代码过渡计划的制定必须在充分的系统调研基础上进行。系统调研应全面了解气象代码资料在全国各级气象单位各业务环节中的应用现状, 包括观测编报系统、数据传输系统、数据处理及存储管理系统、数据应用系统等, 代码过渡对各级气象单位及各业务环节产生的影响进行分析评估, 在此基础上, 参照WMO的代码过渡计划, 制定我国的国家代码过渡计划。
国家代码过渡计划应包含代码过渡所影响的各项业务环节的各个层面、代码过渡实施方案及过渡时间表等内容。此外, 还应涉及经费、技术资源等方面的内容。
5.2 组织代码过渡软件系统开发在国家代码过渡计划制定的基础上, 组织进行代码过渡所需的各项业务环节核心应用软件的开发工作, 重点在表格驱动代码相关能力的建设。
需要开发的软件包括表格驱动代码编解码软件, 测报系统软件, 国内、国际通信系统软件, 表格驱动代码数据处理、存储软件, 表格驱动代码数据应用软件等。
5.3 开展国内、国际间表格驱动代码的传输、应用试验在针对表格驱动代码过渡的各业务环节应用软件开发完成之后, 应选取国家中心、区域中心、省、地市和县级在内的各级气象单位, 及较为典型的气象观测、通信传输、数据处理等应用系统, 进行向表格驱动代码过渡的软件及业务应用测试, 以掌握向表格驱动代码过渡的各业务环节运行情况及存在问题, 便于提早进行解决。
在国际交换方面, 应积极参与WMO的试验计划, 以掌握向表格代码过渡对国际通信系统、数据分发及使用等方面的影响, 及通信、数据处理等应用系统是否具备相应的接收处理能力。
5.4 开展培训按照WMO建议的培训层次及培训课程划分, 尽早在国家气象中心等单位进行有关表格驱动代码的培训, 包括表格驱动代码的格式、编解码原理、使用等内容, 进而在全国展开表格驱动代码数据的普及培训。
在向表格驱动代码过渡的相关应用软件开发完成之后, 在进行安装及更新之前, 应针对编解码、编报、通信传输、数据处理等业务环节核心软件, 分别组织相应技术人员进行培训, 以顺利完成这些软件的更新及运行。
5.5 加强数据库建设在此次向表格驱动代码的过渡中, 影响面广、工作量大的部分是广大气象台站的基于通信系统文件或报文格式的资料应用软件的过渡, 这些软件需要彻底重新开发。应强调的是, 对这些软件的过渡, 不应再延续各自从原始通信系统文件或编码格式去处理、大家重复同样解码工作的老模式, 而应建立以数据为中心的业务流程, 通过建立气象资料数据库, 由数据库系统统一进行资料的处理和存储管理。
因此建议在省 (或地) 以上单位建立以气象数据库系统为核心的业务及科研平台, 且在一个单位中应建立核心数据库, 避免多个数据库系统分散存储, 以便于管理和维护。这样既能实现气象资料的统一集中管理, 又能避免由于通信方面的变化而引起的气象资料应用系统的大改造。
| [1] | WMO. WMO Manual on Code Volume 1.1 & Volume 1.2. WMO-No 306, Geneva:WMO, 2001. |
2007, 18 (5): 709-715

