1

現在、pytables を使用して多くの hdf ファイルに格納されている数 TB の画像データがあり、フレームごとに 1 つのファイルがあります。1 つのファイルに「LabelData」と「SensorData」の 2 つのグループが含まれます。

すべてのファイル名といくつかのメタデータを含む単一の (小さな) ファイルを作成しました。そのファイルを使用して、Python ジェネレーターで必要な hdf データを呼び出して開くことができます。

これにより多くの柔軟性が得られますが、すべてのファイルを開いたり閉じたりする必要があるため、かなり遅いようです。

今、他のファイルへの外部リンクを含む単一の hdf ファイルを作成したかったのですが、プロセスが高速化されますか?

私が理解しているように、外部リンクを作成するには、リンクごとにノードを作成する必要があります。ただし、次のパフォーマンス警告が表示されます。

PerformanceWarning: グループ/は、推奨される子の最大数 (16384) を超えています。PyTable が大量 のメモリを要求し、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