我正在尝试通过h5py将科学数据导出为HDF5容器格式,以便其他软件读取。
我有一个7维的numpy数组,我通过h5py.File.create_dataset()创建了一个数据集。这很好。
但是,我找不到任何方法来为h5py中的这7个维度分配任何物理比例(比如米,公斤,角度......)。我找不到有关如何执行此操作的任何文档。
这可以根据HDF5 reference。
这是在h5py中实现的吗?我知道HDF5是可行的。
感谢您的帮助!
答案 0 :(得分:8)
HDF5中的维度比例只是与您的第一个数据集关联的另一个数据集。例如,它们可用于定义空间坐标。如果您想表明特定维度具有某些物理单位,您可以使用HDF5维度比例API H5DSset_label()
来标记维度。
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']
答案 1 :(得分:0)
您可能想要一个属性:
http://code.google.com/p/h5py/wiki/HowTo#Reading_and_writing_attributes