Ejemplo n.º 1
0
    def __init__(self, p, teff=None, feh=None, logg=None, bv=None):

        self.p = p
        self.bv = bv
        if not self.bv:
            self.bv = teff2bv(teff, logg, feh)
        self.teff = teff
        self.feh = feh
        self.logg = logg
Ejemplo n.º 2
0
    def p_vs_t(self, pars, pars2, model, col):

        # convert teff data to colours
        if col==True:
            self.teff = teff_bv.teff2bv(self.teff, self.logg, self.feh)
            self.t_err = np.ones_like(self.teff)*0.01

        # remove subgiants and kraft break with kraft toggle
        period, p_err, age, teff, t_err, a_errp, a_errm, logg, logg_errp,\
                logg_errm = self.kraft_sub(kraft=False)

        # Remove zeros
        zero = teff > 0

        # age masks
        a_lim = [0, 1, 2, 3, 4, 5, 8, max(age)]

        # bin according to age
        for i in range(len(a_lim)-1):
            a = (a_lim[i] < age)*(age < a_lim[i+1])*zero

            # Plot data
            pl.clf()
            pl.errorbar(teff[a], period[a], xerr=t_err[a], \
                    yerr=p_err[a], color='k', fmt='o', mec='k', \
                    capsize=0, markersize=5, ecolor='0.8', zorder = 4, \
                    label='$%s < \mathrm{Age} <%s \mathrm{Gyr}$'%(a_lim[i], a_lim[i+1]))

            # Add Isochrones
            xs, ys, t_ref = plotting.iso_calc(self, a, pars, age, model, col)
            pl.plot(xs, ys, color = ocols[i], linestyle='--', linewidth = 2, \
                    label = '$\mathrm{Age} = %.1f$\,$\mathrm{Gyr}$ \
                    $\mathrm{(Barnes~2007)}$' % t_ref, zorder = 1)
            if pars != pars2:
                xs, ys, t_ref = plotting.iso_calc(self, a, pars2, age, model, col)
                pl.plot(xs, ys, color = ocols[i], linestyle='-', linewidth = 2, \
                        label = '$\mathrm{Age} = %.1f$\,$\mathrm{Gyr}$ \
                        $\mathrm{This~work}$' % t_ref, zorder = 1)
#             a = a_lim[i]
#             xs, ys, t_ref = plotting.iso_calc(self, a, pars, age, model, col)
#             pl.plot(xs, ys, color = ocols[i], linestyle = '--', linewidth = 2, zorder = 2)
#             a = a_lim[i+1]
#             xs, ys, t_ref = plotting.iso_calc(self, a, pars, age, model, col)
#             pl.plot(xs, ys, color = ocols[i], linestyle = '--', linewidth = 2, zorder = 3)

            pl.xlabel("$\mathrm{B-V}$")
            if col==False: pl.xlabel("$\mathrm{T_{eff (K)}}$")
            pl.ylabel("$\mathrm{P_{rot} (days)}$")
    #             pl.xlim(pl.gca().get_xlim()[::-1])

            pl.xlim(.2, .8)
            if col==False: pl.xlim(7000, 5000)
            pl.ylim(0, 70)
            pl.legend(loc='upper left')
            pl.savefig("p_vs_t%s"%i)
Ejemplo n.º 3
0
c_err = .01

# remove subs
g = data[9] > 4.

p1 = data[1][g]
p_err1 = data[2][g]
a1 = data[3][g]
a_errp1 = data[4][g]
a_errm1 = data[5][g]
a_err1 = .5 * (a_errp1 + a_errm1)
t1 = data[12][g]
t_err1 = data[13][g]
logg1 = data[9][g]
logg_err1 = data[10][g]
bv1 = teff2bv(t1, logg1, np.ones_like(t1)*-.02, t_err1, logg_err1, \
        np.ones_like(t1)*.001, error=False)
bv_err1 = np.ones_like(bv1)*c_err

# add clusters
data = np.genfromtxt("/Users/angusr/Python/Gyro/data/clusters.txt").T
bv2 = data[0]
bv_err2 = data[1]
p2 = data[2]
p_err2 = data[3]
a2 = data[4]
a_err2 = data[5]
a_errp2 = data[5]
a_errm2 = data[5]
logg2 = data[6]

