在Spyder中打开.GRIB文件时出现ECCODES错误

时间:2020-07-16 16:46:07

标签: python anaconda conda spyder grib

我已经在要使用的环境下访问了Anaconda Prompt。

在那儿,我已将目录更改为拥有要使用的grib文件的位置,为了安装cfgrib,我使用了以下命令:

conda install -c conda-forge cfgrib

由于Python模块依赖ECMWF ecCodes二进制库,因此在同一Anaconda Prompt中,我运行了以下命令:

conda install -c conda-forge eccodes

然后,在Spyder中打开文件,并尝试运行以下简单脚本:

import xarray as xr

ds = xr.open_dataset('download.grib', engine='cfgrib')
ds

但是出现以下错误:

无法读取索引文件'C:\ Users \ name \ Desktop \ data \ download.grib.90c91.idx' 追溯(最近一次通话): 文件“ C:\ Users \ name \ anaconda3 \ envs \ Weather \ lib \ site-packages \ cfgrib \ messages.py”,第351行,位于from_indexpath_or_filestream中 自我= cls.from_indexpath(indexpath) 文件“ C:\ Users \ name \ anaconda3 \ envs \ Weather \ lib \ site-packages \ cfgrib \ messages.py”,第323行,位于from_indexpath中 返回pickle.load(文件) EOFError:超出输入范围

然后

启动内核时发生错误 ECCODES错误:找不到boot.def。上下文路径= D:/ bld / eccodes_1593015095851 / _h_env / Library / share / eccodes / definitions

可能的原因: ‑软件未正确安装 -定义了环境变量ECCODES_DEFINITION_PATH,但是错误的ecCodes断言失败:D:\ bld \ eccodes_1593015095851 \ work \ src \ grib_context.c:226

中的“ 0”

Error starting the kernel

我在这里想念什么?


编辑1

如果我使用Visual Studio Code,也会发生此问题。

在终端中,如果我位于存储GRIB文件的目录中,并且激活了正在使用的环境:

conda activate Weather

然后:

& C:/Users/name/anaconda3/envs/Weather/python.exe c:/Users/name/Desktop/data/3_climate/2mtemp_open.py

它给出与上述相同的错误。

1 个答案:

答案 0 :(得分:0)

如错误所述,未设置ECCODES_DEFINITION_PATH

由于我在Windows 10上使用Anaconda,因此路径如下

C:/Users/[USER]/Anaconda3/envs/envgeo/Library/share/eccodes/definitions

要设置环境变量,只需运行即可

setx ECCODES_DEFINITION_PATH "[ECCODES definition path/directory]"

这应该可以解决问题。

但是,可能会出现一个新的问题。由于.grib文件可能需要花费很多时间才能运行,因此请考虑使用NetCDF格式的数据。