#!/usr/bin/env python
# Licensed under a 3-clause BSD style license - see LICENSE.rst
"""Bin events into a LON-LAT-Energy cube."""

# Parse command line arguments

from gammapy.utils.scripts import argparse, GammapyFormatter
parser = argparse.ArgumentParser(description=__doc__,
                                 formatter_class=GammapyFormatter)
parser.add_argument('event_file', type=str,
                    help='Input FITS event file name')
parser.add_argument('reference_file', type=str,
                    help='Input FITS reference cube file name')
parser.add_argument('out_file', type=str,
                    help='Output FITS counts cube file name')
parser.add_argument('--clobber', action='store_true',
                    help='Clobber output files?')
args = parser.parse_args()
args = vars(args)

# Execute script

import logging
logging.basicConfig(level=logging.DEBUG, format='%(levelname)s - %(message)s')
from astropy.io import fits
from astropy.table import Table
from gammapy.image.utils import bin_events_in_cube

events = Table.read(args['event_file'])
reference_cube = fits.open(args['reference_file'])
energies = Table.read(args['cube_file'], 'ENERGIES')
out_cube = bin_events_in_cube(events, reference_cube)
out_cube.writeto(args['out_file'])
