如何在pytables中使用外部链接

时间:2017-06-27 09:24:21

标签: python hdf5 pytables external-links

我有几个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()

有更好的方法吗?

0 个答案:

没有答案