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
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)
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]
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,
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")
# 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=[