氣象資料二進制通用表示格式
氣象資料二進制通用表示格式[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封裝檔