4

私は、データファイル用に独自の形式を持つROOTを幅広く使用してきましたが、さまざまな理由から、 HDF5ファイルに切り替えたいと考えています。残念ながら、フォーマット間でファイルを変換する何らかの方法が必要です。これを行う既存のライブラリを知っている人はいますか?

4

3 に答える 3

4

あなたは、PyTablesを介してROOTファイルをHDF5に変換する機能を備えたrootpyをチェックするかもしれません: http ://www.rootpy.org/commands/root2hdf5.html

于 2012-05-18T20:46:45.000 に答える
2

この問題がまだ気になる場合は、最近、rootpyroot2hdf5スクリプトとroot_numpyパッケージ(root2hdf5がTTreeをNumPy構造化配列に変換するために使用)に大幅な改善が加えられました。

root2hdf5 -h
usage: root2hdf5 [-h] [-n ENTRIES] [-f] [--ext EXT] [-c {0,1,2,3,4,5,6,7,8,9}]
                 [-l {zlib,lzo,bzip2,blosc}] [--script SCRIPT] [-q]
                 files [files ...]

positional arguments:
  files

optional arguments:
  -h, --help            show this help message and exit
  -n ENTRIES, --entries ENTRIES
                        number of entries to read at once (default: 100000.0)
  -f, --force           overwrite existing output files (default: False)
  --ext EXT             output file extension (default: h5)
  -c {0,1,2,3,4,5,6,7,8,9}, --complevel {0,1,2,3,4,5,6,7,8,9}
                        compression level (default: 5)
  -l {zlib,lzo,bzip2,blosc}, --complib {zlib,lzo,bzip2,blosc}
                        compression algorithm (default: zlib)
  --script SCRIPT       Python script containing a function with the same name 
                        that will be called on each tree and must return a tree or 
                        list of trees that will be converted instead of the 
                        original tree (default: None)
  -q, --quiet           suppress all warnings (default: False)
于 2013-01-19T20:04:35.097 に答える
0

私が最後にチェックしたとき(数か月前)、root2hdf5には、配列であるTBranchesを処理できないという制限がありました。このため、私はbashスクリプトを作成しました:root2hdf(非クリエイティブな名前で申し訳ありません)。

ROOTファイルとファイル内のTTreeへのパスを入力引数として受け取り、ソースコードを生成し、ROOTファイルで実行できる実行可能ファイルにコンパイルして、HDF5データセットに変換します。

また、複合TBranchタイプを処理できないという制限もありますが、root2hdf5も処理できるかどうかはわかりません。

于 2014-02-10T06:30:49.337 に答える