HDF5与ROOT框架集成

时间:2012-04-12 09:50:16

标签: hdf5 root-framework

我与ROOT进行了广泛的合作,它有自己的数据文件格式,但出于各种原因,我们希望切换到HDF5文件。不幸的是,我们仍然需要一些在格式之间翻译文件的方法。有谁知道任何现有的图书馆这样做?

3 个答案:

答案 0 :(得分:4)

您可以查看rootpy,它具有通过PyTables将ROOT文件转换为HDF5的功能:http://www.rootpy.org/commands/root2hdf5.html

答案 1 :(得分:2)

如果您仍然对此问题感兴趣,最近rootpyroot2hdf5脚本和root_numpy程序包(root2hdf5用于将TTrees转换为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)

答案 2 :(得分:0)

截至上次检查时(几个月前),root2hdf5有一个限制,它无法处理TBranches是数组。出于这个原因,我写了一个bash脚本:root2hdf(抱歉非创意名称)。

它将ROOT文件和文件中TTree的路径作为输入参数,并生成源代码&编译成可以在ROOT文件上运行的可执行文件,将它们转换为HDF5数据集。

它也有一个限制,它无法处理复合TBranch类型,但我不知道root2hdf5也可以。