6

私はバイナリ フラット ファイルを頻繁に使用しており、レガシー コードを使用するには現在の形式を維持する必要がありますが、属性とグループで HDF5 ファイルの機能の一部を使用できるようにしたいと考えています。HDF5ドキュメント 5.5.4で、外部データをリンクできることがわかります。HDF5 ファイルを作成し、h5py で外部リンクを追加する簡単な方法はありますか?

4

1 に答える 1

0

バイナリ フラット ファイルに 10000 個の float32 がファイル内の特定のオフセット (バイト単位) で含まれており、それらを形状 (10、20、50) の 3D 配列データに読み戻したいと仮定すると、以下のコードでジョブを実行する必要があります。

input_file = "filename.raw"
output_file = "filename.h5"
offset = OFFSET
shape = (10, 20, 50)
size = 4 * shape[0] * shape[1] * shape[2] # 4 bytes per element

import h5py
import numpy
h5 = h5py.File(output_file, "w")
dataset = h5["/"].create_dataset("data",
                                 shape=shape,
                                 dtype=numpy.float32,
                                 external=((input_file, offset, size),))
h5.flush()
h5.close()

externalキーワードは、作成されたデータセットが異なるファイルまたはオフセットの部分で構築される必要がある場合に備えて、形式 (ファイル名、オフセット、サイズ) の複数のタプルを想定しています。

于 2021-04-30T11:36:35.753 に答える