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

# 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 image 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_image

events = Table.read(args['event_file'])
reference_image = fits.open(args['reference_file'])[0]
out_image = bin_events_in_image(events, reference_image)
out_image.writeto(args['out_file'], clobber=args['clobber'])