2016-05-30 16 views
0

私はpython irisモジュールを使用して、いくつかのnetCDFデータを読み込み、さらに下流の処理のためにgrib形式で特定のフィールドを出力しています。しかし、私はそうは以下を読んだ後、次のエラーpython irisモジュールを使用してgrib2ファイルに保存できません

.../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 

を生成:https://github.com/SciTools/iris/blob/master/lib/iris/fileformats/grib/grib_save_rules.py#L80

アイリスGoogleグループのスレッドhttps://groups.google.com/forum/#!searchin/scitools-iris/grib2/scitools-iris/D2InfYESaUM/yVT7ayXSFV0J

StackOverflowのスレッドConverting NetCDF to GRIB2

アイリスソースコードI次のように試みました

In [26]: radius=iris.fileformats.pp.EARTH_RADIUS 

In [27]: u.coord(dimensions=[0]).coord_system=iris.coord_systems.GeogCS(radius) 

In [28]: u.coord(dimensions=[1]).coord_system=iris.coord_systems.GeogCS(radius) 

In [29]: u.coord(dimensions=[0]).coord_system 
Out[29]: GeogCS(6371229.0) 

In [30]: u.coord(dimensions=[1]).coord_system 
Out[30]: GeogCS(6371229.0) 

In [31]: iris.save(u,'prod.grib2') 
    --------------------------------------------------------------------------- 
TranslationError       Traceback (most recent call last) 
<ipython-input-15-a38abe1720ac> in <module>() 
----> 1 iris.save(u,'prod.grib2') 

つまり、私はまだ同じエラーが発生し、誰かが助けることができる願ってgribbability_check

アイリスサブルーチンで失敗。私はPython 2.7.6でiris 1.9.0を使用しています。動作もアイリス1.8.0

乾杯

答えて

1

解答するアイリスのGoogleグループのアンドリュー・ドーソンのおかげで失敗します。 grib_save_rules.pyの次元[0]と[1]は、キューブが0次元に時間を使用する場合でも、空間次元を厳密に参照します。引用すると:コードの膨大な量は、あなたのキューブと grib2として保存の間にあり

。グリブは2より大きい次元数については何も知らないので(1メッセージあたり1グリッドしか格納しない)、キューブを1つのスライスに分割してグリッドごとに1つのスライスに分割し、それを渡すので、参照する関数で 次元0は緯度で1は経度にかかわらず、あなたのキューブが持っていた他の次元 。

私はこのプロセスを繰り返しますが、私の空間次元にcoord_systemを処方し、GRIBを保存することができ

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

を使用して、同様の垂直座標に属性を与える場合。

関連する問題