У меня есть 20 файлов netCDF, содержащих океанографические данные CTD. Каждый файл содержит одинаковые имена измерений и переменных, однако они отличаются размером вертикальной координаты (т. е. профили CTD на берегу имеют меньший диапазон глубин, чем профили на море). Мне нужно объединить эти отдельные файлы в один файл netCDF с переменной записи «станция».
Я пытался:
ncecat -u station *.nc outfile.nc
Это объединяет файлы правильным образом, но принимает размер первого файла netCDF (который является самым маленьким), и поэтому я теряю данные ниже глубины самого мелкого профиля CTD для остальных файлов netCDF.
Я предполагаю, что мне нужно добавить FillValues (или аналогичный) вместо данных, которые меньше, чем максимальная глубина самого глубокого профиля CTD.
Есть ли способ сделать это с помощью ncecat?
@AdrianTompkins фактические значения глубины одинаковы (с точностью до третьего знака после запятой) на всех станциях. Единственная проблема заключается в том, что они немного не синхронизированы между станциями из-за удаления поверхностного замачивания CTD (эта глубина может немного варьироваться), но это легко исправить. Моя проблема была больше связана с хранением, а не с анализом данных, поэтому ответ, предоставленный Чарли Зендером, кажется, помогает... по крайней мере, для моей цели. Спасибо за ваш комментарий!!!
Самое близкое, что вы можете получить с помощью ncecat
, — это использовать групповая агрегация для хранения профиля каждой станции как отдельной группы в файле netCDF4. Тогда вам не нужно искать и заполнять недостающие данные:
ncecat --gag *.nc outfile.nc
О, круто, это хорошо работает, спасибо! Теперь просто нужно попрактиковаться в индексировании и навигации по такого рода файлам в python: D.
Могу я спросить, я полагаю, что меняется не только количество вертикальных уровней, но и их величина? Или более мелкие уровни отчетности одинаковы для всех профилей CTD? Если вертикальные уровни, на которых сообщаются данные, достаточно произвольны (но постоянно возрастают), то может потребоваться решение, основанное на вертикальной интерполяции.