只是想知道我对组/数据集名称的自由度如何,或者我是否需要缩短名称(因此不太可读)。这适用于包含许多具有许多重复名称的组和数据集的HDF5文件。有些XML API做string interning作为优化,HDF可以做到这一点,但我不能从在线文档中看出它是否存在。
答案 0 :(得分:2)
不,不明确。 HDF5文件格式未指定对象标头的任何压缩(存储组和数据集名称的位置)。实际写入磁盘是通过几个low-level file drivers中的一个来处理的。我不知道这些中是否有任何字符串实习,但是可以编写自己的文件驱动程序。如果您需要这样做,虚拟文件层上的technical notes可能会有所帮助。
答案 1 :(得分:2)
虽然HDF5库不为组中的链接名称提供字符串实习,但是对于HDF5库的1.8.x版,可以使用H5Pset_filter()调用压缩包含每个组的链接名称的堆,传入“组创建属性列表”(GCPL),然后传递给调用以创建组。请注意,文件创建属性列表(FCPL)是组创建属性列表的子类,可以传递给H5Pset_filter以允许压缩根组的堆。
请参阅:http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetFilter
答案 2 :(得分:0)
我相信将你想要的任何字符串作为HDF5中的组或数据集名称是可靠的。例如(来自Python)
import h5py
h5file = h5py.File("newfile.h5", "w")
h5file.create_group("an incredibly descriptive, maybe even obnoxious group name")
h5grp = h5file["an incredibly descriptive, maybe even obnoxious group name"]
h5dset = h5grp.create_dataset("all kinds of useful things", [100,100])
print h5dset
h5file.close()
或者,您可能希望使用cruder组和数据集名称以及详细的字符串值属性来解释数据的含义。