2017-01-31 4 views
0

У меня есть год данных в виде ежемесячных файлов NetCDF, и я хотел бы превратить их в ежедневные файлы. Я знаю, что могу использовать ncks извлечь 24 часа, как этотИспользование nco для преобразования файла NetCDF с ежемесячными данными в ежедневные файлы

ncks -d time,0,23 -o output.nc input.nc 

, но я хотел бы, чтобы автоматически ломоть целый месяц в дни, не беспокоясь о том, сколько дней в каждом месяце и этажерки. Есть простой способ сделать это? (Я мог бы, конечно, написать скрипт python или аналогичный, который вызывает ncks, но было бы более элегантно избегать этого.)

ответ

2

С вопросом мне не ясно, если ваши ежемесячные файлы содержат ежедневные данные. то есть у вас есть 12 файлов, и каждый файл содержит ежедневную (или более тонкую) информацию о разрешении времени. Если это так, то я думаю, что вы хотите сделать, это очень легко с CDO использованием

cdo splitday input.nc output.nc 

вы будете в конечном итоге с количеством файлов, каждый из которых в день данных, и количество дней в каждом месяц автоматически обрабатывается для вас.

+0

Это выглядит великолепно! Именно то, что я искал. – Tor

3

Переключатель гиперссылки NOD -d понимает даты в формате UDUnits. Если входной файл содержит хорошо отформатирован атрибутов единицы для времени, не должно быть никаких проблем в письменной форме двенадцать команд, каждая с датой hyperslab как

ncks -d time,1918-01-01,1918-01-31 in.nc jan.nc 

Кроме этого, не существует более элегантный способ в настоящее время поддерживается NCO.

+0

Это хорошо, я не знал об этом. Не совсем то, что я надеялся, хотя, по-прежнему, мне нужно использовать какой-то другой инструмент для создания команд. Я думал о чем-то, что позволило бы мне сказать: «Разделите этот файл на куски по 24 часа каждый, однако много кусков, которые могут быть». – Tor