import healpy as hp import numpy as np import cosmotool as ct import argparse import h5py as h5 import matplotlib matplotlib.use('Agg') 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): N = v[0].shape[0] u = build_unit_vectors(N) vr = v[0] * u[2] vr += v[1] * u[1] vr += v[2] * u[0] return vr.transpose() def generate_from_catalog(vfield,Boxsize,dmin,dmax): import progressbar as pbar cat = np.load("2m++.npy") cat['distance'] = cat['best_velcmb'] cat = cat[np.where((cat['distance']>100*dmin)*(cat['distance']