首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何命名netcdf文件中的列?

如何命名netcdf文件中的列?
EN

Stack Overflow用户
提问于 2019-07-25 21:30:07
回答 1查看 150关注 0票数 1

如何使用python命名netcdf文件中的列?

我使用这样的语法:

代码语言:javascript
运行
复制
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中做到这一点?

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2019-07-25 21:49:19

如果我没弄错的话,你要做的是以netcdf格式存储一个compound data type。如果使用nc版本4,您可以简单地将一个dict放入group

代码语言:javascript
运行
复制
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中。要使数据“返回”,请执行以下操作:

代码语言:javascript
运行
复制
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功能;-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57203151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档