Слияние радужной оболочки, когда cube.var_name отличается

Я столкнулся с проблемой слияния кубов. У меня есть список кубов, который я хотел бы объединить в меньший набор кубов. Однако, когда я пытаюсь объединить радужную оболочку, я получаю следующее сообщение об ошибке:

Traceback (most recent call last):
  File "site-packages/iris/cube.py", line 377, in merge_cube
    proto_cube.register(cube, error_on_mismatch=True)
  File "site-packages/iris/_merge.py", line 1260, in register
    error_on_mismatch)
  File "site-packages/iris/_merge.py", line 420, in match
    raise iris.exceptions.MergeError(msgs)
iris.exceptions.MergeError: failed to merge into a single cube.
  cube.var_name differs: u'air_pressure_at_sea_level_0' != u'air_pressure_at_sea_level_2'

Я использую Iris версии 1.13.0 с Python 2.7.

Я попытался удалить координату var_name, но получил исключение, когда я сделал cube.remove_coord('var_name'):

iris.exceptions.CoordinateNotFoundError: 'Expected to find exactly 1  coordinate, but found none.'

Помимо этой детали, я считаю, что два куба подходят для слияния, и буду признателен за любые рекомендации.

1 ответ

Решение

var_name является атрибутом для куба (и, как это бывает, для координат), и это то, что отличается между вашими двумя кубами.

Просто гомогенизировать var_names должно быть все что нужно в этом случае. Например, вы можете установить их все air_pressure_at_sea_level с:

for cube in cubes:
    cube.var_name = 'air_pressure_at_sea_level'

После этого, cubes.merge_cube() должен работать (или потенциально поднять дальнейшую несовместимость).

Другие вопросы по тегам