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
        import matplotlib.pyplot as plt
        import logging

        logging.info("Creating plots")
        plt.rc("text", usetex=True)
        plt.rc("font", family="serif")

        res = []
        if path.exists(pfn + "_alphameans.pkl"):
            logging.info("Found alphameans.pkl, reading from existing file")
Esempio n. 2
0
# 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")