答案 0 :(得分:4)
您可以查看rootpy,它具有通过PyTables将ROOT文件转换为HDF5的功能:http://www.rootpy.org/commands/root2hdf5.html
答案 1 :(得分:2)
如果您仍然对此问题感兴趣,最近rootpy的root2hdf5脚本和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也可以。