Ejemplo n.º 1
0
 def run_bls(self):
     b = self.bls
     r = self.bls()
     self._rbls = array((b.bsde, b.tc, b.bper, b.duration, b.depth, sqrt(b.depth),
                         floor(diff(self.time[[0,-1]])[0]/b.bper)), dt_blsresult)
     self._pv_bls = [b.bper, b.tc, sqrt(b.depth), as_from_rhop(2.5, b.bper), 0.1]
     self.create_transit_arrays()
     self.lcinfo['lnlike_constant'] = ll_normal_es(self.flux, ones_like(self.flux), self.flux_e)
     self.period = b.bper
     self.zero_epoch = b.tc
     self.duration = b.duration
Ejemplo n.º 2
0
 def compute_lc_model(self, pv):
     _tc, _p, _b = pv[0], pv[1], pv[3]
     _ld = pv[self.ldc_slice]
     _a = as_from_rhop(pv[2], pv[1])
     _i = m.acos(_b/_a)
     
     k = np.sqrt(pv[self.k2_slice])
     _k = k.mean()
     kf = (k/_k)**2
     
     z = of.z_circular(self.time, _tc, _p, _a, _i, 4)
     flux = self.tmodel(z, _k, pv[self.ldc_slice])
     
     return (kf*(flux-1.)+1.).reshape((self.npt,self.npb))
Ejemplo n.º 3
0
    def compute_lc_model(self, pv):
        _tc, _p, _b = pv[0], pv[1], pv[3]
        _ld = pv[self.ldc_slice]
        _a = as_from_rhop(pv[2], pv[1])
        _i = m.acos(_b/_a)

        self.ld[0::2] = 2.*np.sqrt(_ld[0::2])*_ld[1::2]
        self.ld[1::2] = np.sqrt(_ld[0::2])*(1.-2.*_ld[1::2])
        
        k = np.sqrt(pv[self.k2_slice])
        _k = k.mean()
        kf = (k/_k)**2
        
        z = of.z_circular(self.time, _tc, _p, _a, _i, 4)
        flux = self.tmodel(z, _k, self.ld)
        
        return kf*(flux-1.)+1.
Ejemplo n.º 4
0
 def run_bls(self):
     b = self.bls
     r = self.bls()
     self._rbls = array(
         (b.bsde, b.tc, b.bper, b.duration, b.depth, sqrt(b.depth),
          floor(diff(self.time[[0, -1]])[0] / b.bper)), dt_blsresult)
     self._pv_bls = [
         b.bper, b.tc,
         sqrt(b.depth),
         as_from_rhop(2.5, b.bper), 0.1
     ]
     self.create_transit_arrays()
     self.lcinfo['lnlike_constant'] = ll_normal_es(self.flux,
                                                   ones_like(self.flux),
                                                   self.flux_e)
     self.period = b.bper
     self.zero_epoch = b.tc
     self.duration = b.duration
 def __call__(self,  qmi=0.02,
                     qma = 0.25,
                     df = 0.0001,
                     nf = 10000,
                     nb = 1000,
                     fmin = 1./50.,
                     dur=0.2,
                     period_range=None,
                     plot=False,
                     win=49,
                     period_fit_prior=None,
                     t0_fit_prior=None):
     self.bb = blsMOD.blsMOD(self.t,self.f, nf, fmin, df, nb, qmi, qma,period_range)
     print("Computing bls...")
     self.bb.compute()
     self.pv_bls = [self.bb._best_period,self.bb._epoch,np.sqrt(self.bb._depth),as_from_rhop(2.5,self.bb._best_period),0.1]
     self.fit_transit(pv_init=self.pv_bls,time=self.t,flux=self.f,period_fit_prior=period_fit_prior,t0_fit_prior=t0_fit_prior)
     print("Per=",self.pv_min[0],"epoch=",self.pv_min[1])
     if plot:
         self.fig, self.ax = plt.subplots(nrows=4)
         self.bb.plot_power_spectrum(inverse=True,ax=self.ax.flat[0])
         self.bb.plot_folded(ax=self.ax.flat[1])
         self.bb.plot_transits(ax=self.ax.flat[2])
         
         if self.time is not None:            
             self.t_folded,self.f_folded = k2help.fold_transit_everest(self.t,self.f,t0=self.bb._epoch,period=self.bb._best_period,dur=dur)
             self.ax.flat[3].plot(self.t_folded,self.f_folded,"k.",label="BLS",alpha=0.5)
             self.t_folded,self.f_folded = k2help.fold_transit_everest(self.t,self.f,t0=self.pv_min[1],period=self.pv_min[0],dur=dur)
             self.ax.flat[3].plot(self.t_folded,self.f_folded,"r.",label="Best Fit",markersize=5)
             self.ax.flat[3].legend(loc="lower left",fontsize=8)
         else:
             self.t_folded,self.f_folded = self.star.get_folded_transit(t0=self.bb._epoch,period=self.bb._best_period,dur=dur,plot=False);
             self.ax.flat[3].plot(self.t_folded,self.f_folded,"k.",label="BLS",alpha=0.5)
             self.t_folded,self.f_folded = self.star.get_folded_transit(t0=self.pv_min[1],period=self.pv_min[0],dur=dur,plot=False);
             self.ax.flat[3].plot(self.t_folded,self.f_folded,"r.",label="Best Fit",markersize=5)
             self.ax.flat[3].legend(loc="lower left",fontsize=8)