Как вы можете добавить переменную из одного файла netcdf в другой файл netcdf в python? - PullRequest
1 голос
/ 19 сентября 2019

Я работаю с промежуточными данными ERA из ECMWF, где нужные мне переменные распределены по нескольким файлам.Как добавить переменную из одного файла в существующий файл, чтобы в итоге у меня был один файл со всеми необходимыми мне переменными?

Я пробовал append (), concatenate () иФункции слияния пока ничего не дали.

p_data = anapath1+'/'+yyyy+'/'+mm+'/'+'P'+date 
b_data = anapath1+'/'+yyyy+'/'+mm+'/'+'B'+date 
g_data = anapath1+'/'+yyyy+'/'+mm+'/'+'G'+date 


 #Open/Read netCDF files
 inpcst = xr.open_dataset(cstfile)
 inp1 = xr.open_dataset(p_data)
 inp2 = xr.open_dataset(b_data)
 inp3 = xr.open_dataset(g_data)

Это некоторые файлы данных, которые я использую.Я загрузил их в python.

  cdo merge inp1 inp2 inp 

Я попробовал этот метод объединить два файла данных, но получил следующую ошибку:

  File "<ipython-input-12-667af80d1ae4>", line 49
     cdo merge inp1 inp2 inp
              ^
   SyntaxError: invalid syntax

Я видел этот код в точности так, как здесьраньше, поэтому я не знаю, почему есть синтаксическая ошибка.В Matlab это очень просто, поскольку вы можете просто сделать это:

  inp = inp1
  inp.a = inp2.a
  inp.b = inp3.b   

, где a и b - переменные из inp2 и inp3, которые я хочу добавить в inp

Я просто хочу скопироватьопределенные переменные из одного файла в другой

1 Ответ

0 голосов
/ 20 сентября 2019

добро пожаловать в SO, если вы новичок в обработке NETCDF, я настоятельно рекомендую вам использовать операторы командной строки CDO и NCO для выполнения такого рода задач ... Например, вы можете выбрать конкретную переменную из файла и поместить еев своем собственном файле, подобном этому:

cdo selvar,varname in.nc out.nc 

, и вы можете затем объединить файлы в кошки, чтобы создать один объединенный файл, подобный этому:

cdo cat file1.nc file2.nc cat_file.nc

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

Ознакомьтесь с документацией здесь: https://code.mpimet.mpg.de/projects/cdo/wiki/Cdo#Documentation

Если вы используете Linux Ubuntu или Mint васможно просто установить:

cdo apt-get install cdo

ncrcat также может объединять файлы netcdf, подробности см. здесь: https://linux.die.net/man/1/ncrcat

...