Как объединить / объединить переменную времени в нескольких netcdf - PullRequest
1 голос
/ 14 марта 2020

У меня много файлов NetCDF с температурой поверхности моря с одинаковыми размерами широты и долготы, но разными временными переменными. Я хочу попробовать объединить его в 1 файл NetCDF путем объединения переменных времени, потому что переменные времени в каждом файле netcdf являются последовательными

. Есть ли более эффективный способ? потому что в CDO (операторы климатических данных) я не могу делать циклы

Ниже приведен пример имени файла, который я использую

sstdas_19810101.nc
sstdas_19810102.nc
sstdas_19810103.nc
sstdas_19810201.nc
sstdas_19810202.nc
sstdas_19810203.nc
...
sstdas_20171203.nc

с шаблоном sstdas_ (год) (месяц) (dekad)

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете использовать аргумент mergetime с CDO:

cdo mergetime sstdas_*.nc merged_file.nc

обратите внимание, что для CDO все файлы открываются одновременно для этой операции, а в некоторых системах одновременно существует ограничение на количество открытых файлов, в этом случае CDO выдаст ошибку. В этом случае вам понадобится l oop, что вы можете сделать с CDO, используя bash l oop, я бы предложил попробовать один год за раз, а затем объединить их:

#!/bin/bash
for year in {1981..2007} ; do
  cdo mergetime sstdas_${year}??.nc sstdas_${year}.nc
done 
cdo mergetime sstdas_????.nc sstdas_wholeseries.nc

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

...