Перезапись определенных ячеек в netcdf

Есть ли оператор netcdf (из nco или любой библиотеки netcdf python), который можно использовать для перезаписи определенных ячеек в файле netcdf?

Я хочу изменить значения небольшого региона в файле netcdf, содержащем глобальные климатические данные. Благодарность!


person user308827    schedule 26.03.2014    source источник


Ответы (3)


Это легко сделать с помощью netCDF4-python. Например, предположим, что nc - это ваш файл netCDF, переменная называется var, а индекс ячейки, которую вы хотите изменить, - (0,0,0). Потом:

from netCDF4 import Dataset
new_value = -999
nc.variables['var'][0,0,0] = new_value

netCDF4 представляет все массивы netCDF с помощью numpy, что позволяет эффективно манипулировать ими с помощью numpy нарезка и другие возможности.

person Spencer Hill    schedule 29.03.2014

Или ncap2 NCO делает это одной командой с

ncap2 -s 'var[0,0,0]=-999' in.nc out.nc

ncap2 описан здесь

person Charlie Zender    schedule 10.02.2015

CDO может установить значение для определенной долготной «прямоугольной» области, вот пример из руководства:

Чтобы установить все значения в области с долготой от 120E до 90W и широтой от 20N до 20S на постоянное значение -999, используйте:

cdo setclonlatbox,-999,120,-90,20,-20 infile outfile 
person Adrian Tompkins    schedule 14.05.2017