histogram/examples/merge.py
2016-04-06 09:23:37 -04:00

42 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from icecube.histogram import I3HistogramN
from icecube import dataio, icetray
import numpy as np
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("input",
nargs="+")
parser.add_argument("-o",
metavar="output",
default="merged.i3.gz",
help="name of output file")
args = parser.parse_args()
histograms = {}
for fname in args.input:
print "Processing:", fname
frame = dataio.I3File(fname).pop_frame()
for key in frame.keys():
print " -", key
h = frame[key]
if key not in histograms:
histograms[key] = I3HistogramN(h)
else:
histograms[key] += h
print "Writing:", args.o
frame = icetray.I3Frame()
for key in histograms:
print " -", key
frame[key] = histograms[key]
f = dataio.I3File(args.o, "w")
f.push(frame)
f.close()
if __name__ == "__main__":
main()