1. 程式人生 > 程式設計 >python安裝讀取grib庫總結(推薦)

python安裝讀取grib庫總結(推薦)

無論安裝以下哪種庫,強烈建議在新環境下安裝,之前在base環境下安裝各種報錯!!!如何在新環境下安裝可參見我之前的總結或網上其他文章。

不推薦方法

1.pygrib
pygrib庫基於python2.4+、numpy、pyproj、Jasper和GRIB_API,依賴庫基於Linux或MacOS,GRIB_API將於2020年6月30日正式被ecCodes取代。因此,不推薦使用pygrib庫。
2.GDAL
可於window下安裝,安裝簡單,但是需藉助wgrib2檢視grib變數所在通道,因此不推薦。

推薦方法

xarray搭配cfgrib
優點:Linux windows MacOS均可用,安裝較簡單,強烈建議在新環境下安裝各所需庫


安裝步驟:

1,新建新環境
conda creat -n cfgrib_env python=3.7.0

2.啟動虛擬環境
source activate cfgrib_env

3.安裝spyder xarray eccodes cfgrib及其他所需依賴庫
ps:可用pip或conda安裝,eccodes無需配置(有些地方寫需要配置路徑)

4.在新環境下啟動spyder(base或其他環境下啟動的spyder無效)
切換到安裝路徑並執行:~/anaconda3/envs/cfgrib_env/bin$ ./spyder

5.寫入程式碼

import xarray as xr
import cfgrib

ds = xr.open_dataset('/1.grib2',engine='cfgrib')

提示錯誤:

DatasetBuildError: multiple values for unique key,try re-open the file with one of:
  filter_by_keys={'typeOfLevel': 'unknown'}
  filter_by_keys={'typeOfLevel': 'surface'}
  filter_by_keys={'typeOfLevel': 'isobaricInhPa'}
  filter_by_keys={'typeOfLevel': 'meanSea'}
  filter_by_keys={'typeOfLevel': 'depthBelowLandLayer'}
  filter_by_keys={'typeOfLevel': 'heightAboveGround'}
  filter_by_keys={'typeOfLevel': 'heightAboveGroundLayer'}
  filter_by_keys={'typeOfLevel': 'tropopause'}
  filter_by_keys={'typeOfLevel': 'maxWind'}
  filter_by_keys={'typeOfLevel': 'heightAboveSea'}
  filter_by_keys={'typeOfLevel': 'isothermZero'}
  filter_by_keys={'typeOfLevel': 'pressureFromGroundLayer'}
  filter_by_keys={'typeOfLevel': 'sigmaLayer'}
  filter_by_keys={'typeOfLevel': 'sigma'}
  filter_by_keys={'typeOfLevel': 'potentialVorticity'}

莫慌!!!
這是因為目前cfgrib庫無法同時讀取多個typeOfLevel,因此我們只需要根據提示篩選我們需要的資料就行了。原程式新增所需資料為:

ds = xr.open_dataset('/1.grib2',engine='cfgrib',backend_kwargs=
{'filter_by_keys':
{
'typeOfLevel': 'surface'
}
}
)

所需變數為:ds.變數名

折騰了好幾天,做其他事情都心不在焉,搞出來一身輕~~~

總結

到此這篇關於python安裝讀取grib庫總結的文章就介紹到這了,更多相關python安裝讀取grib庫內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!