import characterize_variability as var
import pyfits
import numpy as np
def call_char_var(fil):
      hdu=pyfits.open(fil)
      time=hdu[1].data.field('TIME')
      rate= hdu[1].data.field('RATE')
      rate_err= hdu[1].data.field('RATE_ERR')
      #ignore nan values
      indok=np.where(np.isnan(rate)==False)[0]
      time=time[indok]
      rate=rate[indok]
      rate_err=rate_err[indok]
      #set minimum rate to zero
      rate[rate<=0]=0.
      rate_err[rate_err<=0]=0.
      
      #remove first and last bin
      time=time[1:-1]
      rate=rate[1:-1]
      rate_err=rate_err[1:-1]
      #T0 has to be 0
      time=time-np.min(time)
      BestfitPar=var.compute_variability_parameters(rate, rate_err, time, 0.)
      #retrieve parameters for linear fit
      chi2_lin=BestfitPar.Linear  
      #retrieve parameters for flare fit
      chi2_flare=BestfitPar.Flare 
      #retrieve parameters for eclipse fit
      chi2_eclipse=BestfitPar.Eclipse 
      flch2p1 = float(chi2_flare[3])
      ecch2p1 = float(chi2_eclipse[3])
      snr_flare=np.sqrt(np.sum((rate-flch2p1)**2/rate_err**2))
      snr_eclipse=snr=np.sqrt(np.sum((rate-ecch2p1)**2/rate_err**2))
      return chi2_lin,chi2_flare,chi2_eclipse,snr_flare,snr_eclipse
