Exemplo n.º 1
0
        cs[:, -1] = 1 - 0.9 * np.array(b2) / np.max(b2)

        for order, i in enumerate(np.argsort(np.sqrt(e2) *
                                            np.array(p.mean_flux))[::-1]):
            pl.clf()

            star = Star(_id=p.stars[i])
            ra, dec = star.ra, star.dec

            tai, flux, ferr = p.get_lightcurve(p.stars[i])

            # Convert to MJD.
            mjd = tai / 24 / 3600

            T = lyrae.find_period({"g": mjd}, {"g": flux}, {"g": ferr})
            lcmodel = lyrae.get_model(T, mjd, flux, ferr)
            print "Period: ", T, "chi2: ", lcmodel[-1]

            # Plot the light curve with errorbars and alpha weight
            # based on badness of the run.
            pl.errorbar(mjd % T, flux, yerr=ferr, ls="None", capsize=0, lw=2,
                    marker="o", zorder=1, barsabove=False, color="k")
            pl.errorbar(mjd % T + T, flux, yerr=ferr, ls="None", capsize=0,
                    lw=2, marker="o", zorder=1, barsabove=False, color="k")

            # Plot the fit.
            t = np.linspace(0, 2 * T, 5000)
            pl.plot(t, lcmodel[0](t), "--k")

            # Plot the fit stellar flux.
            pl.gca().axhline(p.mean_flux[i], color="k")
Exemplo n.º 2
0
for ind in [144]:  # range(len(sesar.table2)):
    for order in [12]:  # [3, 6, 9, 12]:
        _id = str(sesar.table2[ind]["Num"])
        print "%d:" % ind, _id, order
        d = sesar.table1[_id][...]

        bands = "gri"
        inds = dict([(b, (d[b] > 1) * (d[b] < 99)) for b in bands])
        time = dict([(b, d[b + "mjd"][inds[b]]) for b in bands])
        flux = dict([(b, 10 ** (9 - 0.4 * d[b][inds[b]])) for b in bands])
        ferr = dict([(b, flux[b] * np.log(10) * 0.4 * d[b + "err"][inds[b]]) for b in bands])

        p = [sesar.table2[ind]["Per"], lyrae.find_period(time, flux, ferr, order=order)]

        m = dict([(b, [lyrae.get_model(p0, time[b], flux[b], ferr[b], order=order) for p0 in p]) for b in time])

        f = open(fn, "a")
        s = ["%4d" % ind, _id]
        s += ["%.8f" % p[1]]
        s += [str(order)]
        s += ["%.0f" % m[b][1][2] for b in time]
        for b in m:
            a = m[b][1][1]
            s += ["%e" % a0 for a0 in a]
        f.write(" ".join(s) + "\n")
        f.close()

        def plot_lc(b, i):
            N = 5413
            t = np.linspace(min(time[b]), max(time[b]), N)