Пример #1
0
def get_new_cor(chain, mean_add=0, sigma_add=0):

    mB_mean, mB_width = get_approximate_mb_correction()

    data = {
        "mB_mean": mB_mean,
        "mB_width": mB_width,
        "snana_dummy": True,
        "sim": False
    }
    d = get_analysis_data(**data)
    redshifts = d["redshifts"]
    cosmologies = get_cosmology_dictionary()

    weight = []
    for i in range(chain["mean_MB"].size):
        om = np.round(chain["Om"][i], decimals=3)
        key = "%0.3f" % om
        mus = cosmologies[key](redshifts)

        mb = chain["mean_MB"][i] + mus - chain["alpha"][i] * chain["mean_x1"][i] + chain["beta"][i] * chain["mean_c"][i]

        # cc = 1 - norm.cdf(mb, mB_mean, mB_width) + 0.001
        cc = 1 - norm.cdf(mb, mB_mean + mean_add, mB_width + sigma_add)
        w = np.sum(np.log(cc) - chain["mean_c"][i])
        weight.append(w)
    return np.array(weight)
Пример #2
0
def approx_bias():
    file = os.path.abspath(inspect.stack()[0][1])
    dir_name = os.path.dirname(file)
    data_dir = os.path.abspath(dir_name + "/../data")
    pickle_file = data_dir + os.sep + "supernovae_passed.npy"
    supernovae = np.load(pickle_file)
    d = get_cosmology_dictionary()
    data = get_analysis_data()
    n = 1000
    init_vals = [init_fn(data=data) for i in range(n)]
    keys = list(init_vals[0].keys())
    chain_dictionary = {}
    for key in keys:
        chain_dictionary[key] = np.array([elem[key] for elem in init_vals])
    weights, mean_abs = calculate_bias(chain_dictionary, supernovae, d, return_mbs=True)
    import matplotlib.pyplot as plt
    plt.scatter(mean_abs, weights)
    plt.show()
Пример #3
0
            ax0.scatter(config["zs"], muc, label=config["label"], lw=0, s=6, c=config["color"], alpha=0.3)
            ax1.scatter(config["zs"], muc - fid.distmod(config["zs"]).value, s=6, lw=0, c=config["color"], alpha=0.3)

        ax0.legend(loc=2)
        plt.subplots_adjust(wspace=0, hspace=0.05)
        this_file = inspect.stack()[0][1]
        dir_name = os.path.dirname(this_file)
        output_dir = dir_name + "/output/"
        print("Saving to " + output_dir + "%s.png" % filename)
        fig.savefig(output_dir + "%s.png" % filename, bbox_inches="tight", transparent=True, dpi=250)
        fig.savefig(output_dir + "%s.pdf" % filename, bbox_inches="tight", transparent=True, dpi=250)

if __name__ == "__main__":
    h = HubblePlotter()

    data = get_analysis_data(seed=0)
    zs = data["redshifts"]
    deta_dcalib = data["deta_dcalib"]
    obs_mBx1c = np.array(data["obs_mBx1c"])
    abs = -19.365
    mags = obs_mBx1c[:, 0] + 0.14 * obs_mBx1c[:, 1] - 3.1 * obs_mBx1c[:, 2]
    obs_mBx1c2 = np.copy(obs_mBx1c)
    calib = np.array([0, 0.01*9, 0, 0])
    calib_change = np.dot(deta_dcalib, calib)
    obs_mBx1c2 += calib_change
    mags2 = obs_mBx1c2[:, 0] + 0.14 * obs_mBx1c2[:, 1] - 3.1 * obs_mBx1c2[:, 2]

    h.add_config(0.3, abs, mags, zs, "No calib", 'b')
    h.add_config(0.24, abs, mags2, zs, "calib", 'r')

    h.plot()