示例#1
0
def get_hz_errs(fname):
    """
    Load Fisher matrix and invert to get errors on H(z) as a function of z.
    """
    root = "output/" + fname
    print(root)

    # Load cosmo fns.
    dat = np.atleast_2d(np.genfromtxt(root + "-cosmofns-zc.dat")).T
    zc, Hc, dAc, Dc, fc = dat
    z, H, dA, D, f = np.genfromtxt(root + "-cosmofns-smooth.dat").T
    kc = np.genfromtxt(root + "-fisher-kc.dat").T

    # Load Fisher matrices as fn. of z
    Nbins = zc.size
    F_list = [
        np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins)
    ]

    # EOS FISHER MATRIX
    # Actually, (aperp, apar) are (D_A, H)
    pnames = rf.load_param_names(root + "-fisher-full-0.dat")

    zfns = [
        'bs8',
        'fs8',
        'H',
        'DA',
    ]
    excl = [
        'Tb', 'n_s', 'sigma8', 'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma',
        'N_eff', 'pk*', 'f', 'b_HI', 'gamma0', 'gamma1', 'eta0', 'eta1',
        'A_xi', 'logkmg', 'sigma8tot', 'sigma_8', 'k*', 'A', 'aperp', 'apar'
    ]

    F, lbls = rf.combined_fisher_matrix(F_list,
                                        expand=zfns,
                                        names=pnames,
                                        exclude=excl)
    print(lbls)

    cov = np.linalg.inv(F)
    errs = np.sqrt(np.diag(cov))

    # Identify functions of z
    pH = rf.indices_for_param_names(lbls, 'H*')
    errH = 1e2 * errs[pH] / Hc

    # Return values
    return zc, errH
示例#2
0
    Nbins = zc.size
    F_list = [np.genfromtxt(root+"-fisher-full-%d.dat" % i) for i in range(Nbins)]
    
    # EOS FISHER MATRIX
    # Actually, (aperp, apar) are (D_A, H)
    pnames = rf.load_param_names(root+"-fisher-full-0.dat")
    
    #zfns = ['A', 'b_HI', 'f', 'H', 'DA', 'aperp', 'apar']
    zfns = ['bs8', 'fs8', 'H', 'DA',]
    excl = ['Tb', 'n_s', 'sigma8', 'omegak', 'omegaDE', 'w0', 'wa', 'h',
            'gamma', 'N_eff', 'pk*', 'f', 'b_HI', 
            'gamma0', 'gamma1', 'eta0', 'eta1', 'A_xi', 'logkmg',
            'sigma8tot', 'sigma_8', 'k*', 'A', 'aperp', 'apar']
    
    F, lbls = rf.combined_fisher_matrix( F_list,
                                         expand=zfns, names=pnames,
                                         exclude=excl )
    cov = np.linalg.inv(F)
    errs = np.sqrt(np.diag(cov))
    
    # Identify functions of z
    pfs8 = rf.indices_for_param_names(lbls, 'fs8*')
    err = errs[pfs8] / (cosmo['sigma_8']*fc*Dc)
    
    P.plot( zc, err, color=colours[k], label=labels[k], lw=2.2,
            marker=marker[k], markersize=ms[k], markeredgecolor=colours[k],
            dashes=linestyle[k] )
    
# Load actual f.sigma_8 data and plot it
dat = np.genfromtxt("fsigma8_data.dat").T
#P.plot(dat[1], dat[3], 'kD')
示例#3
0
        np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins)
    ]
    #F_list = [np.genfromtxt(root+"-fisher-full-%d.dat" % i) for i in np.where(zc>0.5)[0]]
    #Nbins = np.where(zc > 0.5)[0].size
    #if Nbins == 0: continue

    # EOS FISHER MATRIX
    pnames = rf.load_param_names(root + "-fisher-full-0.dat")
    zfns = [
        'b_HI',
    ]
    excl = [
        'Tb', 'f', 'aperp', 'apar', 'DA', 'H', 'pk*', 'fs8', 'bs8', 'N_eff'
    ]
    F, lbls = rf.combined_fisher_matrix(F_list,
                                        expand=zfns,
                                        names=pnames,
                                        exclude=excl)

    # Add Planck prior
    print "*** Using DETF Planck prior ***"
    l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma8']
    F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo, omegab=False)
    Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True)

    # Remove extra params
    Fpl, lbls = rf.combined_fisher_matrix([
        Fpl,
    ],
                                          expand=[],
                                          names=lbls,
                                          exclude=[
示例#4
0
    # Load Fisher matrices as fn. of z
    Nbins = zc.size
    F_list = [
        np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins)
    ]

    # EOS FISHER MATRIX
    pnames = rf.load_param_names(root + "-fisher-full-0.dat")

    zfns = [
        'b_HI',
    ]
    #zfns = ['bs8',]
    excl = exclude_all + mgexclude[MGMODE]
    F, lbls = rf.combined_fisher_matrix(F_list,
                                        expand=zfns,
                                        names=pnames,
                                        exclude=excl)

    # Relabel galaxy bias from low-z survey and sum current survey + low-z
    #if 'BOSS' not in labels[k]:
    #    F, lbls = rf.add_fisher_matrices(F_lowz, F, lbls_lowz, lbls, expand=True)
    #print lbls

    # Add Planck prior
    print "*** Using DETF Planck prior ***"
    l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma_8']
    F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo, omegab=False)
    Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True)

    # Decide whether to fix various parameters
    fixed_params = []
    F_list = [
        np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins)
    ]

    # EOS FISHER MATRIX
    # Actually, (aperp, apar) are (D_A, H)
    pnames = [
        'A', 'b_HI', 'Tb', 'sigma_NL', 'sigma8', 'n_s', 'f', 'aperp', 'apar',
        'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma', 'fNL'
    ]
    pnames += ["pk%d" % i for i in range(kc.size)]
    zfns = [
        1,
    ]
    F, lbls = rf.combined_fisher_matrix(F_list,
                                        expand=zfns,
                                        names=pnames,
                                        exclude=[2, 4, 5, 6, 7, 8])
    # Just do the simplest thing for P(k)
    cov = np.sqrt(1. / np.diag(F)[-kc.size:])
    cov[np.where(np.isinf(cov))] = 1e4

    #pk = cosmo['pk_nobao'](kc) * (1. + fbao(kc))
    P.plot(kc, cov, lw=1.5, label=labels[k])

