#!/usr/bin/env python3

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

description="add two fits files and create a new one with the sum both. We asssume that fits files contains surface brightnesses."
epilog     ="""
Examples:
--------
mockimgs_fits_add_SB 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
  F1 = 10**(-data1/2.5)

  hdu2 = fits.open(opt.files[1])
  data2 = hdu2[0].data
  F2 = 10**(-data2/2.5)
  
  F = F1 + F2
  data = -2.5*np.log10(F)
    
    
  # save fits
  if opt.outputfilename:
          
    hdu = fits.PrimaryHDU(data)
    hdu.header = hdu1[0].header
    
    if os.path.isfile(opt.outputfilename):
      os.remove(opt.outputfilename)
    
    hdu.writeto(opt.outputfilename)
    
    



