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
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
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
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']
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),