Масштабирование определенного поля в файле netcdf с сохранением метаданных

Я хотел бы масштабировать конкретное поле в файле netcdf с помощью константы.

Используя CDO, я знаю, как масштабировать все поля с помощью константы $ c:

cdo mulc,$c in.nc out.nc

но чтобы применить это к определенному полю, мне пришлось бы вырезать переменную, применить масштабирование, а затем удалить запись из исходного файла и объединить файлы, решение, которое является громоздким, медленным и не очень элегантным:

cdo merge -mulc,$c -selvar,$var in.nc -delvar,$var in.nc out.nc

Я пытался сделать это в nco

ncap -s  "ACSWTTEN=10*ACSWTTEN" in.nc out.nc

который работает, но удаляет все метаданные из поля, поскольку nco, похоже, создает новую переменную таким образом. Опять же, я могу вручную переопределить все метаданные, но это не кажется изящным подходом.

Итак, есть ли способ масштабировать одно конкретное поле в файле netcdf, который содержит много полей, но без разрушения метаданных?


person Adrian Tompkins    schedule 03.04.2017    source источник


Ответы (1)


Да, на самом деле ваша команда NCO, приведенная выше, совершенно верна, за исключением того, что вам нужно использовать ncap2, а не ncap, его предшественник:

ncap2 -s  "ACSWTTEN=10*ACSWTTEN" in.nc out.nc

Мы скоро прекратим поддержку ncap, потому что ситуация сбивает с толку :)

person Charlie Zender    schedule 04.04.2017