python讀取grib grib2氣象數據

如何讀取GRIB數據?快看Python大神整理的乾貨!

橙子心法python

百家號17-11-0116:30

GRIB是WMO開發的一種用於交換和存儲規則分佈數據的二進制文件格式,主要用來表示數值天氣預報的產品資料。現行的GRIB 碼版本有GRIB1 和GRIB2 兩種格式。因爲小編只接觸過GRIB1數據,因此本文僅講解如何讀取GRIB1數據。windows

使用Python讀取GRIB數據要根據在何種平臺分別討論。數組

1、Linux及Mac OS系統下spa

Linux、Mac OS系統下使用Python語言實現Grib數據讀取主要依靠pygrib庫,pygrib是歐洲中期天氣預報中心(ECMWF)的GRIG API C庫的Python接口,經過這個庫就能夠將Grib數據讀取出來。命令行

(一)導入pygrib模塊blog

>>> import pygrib接口

(二)打開Grib文件開發

>>> grbs = pygrib.open('/Users/Kallan/Documents/data/echhae50.082')文檔

(三)提取文件信息cmd

>>> grbs.seek(0)

>>> for grb in grbs:

grb

1:Geopotential Height:gpm (instant):regular_ll:isobaricInhPa:level 500:fcst time 24 :from 201507081200

信息解讀

1 :數據列表的行號,有的文件可能包括多個數據

Geopotential Height:數據的名稱

gpm (instant):數據的單位

regular_ll:常規數據,其實這個字段我也不清楚

isobaricInhPa:這個字段表示的是數據屬性,此處表示是以hPa爲單位的等壓面

level 500:這個字段表示的是高度層

fcst time 24 :預報時效

from 201507081200 :起報時間

綜合上面的信息能夠得出,這個文件是從2015年7月8日12時開始的24小時後500hPa等壓面高度場數據

(四)導出文件數據

2、Windows系統下

windows系統下並不能使用pygrib直接讀取GRIB數據,主要緣由是:GRIB_API在Windows下沒法編譯安裝,從而致使pygrib沒法安裝。我曾經也爲這個問題苦惱了好久,也到ECMWF論壇裏找了好久,也給ECMWF發了郵件,迴應我沒有作Windows版本的打算,因此在Windows下直接用pygrib讀取GRIB數據是基本不可能實現了。

後來經過大量的百度,仍是找到了在Windows下讀取GRIB數據的方法:

一種是在Cygwin中安裝pygrib,將pygrib的方法編譯成讀取GRIB的exe;

第二種是經過一個第三方的程序wgrib,先用wgrib把數據讀存到txt,而後再用python讀取txt文件;

第三種是經過官方的GRIB數聽說明文檔本身編寫解碼程序。

首先嚐試了Cygwin,pygrib成功編譯出了exe,可是沒法運行,感受Cygwin稍微複雜,因此我沒有繼續研究這一種方法,直接轉向第二種方法。

(一)wgrib

在cmd中直接運行wgrib.exe可獲得如何使用的幫助信息。

知道如何使用wgrib程序後咱們就能夠使用os.system在Python中執行Windows命令行程序wgrib了

這樣就能夠在指定目錄找到輸出的txt文件,而後將txt文件中的數據轉換成數組。

原數據是37*37的數組,而輸出的數據是每一個數據佔一行,因此須要進行一下轉換

(二)本身編寫解碼庫

編寫解碼程序的過程我已經記不清了,可是程序已經放到了GitHub中,你們可從頭條號主頁下方的GitHub菜單進入,裏面還有GRIB的官方說明文檔,方便你們照着說明文檔繼續完善。

因爲小編只用到了GRIB1格式的數據,因此只寫了GRIB1的解碼庫,並且僅僅是將數據導出功能,若是有感興趣的同窗,能夠繼續完善這個庫。

相關文章
相關標籤/搜索