2014-09-08 3 views
4

Представьте, что у вас есть файл example.nc, который имеет данные ветра, заданные в зонах 90N, 90S, 180E, 180W. В любом случае я мог бы использовать linux с простой командой nc-type (без извлечения данных в matlab/python для перезаписи), обрезать этот файл, чтобы включить меньшую область, подмножество выше.Есть ли способ обрезать файл NETCDF?

Например, 30N, 10S, 60E и 30W.

ответ

9

Да, используя ncks из NCO пакета: http://nco.sourceforge.net/nco.html

Вы должны знать, индексы, соответствующие значению широты/долготы в диапазоне вы хотите. Предположим, что они 30-40 на широте и 25-50 по долготе. Затем вы можете обрезать файл NetCDF с

ncks -d lat,30,40 -d lon,25,50 example.nc -O cropped_example.nc 
+0

Как раз в голову: иногда вы можете получить сообщение об ошибке, если вы не поместите десятичный знак после ваших темных диапазонов. Итак, если у вас есть проблемы, попробуйте: 'ncks -d lat, 30., 40. -d lon, 25., 50. example.nc -O cropped_example.nc' вместо этого. – brews

+3

@brews, использующий десятичный знак, указывает диапазон фактических lats/lons для извлечения, а целые числа указывают диапазон _indices_, соответствующий фактическим lats/lons. Хорошо прояснить! – N1B4

1

NCO прекрасно работает, но только перечислить альтернативы, можно также сделать это с помощью CDO (операторы климатических данных), которые я проще запомнить и означает, что вы можете указать напрямую долготы и широты значения:

cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc 

где lon1, lon2, LAT1, LAT2 определить границы области, которую требуется. Если вы не имеете его уже установлена, вы можете получить его на Ubuntu с

sudo apt-get install cdo 

CDO имеет много других функций для обработки, объединения и разделения файлов и отличную документацию.

Обратите внимание, что для работы CDO переменные координат (lat/lon) должны определяться в соответствии с соглашениями CDF. Подход ncks гораздо более прочный, поскольку он разрезает любую ось, но вам нужно разработать индекс.

Смежные вопросы