2016-01-12 3 views
0

Я пытаюсь выяснить, как использовать модуль Python для обработки netCDF4. Я хотел бы сохранить данные моделирования в файл, так что каждый раз у меня есть сетка значений определенного поля. Я приспособил example that I have found для моего использования:Упорядочить данные в файле netCDF4

from netCDF4 import Dataset 
import numpy as np 

root_grp = Dataset('py_netcdf4.nc', 'w', format='NETCDF4') 
root_grp.description = 'Example simulation data' 

ndim = 128 # Size of the matrix ndim*ndim 
xdimension = 0.75 
ydimension = 0.75 
# dimensions 
root_grp.createDimension('time', None) 
root_grp.createDimension('x', ndim) 
root_grp.createDimension('y', ndim) 

# variables 
prec = root_grp.createVariable('time', 'f8', ('time',)) 
x = root_grp.createVariable('x', 'f4', ('x',)) 
y = root_grp.createVariable('y', 'f4', ('y',)) 
field = root_grp.createVariable('field', 'f8', ('time', 'x', 'y',)) 

# data 
x_range = np.linspace(0, xdimension, ndim) 
y_range = np.linspace(0, ydimension, ndim) 
x[:] = x_range 
y[:] = y_range 
for i in range(5): 
    field[i,:,:] = np.random.uniform(size=(len(x_range), len(y_range))) 


root_grp.close 

Мой вопрос - что является предпочтительным способом в настоящее время, чтобы добавить информацию о режиме, который я хотел бы вычислить для каждого времени - такие как среднее, макс и мин значения поле каждый раз?

ответ

1

Вы можете добавлять атрибуты переменных просто с:

field.mean=np.mean(field)

Это весьма ограничено, конечно, для получения дополнительной информации Вы должны, вероятно, просто создать новые переменные, как field_mean, field_max или аналогичный. Я не думаю, что это описано в http://cfconventions.org/ или https://geo-ide.noaa.gov/wiki/index.php?title=NetCDF_Attribute_Convention_for_Dataset_Discovery, но вы можете просмотреть различные соглашения NetCDF, упомянутые здесь http://www.unidata.ucar.edu/software/netcdf/conventions.html.

Смежные вопросы