logg_err2 = data[7]
Ejemplo n.º 4
0
    uncertainty_hist(df)

    # a, b, n, c = .7725, .601, .5189, .4  # Barnes
    a, b, n, c = .407, .325, .566, .495  # MH
    par = [a, b, n, c]

    id_starname = []
    for koi in my.KOI.values:
        id_starname.append("K{}".format(str(koi).zfill(5)))
    my["id_starname"] = id_starname

    new = pd.merge(my, df, on="id_starname", how="inner")
    # new = pd.merge(my, df, on="id_kic", how="inner")

    bvs = tbv.teff2bv(new.teff.values, new.logg.values, new.iso_smet.values)
    new["bv"] = bvs
    m = bvs > c
    new = new.iloc[m]

    cks_age = new.iso_sage.values
    cks_age_errp = new.iso_sage_err1.values
    cks_age_errm = new.iso_sage_err2.values
    lncks_age = new.iso_slogage.values
    lncks_age_errp = new.iso_slogage_err1.values
    lncks_age_errm = new.iso_slogage_err2.values

    my_age = gyro_age(par, new.period.values, new.bv.values)

    plt.clf()
    plt.errorbar(cks_age,
Ejemplo n.º 5
0
    plt.hist(periods)
    plt.savefig("phist")

    teff, teff_errp, teff_errm, logg, logg_errp, logg_errm, feh, feh_errp, \
        feh_errm = get_kic_properties(kois)

    periods = np.array(periods)
    m = periods > 1
    print(len(periods), "periods")

    teff, teff_errp, teff_errm, logg, logg_errp, logg_errm, feh, feh_errp, \
        feh_errm = teff[m], teff_errp[m], teff_errm[m], logg[m], \
        logg_errp[m], logg_errm[m], feh[m], feh_errp[m], feh_errm[m]
    kois, periods = np.array(kois)[m], periods[m]
    errp, errm = errp[m], errm[m]

    make_data_file(kois, periods, errp, errm, teff, teff_errp, teff_errm, logg,
                   logg_errp, logg_errm, feh, feh_errp, feh_errm)
    kois, periods, errp, errm, teff, teff_errp, teff_err, logg, logg_errp, \
        logg_errm, feh, feh_errp, feh_errm = read_data_file()
    make_tex_table(kois, periods, errp, errm, teff, teff_errp, teff_err, logg,
                   logg_errp, logg_errm, feh, feh_errp, feh_errm)

    plt.clf()
    plt.errorbar(tbv.teff2bv(teff, logg, feh),
                 periods,
                 yerr=[errp, errm],
                 fmt="k.",
                 alpha=.5)
    plt.savefig("p_vs_bv")
Ejemplo n.º 6
0
# matched, tgas_inds, rot_inds = match(tgas["kepid"], rot["KID"])
matched, tgas_inds, rot_inds = match(tgas["kepid"], kid)

# Create data arrays.
periods = np.array(rot["Prot"])[rot_inds]
teff = np.array(tgas["teff"])[tgas_inds]
logg = np.array(tgas["logg"])[tgas_inds]
feh = np.array(tgas["feh"])[tgas_inds]
pmra = np.array(tgas["pmra"])[tgas_inds]
ra = np.array(tgas["ra"])[tgas_inds]
pmdec = np.array(tgas["pmdec"])[tgas_inds]
dec = np.array(tgas["dec"])[tgas_inds]
parallax = np.array(tgas["parallax"])[tgas_inds]

# calculate B-V color and rotation-age
bv = teff2bv(teff, logg, feh)
age = bn.age(periods, bv)

# calculate the z position in Kpc
c = SkyCoord(ra=ra * u.degree,
             dec=dec * u.degree,
             distance=1. / parallax * u.kpc)
z = c.cartesian.z
y = c.cartesian.y
x = c.cartesian.x

# calculate velocities
mas2deg = lambda x: x / 60 / 60 / 1e3
w = gd.CartesianPhaseSpacePosition(
    pos=[ra * u.deg, dec * u.deg, 1. / parallax * u.kpc],
    vel=[