root2hdf5

rootpy provides the command root2hdf5 for converting ROOT files containing TTrees into HDF5 files containing HDF5 tables.

Note

To use this command you must have HDF5, PyTables, NumPy and root_numpy installed.

Run with the help option to see a full list of available options:

$ root2hdf5 -h
usage: root2hdf5 [-h] [--version] [-n ENTRIES] [-f] [-u] [--ext EXT] [-c {0,1,2,3,4,5,6,7,8,9}] [-l {zlib,lzo,bzip2,blosc}] [-s SELECTION] [--script SCRIPT] [-q] [-d] [--no-progress-bar] [--ignore-exception]
                 files [files ...]

Convert ROOT files containing TTrees into HDF5 files containing HDF5 tables

positional arguments:
  files

optional arguments:
  -h, --help            show this help message and exit
  --version             show the version number and exit
  -n ENTRIES, --entries ENTRIES
                        number of entries to read at once (default: 100000)
  -f, --force           overwrite existing output files (default: False)
  -u, --update          update 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)
  -s SELECTION, --selection SELECTION
                        apply a selection on each tree with a cut expression (default: None)
  --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)
  -d, --debug           show stack trace in the event of an uncaught exception (default: False)
  --no-progress-bar     do not show the progress bar (default: False)
  --ignore-exception    ignore exceptions raised in converting trees and instead skip such trees (default: False)

Typical output will look like this:

$ root2hdf5 ../rootpy/testdata/test_tree.root
INFO:rootpy.root2hdf5] Converting ../rootpy/testdata/test_tree.root ...
INFO:rootpy.root2hdf5] Will convert 1 tree in /
INFO:rootpy.root2hdf5] Converting tree 'test' with 1000 entries ...
INFO:rootpy.root2hdf5] Created ../rootpy/testdata/test_tree.h5

When run interactively you will also see a progress bar fill from left to right as each tree is converted. The progress bar can be disabled with the --no-progress-bar option.

Note

Also see rootpy’s rootpy.root2hdf5.root2hdf5() function for direct access to the underlying conversion function for use in your own applications.