from barry.config import setup
from barry.models import PowerSpectrumFit, PowerSeo2016, PowerBeutler2017, PowerDing2018, PowerNoda2019
from barry.samplers import DynestySampler
from barry.fitter import Fitter

if __name__ == "__main__":
    pfn, dir_name, file = setup(__file__)

    sampler = DynestySampler(temp_dir=dir_name, nlive=1000)
    fitter = Fitter(dir_name)

    cs = ["#262232", "#116A71", "#48AB75", "#D1E05B"]

    d = PowerSpectrum_DESIMockChallenge_Handshake(min_k=0.005, max_k=0.3, isotropic=False, realisation="data", fit_poles=[0, 2])

    fitter.add_model_and_dataset(PowerBeutler2017(isotropic=False), d, name=f"Beutler 2017 Prerecon", color=cs[0])
    fitter.add_model_and_dataset(PowerSeo2016(isotropic=False), d, name=f"Seo 2016 Prerecon", color=cs[1])
    fitter.add_model_and_dataset(PowerDing2018(isotropic=False), d, name=f"Ding 2018 Prerecon", color=cs[2])
    fitter.add_model_and_dataset(PowerNoda2019(isotropic=False), d, name=f"Noda 2019 Prerecon", color=cs[3])

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    if fitter.should_plot():
        import logging

        logging.info("Creating plots")
        res = fitter.load()

        from chainconsumer import ChainConsumer
Esempio n. 2
0
from barry.fitter import Fitter
from barry.models.test import TestModel
from barry.datasets.test import TestDataset
from barry.samplers import DynestySampler

if __name__ == "__main__":

    pfn, dir_name, file = setup(__file__)

    model = TestModel()
    data = TestDataset()

    sampler = DynestySampler(temp_dir=dir_name, max_iter=None)

    fitter = Fitter(dir_name)
    fitter.add_model_and_dataset(model, data)
    fitter.set_sampler(sampler)
    fitter.set_num_walkers(1)
    fitter.fit(file)

    if fitter.should_plot():

        res, = fitter.load()

        posterior, weight, chain, evidence, model, data, extra = res
        import matplotlib.pyplot as plt

        fig, ax = plt.subplots(nrows=2)
        ax[0].plot(weight)
        ax[1].plot(evidence)
        plt.show()
