Python 3.x 将grib2消息读入Iris多维数据集

Python 3.x 将grib2消息读入Iris多维数据集,python-3.x,python-2.7,grib,python-iris,grib-api,Python 3.x,Python 2.7,Grib,Python Iris,Grib Api,我目前正在探索在一个项目中使用iris来使用python读取forecast grib2文件的概念 我的目标是基于具有特定值的grib消息键将grib消息加载/转换为iris多维数据集 我已经用iris grib做了实验,它使用gribapi。我没有使用iris grib在grib2文件中找到密钥,尽管通过cli使用“grib_ls-w…”可以看到密钥。 gribapi完成了这项工作,但我不确定如何将其与iris接口(我认为iris grib就是为了这个) 我想知道是否有人知道一种基于具有特定值

我目前正在探索在一个项目中使用iris来使用python读取forecast grib2文件的概念

我的目标是基于具有特定值的grib消息键将grib消息加载/转换为iris多维数据集

我已经用iris grib做了实验,它使用gribapi。我没有使用iris grib在grib2文件中找到密钥,尽管通过cli使用“grib_ls-w…”可以看到密钥。 gribapi完成了这项工作,但我不确定如何将其与iris接口(我认为iris grib就是为了这个)


我想知道是否有人知道一种基于具有特定值的grib消息键将消息获取到iris多维数据集中的方法。谢谢你

你可以通过iris grib中的低级grib接口获得gribapi理解的任何东西,这是一个类。
通常情况下,您会在GribMessage.messages中使用
(来自文件名(xxx):
,然后像
msg.sections[4]['productDefinitionTemplateNumber']那样访问它
msg.sections[4]['parameterNumber']
等等

您可以使用它来标识所需的消息,然后使用转换为多维数据集

然而,Iris grib只知道如何将特定编码转换为多维数据集:它对识别的内容非常严格,在其他任何方面都会失败。因此,如果您的数据使用任何无法识别的模板或数据编码,则肯定无法加载。
我只是希望你这里可能有一些不寻常的东西,所以这可能是个问题?
您可以从
convert()
例程开始,在中对照翻译代码检查预期的消息内容

要从尚不受支持的中获取Iris多维数据集,您可以:

  • (a) 扩展翻译规则(即Github PR),或
  • (b) 有时,您可以修改消息,使其看起来像 这是可以识别的。
    如果做不到这一点,你可以
  • (c) 只需根据GribMessage中的数据自己构建一个Iris多维数据集:这可能比直接使用“gribapi”要简单一些(可能不会,具体取决于细节)
如果您有这样的问题,您肯定应该在github项目()中将其作为一个问题提出,我们将尽力提供帮助

另外,由于您已经注册了Python3兴趣,您可能想知道,较新的gribapi“ECCODE”替代品不久将面世,从而使Python3支持grib数据成为可能。

然而,Python3版本仍处于测试阶段,我们目前遇到了一些问题,现在由ECMWF提出,因此它仍然几乎可以实现,但还不是完全可以实现。

Hi@pp mo,[编辑]我能够从\u字段()中使用加载\u对\u拾取一些键。我还将按照您的建议以及其他建议查看iris_grib.load_convert.py。Python 3目前不是一个选项。很高兴能得到来自Iris家的人的帮助!