如何在h5py中为HDF5数据集指定比例(或物理尺寸)?

时间:2012-07-11 12:06:53

标签: python hdf5 h5py

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

我有一个7维的numpy数组,我通过h5py.File.create_dataset()创建了一个数据集。这很好。

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

这可以根据HDF5 reference

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:8)

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

可以在h5py中使用h5py.dims.create_scale()h5py.dims.attach_scale()以及h5py.dims.label来设置标签,

Dimension scales

例如,要指示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']

答案 1 :(得分:0)

您可能想要一个属性:

http://code.google.com/p/h5py/wiki/HowTo#Reading_and_writing_attributes