P.legend(loc='upper left', prop={'size': 'large'})
P.ylim((1e-3, 400.))
P.xlim((3e-3, 1e0))
P.xscale('log')
P.yscale('log')
P.axvline(2.3e-2, ls='dotted', color='k')
P.axvline(3.7e-1, ls='dotted', color='k')
        # EOS FISHER MATRIX
        # Actually, (aperp, apar) are (D_A, H)
        pnames = [
            'A', 'b_HI', 'Tb', 'sigma_NL', 'sigma8', 'n_s', 'f', 'aperp',
            'apar', 'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma'
        ]
        pnames += ["pk%d" % i for i in range(kc.size)]

        zfns = [
            1,
        ]
        excl = [2, 6, 7, 8, 14]  # omega_k free 4,5
        excl += [i for i in range(len(pnames)) if "pk" in pnames[i]]

        F, lbls = rf.combined_fisher_matrix(F_list[:l],
                                            expand=zfns,
                                            names=pnames,
                                            exclude=excl)
        # Add Planck prior
        #Fpl = euclid.add_detf_planck_prior(F, lbls, info=False)
        #Fpl = euclid.add_planck_prior(F, lbls, info=False)
        if USE_DETF_PLANCK_PRIOR:
            # DETF Planck prior
            print "*** Using DETF Planck prior ***"
            l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h']
            F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo)
            Fpl, lbls = rf.add_fisher_matrices(F,
                                               F_detf,
                                               lbls,
                                               l2,
                                               expand=True)
        else:
示例#7
0
    Nbins = zc.size

    # EOS FISHER MATRIX
    pnames = [
        'A', 'b_HI', 'Tb', 'sigma_NL', 'sigma8', 'n_s', 'f', 'aperp', 'apar',
        'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma'
    ]
    #0:A, 1:b_HI, 2:sigma_NL, [3:omegak,] 4:omegaDE, 5:w0, 6:wa, 7:h, 8:gamma
    zfns = [
        1,
    ]

    # Marginalise over omega_k
    F_eos, lbls = rf.combined_fisher_matrix(
        F_eos_list,
        #exclude=[2,4,5,6,7,8,9,12],
        exclude=[2, 4, 5, 6, 7, 8, 9, 14],
        expand=zfns,
        names=pnames)
    Finv = np.linalg.inv(F_eos)  # Pre-invert, for efficiency

    print "Cond. No.:", np.linalg.cond(F_eos)
    print "sig(h):", np.sqrt(Finv[6, 6])

    px = rf.indexes_for_sampled_fns(4, zc.size, zfns)  # x 4
    py = rf.indexes_for_sampled_fns(5, zc.size, zfns)  # y 5

    #rf.plot_corrmat(Finv, lbls)
    """
    # Fix omega_k
    F_eos2, lbls2 = rf.combined_fisher_matrix( F_eos_list, 
                                                    exclude=[2,4,5,6,7,8,  9,12], 
示例#8
0
    Nbins = zc.size
    F_list = [
        np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins)
    ]

    # EOS FISHER MATRIX
    pnames = rf.load_param_names(root + "-fisher-full-0.dat")
    zfns = [
        'b_HI',
    ]
    excl = [
        'Tb', 'f', 'fs8', 'bs8', 'aperp', 'apar', 'DA', 'H', 'gamma', 'N_eff',
        'pk*'
    ]
    F, lbls = rf.combined_fisher_matrix(F_list,
                                        expand=zfns,
                                        names=pnames,
                                        exclude=excl)
    # Add Planck prior
    #Fpl = euclid.add_detf_planck_prior(F, lbls, info=False)
    #Fpl = euclid.add_planck_prior(F, lbls, info=False)

    # (a) DETF Planck prior
    #print "*** Using DETF Planck prior ***"
    #l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma8']
    #F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo, omegab=False)
    #Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True)

    # (b) Planck Fisher matrix (derived from Planck 2015 MCMC chains)
    lbls_planck = ['n_s', 'Omega_b', 'omegaDE', 'h', 'sigma8', 'Mnu', 'Neff']
    F_planck = np.genfromtxt(
        "/home/phil/oslo/Dropbox/HI_neutrinos/fisher_code/planck/planck_derived_fisher.dat"
示例#9
0
    pnames += ["pk%d" % i for i in range(kc.size)]

    zfns = [
        1,
    ]
    excl = [
        2,
        6,
        7,
        8,
        14,
    ]
    excl += [i for i in range(len(pnames)) if "pk" in pnames[i]]

    F, lbls = rf.combined_fisher_matrix(F_list,
                                        expand=zfns,
                                        names=pnames,
                                        exclude=excl)
    # Apply Planck prior
    if USE_DETF_PLANCK_PRIOR:
        # DETF Planck prior
        print "*** Using DETF Planck prior ***"
        l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma8']
        F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt",
                                   cosmo,
                                   omegab=False)
        Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True)
    else:
        # Euclid Planck prior
        print "*** Using Euclid (Mukherjee) Planck prior ***"
        l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h']
        Fe = euclid.planck_prior_full