1

我有几 TB 的图像数据,目前存储在许多带有 pytables 的 hdf 文件中,每一帧都有一个文件。一个文件包含两组,“LabelData”和“SensorData”。

我创建了一个包含所有文件名和一些元数据的单个(小)文件,在该文件的帮助下,我可以在 python 生成器中调用和打开任何需要的 hdf-data。

这给了我很大的灵活性,但是,它似乎很慢,因为每个文件都必须打开和关闭。

现在我想创建一个带有指向其他文件的外部链接的单个 hdf 文件,这会加快进程吗?

据我了解,创建外部链接需要为每个链接创建一个节点。但是,我收到以下性能警告:

PerformanceWarning:组/超过了建议的最大孩子数(16384);准备好看到 PyTables 需要大量 内存并且可能会降低 I/O。性能警告)

这就是我创建文件的方式:

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()

有没有更好的办法?

4

0 回答 0