Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
    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()
Exemple #9
0
    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()
Exemple #10
0
    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()
Exemple #11
0
def _getAV(k):
    return get_AV_infinity(*ku.radec(k))