#!/usr/bin/env python3

import argparse
from astropy.io import fits
import os
import numpy as np
  
####################################################################
# option parser
####################################################################

description="subtract two fits files and create a new one with the difference"
epilog     ="""
Examples:
--------
mockimgs_fits_substract image1.fits image2.fits -o image.fits
"""

parser = argparse.ArgumentParser(description=description,epilog=epilog,formatter_class=argparse.RawDescriptionHelpFormatter)





parser.add_argument(action="store", 
                    dest="files", 
                    metavar='FILE', 
                    type=str,
                    default=None,
                    nargs=2,
                    help='two files') 

parser.add_argument("-o",
                    action="store",
                    type=str,
                    dest="outputfilename",
                    default=None,
                    help="Name of the output file")  



                                        
                    
####################################################################
# main
####################################################################


if __name__ == '__main__':
  
  opt = parser.parse_args()
  


  hdu1 = fits.open(opt.files[0])
  data1 = hdu1[0].data

  hdu2 = fits.open(opt.files[1])
  data2 = hdu2[0].data
  
  data = data1 -data2
  
  print(np.ravel(data).min(),np.ravel(data).max())
  
    
  # save fits
  if opt.outputfilename:
          
    hdu = fits.PrimaryHDU(data)
    
    if os.path.isfile(opt.outputfilename):
      os.remove(opt.outputfilename)
    
    hdu.writeto(opt.outputfilename)
    
    



