3

我正在尝试通过 h5py 将科学数据导出为 HDF5 容器格式,以供其他软件读取。

我有一个 7 维 numpy 数组,我通过 h5py.File.create_dataset() 创建一个数据集。这工作正常。

但是,我找不到任何方法来为 h5py 中的这 7 个维度分配任何物理比例(例如米、千克、角度……)。我找不到任何有关如何执行此操作的文档。

根据HDF5 参考资料,这是可能的。

这是在 h5py 中实现的吗?我知道 HDF5 是可能的。

谢谢你的帮助!

4

2 回答 2

8

HDF5 中的维度尺度只是与您的第一个数据集相关联的另一个数据集。例如,它们可用于定义空间坐标。如果您想指示特定维度具有某些物理单位,您可以标记该维度,这是使用 HDF5 维度比例 API 完成的:H5DSset_label()

在 h5py 中可以使用h5py.dims.create_scale()h5py.dims.attach_scale()h5py.dims.label来设置标签的尺寸比例。

例如,要表示 的第一个维度foo.dat:/data是千克,第二个维度是米,您可以将其标签设置如下(f为 HDF5 文件):

f['data'].dims[0].label = 'kg'
f['data'].dims[1].label = 'm'

要将数据集作为高度比例添加到第二维,首先需要创建比例,然后附加数据集:

f['data'].dims.create_scale(f['h'], 'height')
f['data'].dims[1].attach_scale(f['h'])

然后,您可以使用

[dim.label for dim in f['data'].dims]

并且尺寸随

f['data'].dims[1][0]

或者

f['data'].dims[1]['height']
于 2013-04-24T07:23:35.130 回答
0

您可能需要一个属性:

http://code.google.com/p/h5py/wiki/HowTo#Reading_and_writing_attributes
于 2012-07-11T12:29:35.140 回答