如何使用python命名netcdf文件中的列?
我使用这样的语法:
with Dataset(file_name, 'w', format=NETCDF_FORMAT) as ncfile:
ncfile.createDimension('Time', 12)
ncfile.createDimension('Simulations', 15)
ncfile.createVariable('Asset_value', values, ('Simulations', 'Time'))我想将一年中的每个月作为每个列的名称,而不是0,1,2,...netcdf提供的。
有没有办法在python中做到这一点?
非常感谢。
发布于 2019-07-25 21:49:19
如果我没弄错的话,你要做的是以netcdf格式存储一个compound data type。如果使用nc版本4,您可以简单地将一个dict放入group中
from netCDF4 import Dataset
# suppose you have data in the form of a dict:
input = {'some key': 'somevalue'}
with Dataset('your_ncfile.nc', 'w') as f:
data = f.createGroup('Data')
for k, v in input.items():
setattr(data, k, v)我发现这非常方便,因为dict非常适合HDF5数据模型(netcdf4的基础),并且同样可以“加载”回Python中。要使数据“返回”,请执行以下操作:
with Dataset('your_ncfile.nc') as f:
Data_Out = {}
dataOut = f.groups['Data']
for attr in dataOut.ncattrs():
Data_Out[attr] = dataOut.getncattr(attr)注意: 1)到目前为止,我还没有检查过这是否也适用于pd.df。2)如果你是唯一一个使用nc4的人,而其他人都在使用nc3,你的同事可能会不高兴。为nc3编写的工具可能无法使用nc4功能;-)
https://stackoverflow.com/questions/57203151
复制相似问题