GRIB(GRIdded Binary或通用定期發布的二進制形式資訊)是通常用在氣象學中儲存歷史的和預報的天氣資料的簡明資料格式。它由世界氣象組織的基本系統委員會於1985年標準化,描述於WMO編碼手冊(出版物No.306),最初編號為FM 92-VIII Ext. GRIB。 第一版GRIB被世界範圍內的多數氣象中心業務化使用,用於數值天氣預報(NWP)輸出。第二版是2003年發表的GRIB2,最新編號為FM 92–XIV GRIB,氣象資料發布逐漸的變更到這個格式。

General Regularly-distributed Information in Binary form
開發者世界氣象組織
最新版本
master table version number 29[1]
2022年5月15日,​2年前​(2022-05-15
格式類型科學資料格式
免費格式?
網站Manual on Codes - International Codes, Volume I.2

概述

編輯

GRIB是國際公用的二進制格式,用來有效的儲存氣象/海洋物理量和描述它們的元資料。GRIB資料檔案典型的由記錄的搜集組成,即多個GRIB記錄可以串聯在一起形成一個單一資料集。GRIB記錄是自描述資料對象,每個記錄都不只包含資料,而且包含描述空間網格、有效時間、垂直層次的元資料,故而把它們合併成資料檔案的次序是任意的。每個GRIB記錄典型的包含特定時間和垂直層次的一個2-D經緯度坐標的資料網格,4-D GRIB資料集一般展開為時間或垂直層次不同的一組2-D記錄。GRIB2相比於GRIB,有著更加複雜的頭部欄位集合用於元資料,還提供了可以更加顯著縮小檔案大小的資料壓縮;GRIB2記錄還可以包含集合(ensemble)資訊,適合於傳輸集合預報英語Ensemble forecasting產品。[2]

網格封包裝

編輯

在WMO的GRIB2指南文件中舉實例說明GRIB2報文(message)格式,選用了假想的500 hPa位勢高度5 X 5網格,這25個高度值的範圍是從極小值5340位勢米(gpm)到極大值5460 gpm。演示了採用簡單包裝方案的編碼過程:

  • 第一步,數值的單位位勢米(gpm)已經是SI單位,不需要轉換,否則需要轉換。
  • 第二步,採用計算「字」位長度的方法,要求精度值D為1,即精確到小數點後1位,把所有值都縮放10D取整為整數,結果範圍從53400到54600。
  • 第三步,取參照值R為53400,所有網格值都減去這個參照值,余值範圍是從0至1200。
  • 第四步,確定要表示極大余值1200需要的位元數,這裡是11位。
  • 第五步,所有的余值都包裝入11位長的「字」中,25個值總共需要275位長,等價於34位元組加上3位,再用0填充5位最終形成35位元組。

解碼過程通過參照值R和精度值D把包裝後的值恢復為最初的值。這種從浮點數轉換成定點數的包裝方法可以初步縮減資料大小,也可稱為是一種資料壓縮;GRIB2支援在此基礎上的PNGJPEG2000壓縮。

檔案格式

編輯

一個GRIB檔案中可以有多個GRIB報文,每個報文開始於文字「GRIB」結束於文字「7777」,二者之間都是二進制的元資料和資料。GRIB報文結構與大多數氣象報文比如GRID(FM 47)一樣,劃分為多個節(section):

GRIB1 GRIB2
SECTION 0 指示符節 SECTION 0 指示符節
SECTION 1 產品定義節 SECTION 1 標識節
SECTION 2 局部使用節(可選)
SECTION 2 網格描述節(可選) SECTION 3 網格定義節
SECTION 4 產品定義節
SECTION 5 資料表示節
SECTION 3 點陣圖節(可選) SECTION 6 點陣圖節
SECTION 4 二進制資料節 SECTION 7 資料節
SECTION 5 結束節 SECTION 8 結束節

GRIB1的第2節,GRIB2的第1、3、4、5、7節,可在多個模板中選用其一,這裡模板的含義是:「對一組資料實體的標準化格局的描述」[3]。在GRIB2中,第2節到第7節、第3節到第7節或第4節到第7節,可以重複出現,從而允許在一個報文中出現多個網格資料。

軟體

編輯

現有使用GRIB檔案的一些應用軟體套件,其範圍從命令列實用程式到圖形視覺化包。

  • ecCodes[4],是ECMWF開發的開源的C、Fortran90庫和Python模組,可呼叫解碼和編碼GRIB和GRIB2資料的API,軟體套件還包括一組有用的命令列工具[5]。它演化自GRIB API[6],向使用者提供了以鍵/值方式訪問元資料的一組函式。ECMWF還提供繪圖包Magics[7]Metview[8]工作站/批次處理系統,可處理和視覺化GRIB和GRIB2檔案。
  • NCEP GRIB1 codes[9],開源的Fortran90庫w3lib,用於解碼和編碼GRIB格式的資料。
  • NCEP GRIB2 codes[10],開源的Fortran90庫g2lib和C庫g2clib,用於解碼和編碼GRIB2格式的資料。
  • WGRIB[11],基於命令列的實用工具,用來操縱、列清單和解碼GRIB檔案。
  • wgrib2[12],基於命令列的實用工具,不只是升級wgrib可讀取GRIB2檔案,還可將其分片或分塊。
  • 網格分析和顯示系統(GrADS),開源的基於命令列的桌面應用,直接處理GRIB和GRIB2檔案[13]
  • NCAR命令語言[14],可以讀取、分析和視覺化GRIB和GRIB2資料,並轉換它成為其他網格資料格式。
  • CDO[15](氣候資料算子),是地球科學資料分析工具,支援GRIB和GRIB2。
  • Picogrib[16],自由的C語言(FORTRAN可呼叫)GRIB解碼包,一定程度上相容於ECMWF GRIBEX常式。
  • JGrib[17],開源庫用來在Java中讀取GRIB檔案。
  • NetCDF-Java通用資料模型[18],是可以讀取GRIB和GRIB2檔案的Java庫。
  • PyNIO[19],是Python程式語言模組,允許讀寫訪問各種資料格式,使用了建模在netCDF上的介面。
  • PyGrib[20],python語言擴充模組,允許讀寫GRIB和GRIB2格式。
  • Meteosatlib[21],自由軟體C++庫和一組工具,在各種格式間轉換衛星圖像;它可以讀寫GRIB資料,並且它的GRIB編碼/解碼器可以單獨使用。
  • 地理資料抽象庫(GDAL[22]),流行的開源地理資料讀寫庫。
  • Xconv/Convsh[23],Xconv是一個圖形工具,用來顯示和轉換各種網格資料,並可在Linux和OS X作業系統上獲得。Convsh是它的命令列等價者。
  • IDV[24],面向地球科學的平台無關的應用程式,可用來視覺化和分析NetCDF、GRIB和GRIB2檔案。
  • degrib[25](曾叫做NDFD GRIB2解碼器),可讀取GRIB和GRIB2檔案。
  • zyGrib[26],是在Linux、Mac OS X和Windows上開源的圖形軟體,用來下載和顯示GRIB和GRIB2檔案。
  • XyGrib[27],是對zyGrib繼續開發的開源軟體,是GRIB和GRIB2檔案閱讀器並視覺化氣象資料提供離線分析能力。
  • glgrib[28],這個應用使用OpenGL來顯示GRIB2場。具有光柵、等值線、向量、色條、比例尺、海岸線、邊界線、經緯度、蘭伯托投影、高斯網格。可以互動的(移動、縮放等)檢視場。已經使用它來顯示高解析率的場(2.5km和1.25km全球)。

此外,一些天氣預報軟體和導航軟體及手機app支援GRIB或GRIB2,如ATMOGRAPH ModelVis[29]、Expedition[30]、PolarView[31]、OpenCPN[32]、GribAE[33]、qtVlm[34]和Weather4D[35];PredictWind Offshore App[36]、PocketGrib[37]、WeatherTrack[38]、mazu[39]、SailGrib[40]、iGrib[41]

參見

編輯

參照

編輯
  1. ^ Manual on Codes - International Codes, Volume I.2, Annex II to the WMO Technical Regulations: Part B – Binary Codes, Part C – Common Features to Binary and Alphanumeric Codes. [2022-09-09]. (原始內容存檔於2022-12-02). 
  2. ^ What is GRIB?頁面存檔備份,存於網際網路檔案館).
  3. ^ Introduction to GRIB Edition1 and GRIB Edition 2頁面存檔備份,存於網際網路檔案館).
  4. ^ ecCodes. [2023-04-24]. (原始內容存檔於2023-05-01). 
  5. ^ 命令列工具頁面存檔備份,存於網際網路檔案館
  6. ^ GRIB API頁面存檔備份,存於網際網路檔案館
  7. ^ Magics頁面存檔備份,存於網際網路檔案館
  8. ^ Metview頁面存檔備份,存於網際網路檔案館
  9. ^ NCEP GRIB1 codes頁面存檔備份,存於網際網路檔案館
  10. ^ NCEP GRIB2 codes頁面存檔備份,存於網際網路檔案館
  11. ^ WGRIB頁面存檔備份,存於網際網路檔案館
  12. ^ wgrib2頁面存檔備份,存於網際網路檔案館
  13. ^ 存档副本. [2019-06-09]. (原始內容存檔於2020-07-11). 
  14. ^ NCAR命令語言頁面存檔備份,存於網際網路檔案館
  15. ^ CDO頁面存檔備份,存於網際網路檔案館
  16. ^ Picogrib頁面存檔備份,存於網際網路檔案館
  17. ^ JGrib頁面存檔備份,存於網際網路檔案館
  18. ^ NetCDF-Java通用数据模型. [2019-06-11]. (原始內容存檔於2008-05-09). 
  19. ^ PyNIO頁面存檔備份,存於網際網路檔案館
  20. ^ PyGrib頁面存檔備份,存於網際網路檔案館
  21. ^ Meteosatlib頁面存檔備份,存於網際網路檔案館
  22. ^ GDAL頁面存檔備份,存於網際網路檔案館
  23. ^ Xconv/Convsh頁面存檔備份,存於網際網路檔案館
  24. ^ IDV頁面存檔備份,存於網際網路檔案館
  25. ^ degrib頁面存檔備份,存於網際網路檔案館
  26. ^ zyGrib頁面存檔備份,存於網際網路檔案館
  27. ^ XyGrib頁面存檔備份,存於網際網路檔案館
  28. ^ glgrib頁面存檔備份,存於網際網路檔案館
  29. ^ ATMOGRAPH ModelVis頁面存檔備份,存於網際網路檔案館
  30. ^ Expedition頁面存檔備份,存於網際網路檔案館
  31. ^ PolarView
  32. ^ OpenCPN頁面存檔備份,存於網際網路檔案館
  33. ^ GribAE頁面存檔備份,存於網際網路檔案館
  34. ^ qtVlm頁面存檔備份,存於網際網路檔案館
  35. ^ Weather4D頁面存檔備份,存於網際網路檔案館
  36. ^ PredictWind Offshore App頁面存檔備份,存於網際網路檔案館
  37. ^ PocketGrib頁面存檔備份,存於網際網路檔案館
  38. ^ WeatherTrack頁面存檔備份,存於網際網路檔案館
  39. ^ mazu頁面存檔備份,存於網際網路檔案館
  40. ^ SailGrib頁面存檔備份,存於網際網路檔案館
  41. ^ iGrib頁面存檔備份,存於網際網路檔案館

標準文獻

編輯

外部連結

編輯