so_map - a module for handling HEALPIX and CAR maps#
SO map class for handling healpix and CAR maps. This is a wrapper around healpix and enlib (pixell).
- pspy.so_map.bounding_box_from_map(map_car)#
Get a coordinate box from a map.
- Parameters:
map_car (
so_mapin CAR coordinates) – the map used to define the box
- pspy.so_map.car2car(map_car, template)#
Project a CAR map into another CAR map with different pixellisation
- Parameters:
map (
so_mapin CAR pixellisation) – the map to be projectedtemplate (
so_mapin CAR pixellisation) – the template that will be projected onto
- pspy.so_map.car_template(ncomp, ra0, ra1, dec0, dec1, res, dtype=<class 'numpy.float64'>)#
Create a
so_maptemplate with CAR pixellisation in equ coordinates.- Parameters:
ncomp (integer) – the number of components of the map can be 1 or 3 (for T,Q,U)
ra0 (floats) – coordinates of the box in degrees
dec0 (floats) – coordinates of the box in degrees
ra1 (floats) – coordinates of the box in degrees
dec1 (floats) – coordinates of the box in degrees
res (float) – resolution in arcminute
- pspy.so_map.car_template_from_shape_wcs(ncomp_out, shape, wcs, dtype=<class 'numpy.float64'>)#
Create a template from shape and wcs args with a number of components ncomp_out
- Parameters:
ncomp_out (int) – number of components needed (e.g. 3 to create a template for (I, Q, U))
shape (tuple)
wcs (wcs object)
- pspy.so_map.draw_random_location_car(map_car, n_pts)#
Draw n_pts uniformly on a car template and return their pixel indices, taking into accout the fact that the car pixels have different area according to their declination. also returns a corresponding hit_map also accounting for the fact that a pixel can be drawn more than once.
- Parameters:
map_car (
so_mapin CAR coordinates) – the map used to define the boxn_pts (integer) – the number of point to draw on the map
- pspy.so_map.fourier_convolution(map_car, fourier_kernel, window=None, use_ducc_rfft=False)#
do a convolution in fourier space with a fourier_kernel, you can optionnaly use a window to remove pathological pixels
- Parameters:
map_car (
so_mapin CAR pixellisation) – the map to be convolvedfourier_kernel (2d array) – the convolution kernel in Fourier space
window (
so_map) – a window removing pathological pixelsuse_ducc_rfft (boolean) – wether to use ducc real fft instead of enmap complex fft
- pspy.so_map.from_components(T, Q, U)#
Create a (T,Q,U)
so_mapobject from three fits files.- Parameters:
T (fits file) – name of the T fits file
Q (fits file) – name of the Q fits file
U (fits file) – name of the U fits file
- pspy.so_map.from_enmap(emap)#
Get a
so_mapfrom an enmap (pixell format).- Parameters:
emap (a ndmap object) – the enmap we want to use to define the
so_map
- pspy.so_map.full_sky_car_template(ncomp, res, dtype=<class 'numpy.float64'>)#
Create a
so_mapfull sky template with CAR pixellisation in equ coordinates.- Parameters:
ncomp (integer) – the number of components of the map can be 1 or 3 (for T,Q,U)
res (float) – resolution in arcminute
- pspy.so_map.generate_source_mask(binary, coordinates, point_source_radius_arcmin)#
Generate a point source mask in a binary template
- Parameters:
binary (
so_mapbinary template) – the binay map in which we generate the source maskcoordinates (list) – the list of point sources in DEC, RA coordinates (radians)
point_source_radius_arcmin (float) – the radius of the point sources
- pspy.so_map.get_box(ra0, ra1, dec0, dec1)#
Create box in equatorial coordinates.
- Parameters:
ra0 (floats) – coordinates of the box in degrees
dec0 (floats) – coordinates of the box in degrees
ra1 (floats) – coordinates of the box in degrees
dec1 (floats) – coordinates of the box in degrees
- pspy.so_map.get_submap_car(map_car, box, mode='round')#
Cut a CAR submap (using pixell).
- Parameters:
map (CAR map in
so_mapformat) – the map to be cutbox (array_like) – The [[fromy,fromx],[toy,tox]] bounding box to select. The resulting map will have a bounding box as close as possible to this, but will differ slightly due to the finite pixel size.
mode (str) – How to handle partially selected pixels: “round”: round bounds using standard rules “floor”: both upper and lower bounds will be rounded down “ceil”: both upper and lower bounds will be rounded up “inclusive”: lower bounds are rounded down, and upper bounds up “exclusive”: lower bounds are rounded up, and upper bounds down
- pspy.so_map.healpix2car(healpix_map, template, lmax=None)#
Project a HEALPIX
so_mapinto a CARso_map.The projection will be done in harmonic space, you can specify a lmax to choose a range of multipoles considered in the projection. If the coordinate of the map and the template differ, a rotation will be performed.
- Parameters:
healpix_map (
so_mapin healpix pixellisation) – the map to be projectedtemplate (
so_mapin CAR pixellisation) – the template that will be projected ontolmax (integer) – the maximum multipole in the HEALPIX map to project
- pspy.so_map.healpix_template(ncomp, nside, coordinate=None)#
Create a
so_maptemplate with healpix pixellisation.- Parameters:
ncomp (integer) – the number of components of the map can be 1 or 3 (for T,Q,U)
nside (integer) – the nside of the healpix map
coordinate (string) – coordinate system of the map
- pspy.so_map.read_map(file, coordinate=None, fields_healpix=None, car_box=None, geometry=None, remove_unseen=True)#
Create a
so_mapobject from a fits file.- Parameters:
file (fits file) – name of the fits file
coordinate (string) – coordinate system of the map
fields_healpix (integer) – if fields_healpix is not None, load the specified field
car_box (2x2 array) – [[dec0,ra0],[dec1,ra1]] in degree
geometry (tuple, optional) – Desired output geometry (shape, wcs) to extract the data on to. The output geometry must be WCS-compatible with the geometry on disk.
remove_unseen (boolean) – set the unseen healpix pixel to zero
- pspy.so_map.simulate_source_mask(binary, n_holes, hole_radius_arcmin)#
Simulate a point source mask in a binary template
- Parameters:
binary (
so_mapbinary template) – the binay map in which we generate the source maskn_holes (integer) – the number of masked point sources
hole_radius_arcmin (float) – the radius of the holes
- class pspy.so_map.so_map#
Class defining a
so_mapobject.- calibrate(cal=1.0, pol_eff=1.0)#
Calibrate the
so_map, also optionnaly apply a pol efficiency :param cal: the calibration factor to apply :type cal: float :param pol_eff: the polarisation efficiency :type pol_eff: float
- convolve_with_pixwin(niter=3, window=None, pixwin=None, order=0, use_ducc_rfft=False)#
Convolve a
so_mapobject with a pixel window function The convolution is done in harmonics space, for CAR maps the pixwin is anisotropic (the pixel varies in size across the maps) and the convolution is done in Fourier space. We optionaly apply a window before doing the operation to remove pathological pixels, note that this operation is dangerous since we do harmonic transform of a masked map.- Parameters:
niter (integer) – the number of iteration performed while computing the alm not that for CAR niter=0 should be enough
window (so_map) – a window that remove pathological pixel before doing the harmonic space operation
pixwin (1d array for healpix, 2d array for CAR) – this allow you to pass a precomputed pixel window function
- copy()#
Create a copy of the
so_mapobject.
- downgrade(factor)#
Downgrade the
so_map.- Parameters:
factor (integer) – factor of decreased pixel resolution (should be a factor of 2)
- get_lmax_limit()#
Return the maximum lmax corresponding to the
so_mappixellisation
- get_pixwin(order=0, dtype=<class 'numpy.float64'>)#
compute the pixel window function corresponding to the map pixellisation order stands for the map making pointing matrix order=0 is Neareast Neighbour while order=1 is bilinear interpolation
- info()#
Print information about the
so_mapobject.
- plot(color='planck', color_range=None, file_name=None, ticks_spacing_car=1, title='', cbar=True, hp_gnomv=None)#
Plot a
so_map.- Parameters:
color (cmap) – a matplotlib colormap (or ‘planck’)
color_range (scalar for single component or len(3) list for T,Q,U.) – the range of the colorscale
file_name (string) – file_name is the name of the png file that will be created, if None the plot will be displayed.
title (string) – the title of the plot.
cbar (boolean) – set to True to display the colorbar.
ticks_spacing_CAR (float) – for CAR plot, choose the spacing of the ticks.
hp_gnomv (tuple) – gnomview projection for HEALPIX plotting, expected (lon_c,lat_c,xsize,reso).
- subtract_mean(mask=None)#
Subtract mean from a
so_mapobject, optionnaly within a mask- Parameters:
mask (either a single so_map (for ncomp = 1) or a tuple of SO map e.g (mask_T, mask_P))
- subtract_mono_dipole(mask=None, values=None, bunch=24)#
Subtract monopole and dipole from a
so_mapobject.- Parameters:
mask (either a single so_map (for ncomp = 1) or a tuple of SO map e.g (mask_T, mask_P))
values (the value of the monopole and dipole to subtract)
bunch (int) – the bunch size (default: 24)
- synfast(clfile)#
Fill a
so_mapwith a cmb gaussian simulation.- Parameters:
clfile (CAMB data file) – lensed power spectra file from CAMB
- upgrade(factor)#
Upgrade the
so_map.- Parameters:
factor (integer) – factor of increased pixel resolution (should be a factor of 2)
- write_map(file_name)#
Write the
so_mapto disk.- Parameters:
filename (string) – the name of the fits file
- pspy.so_map.subtract_mono_dipole(emap, mask=None, healpix=True, values=None, bunch=24, return_values=False)#
Subtract monopole and dipole from a
enmapobject.- Parameters:
emap (
enmapor numpy array) – the map from which to compute mono/dipole valuesmask (
enmapor numpy array) – a mask to put on top of the maphealpix (bool) – flag for using HEALPIX (default) or CAR pixellisation
bunch (int) – the bunch size (default: 24)
values
return_values (bool) – Return mono/dipole values with the subtracted map (default: False)
- pspy.so_map.white_noise(template, rms_uKarcmin_T, rms_uKarcmin_pol=None)#
Generate a white noise realisation corresponding to the template pixellisation
- Parameters:
template (
so_maptemplate) – the template for the white noise generalisationrms_uKarcmin_T (float) – the white noise temperature rms in uK.arcmin
rms_uKarcmin_pol (float) – the white noise polarisation rms in uK.arcmin if None set it to sqrt(2)*rms_uKarcmin_T