def plotprior(ax, lc, normalize=False, **kwargs): P = utils.periodprior(lc.t, lc.flux) x = np.linspace(0, max(lc.t) - min(lc.t), 1000) y = np.exp(P.logp(x).eval()) if normalize: y = y / np.max(y) return ax.plot(x, y, **kwargs)
cornerfile = kid + "_corner.png" errfile = kid + "_err.dat" lc = Lightcurve.everest(f) try: y = lc.flux - utils.trend(lc.t, lc.flux, 2) mask = sigma_clip(y-medfilt(y, kernel_size=5), sigma=3) x = lc.t[mask.mask == False] y = y[mask.mask == False] yerr = np.std(y - medfilt(y, kernel_size=5)) with pm.Model() as model: mean = pm.Normal("mean", mu=np.mean(y), sd=np.std(y)) yerr = pm.Normal("yerr", mu=yerr, sd=5.0) logamp = pm.Normal("logamp", mu=np.log(np.var(y)), sd=5) period = utils.periodprior(lc.t, lc.flux) logQ0 = pm.Uniform("logQ0", lower=-10, upper=10) logdQ = pm.Normal("logdQ", mu=2.0, sd=5.0) mix = pm.Uniform("mix", lower=0.0, upper=1.0) logS0 = pm.Normal("logS0", mu=np.log(np.var(y)), sd=5) dt = lc.t[-1] - lc.t[0] logw = pm.Uniform("logw", lower=-20, upper=0) kernel = xo.gp.terms.RotationTerm( log_amp=logamp, period=period, log_Q0=logQ0, log_deltaQ=logdQ, mix=mix )
lc = Lightcurve.tess(f) try: y = lc.flux - utils.trend(lc.t, lc.flux, 2) mask = sigma_clip(y - medfilt(y, kernel_size=301), sigma=3) x = lc.t[mask.mask == False] y = y[mask.mask == False] yerr = np.std(y - medfilt(y, kernel_size=51)) x = x[::5] y = y[::5] with pm.Model() as model: mean = pm.Normal("mean", mu=np.mean(y), sd=np.std(y)) yerr = pm.Normal("yerr", mu=yerr, sd=5.0) logamp = pm.Normal("logamp", mu=np.log(np.var(y)), sd=5) period = utils.periodprior(lc.t, lc.flux, min_period=0.1) logQ0 = pm.Uniform("logQ0", lower=-10, upper=10) logdQ = pm.Normal("logdQ", mu=2.0, sd=5.0) mix = pm.Uniform("mix", lower=0.0, upper=1.0) logS0 = pm.Normal("logS0", mu=np.log(np.var(y)), sd=5) dt = lc.t[-1] - lc.t[0] logw = pm.Uniform("logw", lower=-20, upper=0) kernel = xo.gp.terms.RotationTerm(log_amp=logamp, period=period, log_Q0=logQ0, log_deltaQ=logdQ, mix=mix) kernel += xo.gp.terms.SHOTerm(log_S0=logS0, log_w0=logw,