气象资料二进制通用表示格式
气象资料二进制通用表示格式[1](英语:Binary Universal Form for the Representation of meteorological data,缩写:“BUFR”,又称“二进制通用数据表示格式”[2]、“二进制通用气象数据表示格式”[3])是由世界气象组织所维护的二进制文档文件格式,最新版本为BUFR Edition 4,而BUFR Edition 3则仍可继续被使用。此格式于1988年被创造,目的是取代世界气象组织旧有的数十种资料设置标识符,其中包含代表地面综观报的SYNOP、探空观测的TEMP及浮标观测报的BUOY[4]。BUFR的主要设计目的是以可携、紧凑及通用为基准,用以表达任何类型的资料,或特定时间、空间及任何关系的元数据。在世界气象组织的术语中,BUFR是属于表格驱动码格式资料,资料的元素是透过表格来订定,而这些表格与资料是分开进行保存与维护。
BUFR是一种复杂的资料格式,使用起来会较为困难[5],并且存在弱点[6],而BUFR的格式引用“不一致”的资料会引起格式错误[7][8][9]。
格式说明
BUFR的资料格式分为六个部分,其编码自0至5。
- 第0、1部分及第5部分为静态元数据,主要用于报文的标示。
- 第2部分为可选用资料;若使用,则为创建者在本地端使用,呈现其所想呈现的资料。
- 第3部分包含一系列的描述码,用以定义BUFR的格式及内容。
- 第4部分则是比特流,用以包含第3部分所定义的核心资料及元数据。
描述码的复制与使用,会使得第3部分变得复杂而重要。
模板
第3部分的数据包含一个简短的标题,后面则是由第4部分所匹配的描述码序列进行对应。第3部分的描述码序列可以被理解为BUFR的模板。模板包含匹配比特流中所嵌入的数据结构所需的消息。他应以类似算法的方式逐步解析。在给定一组BUFR的报文情况下,第4部分的值可能会因报文而异,但若第3部分所定义的模板保持不变,那么其排序与结构是可被预测的。可以设计模板来满足特定的气象产品(例如气象观测)的需求,如此模板及可用以规范BUFR的内容与结构。世界气象组织已经发布了许多地表与探空观测资料的无损压缩格式模板。
描述码
所有的描述码是16比特,具备F-X-Y结构,其中F指2个最高优先比特,X指中间6个比特,Y则为8个最低有效比特。F的值(0至3)将决定描述码的类型。(更多使用方式请参考世界气象组织《WMO BUFR 指南[10]》)
- 元素描述码(F=0):顾名思义,用以传递标准要素及相关元数据。
- 复制描述码(F=1):特殊描述码,可对选定数量的描述码进行可控复制。
- 这是一种非常强大的操作,可在BUFR的模板中引入循环。X的值指定了复制中包含的后续描述码的数量;Y的值表示复制的次数。若Y=0,则复制会被称为“复制延迟”,复制次数将从特殊元素描述码的值中获得。
- 操作描述码(F=2):这些描述码传达的特殊操作,具可以修改资料的特性,或允许在创建和操作原始资料的同时,创建和操作附加资料。
- X的值标示操作码,Y的值用于控制操作码的应用。这些描述码在BUFR规范的“表C”部分进行了定义。在表C中添加新的运算码描述码需要更改BUFR的规范,因此需要新的BUFR版本号。
- 序列描述码(F=3):单个序列描述码是其他描述码(包括复制描述码和表B、C和D)序列的别名。
- 这些描述码在BUFR规范中被定义为“表D”。X和Y的值的使用与元素描述码相同。
子集
第3部分的模板所建立的数据结构可在同个BUFR报文中重复使用多次。在这种情况下,第4部分可包含一系列的子集进行使用,例如子集可用于在单个BUFR报文中传递多个地点的观测结果。
参考来源
- ^ 面向 WIGOS 区域中心关于 WIGOS 资料质量监测系统的技术指南. 世界气象组织. 2018 [2023-08-24]. (原始内容存档于2023-07-20).
- ^ 淺談氣象數據編碼. 香港天文台. 2015-12 [2023-08-24]. (原始内容存档于2023-01-09).
- ^ 第2代先進交談式天氣處理系統預報決策支援環境(AWIPS 2). 交通部中央气象局. 2015-01 [2023-08-24]. (原始内容存档于2023-08-24).
- ^ 中央氣象局新格式氣象觀測資料作業系統介紹 (PDF). 交通部中央气象局. [2023-08-24]. (原始内容存档 (PDF)于2022-06-15).
- ^ BUFR: A METEOROLOGICAL CODE FOR THE 21ST CENTURY (pdf). [2018-02-14]. (原始内容存档于2018-02-15).
- ^ On the suitability of BUFR and GRIB for archiving data. 2013-01-10 [2023-08-24]. (原始内容存档于2021-05-11).
- ^ Hand, E. Obsolescence looms for balloon data. Science. 2016, 352 (6283): 281–282 [2023-08-24]. Bibcode:2016Sci...352..281H. PMID 27081049. doi:10.1126/science.352.6283.281. (原始内容存档于2023-03-07).
- ^ Dealing with Disappearing Surface Data: The Migration to BUFR and the Discontinuation of Text SYNOP and Buoy Reports. 2017-01-25 [2023-08-24]. (原始内容存档于2021-11-30).
- ^ ECMWF - TAC2BUFR - ECMWF Confluence Wiki (PDF). [2023-08-24]. (原始内容存档 (PDF)于2018-02-15).
- ^ Guide to WMO Table Driven Code Forms: FM 94 BUFR and FM 95 CREX (PDF). 大韩民国气象厅. 2002-01-01 [2023-08-24]. (原始内容存档 (PDF)于2023-08-24).
外部链接
- The official BUFR manual, tables, and other operational WMO code forms (页面存档备份,存于互联网档案馆)
- A series of introductory PowerPoint presentations (页面存档备份,存于互联网档案馆)
- WMO table-driven code forms guides (页面存档备份,存于互联网档案馆)
- BUFR in a nutshell (页面存档备份,存于互联网档案馆)
- A third-party tutorial on creating BUFR templates (页面存档备份,存于互联网档案馆)
在线解码器
软件函数库
- ECMWF提供BUFRDC函数库 (页面存档备份,存于互联网档案馆)及新版 ecCodes函数库 (页面存档备份,存于互联网档案馆)—Magics (页面存档备份,存于互联网档案馆)及Metview透过这些函数库处理可视化BUFR资料
- NCEP library (页面存档备份,存于互联网档案馆)
- libECBUFR Environment Canada library (页面存档备份,存于互联网档案馆)
- NCAR wmobufr library (页面存档备份,存于互联网档案馆) — 基于JAVA函数库的XML表达式
- fortran (页面存档备份,存于互联网档案馆) and c-based (页面存档备份,存于互联网档案馆) ECMWF函数库的Python封装档
- wreport (页面存档备份,存于互联网档案馆) 实现BUFR和CREX编码和解码的C++函数库自由软件
- trollbufr (页面存档备份,存于互联网档案馆)一个FOSS纯Python BUFR读写器
- csv2bufr — 将CSV数据转换为WMO BUFR格式的Python封装档