#!/usr/bin/env python
# Licensed under a 3-clause BSD style license - see LICENSE.rst
"""Look up values in a map at given positions."""

# TODO: support coordinate parsing
# TODO: support multiple input images
# TODO: support reading lists of coordinates from FITS and CVS tables

# Parse command line arguments

from gammapy.utils.scripts import argparse, GammapyFormatter
parser = argparse.ArgumentParser(description=__doc__,
                                 formatter_class=GammapyFormatter)
parser.add_argument('infile', type=str,
                    help='Input FITS file name')
parser.add_argument('x', type=float,
                    help='x coordinate (deg)')
parser.add_argument('y', type=float,
                    help='y coordinate (deg)')
parser.add_argument('--pix', action='store_true',
                    help='Input coordinates are in pixels? (world coordinates if false)')

args = parser.parse_args()
args = vars(args)

# Execute script

import logging
logging.basicConfig(level=logging.DEBUG, format='%(levelname)s - %(message)s')
from gammapy.utils.fits import get_hdu
from gammapy.image.utils import lookup

logging.debug('Reading {0}'.format(args['infile']))
hdu = get_hdu(args['infile'])
x, y = args['x'], args['y']

value = lookup(hdu, x, y)
print('Map value at position ({0}, {1}) is {2}'
      ''.format(x, y, value))
