Вы можете получить все, что понимает gribapi, через интерфейс низкоуровневого grib в iris-grib, то есть класс iris_grib.GribMessage .
Обычно вы используете for msg in GribMessage.messages_from_filename(xxx):
, а затемдоступ к нему, например, msg.sections[4]['productDefinitionTemplateNumber']
;msg.sections[4]['parameterNumber']
и т. Д.
Вы можете использовать это для идентификации необходимых сообщений, а затем конвертировать в кубы с помощью iris_grib.load_pairs_from_fields () .
Однако Iris-grib знает только, как переводить определенные кодировки в кубы: он достаточно строг в отношении того, что именно он распознает, и потерпит неудачу во всем остальном.Поэтому, если ваши данные используют какие-либо нераспознанные шаблоны или кодировки данных, их определенно не удастся загрузить.
Я просто ожидаю, что у вас может быть что-то необычное здесь, так что это может бытьпроблема?
Вы можете проверить ожидаемое содержимое сообщения по коду перевода по адресу iris_grib: _load_convert.py , начиная с процедуры convert()
.
Чтобы получить куб Irisиз-за того, что не еще поддерживается, вы можете либо:
- (a) расширить правила перевода (например, Github PR), либо
- (b) иногда вы можете изменить сообщение так, чтобы оно выглядело как что-то, что можно распознать.
Если это не так, вы можете - (c) просто построить куб Iris самостоятельно из найденных данных.в вашем GribMessage: это может быть немного проще, чем использовать 'gribapi' напрямую (возможно, нет, в зависимости от деталей).
Если у вас есть такая проблема, вы должны определенно поднять ее как проблемуна гипроект thub ( проблемы с радужной оболочкой ) + мы постараемся помочь.
PS Поскольку вы зарегистрировали интерес на Python3, вы можете знать, что более новая замена "ecCodes" дляgribapi должен быть в скором времени доступен, что делает наконец возможной поддержку Python3 для данных grib.
Однако , версия Python3 все еще находится в бета-версии, и в настоящее время мы находимсявозникли некоторые проблемы с ним, теперь возникшие с ECMWF, так что это все еще почти, но не вполне достижимо.