我目前正在探索在项目中使用iris来使用python读取预测的grib2文件的概念。
我的目标是基于具有特定值的grib消息密钥将grib消息加载/转换为虹膜立方体。
我已经尝试了使用gribapi的iris-grib。使用iris-grib,我还没有在grib2文件中找到密钥,尽管通过cli通过'grib_ls -w ...'可以看到密钥。 gribapi可以完成这项工作,但是我不确定如何将它与iris交互(我认为这是iris-grib的目的)。
我想知道是否有人知道一种基于具有特定值的grib消息密钥将消息放入虹膜立方体的方法。谢谢
答案 0 :(得分:1)
您可以通过iris-grib中的iris_grib.GribMessage类的低级grib界面获得gribapi可以理解的任何内容。
通常,您会使用for msg in GribMessage.messages_from_filename(xxx):
,然后像这样访问它。 msg.sections[4]['productDefinitionTemplateNumber']
; msg.sections[4]['parameterNumber']
,依此类推。
您可以使用它来标识必需的消息,然后使用iris_grib.load_pairs_from_fields()转换为多维数据集。
但是,Iris-grib只知道如何将特定的编码转换为多维数据集:对其所识别的内容非常严格,否则将失败。因此,如果您的数据使用任何无法识别的模板或数据编码,则肯定无法加载。
我只是希望您 在这里有一些不寻常的地方,所以这可能是个问题吗?
您可以从convert()
例程开始,根据iris_grib:_load_convert.py的翻译代码来检查期望的消息内容。
要从尚不支持的 中获取虹膜立方体,您可以:
如果您遇到类似的问题,那么您绝对应该在github项目(iris-grib issues)上提出该问题,我们将尽力提供帮助。
P.S。当您已经注册了Python3兴趣后,您可能想知道,不久之后将有gribapi 的较新的“ ecCodes”替代物可用,从而使Python3最后支持grib数据成为可能。
但是 ,Python3版本仍处于测试阶段,我们目前遇到了一些问题,现在ECMWF提出了该问题,因此它仍然几乎可以实现,但还不能完全实现