無論安裝以下哪種庫,強烈建議在新環境下安裝,之前在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.寫入代碼
1
2
3
4
|
import xarray as xr import cfgrib ds = xr.open_dataset( '/1.grib2' ,engine = 'cfgrib' ) |
提示錯誤:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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,因此我們只需要根據提示篩選我們需要的數據就行了。原程序添加所需數據為:
1
2
3
4
5
6
7
|
ds = xr.open_dataset('/1.grib2',engine='cfgrib',backend_kwargs= {'filter_by_keys': { 'typeOfLevel': 'surface' } } ) |
所需變量為:ds.變量名
折騰了好幾天,做其他事情都心不在焉,搞出來一身輕~~~
總結
到此這篇關于python安裝讀取grib庫總結的文章就介紹到這了,更多相關python安裝讀取grib庫內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_46604505/article/details/106910440