Как устранить эту ошибку AttributeError при использовании eccodes/grib?

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

AttributeError: module 'pyeccodes.compat' has no attribute 'codes_grib_multi_support_off'

Вот код, который у меня есть:

import xarray as xr

import matplotlib.pyplot as plt
import matplotlib.style as sty
sty.use('classic')

import numpy as np

import cartopy.crs as ccrs
d7 = xr.open_dataset('2007_BLH.grib', engine='cfgrib')

Я скачал все, что мне кажется необходимым, включая эккоды, пиккоды, cfgrib. Как я могу решить эту проблему?

2 ответа

Установите двоичный файл ecCodes с помощью диспетчера пакетов, см. https://github.com/ecmwf/cfgrib.

У меня была такая же ошибка на машине с Windows 10 с Anaconda3, но, надеюсь, мое решение будет полезно.

Думаю, проблема заключалась в том, что я устанавливал metpy до cfgrib. Похоже, что metpy настроил некоторые пакеты, которые конфликтовали с cfgrib, потому что после долгих проб и ошибок я создал новую виртуальную среду Python и решил проблему, выполнив следующие действия:

conda install -n new_env cfgrib // установить пакет в мою новую виртуальную среду

Задайте путь к определениям эккодов в переменной среды...

Имя переменной: ECCODES_DEFINITION_PATH Значение переменной: C:\Users\path\to\eccodes\definitions

Я предполагаю, что это будет выглядеть примерно так: ECCODES_DEFINITION_PATH=./ Path/to/eccodes/definitions для вашего MacOS.

Другие вопросы по тегам