Exemplo n.º 1
0
def get_cross_pairwise_ksz(df1, df2, params):
    '''
    Wrapper for calling pairwise_cross_ksz using a cross_dataset
    object.

    params: params object from paramTools.py
    '''
    dT1 = df1.dT.values
    dT2 = df2.dT.values
    z = df1.z.values  # this requires Dc and z values to be the same
    Dc = df1.Dc.values

    if params.GET_TZAV_FAST:
        tzav1 = get_tzav_fast(dT1, z, params.SIGMA_Z)
        tzav2 = get_tzav_fast(dT2, z, params.SIGMA_Z)
    else:
        tzav1 = get_tzav(dT1, z, params.SIGMA_Z)
        tzav2 = get_tzav(dT2, z, params.SIGMA_Z)

    # more common values
    ra_deg = df1.ra.values
    dec_deg = df1.dec.values

    assert params.UNEVEN_BINS  # only uneven bins supported for this
    bin_edges = params.BIN_EDGES

    if params.DO_VARIANCE_WEIGHTED:
        assert False  # not implemented
    else:
        r_sep, p_uk = cross_pairwise_ksz_uneven_bins(Dc, ra_deg, dec_deg,
                                                     tzav1, tzav2, dT1, dT2,
                                                     bin_edges)
    return r_sep, p_uk
Exemplo n.º 2
0
def test_get_tzav_fast():
    N_gals = 15000
    sigma_z = 0.01
    z = np.random.uniform(size=N_gals)
    dT = np.random.normal(size=N_gals)

    tzav = pairwiser.get_tzav(dT, z, sigma_z)
    tzav_fast = pairwiser.get_tzav_fast(dT, z, sigma_z)

    chisq = np.sum((tzav - tzav_fast)**2)
    assert chisq < 1e-8
Exemplo n.º 3
0
def get_pairwise_ksz_massboosted_debiased(df, params, multithreading=True):
    '''Wrapper for calling pairwise_ksz using only a preprocessed dataframe
    and a parameters container.
    Arguments:
        df: preprocessed catalog
        params: paramTols.params object.'''
    dT = df.dT.values
    z = df.z.values
    Dc = df.Dc.values
    mass = df.mass.values

    tzav = get_tzav_fast(dT, z, params.SIGMA_Z)  # use fast implementation
    ra_deg = df.ra.values
    dec_deg = df.dec.values
    bin_edges = params.BIN_EDGES

    r_sep, p_uk = pairwise_ksz_massboosted_debiased(Dc, ra_deg, dec_deg, tzav,
                                                    dT, mass, bin_edges)
    return r_sep, p_uk
Exemplo n.º 4
0
def correct_tsz_decrement(df, sigma_z, N_in_sigma=10,
                          gaussian_or_square='gaussian',
                          mean_or_median='median'):
    '''Takes dTs from aperture photometry, computes wiggly tee
    for each redshift and substracts wiggly tee.
    Results are appended in df['dT_kSZ']'''
    if 'gaussian_conventional' not in gaussian_or_square:  # new method
        print('Applying new wtee correction')
        zs_to_eval, w_tee, f_wiggly_tee = get_wiggly_tee(df.z.values,
                                                     df.dT.values,
                                                     sigma_z,
                                                     N_in_sigma,
                                                     gaussian_or_square=gaussian_or_square, # noqa
                                                     mean_or_median=mean_or_median) # noqa
        df['wiggly_tee'] = f_wiggly_tee(df.z.values)
    else:  # usual method
        assert 'gaussian_conventional' in gaussian_or_square
        print('Applying convetional wiggly tee correction')
        tzav = pairwiser.get_tzav_fast(df.dT.values, df.z.values, sigma_z)
        df['wiggly_tee'] = tzav
    df['dT_kSZ'] = df['dT'].values - df['wiggly_tee']
Exemplo n.º 5
0
import scipy.stats

fnames = [
    "params_disjoint_bin_lum_gt_04p3_and_06p1_jk.ini",
    "params_disjoint_bin_lum_gt_06p1_and_07p9_jk.ini",
    "params_lum_gt_07p9_jk.ini"
]

for j in range(len(fnames)):
    fname = fnames[j]
    p = paramTools.params(fname)
    df = catalogTools.preProcessedCat(howMany=None, query=p.CAT_QUERY).df

    dT = df.dT.values
    z = df.z.values
    tzav = pairwiser.get_tzav_fast(dT, z, p.SIGMA_Z)
    dT_ksz = dT - tzav

    mean, std = np.mean(dT_ksz), np.std(dT_ksz)

    plt.figure(figsize=[8, 4.5])
    plt.hist(dT_ksz,
             normed=True,
             histtype='step',
             color='black',
             lw=2,
             bins=200)

    x = np.linspace(dT_ksz.min(), dT_ksz.max(), 1000)
    plt.plot(x,
             scipy.stats.norm.pdf(x, mean, std),