Esempio n. 3
0
            fix_params=[
                "om", "b", f"a{{0}}_1", f"a{{0}}_2", f"a{{0}}_3", f"a{{0}}_4",
                f"a{{0}}_5"
            ],
            correction=Correction.HARTLAP,
        )
        model_fixed.set_default("b", 1.591)
        model_fixed.set_default(f"a{{0}}_1", 4651.0)
        model_fixed.set_default(f"a{{0}}_2", -4882.0)
        model_fixed.set_default(f"a{{0}}_3", 2137.0)
        model_fixed.set_default(f"a{{0}}_4", -25.43)
        model_fixed.set_default(f"a{{0}}_5", 0.01628)

        fitter.add_model_and_dataset(model,
                                     d,
                                     name=f"Full Fit",
                                     linestyle=ls,
                                     color=cs[0])
        fitter.add_model_and_dataset(model_marg_full,
                                     d,
                                     name=f"Full Analytic",
                                     linestyle=ls,
                                     color=cs[1])
        fitter.add_model_and_dataset(model_marg_partial,
                                     d,
                                     name=f"Partial Analytic",
                                     linestyle=ls,
                                     color=cs[2])
        fitter.add_model_and_dataset(model_fixed,
                                     d,
                                     name=f"Fixed Bias+Poly",
Esempio n. 4
0
            # Set up the model we'll use. Fix Omega_m and beta. 5 polynomials (default)
            # for each of the fitted multipoles. Use full analytic marginalisation for speed
            # Apply the Hartlap correction to the covariance matrix.
            model = PowerBeutler2017(
                recon=dataset.recon,
                isotropic=dataset.isotropic,
                marg="full",
                fix_params=["om", "beta"],
                poly_poles=dataset.fit_poles,
                correction=Correction.HARTLAP,
                n_poly=5,
            )

            # Create a unique name for the fit and add it to the list
            name = dataset.name + " mock mean"
            fitter.add_model_and_dataset(model, dataset, name=name)
            allnames.append(name)

            # Now add the individual realisations to the list
            for i in range(len(dataset.mock_data)):
                dataset.set_realisation(i)
                name = dataset.name + f" realisation {i}"
                fitter.add_model_and_dataset(model, dataset, name=name)
                allnames.append(name)

    # Submit all the jobs to NERSC. We have quite a few (78), so we'll
    # only assign 1 walker (processor) to each. Note that this will only run if the
    # directory is empty (i.e., it won't overwrite existing chains)
    fitter.set_sampler(sampler)
    fitter.set_num_walkers(1)
    fitter.fit(file)
Esempio n. 5
0
    fitter = Fitter(dir_name)

    cs = ["#262232", "#116A71", "#48AB75", "#D1E05B"]

    for r in [False]:
        t = "Recon" if r else "Prerecon"

        # Fix sigma_nl for one of the Beutler models
        model = PowerBeutler2017(recon=r, isotropic=False, correction=Correction.NONE)
        model.set_default("sigma_nl_par", 10.9)
        model.set_default("sigma_nl_perp", 5.98)
        model.set_fix_params(["om", "sigma_nl_par", "sigma_nl_perp"])

        for mink, maxk in [(0.02, 0.3), (0.02, 0.4), (0.02, 0.5), (0.03, 0.3), (0.03, 0.5), (0.03, 0.4), (0.04, 0.3), (0.04, 0.4), (0.04, 0.5)]:
            d = PowerSpectrum_DESIMockChallenge0_Z01(recon=r, isotropic=False, realisation="data", min_k=mink, max_k=maxk)
            fitter.add_model_and_dataset(model, d, name=f"B17 Fixed {t}, k = ({mink:0.2f}, {maxk:0.2f})")

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    if fitter.should_plot():
        import logging

        logging.info("Creating plots")

        from chainconsumer import ChainConsumer

        output = []
        bestfit_model = []
        pks = []
Esempio n. 6
0
    c = getCambGenerator()
    r_s = c.get_data()["r_s"]

    fitter = Fitter(dir_name)
    p = BAOExtractor(r_s)
    cs = ["#262232", "#116A71", "#48AB75", "#b7c742"]

    for r in [True]:
        t = "Recon" if r else "Prerecon"
        datae = PowerSpectrum_SDSS_DR12_Z061_NGC(recon=r, min_k=0.03, max_k=0.30, postprocess=p)
        for ls, n in zip(["-", ":"], ["", " (No Poly)"]):
            if n:
                fix = ["om", "f", "a1", "a2", "a3", "a4", "a5"]
            else:
                fix = ["om", "f"]
            fitter.add_model_and_dataset(PowerBeutler2017(postprocess=p, recon=r, fix_params=fix), datae, name=f"Beutler 2017{n}", linestyle=ls, color=cs[0])
            fitter.add_model_and_dataset(PowerSeo2016(postprocess=p, recon=r, fix_params=fix), datae, name=f"Seo 2016{n}", linestyle=ls, color=cs[1])
            fitter.add_model_and_dataset(PowerDing2018(postprocess=p, recon=r, fix_params=fix), datae, name=f"Ding 2018{n}", linestyle=ls, color=cs[2])
        fitter.add_model_and_dataset(PowerNoda2019(postprocess=p, recon=r), datae, name=f"Noda 2019", color=cs[3])

    sampler = DynestySampler(temp_dir=dir_name, nlive=300)
    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    if fitter.should_plot():
        from chainconsumer import ChainConsumer

        c = ChainConsumer()
        for posterior, weight, chain, evidence, model, data, extra in fitter.load():
            c.add_chain(chain, weights=weight, parameters=model.get_labels(), **extra)
        sigma_nl = 6.0 if r else 9.3
        beutler.set_default("sigma_nl", sigma_nl)
        beutler.set_fix_params(["om", "sigma_nl"])

        seo = PowerSeo2016(recon=r)
        ding = PowerDing2018(recon=r)
        noda = PowerNoda2019(recon=r, postprocess=p)

        for i in range(999):
            d.set_realisation(i)
            de.set_realisation(i)

            fitter.add_model_and_dataset(
                beutler_not_fixed,
                d,
                name=f"Beutler 2017 {t}, mock number {i}",
                linestyle=ls,
                color="p",
                realisation=i)
            fitter.add_model_and_dataset(
                beutler,
                d,
                name=
                f"Beutler 2017 Fixed $\\Sigma_{{nl}}$ {t}, mock number {i}",
                linestyle=ls,
                color="p",
                realisation=i)
            fitter.add_model_and_dataset(seo,
                                         d,
                                         name=f"Seo 2016 {t}, mock number {i}",
                                         linestyle=ls,
Esempio n. 8
0
    sampler = DynestySampler(temp_dir=dir_name, nlive=1000)
    fitter = Fitter(dir_name)

    cs = ["#262232", "#116A71", "#48AB75", "#D1E05B"]

    for r in [False]:
        t = "Recon" if r else "Prerecon"
        d = PowerSpectrum_DESIMockChallenge0_Z01(recon=r, isotropic=False, realisation="data")

        # Fix sigma_nl for one of the Beutler models
        model = PowerBeutler2017(recon=r, isotropic=False, correction=Correction.NONE)
        model.set_default("sigma_nl_par", 10.9)
        model.set_default("sigma_nl_perp", 5.98)
        model.set_fix_params(["om", "sigma_nl_par", "sigma_nl_perp"])

        fitter.add_model_and_dataset(PowerBeutler2017(recon=r, isotropic=False, correction=Correction.NONE, fix_params=["om"]), d, name=f"Beutler 2017 {t}")
        fitter.add_model_and_dataset(model, d, name=f"Beutler 2017 Fixed $\\Sigma_{{nl}}$ {t}")
        # fitter.add_model_and_dataset(PowerSeo2016(recon=r, isotropic=False), d, name=f"Seo 2016 {t}", linestyle=ls, color=cs[1])
        # fitter.add_model_and_dataset(PowerDing2018(recon=r, isotropic=False), d, name=f"Ding 2018 {t}", linestyle=ls, color=cs[2])

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    if fitter.should_plot():
        import logging

        logging.info("Creating plots")

        from chainconsumer import ChainConsumer
    model = PowerBeutler2017(recon=True, isotropic=False, fix_params=["om"], poly_poles=[0, 2], correction=Correction.NONE, marg="full")

    pklin = np.array(pd.read_csv("../barry/data/desi_mock_challenge_post_recon/Pk_Planck15_Table4.txt", delim_whitespace=True, header=None))
    model.set_fix_params(["om"])
    model.set_data(data.get_data())
    model.kvals = pklin[:, 0]
    model.pksmooth = smooth(model.kvals, pklin[:, 1])
    model.pkratio = pklin[:, 1] / model.pksmooth - 1.0

    # Power spectrum

    ls = "-"
    names = [f"Xinyi-std Pk", f"Pedro-std Pk", f"Baojiu-std Pk", f"Xinyi-Hada Pk", f"Hee-Jong-std Pk", f"Yu-Yu-std Pk", f"Javier-std Pk"]
    for i in range(7):
        data.set_realisation(i)
        fitter.add_model_and_dataset(model, data, name=names[i], color=cs[i], realisation=i, ls=ls)

    # Correlation Function
    data = CorrelationFunction_DESIMockChallenge(recon=True, isotropic=False, fit_poles=[0, 2])
    model = CorrBeutler2017(recon=True, isotropic=False, fix_params=["om"], poly_poles=[0, 2], correction=Correction.NONE, marg="full")

    ls = "--"
    names = [f"Xinyi-std Xi", f"Pedro-std Xi", f"Baojiu-std Xi", f"Xinyi-Hada Xi", f"Hee-Jong-std Xi", f"Yu-Yu-std Xi", f"Javier-std Xi"]
    for i in range(7):
        data.set_realisation(i)
        fitter.add_model_and_dataset(model, data, name=names[i], color=cs[i], realisation=i, ls=ls)

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)
Esempio n. 10
0
    sampler = DynestySampler(temp_dir=dir_name)
    fitter = Fitter(dir_name)

    for r in [True, False]:
        rt = "Recon" if r else "Prerecon"
        data = PowerSpectrum_SDSS_DR12_Z061_NGC(recon=r,
                                                postprocess=postprocess)
        n = PowerNoda2019(postprocess=postprocess,
                          recon=r,
                          fix_params=["om", "f", "gamma", "b"])
        n.param_dict["b"].default = 1.992 if r else 1.996
        fitter.add_model_and_dataset(
            n,
            data,
            name=f"N19 {rt} fixed $f$, $\\gamma_{{rec}}$, $b$",
            linestyle="-" if r else "--",
            color="o",
            shade_alpha=0.7,
            zorder=10)
        fitter.add_model_and_dataset(
            PowerNoda2019(postprocess=postprocess,
                          recon=r,
                          fix_params=["om", "f", "gamma"]),
            data,
            name=f"N19 {rt} fixed $f$, $\\gamma_{{rec}}$",
            linestyle="-" if r else "--",
            color="r",
            shade_alpha=0.2,
        )
        fitter.add_model_and_dataset(
            PowerNoda2019(postprocess=postprocess,
Esempio n. 11
0
        model_hexa = PowerBeutler2017(recon=r,
                                      isotropic=False,
                                      fix_params=["om"],
                                      poly_poles=[0, 2, 4],
                                      correction=Correction.HARTLAP,
                                      marg="full")
        model_all = PowerBeutler2017(recon=r,
                                     isotropic=False,
                                     fix_params=["om"],
                                     poly_poles=[0, 1, 2, 3, 4],
                                     correction=Correction.HARTLAP,
                                     marg="full")

        fitter.add_model_and_dataset(model_quad,
                                     d_quad,
                                     name=r"$P_{0}+P_{2}$",
                                     linestyle=ls,
                                     color=cs[0])
        fitter.add_model_and_dataset(model_odd,
                                     d_odd,
                                     name=r"$P_{0}+P_{1}+P_{2}$",
                                     linestyle=ls,
                                     color=cs[1])
        fitter.add_model_and_dataset(model_hexa,
                                     d_hexa,
                                     name=r"$P_{0}+P_{2}+P_{4}$",
                                     linestyle=ls,
                                     color=cs[2])
        fitter.add_model_and_dataset(model_all,
                                     d_all,
                                     name=r"$P_{0}+P_{1}+P_{2}+P_{3}+P_{4}$",
Esempio n. 12
0
        ls = "-" if r else "--"

        d = CorrelationFunction_SDSS_DR12_Z061_NGC(recon=r, realisation=0)

        beutler_not_fixed = CorrBeutler2017()
        beutler = CorrBeutler2017()
        sigma_nl = 5.0 if r else 8.0
        beutler.set_default("sigma_nl", sigma_nl)
        beutler.set_fix_params(["om", "sigma_nl"])

        seo = CorrSeo2016(recon=r)
        ding = CorrDing2018(recon=r)

        for i in range(999):
            d.set_realisation(i)
            fitter.add_model_and_dataset(beutler_not_fixed, d, name=f"Beutler 2017 {t}, mock number {i}", linestyle=ls, color=c4[0], realisation=i)
            fitter.add_model_and_dataset(beutler, d, name=f"Beutler 2017 Fixed $\\Sigma_{{nl}}$ {t}, mock number {i}", linestyle=ls, color=c4[0], realisation=i)
            fitter.add_model_and_dataset(seo, d, name=f"Seo 2016 {t}, mock number {i}", linestyle=ls, color=c4[1], realisation=i)
            fitter.add_model_and_dataset(ding, d, name=f"Ding 2018 {t}, mock number {i}", linestyle=ls, color=c4[2], realisation=i)

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(1)
    fitter.set_num_concurrent(400)

    if not fitter.should_plot():
        fitter.fit(file)

    # Everything below is nasty plotting code ###########################################################
    if fitter.should_plot():
        from os import path
        import matplotlib.pyplot as plt
Esempio n. 13
0
        d_xi = CorrelationFunction_SDSS_DR12_Z061_NGC(recon=r, realisation=0)

        ding_pk = PowerDing2018(recon=r)
        ding_pk_smooth = PowerDing2018(recon=r, smooth=True)

        ding_xi = CorrDing2018(recon=r)
        ding_xi_smooth = CorrDing2018(recon=r, smooth=True)

        for i in range(999):
            d_pk.set_realisation(i)
            d_xi.set_realisation(i)

            fitter.add_model_and_dataset(
                ding_pk,
                d_pk,
                name=f"Ding 2018 $P(k)$, mock number {i}",
                linestyle="-",
                color="p",
                realisation=i)
            fitter.add_model_and_dataset(
                ding_pk_smooth,
                d_pk,
                name=f"Ding 2018 $P(k)$ Smooth, mock number {i}",
                linestyle="-",
                color="p",
                realisation=i)

            fitter.add_model_and_dataset(
                ding_xi,
                d_xi,
                name=f"Ding 2018 $\\xi(s)$, mock number {i}",
Esempio n. 14
0
if __name__ == "__main__":
    pfn, dir_name, file = setup(__file__)

    sampler = DynestySampler(temp_dir=dir_name, nlive=1000)
    fitter = Fitter(dir_name)

    cs = ["#262232", "#116A71", "#48AB75", "#D1E05B"]

    d = PowerSpectrum_DESIMockChallenge_Handshake(min_k=0.005,
                                                  max_k=0.3,
                                                  isotropic=False,
                                                  realisation="data",
                                                  fit_poles=[0, 2])

    fitter.add_model_and_dataset(PowerBeutler2017(isotropic=False),
                                 d,
                                 name=f"Cullan's Pk",
                                 color=cs[0])

    # Re-do the desi fits, but now using the linear pk provided for the UNIT sim
    pklin = np.array(
        pd.read_csv(
            "../barry/data/desi_mock_challenge_post_recon/Pk_Planck15_Table4.txt",
            delim_whitespace=True,
            header=None))
    model = PowerBeutler2017(isotropic=False)
    model.set_fix_params(["om"])
    model.set_data(d.get_data())
    model.kvals = pklin[:, 0]
    model.pksmooth = smooth(model.kvals, pklin[:, 1])
    model.pkratio = pklin[:, 1] / model.pksmooth - 1.0
            print(i, type, j, realisations[i])
            data = PowerSpectrum_DESIMockChallenge_Post(isotropic=False,
                                                        recon=recons[i],
                                                        realisation=j,
                                                        fit_poles=[0, 2, 4],
                                                        min_k=0.02,
                                                        max_k=0.30,
                                                        num_mocks=1000,
                                                        type=type)
            model = PowerBeutler2017(recon=recon_types[i],
                                     isotropic=False,
                                     fix_params=["om"],
                                     poly_poles=[0, 2, 4],
                                     correction=Correction.HARTLAP,
                                     marg="full")
            fitter.add_model_and_dataset(model, data, name=names[counter])
            counter += 1

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    # Everything below is nasty plotting code ###########################################################
    if fitter.should_plot():
        import logging

        logging.info("Creating plots")

        from chainconsumer import ChainConsumer

        splits = ["PreRecon"]
Esempio n. 16
0
    colors = ["#CAF270", "#66C57F", "#219180", "#205C68", "#232C3B"]

    types = ["julian_reciso", "julian_reciso", "julian_recsym", "martin_reciso", "martin_recsym"]
    recons = [False, True, True, True, True]
    recon_types = ["None", "iso", "ani", "iso", "ani"]
    realisations = ["data", "data", "data", "data", "data"]

    for i, (name, type, recon, recon_type, realisation, color) in enumerate(zip(names, types, recons, recon_types, realisations, colors)):
        print(i, name, type, recon, recon_type, realisation)
        data = PowerSpectrum_DESILightcone_Mocks_Recon(
            isotropic=False, recon=recon, realisation=realisation, fit_poles=[0, 2], min_k=0.02, max_k=0.30, type=type
        )
        model = PowerBeutler2017(
            recon=recon_type, isotropic=False, fix_params=["om"], poly_poles=[0, 2], correction=Correction.NONE, marg="full"
        )
        fitter.add_model_and_dataset(model, data, name=name, color=color)

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(5)
    fitter.fit(file)

    # Everything below is nasty plotting code ###########################################################
    if fitter.should_plot():
        import logging

        logging.info("Creating plots")

        from chainconsumer import ChainConsumer

        import matplotlib.pyplot as plt
        import matplotlib.gridspec as gridspec
Esempio n. 17
0
                             poly_poles=[0, 2],
                             correction=Correction.HARTLAP,
                             marg="full")
    model4 = PowerBeutler2017(recon="iso",
                              isotropic=False,
                              fix_params=["om"],
                              poly_poles=[0, 2, 4],
                              correction=Correction.HARTLAP,
                              marg="full")

    for d in datasets:
        for i in range(999):
            d.set_realisation(i)
            if 4 in d.fit_poles:
                fitter.add_model_and_dataset(model4,
                                             d,
                                             name=d.name + " " + str(i),
                                             realisation=i)
            else:
                fitter.add_model_and_dataset(model,
                                             d,
                                             name=d.name + " " + str(i),
                                             realisation=i)

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(1)
    fitter.set_num_concurrent(100)
    fitter.fit(file)

    # Everything below is nasty plotting code ###########################################################
    if fitter.should_plot():
        from os import path
Esempio n. 18
0
    # redorder cov matrix, pk goes first, then the extracted part
    mask_extracted = postprocess.get_is_extracted(datas[0].ks)
    index_sort = np.arange(mask_extracted.size).astype(
        np.int) + (1000 * mask_extracted)
    a = np.argsort(index_sort)
    cov_noda = cov_noda[:, a]
    cov_noda = cov_noda[a, :]
    cov_noda_diag = cov_noda_diag[:, a]
    cov_noda_diag = cov_noda_diag[a, :]

    datas[1].set_cov(cov_noda)
    datas[2].set_cov(cov_noda_diag)

    sampler = DynestySampler(temp_dir=dir_name)
    fitter = Fitter(dir_name)
    fitter.add_model_and_dataset(model, datas[0], name="Mock-computed")
    fitter.add_model_and_dataset(model, datas[1], name="Nishimichi 2018, full")
    fitter.add_model_and_dataset(model,
                                 datas[2],
                                 name="Nishimichi 2018, diagonal")
    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    if fitter.should_plot():
        from chainconsumer import ChainConsumer

        c = ChainConsumer()
        for posterior, weight, chain, evidence, model, data, extra in fitter.load(
        ):
            c.add_chain(chain,
Esempio n. 19
0
    cs = ["#262232", "#116A71", "#48AB75", "#D1E05B"]

    d = PowerSpectrum_DESIMockChallenge_Handshake(min_k=0.005,
                                                  max_k=0.3,
                                                  isotropic=False,
                                                  realisation="data",
                                                  fit_poles=[0, 2])
    d2 = PowerSpectrum_DESIMockChallenge_Handshake(min_k=0.005,
                                                   max_k=0.3,
                                                   isotropic=False,
                                                   realisation="data",
                                                   fit_poles=[0, 2, 4])

    fitter.add_model_and_dataset(PowerBeutler2017(isotropic=False),
                                 d,
                                 name=r"$P_{0}$+P_{2}$",
                                 color=cs[0])
    fitter.add_model_and_dataset(
        PowerBeutler2017(isotropic=False),
        d2,
        name=r"$P_{0}$+P_{2}+P_{4},\,No\,a_{4}\,poly$",
        color=cs[1])
    fitter.add_model_and_dataset(PowerBeutler2017(isotropic=False,
                                                  poly_poles=[0, 2, 4]),
                                 d2,
                                 name=r"$P_{0}$+P_{2}+P_{4}$",
                                 color=cs[2])

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)
Esempio n. 20
0
    cs = ["#262232", "#116A71", "#48AB75", "#D1E05B"]

    for r in [False]:
        t = "Recon" if r else "Prerecon"
        ls = "-"  # if r else "--"
        d = PowerSpectrum_Beutler2019_Z061_SGC(recon=r, isotropic=False)

        # Fix sigma_nl for one of the Beutler models
        model = PowerBeutler2017(recon=r, isotropic=False)
        sigma_nl = 6.0 if r else 9.3
        model.set_default("sigma_nl_par", 14.1)
        model.set_default("sigma_nl_perp", 2.64)
        model.set_fix_params(["om", "f", "sigma_nl_par", "sigma_nl_perp"])

        fitter.add_model_and_dataset(PowerBeutler2017(recon=r, isotropic=False), d, name=f"Beutler 2017 {t}", linestyle=ls, color=cs[0])
        fitter.add_model_and_dataset(model, d, name=f"Beutler 2017 Fixed $\\Sigma_{{nl}}$ {t}", linestyle=ls, color=cs[0])
        fitter.add_model_and_dataset(PowerSeo2016(recon=r, isotropic=False), d, name=f"Seo 2016 {t}", linestyle=ls, color=cs[1])
        fitter.add_model_and_dataset(PowerDing2018(recon=r, isotropic=False), d, name=f"Ding 2018 {t}", linestyle=ls, color=cs[2])

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    if fitter.should_plot():
        import logging

        logging.info("Creating plots")

        from chainconsumer import ChainConsumer
Esempio n. 21
0
    for r in [True, False]:
        rt = "Recon" if r else "Prerecon"
        data = PowerSpectrum_SDSS_DR12_Z061_NGC(recon=r,
                                                postprocess=postprocess)
        n = PowerNoda2019(postprocess=postprocess,
                          recon=r,
                          nonlinear_type="spt")
        n2 = PowerNoda2019(postprocess=postprocess,
                           recon=r,
                           nonlinear_type="halofit")

        fitter.add_model_and_dataset(n,
                                     data,
                                     name=f"N19 {rt} SPT",
                                     color="r",
                                     shade_alpha=0.7,
                                     linestyle="-" if r else "--",
                                     zorder=10 if r else 2)
        fitter.add_model_and_dataset(n2,
                                     data,
                                     name=f"N19 {rt} Halofit",
                                     color="lb",
                                     shade_alpha=0.7,
                                     linestyle="-" if r else "--",
                                     zorder=10 if r else 2)

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(20)
    fitter.fit(file)
Esempio n. 22
0
        ls = "-" if r else "--"
        d = PowerSpectrum_SDSS_DR12_Z061_NGC(recon=r, min_k=0.03, max_k=0.21)
        de = PowerSpectrum_SDSS_DR12_Z061_NGC(recon=r,
                                              postprocess=p,
                                              min_k=0.03,
                                              max_k=0.21)

        # Fix sigma_nl for one of the Beutler models
        model = PowerBeutler2017(recon=r)
        sigma_nl = 6.0 if r else 9.3
        model.set_default("sigma_nl", sigma_nl)
        model.set_fix_params(["om", "sigma_nl"])

        fitter.add_model_and_dataset(PowerBeutler2017(recon=r),
                                     d,
                                     name=f"Beutler 2017 {t}",
                                     linestyle=ls,
                                     color=cs[0])
        fitter.add_model_and_dataset(
            model,
            d,
            name=f"Beutler 2017 Fixed $\\Sigma_{{nl}}$ {t}",
            linestyle=ls,
            color=cs[0])
        fitter.add_model_and_dataset(PowerSeo2016(recon=r),
                                     d,
                                     name=f"Seo 2016 {t}",
                                     linestyle=ls,
                                     color=cs[1])
        fitter.add_model_and_dataset(PowerDing2018(recon=r),
                                     d,
Esempio n. 23
0
        # Changing fitting range and sigma values to match Hee-Jong
        d = PowerSpectrum_DESIMockChallenge0_Z01(recon=r,
                                                 isotropic=False,
                                                 realisation="data",
                                                 min_k=0.001,
                                                 max_k=0.30)
        model = PowerBeutler2017(recon=r,
                                 isotropic=False,
                                 correction=Correction.NONE)
        model.set_default("sigma_nl_par", 6.2)
        model.set_default("sigma_nl_perp", 2.9)
        model.set_default("sigma_s", 0.0)
        model.set_fix_params(
            ["om", "sigma_nl_par", "sigma_nl_perp", "sigma_s"])

        fitter.add_model_and_dataset(
            model, d, name=f"Beutler 2017 New $\\Sigma_{{nl}}$ {t}")

        # Now change linear and smooth spectra to Hee-Jong's inputs
        pklin = np.array(
            pd.read_csv(
                "../barry/data/desi_mock_challenge_0/mylinearmatterpkL900.dat",
                delim_whitespace=True,
                header=None))
        pksmooth = np.array(
            pd.read_csv(
                "../barry/data/desi_mock_challenge_0/Psh_mylinearmatterpkL900.dat",
                delim_whitespace=True,
                header=None,
                skiprows=2))
        model2 = PowerBeutler2017(recon=False,
                                  isotropic=False,
Esempio n. 24
0
    model = PowerBeutler2017(recon="iso",
                             isotropic=False,
                             fix_params=["om"],
                             poly_poles=[0, 2],
                             correction=Correction.HARTLAP,
                             marg="full")
    model4 = PowerBeutler2017(recon="iso",
                              isotropic=False,
                              fix_params=["om"],
                              poly_poles=[0, 2, 4],
                              correction=Correction.HARTLAP,
                              marg="full")

    for d in datasets:
        if 4 in d.fit_poles:
            fitter.add_model_and_dataset(model4, d, name=d.name)
        else:
            fitter.add_model_and_dataset(model, d, name=d.name)

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(5)
    fitter.set_num_concurrent(100)
    fitter.fit(file)

    # Everything below is nasty plotting code ###########################################################
    if fitter.should_plot():
        import logging

        logging.info("Creating plots")

        from chainconsumer import ChainConsumer
Esempio n. 25
0
    sampler = DynestySampler(temp_dir=dir_name, nlive=1000)
    fitter = Fitter(dir_name, remove_output=False)

    cs = ["#262232", "#116A71", "#48AB75", "#D1E05B"]
    for r in [True, False]:
        t = "Recon" if r else "Prerecon"
        ls = "-" if r else "--"
        d = CorrelationFunction_SDSS_DR12_Z061_NGC(recon=r)

        # Fix sigma_nl for one of the Beutler models
        model = CorrBeutler2017()
        sigma_nl = 6.0 if r else 9.3
        model.set_default("sigma_nl", sigma_nl)
        model.set_fix_params(["om", "sigma_nl"])

        fitter.add_model_and_dataset(CorrBeutler2017(), d, name=f"Beutler 2017 {t}", linestyle=ls, color=cs[0])
        fitter.add_model_and_dataset(model, d, name=f"Beutler 2017 Fixed $\\Sigma_{{nl}}$ {t}", linestyle=ls, color=cs[0])
        fitter.add_model_and_dataset(CorrSeo2016(recon=r), d, name=f"Seo 2016 {t}", linestyle=ls, color=cs[1])
        fitter.add_model_and_dataset(CorrDing2018(recon=r), d, name=f"Ding 2018 {t}", linestyle=ls, color=cs[2])

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(30)
    fitter.fit(file)

    if fitter.should_plot():
        import logging

        logging.info("Creating plots")
        res = fitter.load()
        if True:
            from chainconsumer import ChainConsumer
Esempio n. 26
0
        beutler = PowerBeutler2017(recon=r)
        sigma_nl = 6.0
        beutler.set_default("sigma_nl", sigma_nl)
        beutler.set_fix_params(["om", "sigma_nl"])

        beutler_extracted = PowerBeutler2017(recon=r, postprocess=p)
        beutler_extracted.set_default("sigma_nl", sigma_nl)
        beutler_extracted.set_fix_params(["om", "sigma_nl"])
        ding_extracted = PowerDing2018(recon=r, postprocess=p)

        for i in range(999):
            d.set_realisation(i)
            de.set_realisation(i)
            fitter.add_model_and_dataset(ding,
                                         d,
                                         name=f"D18",
                                         linestyle=ls,
                                         color="p",
                                         realisation=i)
            fitter.add_model_and_dataset(beutler,
                                         d,
                                         name=f"B17",
                                         linestyle=ls,
                                         color="p",
                                         realisation=i)
            fitter.add_model_and_dataset(ding_extracted,
                                         de,
                                         name=f"D18 + Extractor",
                                         linestyle=ls,
                                         color="p",
                                         realisation=i)
            fitter.add_model_and_dataset(beutler_extracted,
Esempio n. 27
0
if __name__ == "__main__":
    pfn, dir_name, file = setup(__file__)

    r = True
    models = [
        PowerBeutler2017(recon=r, smooth_type="hinton2017", name="Hinton2017"),
        PowerBeutler2017(recon=r, smooth_type="eh1998", name="EH1998")
    ]
    data = PowerSpectrum_SDSS_DR12_Z061_NGC(name="Recon mean",
                                            recon=r,
                                            min_k=0.02,
                                            max_k=0.30)
    sampler = DynestySampler(temp_dir=dir_name)

    fitter = Fitter(dir_name)
    fitter.add_model_and_dataset(models[0], data, name="Hinton2017")
    fitter.add_model_and_dataset(models[1], data, name="EH1998")
    fitter.set_sampler(sampler)
    fitter.set_num_walkers(10)
    fitter.fit(file)

    if fitter.should_plot():
        from chainconsumer import ChainConsumer

        c = ChainConsumer()
        pks = {}
        for posterior, weight, chain, model, data, extra in fitter.load():
            c.add_chain(chain,
                        weights=weight,
                        parameters=model.get_labels(),
                        **extra)
Esempio n. 28
0
# Run a not so quick test submitting 128 jobs each with a different mock realisation.
# If run on NERSC, this will actually submit 128/num_per_task jobs, and each job will
# do num_per_task.

if __name__ == "__main__":
    pfn, dir_name, file = setup(__file__)

    data = PowerSpectrum_SDSS_DR12(isotropic=True, recon="iso")
    model = PowerBeutler2017(isotropic=data.isotropic, recon=data.recon, marg="full")

    sampler = EnsembleSampler(num_walkers=16, num_steps=5000, num_burn=300, temp_dir=dir_name)

    fitter = Fitter(dir_name)
    for i in range(128):
        data.set_realisation(i)
        fitter.add_model_and_dataset(model, data, realisation=i)

    fitter.set_sampler(sampler)
    fitter.set_num_walkers(1)
    fitter.set_num_concurrent(128)
    fitter.fit(file)

    if fitter.should_plot():
        from chainconsumer import ChainConsumer

        posterior, weight, chain, evidence, model, data, extra = fitter.load()[0]
        model_results, summary = get_model_comparison_dataframe(fitter)

        c = ChainConsumer()
        c.add_chain(chain, weights=weight, parameters=model.get_labels())
        c.plotter.plot(filename=pfn + "_contour.pdf")