我有几个TB的图像数据,当前存储在许多带有pytables的hdf文件中,每个帧有一个文件。一个文件包含两个组," LabelData"和" SensorData"。
我创建了一个包含所有文件名和一些元数据的单个(小)文件,在该文件的帮助下,我可以在python生成器中调用并打开任何所需的hdf数据。
这给了我很多灵活性,但是,它似乎很慢,因为每个文件都必须打开和关闭。
现在我想创建一个带有外部链接到其他文件的单个hdf文件,这会加快这个过程吗?
据我所知,创建外部链接需要为每个链接创建一个节点。但是,我收到以下性能警告:
PerformanceWarning:组
/
超出建议的最大值 子女人数(16384);准备好看PyTables要求很多 内存和可能慢的I / O. PerformanceWarning)
这就是我创建文件的方式:
import tables as tb
def createLinkFile(linkfile,filenames, linknames):
# Create a new file
f1 = tb.open_file(linkfile, 'w')
for filepath, linkname in zip(filenames,linknames):
data = f1.create_group('/', linkname)
# create an external link
f1.create_external_link(data, 'LabelData', filepath + ':/LabelData')
f1.create_external_link(data, 'SensorData', filepath + ':/SensorData')
f1.close()
有更好的方法吗?