def fpp_config(koi, **kwargs): """returns config object for given KOI """ folder = os.path.join(KOI_FPPDIR, ku.koiname(koi)) if not os.path.exists(folder): os.makedirs(folder) config = ConfigObj(os.path.join(folder,'fpp.ini')) koi = ku.koiname(koi) rowefit = jrowe_fit(koi) config['name'] = koi ra,dec = ku.radec(koi) config['ra'] = ra config['dec'] = dec config['rprs'] = rowefit.ix['RD1','val'] config['period'] = rowefit.ix['PE1', 'val'] config['starfield'] = kepler_starfield_file(koi) for kw,val in kwargs.items(): config[kw] = val config['constraints'] = {} config['constraints']['maxrad'] = default_r_exclusion(koi) try: config['constraints']['secthresh'] = pipeline_weaksec(koi) except NoWeakSecondaryError: pass return config
def koi_maxAV(koi): try: maxAV = MAXAV.ix[ku.koiname(koi),'maxAV'] except KeyError: ra,dec = ku.radec(koi) maxAV = get_AV_infinity(ra,dec) return maxAV
def fpp_config(koi, **kwargs): """returns config object for given KOI """ folder = os.path.join(KOI_FPPDIR, ku.koiname(koi)) if not os.path.exists(folder): os.makedirs(folder) config = ConfigObj(os.path.join(folder, 'fpp.ini')) koi = ku.koiname(koi) rowefit = jrowe_fit(koi) config['name'] = koi ra, dec = ku.radec(koi) config['ra'] = ra config['dec'] = dec config['rprs'] = rowefit.ix['RD1', 'val'] config['period'] = rowefit.ix['PE1', 'val'] config['starfield'] = kepler_starfield_file(koi) for kw, val in kwargs.items(): config[kw] = val config['constraints'] = {} config['constraints']['maxrad'] = default_r_exclusion(koi) try: config['constraints']['secthresh'] = pipeline_weaksec(koi) except NoWeakSecondaryError: pass return config
def koi_maxAV(koi): try: maxAV = MAXAV.ix[ku.koiname(koi), 'maxAV'] except KeyError: ra, dec = ku.radec(koi) maxAV = get_AV_infinity(ra, dec) return maxAV
def fpp_config(koi, **kwargs): """returns config object for given KOI """ folder = os.path.join(KOI_FPPDIR, ku.koiname(koi)) if not os.path.exists(folder): os.makedirs(folder) config = ConfigObj(os.path.join(folder, "fpp.ini")) koi = ku.koiname(koi) rowefit = jrowe_fit(koi) config["name"] = koi ra, dec = ku.radec(koi) config["ra"] = ra config["dec"] = dec config["rprs"] = rowefit.ix["RD1", "val"] config["period"] = rowefit.ix["PE1", "val"] config["starfield"] = kepler_starfield_file(koi) for kw, val in kwargs.items(): config[kw] = val config["constraints"] = {} config["constraints"]["maxrad"] = default_r_exclusion(koi) try: config["constraints"]["secthresh"] = pipeline_weaksec(koi) except NoWeakSecondaryError: pass return config
def kepler_starfield_file(koi): """ """ ra,dec = ku.radec(koi) c = SkyCoord(ra,dec, unit='deg') chips,ras,decs = np.loadtxt(CHIPLOC_FILE,unpack=True) ds = ((c.ra.deg-ras)**2 + (c.dec.deg-decs)**2) chip = chips[np.argmin(ds)] return '{}/kepler_starfield_{}.h5'.format(STARFIELD_DIR,chip)
def kepler_starfield_file(koi): """ """ ra, dec = ku.radec(koi) c = SkyCoord(ra, dec, unit='deg') chips, ras, decs = np.loadtxt(CHIPLOC_FILE, unpack=True) ds = ((c.ra.deg - ras)**2 + (c.dec.deg - decs)**2) chip = chips[np.argmin(ds)] return '{}/kepler_starfield_{}'.format(STARFIELD_DIR, chip)
def __init__(self, koi, recalc=False, use_JRowe=True, trsig_kws=None, tag=None, starmodel_mcmc_kws=None, **kwargs): koi = koiname(koi) #if saved popset exists, load folder = os.path.join(KOI_FPPDIR,koi) if tag is not None: folder += '_{}'.format(tag) if not os.path.exists(folder): os.makedirs(folder) if trsig_kws is None: trsig_kws = {} #first check if pickled signal is there to be loaded trsigfile = os.path.join(folder,'trsig.pkl') if os.path.exists(trsigfile): trsig = pickle.load(open(trsigfile,'rb')) else: if use_JRowe: trsig = JRowe_KeplerTransitSignal(koi, **trsig_kws) else: trsig = KeplerTransitSignal(koi, **trsig_kws) popsetfile = os.path.join(folder,'popset.h5') if os.path.exists(popsetfile) and not recalc: popset = PopulationSet(popsetfile, **kwargs) else: koinum = koiname(koi, koinum=True) kepid = ku.DATA.ix[koi,'kepid'] if 'mass' not in kwargs: kwargs['mass'] = koi_propdist(koi, 'mass') if 'radius' not in kwargs: kwargs['radius'] = koi_propdist(koi, 'radius') if 'feh' not in kwargs: kwargs['feh'] = koi_propdist(koi, 'feh') if 'age' not in kwargs: try: kwargs['age'] = koi_propdist(koi, 'age') except: kwargs['age'] = (9.7,0.1) #default age if 'Teff' not in kwargs: kwargs['Teff'] = kicu.DATA.ix[kepid,'teff'] if 'logg' not in kwargs: kwargs['logg'] = kicu.DATA.ix[kepid,'logg'] if 'rprs' not in kwargs: if use_JRowe: kwargs['rprs'] = trsig.rowefit.ix['RD1','val'] else: kwargs['rprs'] = ku.DATA.ix[koi,'koi_ror'] #if stellar properties are determined spectroscopically, # fit stellar model if 'starmodel' not in kwargs: if re.match('SPE', kicu.DATA.ix[kepid, 'teff_prov']): logging.info('Spectroscopically determined stellar properties.') #first, see if there already is a starmodel to load #fit star model Teff = kicu.DATA.ix[kepid, 'teff'] e_Teff = kicu.DATA.ix[kepid, 'teff_err1'] logg = kicu.DATA.ix[kepid, 'logg'] e_logg = kicu.DATA.ix[kepid, 'logg_err1'] feh = kicu.DATA.ix[kepid, 'feh'] e_feh = kicu.DATA.ix[kepid, 'feh_err1'] logging.info('fitting StarModel (Teff=({},{}), logg=({},{}), feh=({},{}))...'.format(Teff, e_Teff, logg, e_logg, feh, e_feh)) dar = Dartmouth_Isochrone() starmodel = StarModel(dar, Teff=(Teff, e_Teff), logg=(logg, e_logg), feh=(feh, e_feh)) if starmodel_mcmc_kws is None: starmodel_mcmc_kws = {} starmodel.fit(**starmodel_mcmc_kws) logging.info('Done.') kwargs['starmodel'] = starmodel if 'mags' not in kwargs: kwargs['mags'] = ku.KICmags(koi) if 'ra' not in kwargs: kwargs['ra'], kwargs['dec'] = ku.radec(koi) if 'period' not in kwargs: kwargs['period'] = ku.DATA.ix[koi,'koi_period'] if 'pl_kws' not in kwargs: kwargs['pl_kws'] = {} if 'fp_specific' not in kwargs['pl_kws']: rp = kwargs['radius'].mu * kwargs['rprs'] * RSUN/REARTH kwargs['pl_kws']['fp_specific'] = fp_fressin(rp) #trilegal_filename = os.path.join(folder,'starfield.h5') trilegal_filename = kepler_starfield_file(koi) popset = PopulationSet(trilegal_filename=trilegal_filename, **kwargs) #popset.save_hdf('{}/popset.h5'.format(folder), overwrite=True) lhoodcachefile = os.path.join(folder,'lhoodcache.dat') self.koi = koi FPPCalculation.__init__(self, trsig, popset, folder=folder) self.save() self.apply_default_constraints()
def __init__(self, koi, recalc=False, use_JRowe=True, trsig_kws=None, tag=None, starmodel_mcmc_kws=None, **kwargs): koi = koiname(koi) #if saved popset exists, load folder = os.path.join(KOI_FPPDIR, koi) if tag is not None: folder += '_{}'.format(tag) if not os.path.exists(folder): os.makedirs(folder) if trsig_kws is None: trsig_kws = {} #first check if pickled signal is there to be loaded trsigfile = os.path.join(folder, 'trsig.pkl') if os.path.exists(trsigfile): trsig = pickle.load(open(trsigfile, 'rb')) else: if use_JRowe: trsig = JRowe_KeplerTransitSignal(koi, **trsig_kws) else: trsig = KeplerTransitSignal(koi, **trsig_kws) popsetfile = os.path.join(folder, 'popset.h5') if os.path.exists(popsetfile) and not recalc: popset = PopulationSet(popsetfile, **kwargs) else: koinum = koiname(koi, koinum=True) kepid = ku.DATA.ix[koi, 'kepid'] if 'mass' not in kwargs: kwargs['mass'] = koi_propdist(koi, 'mass') if 'radius' not in kwargs: kwargs['radius'] = koi_propdist(koi, 'radius') if 'feh' not in kwargs: kwargs['feh'] = koi_propdist(koi, 'feh') if 'age' not in kwargs: try: kwargs['age'] = koi_propdist(koi, 'age') except: kwargs['age'] = (9.7, 0.1) #default age if 'Teff' not in kwargs: kwargs['Teff'] = kicu.DATA.ix[kepid, 'teff'] if 'logg' not in kwargs: kwargs['logg'] = kicu.DATA.ix[kepid, 'logg'] if 'rprs' not in kwargs: if use_JRowe: kwargs['rprs'] = trsig.rowefit.ix['RD1', 'val'] else: kwargs['rprs'] = ku.DATA.ix[koi, 'koi_ror'] #if stellar properties are determined spectroscopically, # fit stellar model if 'starmodel' not in kwargs: if re.match('SPE', kicu.DATA.ix[kepid, 'teff_prov']): logging.info( 'Spectroscopically determined stellar properties.') #first, see if there already is a starmodel to load #fit star model Teff = kicu.DATA.ix[kepid, 'teff'] e_Teff = kicu.DATA.ix[kepid, 'teff_err1'] logg = kicu.DATA.ix[kepid, 'logg'] e_logg = kicu.DATA.ix[kepid, 'logg_err1'] feh = kicu.DATA.ix[kepid, 'feh'] e_feh = kicu.DATA.ix[kepid, 'feh_err1'] logging.info( 'fitting StarModel (Teff=({},{}), logg=({},{}), feh=({},{}))...' .format(Teff, e_Teff, logg, e_logg, feh, e_feh)) dar = Dartmouth_Isochrone() starmodel = StarModel(dar, Teff=(Teff, e_Teff), logg=(logg, e_logg), feh=(feh, e_feh)) if starmodel_mcmc_kws is None: starmodel_mcmc_kws = {} starmodel.fit_mcmc(**starmodel_mcmc_kws) logging.info('Done.') kwargs['starmodel'] = starmodel if 'mags' not in kwargs: kwargs['mags'] = ku.KICmags(koi) if 'ra' not in kwargs: kwargs['ra'], kwargs['dec'] = ku.radec(koi) if 'period' not in kwargs: kwargs['period'] = ku.DATA.ix[koi, 'koi_period'] if 'pl_kws' not in kwargs: kwargs['pl_kws'] = {} if 'fp_specific' not in kwargs['pl_kws']: rp = kwargs['radius'].mu * kwargs['rprs'] * RSUN / REARTH kwargs['pl_kws']['fp_specific'] = fp_fressin(rp) #trilegal_filename = os.path.join(folder,'starfield.h5') trilegal_filename = kepler_starfield_file(koi) popset = PopulationSet(trilegal_filename=trilegal_filename, **kwargs) #popset.save_hdf('{}/popset.h5'.format(folder), overwrite=True) lhoodcachefile = os.path.join(folder, 'lhoodcache.dat') self.koi = koi FPPCalculation.__init__(self, trsig, popset, folder=folder) self.save() self.apply_default_constraints()
def __init__(self, koi, recalc=False, use_JRowe=True, trsig_kws=None, tag=None, starmodel_mcmc_kws=None, **kwargs): koi = koiname(koi) # if saved popset exists, load folder = os.path.join(KOI_FPPDIR, koi) if tag is not None: folder += "_{}".format(tag) if not os.path.exists(folder): os.makedirs(folder) if trsig_kws is None: trsig_kws = {} # first check if pickled signal is there to be loaded trsigfile = os.path.join(folder, "trsig.pkl") if os.path.exists(trsigfile): trsig = pickle.load(open(trsigfile, "rb")) else: if use_JRowe: trsig = JRowe_KeplerTransitSignal(koi, **trsig_kws) else: trsig = KeplerTransitSignal(koi, **trsig_kws) popsetfile = os.path.join(folder, "popset.h5") if os.path.exists(popsetfile) and not recalc: popset = PopulationSet(popsetfile, **kwargs) else: koinum = koiname(koi, koinum=True) kepid = KOIDATA.ix[koi, "kepid"] if "mass" not in kwargs: kwargs["mass"] = koi_propdist(koi, "mass") if "radius" not in kwargs: kwargs["radius"] = koi_propdist(koi, "radius") if "feh" not in kwargs: kwargs["feh"] = koi_propdist(koi, "feh") if "age" not in kwargs: try: kwargs["age"] = koi_propdist(koi, "age") except: kwargs["age"] = (9.7, 0.1) # default age if "Teff" not in kwargs: kwargs["Teff"] = kicu.DATA.ix[kepid, "teff"] if "logg" not in kwargs: kwargs["logg"] = kicu.DATA.ix[kepid, "logg"] if "rprs" not in kwargs: if use_JRowe: kwargs["rprs"] = trsig.rowefit.ix["RD1", "val"] else: kwargs["rprs"] = KOIDATA.ix[koi, "koi_ror"] # if stellar properties are determined spectroscopically, # fit stellar model if "starmodel" not in kwargs: if re.match("SPE", kicu.DATA.ix[kepid, "teff_prov"]): logging.info("Spectroscopically determined stellar properties.") # first, see if there already is a starmodel to load # fit star model Teff = kicu.DATA.ix[kepid, "teff"] e_Teff = kicu.DATA.ix[kepid, "teff_err1"] logg = kicu.DATA.ix[kepid, "logg"] e_logg = kicu.DATA.ix[kepid, "logg_err1"] feh = kicu.DATA.ix[kepid, "feh"] e_feh = kicu.DATA.ix[kepid, "feh_err1"] logging.info( "fitting StarModel (Teff=({},{}), logg=({},{}), feh=({},{}))...".format( Teff, e_Teff, logg, e_logg, feh, e_feh ) ) dar = Dartmouth_Isochrone() starmodel = StarModel(dar, Teff=(Teff, e_Teff), logg=(logg, e_logg), feh=(feh, e_feh)) if starmodel_mcmc_kws is None: starmodel_mcmc_kws = {} starmodel.fit(**starmodel_mcmc_kws) logging.info("Done.") kwargs["starmodel"] = starmodel if "mags" not in kwargs: kwargs["mags"] = ku.KICmags(koi) if "ra" not in kwargs: kwargs["ra"], kwargs["dec"] = ku.radec(koi) if "period" not in kwargs: kwargs["period"] = KOIDATA.ix[koi, "koi_period"] if "pl_kws" not in kwargs: kwargs["pl_kws"] = {} if "fp_specific" not in kwargs["pl_kws"]: rp = kwargs["radius"].mu * kwargs["rprs"] * RSUN / REARTH kwargs["pl_kws"]["fp_specific"] = fp_fressin(rp) # trilegal_filename = os.path.join(folder,'starfield.h5') trilegal_filename = kepler_starfield_file(koi) popset = PopulationSet(trilegal_filename=trilegal_filename, **kwargs) # popset.save_hdf('{}/popset.h5'.format(folder), overwrite=True) lhoodcachefile = os.path.join(folder, "lhoodcache.dat") self.koi = koi FPPCalculation.__init__(self, trsig, popset, folder=folder) self.save() self.apply_default_constraints()
def _getAV(k): return get_AV_infinity(*ku.radec(k))