Обратите внимание, что ответ, отправленный Линдсей на ее собственный вопрос, к сожалению, не даст правильный ответ, за исключением исключительного обстоятельства данных на декартовой сетке. В большинстве случаев проекция будет регулярной широтой, или уменьшенной гауссовой или одной из многих проекций региональной карты, и в этом случае простое среднее арифметическое значение по массиву пустышек будет неправильным, поскольку оно не учитывает весовые значения размера ячейки сетки (например,ячейки становятся «уже» к полюсам в регулярной решетке широты. Чем больше область, которую вы усредняете, тем хуже становится эта ошибка. См., Например, мой ответ, размещенный здесь: Рассчитать среднее значение переменных в выборочной области, в файле netCDF с сеткой
Я предполагаю, что ncap2 рассчитает среднее пространственное значение для сетки, я знаю, что CDO определенно делает,так что было бы лучше зациклить файлы сначала в bash
for file in NB_all_var_surface_*.nc ; do
# appends _mean to each file name for output
cdo fldmean $file $file%???}_mean.nc
done
, а затем в вашей программе на python просто зациклить файлы:
from glob import glob
from netCDF4 import Dataset
import numpy as np
files=glob("NB_all_var_surface_*mean.nc")
for file in files:
ds = Dataset(test)
mymean = ds.variables['nsmz']
...append to numpy array etc etc
Второй вариант - использоватьМодуль Python xarray, так как он специально написан с учетом структур данных netcdf, вот ссылка на руководство, описывающее математические операции: http://xarray.pydata.org/en/stable/computation.html