我试图弄清楚如何使用Python模块进行netCDF4处理。我想将模拟数据保存到文件中,这样每次我都有一个特定字段值的网格。我改编了一个example that I have found供我使用:
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
我的问题是 - 现在添加我想要计算的模式信息的首选方法是什么 - 例如每次字段的均值,最大值和最小值?
答案 0 :(得分: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。