import healpy as hp import numpy as np import cosmotool as ct import argparse import h5py as h5 from matplotlib import pyplot as plt import ksz from ksz.constants import * from cosmotool import interp3d def wrapper_impulsion(f): class _Wrapper(object): def __init__(self): pass def __getitem__(self,direction): if 'velocity' in f: return f['velocity'][:,:,:,direction] n = "p%d" % direction return f[n] return _Wrapper() parser=argparse.ArgumentParser(description="Generate Skymaps from CIC maps") parser.add_argument('--boxsize', type=float, required=True) parser.add_argument('--Nside', type=int, default=128) parser.add_argument('--base_h5', type=str, required=True) parser.add_argument('--base_fig', type=str, required=True) parser.add_argument('--start', type=int, required=True) parser.add_argument('--end', type=int, required=True) parser.add_argument('--step', type=int, required=True) parser.add_argument('--minval', type=float, default=-0.5) parser.add_argument('--maxval', type=float, default=0.5) parser.add_argument('--depth_min', type=float, default=10) parser.add_argument('--depth_max', type=float, default=60) parser.add_argument('--iid', type=int, default=0) parser.add_argument('--ksz_map', type=str, required=True) args = parser.parse_args() L = args.boxsize Nside = args.Nside def build_unit_vectors(N): ii = np.arange(N)*L/N - 0.5*L d = np.sqrt(ii[:,None,None]**2 + ii[None,:,None]**2 + ii[None,None,:]**2) d[N/2,N/2,N/2] = 1 ux = ii[:,None,None] / d uy = ii[None,:,None] / d uz = ii[None,None,:] / d return ux,uy,uz def build_radial_v(v): u = build_unit_vectors(N) vr = v[0] * u[0] vr += v[1] * u[1] vr += v[2] * u[2] return vr def generate_from_catalog(vfield,Boxsize): import progressbar as pbar cat = np.load("2m++.npy") profiler = KSZ_Isothermal(2.37) cat['distance'] = cat['best_velcmb'] cat = cat[np.where((cat['distance']>100*dmin)*(cat['distance']