将 xarray 导入为 xr 导入cfgrib 导入生态码 将 pandas 导入为 pd data = xr.open_dataset(r"C:\Users\new\forecast_data.grib2", engine = "cfgrib")
这是我的代码。我只想使用 xarray 读取这个文件。错误是:
无法识别的引擎 cfgrib 必须是以下之一:['netcdf4'、'scipy'、'store']
eccodes 安装在我的系统中。我检查了 Anaconda 提示 (nih) C:\Users\new>python -m eccodes selfcheck C:\Users\new\anaconda3\envs\nih\Lib\site-packages\gribapi_ init _.py:23: UserWarning: 建议使用 ecCodes 2.31.0 或更高版本。您正在运行版本 2.26.0 警告.警告( 找到:ecCodes v2.26.0。 库:C:\Users\new\anaconda3\envs\nih\Library\bin\eccodes.dll 定义:/MEMFS/definitions 样本:/MEMFS/样本 您的系统已准备就绪。
我想读取 grib2 文件。我以前曾使用过 netCDF 文件。我需要读取这个 grib2 文件或将其转换为 netCDF,以便我可以使用 xarray 打开它。我尝试了 pynio 引擎。我给了我同样的结果。
收到错误“无法识别的引擎 cfgrib”的原因是需要安装
cfgrib
引擎才能使用
xarray
打开 grib2 文件。虽然安装了
eccodes
,但这只是
cfgrib
引擎用来读取 grib2 文件的依赖项。
以下是如何使用
cfgrib
引擎在 Python 中使用
xarray
打开 grib2 文件的方法:
-
安装
cfgrib
: 如果还没有安装,可以使用 conda 或 pip 安装cfgrib
包:bash conda install -c conda-forge cfgrib
或bash pip install cfgrib
-
导入必要的库:
python import xarray as xr
不需要导入cfgrib
,因为它由xarray
在后台自动处理。 -
使用
engine='cfgrib'
打开文件:python data = xr.open_dataset("C:\Users\new\forecast_data.grib2", engine="cfgrib")
这应该可以使用
cfgrib
引擎打开的 grib2 文件并创建一个
xarray
数据集。
如果在安装
cfgrib
后仍然遇到问题,请确保的
eccodes
安装正常工作并且
cfgrib
可以找到它。可能需要根据的系统配置设置一些环境变量。
可选:将 grib2 转换为 netCDF
如果更喜欢使用 netCDF 文件,可以使用
xarray
将 grib2 文件转换为 netCDF:
-
使用
cfgrib
引擎打开 grib2 文件(如上所述)。 -
使用
to_netcdf()
方法将数据集保存为 netCDF 文件:python data.to_netcdf("forecast_data.nc")
这将创建一个名为
forecast_data.nc
的 netCDF 文件,其中包含 grib2 文件中的数据。然后,可以使用
xarray
打开和使用此 netCDF 文件,而无需任何其他引擎:
data_nc = xr.open_dataset("forecast_data.nc")
标签:python,python-xarray,cfgrib
From: 78830441