热门问题
时间线
聊天
视角
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