无法使用python iris modu保存到grib2文件

2024-09-29 17:18:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pythoniris模块读入一些netCDF数据,并以grib格式输出特定字段,以便进一步进行后续处理。但是我产生了以下错误

 .../pythonlib/iris/1.9.1/lib/python2.7/site-packages/Iris-1.9.1-py2.7-linux-x86_64.egg/iris/fileformats/grib/_save_rules.pyc in gribbability_check(cube)    
   1062     cs1 = cube.coord(dimensions=[1]).coord_system   
   1063     if cs0 is None or cs1 is None:     
-> 1064         raise iris.exceptions.TranslationError("CoordSystem not present") 
   1065     if cs0 != cs1:  
   1066         raise iris.exceptions.TranslationError("Inconsistent CoordSystems")

 TranslationError: CoordSystem not present

所以在读完以下内容之后:

Iris Google组线程https://groups.google.com/forum/#!searchin/scitools-iris/grib2/scitools-iris/D2InfYESaUM/yVT7ayXSFV0J

堆栈溢出线程Converting NetCDF to GRIB2

iris源代码位于https://github.com/SciTools/iris/blob/master/lib/iris/fileformats/grib/grib_save_rules.py#L80

我尝试了以下几点

^{pr2}$

也就是说,我仍然生成同样的错误,iris子例程gribbability_check中的一个失败

希望有人能帮忙。我在python2.7.6中使用iris1.9.0。使用iris 1.8.0也会失败

干杯


Tags: irisifsavelibcheck错误rulescube
1条回答
网友
1楼 · 发布于 2024-09-29 17:18:57

感谢iris google小组的Andrew Dawson给出了答案。grib_save中的尺寸[0]和[1]_规则.py严格参考空间维度,即使您的多维数据集可能会将时间用于第零维度。引用:

There is a huge amount of code in between your cube and saving as grib2. Since grib knows nothing about dimensionalities above 2 (it only stores 1 grid per message) we split your cube up into one slice per grid and pass that onward, hence in the function you are referring to dimension 0 is latitude and 1 is longitude regardless of how many other dimensions your cube had.

如果我重复这个过程,但规定坐标系为我的空间维度,并赋予垂直坐标一个属性

cube.coord('vertical_level').standard_name = 'air_pressure'

这个女孩可以被拯救。在

相关问题 更多 >

    热门问题