In [9]:
from nbodykit.cosmology import Cosmology, LinearPower, ZeldovichPower

In [2]:
from astropy.cosmology import FLRW, FlatwCDM
import numpy as np

In [3]:
def make_cosmo(param_names, param_vals):
    """
    Frequently, the parameters of our input will not align with what we need.
    So, we convert them to the appropriate format.
    :param param_names:
    :param param_vals:
    :return:
    """
    param_dict = dict([(pn, param_vals[pn]) for pn in param_names] )
    # TODO it'd be nice if this could be somehow generalized.
    param_dict['N_ncdm'] = 3.0
    param_dict['N_ur'] = param_dict['Neff']-3.0
    del param_dict['Neff']

    #param_dict['h'] = param_dict['H0']/100
    #del param_dict['H0']
    param_dict['h'] = param_dict['h0']
    del param_dict['h0']

    #param_dict['w0_fld'] = param_dict['w']
    #del param_dict['w']

    #param_dict['Omega0_b'] = param_dict['Omega_b']
    param_dict['Omega_cdm'] = param_dict['Omega_m'] - param_dict['Omega_b']
    del param_dict['Omega_b']
    del param_dict['Omega_m']

    #param_dict['ln_1e10_A_s'] = param_dict['ln(10^{10}A_s)']
    param_dict['A_s'] = 10**(-10)*np.exp(param_dict['ln(10^{10}A_s)'])
    del param_dict['ln(10^{10}A_s)']

    param_dict['Omega_ncdm'] = [param_dict['Omeganuh2']/(param_dict['h']**2), 0.0, 0.0]
    del param_dict['Omeganuh2']

    #FlatwCDM
    C=Cosmology()
    C2 = C.from_dict(param_dict)
    C3 = C2.clone(w0_fld=param_dict['w'])
    return C3#osmology(m_ncdm=None, **param_dict)

In [4]:
import pandas as pd

In [5]:
lhc = pd.read_csv('/home/users/swmclau2/Git/pearce/bin/pmesh_tests/DES_training_points.csv', sep = ' ', index_col=None)
param_names = list(lhc)

In [6]:
k = np.logspace(-4,2,1000)

In [12]:
for idx, row in lhc.iterrows():
    cosmo = make_cosmo(param_names, row)
    #astro = cosmo.to_astropy()
    p = LinearPower(cosmo, 0.0)(k)
    break

In [ ]: