热门问题
时间线
聊天
视角
GRIB
来自维基百科,自由的百科全书
Remove ads
GRIB(GRIdded Binary或通用定期發布的二進制形式資訊)是通常用在氣象學中儲存歷史的和預報的天氣資料的簡明資料格式。它由世界氣象組織的基本系統委員會於1985年標準化,描述於WMO編碼手冊(出版物No.306),最初編號為FM 92-VIII Ext. GRIB。 第一版GRIB被世界範圍內的多數氣象中心業務化使用,用於數值天氣預報(NWP)輸出。第二版是2003年發表的GRIB2,最新編號為FM 92–XIV GRIB,氣象資料發布逐漸的變更到這個格式。
Remove ads
概述
GRIB是國際公用的二進制格式,用來有效的儲存氣象/海洋的物理量場和描述它們的元資料。GRIB資料檔案典型的由記錄的搜集組成,即多個GRIB記錄可以串聯在一起形成一個單一資料集。GRIB記錄是自描述資料對象,每個記錄都不只包含資料,而且包含描述空間網格、有效時間、垂直層次的元資料,故而把它們合併成資料檔案的次序是任意的。每個GRIB記錄典型的包含特定時間和垂直層次的一個2-D經緯度坐標的資料網格,4-D GRIB資料集一般展開為時間或垂直層次不同的一組2-D記錄。GRIB2相比於GRIB,有著更加複雜的頭部欄位集合用於元資料,還提供了可以更加顯著縮小檔案大小的資料壓縮;GRIB2記錄還可以包含集合(ensemble)資訊,適合於傳輸集合預報產品。[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支援在此基礎上的PNG和JPEG2000壓縮。
Remove ads
檔案格式
一個GRIB檔案中可以有多個GRIB報文,每個報文開始於文字「GRIB」結束於文字「7777」,二者之間都是二進制的元資料和資料。GRIB報文結構與大多數氣象報文比如GRID(FM 47)一樣,劃分為多個節(section):
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]。
Remove ads
參見
參照
標準文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads