ОШИБКА ECCODES при открытии файла .GRIB в Spyder

Я получил доступ к Anaconda Prompt для среды, в которой я буду работать.

Оказавшись там, я сменил каталог на место, где у меня есть файлы grib, с которыми я буду работать, чтобы установить cfgrib, я использовал следующую команду:

conda install -c conda-forge cfgrib

Поскольку модуль Python зависит от двоичной библиотеки ECMWF ecCodes, в той же подсказке Anaconda я выполнил следующую команду:

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' Traceback (последний вызов последним): файл C: \ Users \ name \ anaconda3 \ envs \ Weather \ lib \ site-packages \ cfgrib \ messages.py, строка 351, в from_indexpath_or_filestream self = cls.from_indexpath (indexpath) Файл C: \ Users \ name \ anaconda3 \ envs \ Weather \ lib \ site-packages \ cfgrib \ messages.py, строка 323, в from_indexpath return pickle.load (file) EOFError: Закончился ввод

Потом,

Произошла ошибка при запуске ядра. ОШИБКА ECCODES: невозможно найти boot.def. Путь контекста = D: / bld / eccodes_1593015095851 / _h_env / Library / share / eccodes / definitions

Возможные причины: - Программное обеспечение установлено неправильно - Переменная среды ECCODES_DEFINITION_PATH определена, но неверное утверждение ecCodes завершилось неудачно: `0 'в D: \ bld \ eccodes_1593015095851 \ work \ src \ grib_context.c: 226

Ошибка при запуске ядра

Что мне здесь не хватает?


Изменить 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

Выдает ту же ошибку, что и выше.


person Gonçalo Peres 龚燿禄    schedule 16.07.2020    source источник


Ответы (1)


Как говорится в ошибке, ECCODES_DEFINITION_PATH не был установлен.

Поскольку я использую Anaconda в Windows 10, путь следующий

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

Чтобы установить переменную среды, можно просто запустить

setx ECCODES_DEFINITION_PATH "[ECCODES definition path/directory]"

Это должно решить проблему.

Однако может появиться новый. Поскольку запуск файла .grib может занять много времени, подумайте об использовании данных в формате NetCDF.

person Gonçalo Peres 龚燿禄    schedule 27.10.2020