import matplotlib.pyplot as plt
import csv
import math
import numpy as np
import os
from dateutil import parser
from astropy.io import fits
from astropy.cosmology import FlatLambdaCDM

def find_row(data, objid):
  for row in data:
    if int(row['bestObjID'])==int(objid):
      return row

html_file = open('results_fitting_sdss_psf.csv','w')

hdulist = fits.open('super_imbh.fits')
dat=hdulist[1].data

cosmo = FlatLambdaCDM(H0=70, Om0=0.3)
html_file.write('bestObjID,r_disk,ar_disk,pa_disk,mag_disk,r_sers,n_sers,ar_sers,pa_sers,mag_sers,z,luminusity_distance,luminosity,Mbh,chi^2,delt_mag,mbh_err\n')
with open('list_fits_files_sdss.csv','r') as csvfile:
    rows = csv.reader(csvfile, delimiter=',')
    i=0
    for row in rows:
      os.chdir(row[2])
      try:
	hdulist3 = fits.open('output_Ba_psf_WH.fits')
	hdr = hdulist3[2].header
	keys = hdr.keys()
	row_item = find_row(dat,row[0])
	html_file.write(row[0]+',')
	t = float(hdulist3[1].header['EXPTIME'])
	if 'COMP_2' in keys and 'sky' not in hdulist3[2].header['COMP_2']:
	  print hdulist3[2].header['COMP_2']
	  if 'sersic' in hdulist3[2].header['COMP_2']:
	    html_file.write(hdulist3[2].header['2_RE'].split('+/-')[0].replace('*','')+',')
	  else:
	    html_file.write(hdulist3[2].header['2_RS'].split('+/-')[0].replace('*','')+',')
	  
	  html_file.write(hdulist3[2].header['2_AR'].split('+/-')[0].replace('*','')+',')
	  html_file.write(hdulist3[2].header['2_PA'].split('+/-')[0].replace('*','')+',')      
	  mag2 = float(hdulist3[2].header['2_MAG'].split('+/-')[0].replace('*',''))
	  mag2 = mag2 - 2.5*math.log10(t)
	  html_file.write(str(mag2)+',')
        else:
	  html_file.write(',')
	  html_file.write(',')
	  html_file.write(',')      
	  html_file.write(',') 	  
	html_file.write(',')
	html_file.write(',')
	html_file.write(',')      
	html_file.write(',')        
        mag1 = float(hdulist3[2].header['1_MAG'].split('+/-')[0].replace('*',''))
        mag1 = mag1 - 2.5*math.log10(t)
        delt_mag = float(hdulist3[2].header['1_MAG'].split('+/-')[1].replace('*',''))
        print t
        html_file.write(str(mag1)+',')
        html_file.write(str(row_item['z'])+',')
        L_D = cosmo.luminosity_distance(row_item['z']).value
        lumi = mag1 - 5*math.log10(L_D*10**5)
        html_file.write(str(L_D)+',') 
        html_file.write(str(lumi)+',')
        html_file.write(str(row_item['Mbh'])+',') 
        html_file.write(str(hdulist3[2].header['CHI2NU'])+',')        
        html_file.write(str(delt_mag)+',')        
        html_file.write(str(row_item['Mbh_err'])+'\n') 


	hdulist3.close()

      except IOError as e:
	print('NO FILE')
	
	
      os.chdir('../../../')

