# HpxMapSparse¶

class gammapy.maps.HpxMapSparse(geom, data=None, dtype='float32')[source]

Representation of a N+2D map using HEALPIX with two spatial dimensions and N non-spatial dimensions.

This class uses a sparse matrix for HEALPix pixel values.

Parameters: geom : HpxGeom HEALPIX geometry object. data : ndarray HEALPIX data array.

Attributes Summary

 data Data array (ndarray) geom Map geometry (MapGeom)

Methods Summary

 create([nside, binsz, nest, map_type, …]) Factory method to create an empty HEALPix map. crop(crop_width) Crop the spatial dimension of the map. downsample(factor) Downsample the spatial dimension of the map by a given factor. fill_by_coords(coords[, weights]) Fill pixels at the given map coordinates with values in weights vector. fill_by_idx(idx[, weights]) Fill pixels at the given pixel indices with values in weights vector. fill_by_pix(pix[, weights]) Fill pixels at the given pixel coordinates with values in weights vector. from_hdu(hdu[, hdu_bands]) Make a HpxMapND object from a FITS HDU. from_hdulist(hdulist[, hdu, hdu_bands]) Make a HpxMap object from a FITS HDUList. get_by_coords(coords[, interp]) Return map values at the given map coordinates. get_by_idx(idx) Return map values at the given pixel indices. get_by_pix(pix[, interp]) Return map values at the given pixel coordinates. interp_by_coords(coords[, interp]) Interpolate map values at the given map coordinates. iter_by_coords() Iterate over elements of the map returning a tuple with values and map coordinates. iter_by_image() Iterate over image planes of the map returning a tuple with the image array and image plane index. iter_by_pix() Iterate over elements of the map returning a tuple with values and pixel coordinates. make_hdu(**kwargs) Make a FITS HDU with input data. pad(pad_width) Pad the spatial dimension of the map by extending the edge of the map by the given number of pixels. read(filename, **kwargs) Read a map from a FITS file. reproject(geom[, order, mode]) Reproject this map to a different geometry. set_by_coords(coords, vals) Set pixels at the given map coordinates to the values in vals vector. set_by_idx(idx, vals) Set pixels at the given pixel indices to the values in vals vector. set_by_pix(pix, vals) Set pixels at the given pixel coordinates to the values in vals vector. sum_over_axes() Reduce to a 2D image by summing over non-spatial dimensions. to_hdulist(**kwargs) to_swapped_scheme() Return a new map with the opposite scheme (ring or nested). to_ud_graded() Upgrade or downgrade the resolution of the map to the chosen nside. to_wcs([sum_bands, normalize, proj, oversample]) Make a WCS object and convert HEALPIX data into WCS projection. upsample(factor) Upsample the spatial dimension of the map by a given factor. write(filename, **kwargs) Write to a FITS file.

Attributes Documentation

data

Data array (ndarray)

geom

Map geometry (MapGeom)

Methods Documentation

create(nside=None, binsz=None, nest=True, map_type=None, coordsys='CEL', data=None, skydir=None, width=None, dtype='float32', region=None, axes=None, conv='gadf')

Factory method to create an empty HEALPix map.

Parameters: nside : int or ndarray HEALPix NSIDE parameter. This parameter sets the size of the spatial pixels in the map. binsz : float or ndarray Approximate pixel size in degrees. An NSIDE will be chosen that correponds to a pixel size closest to this value. This option is superseded by nside. nest : bool True for HEALPix “NESTED” indexing scheme, False for “RING” scheme. coordsys : {‘CEL’, ‘GAL’}, optional Coordinate system, either Galactic (‘GAL’) or Equatorial (‘CEL’). skydir : tuple or SkyCoord Sky position of map center. Can be either a SkyCoord object or a tuple of longitude and latitude in deg in the coordinate system of the map. map_type : str Internal map representation. Valid types are HpxMapND/hpx and HpxMapSparse/hpx-sparse. width : float Diameter of the map in degrees. If None then an all-sky geometry will be created. axes : list List of MapAxis objects for each non-spatial dimension. conv : str, optional FITS format convention (‘fgst-ccube’, ‘fgst-template’, ‘gadf’). Default is ‘gadf’.
crop(crop_width)[source]

Crop the spatial dimension of the map.

Parameters: crop_width : {sequence, array_like, int} Number of values cropped from the edges of each axis. Defined analogously to pad_with from pad. Cropped map.
downsample(factor)[source]

Downsample the spatial dimension of the map by a given factor.

Parameters: factor : int Downsampling factor. Downsampled map.
fill_by_coords(coords, weights=None)

Fill pixels at the given map coordinates with values in weights vector.

Parameters: coords : tuple or MapCoords MapCoords object or tuple of coordinate arrays for each dimension of the map. Tuple should be ordered as (lon, lat, x_0, …, x_n) where x_i are coordinates for non-spatial dimensions of the map. weights : ndarray Weights vector. If None then a unit weight will be assumed for each element in coords.
fill_by_idx(idx, weights=None)[source]

Fill pixels at the given pixel indices with values in weights vector.

Parameters: idx : tuple Tuple of pixel index arrays for each dimension of the map. Tuple should be ordered as (I_lon, I_lat, I_0, …, I_n) for WCS maps and (I_hpx, I_0, …, I_n) for HEALPix maps. weights : ndarray Weights vector. If None then a unit weight will be assumed for each element in idx.
fill_by_pix(pix, weights=None)

Fill pixels at the given pixel coordinates with values in weights vector.

Parameters: pix : tuple Tuple of pixel index arrays for each dimension of the map. Tuple should be ordered as (I_lon, I_lat, I_0, …, I_n) for WCS maps and (I_hpx, I_0, …, I_n) for HEALPix maps. Pixel indices can be either float or integer type. Float indices will be rounded to the nearest integer. weights : ndarray Weights vector. If None then a unit weight will be assumed for each element in pix.
classmethod from_hdu(hdu, hdu_bands=None)[source]

Make a HpxMapND object from a FITS HDU.

Parameters: hdu : BinTableHDU The FITS HDU hdu_bands : BinTableHDU The BANDS table HDU
from_hdulist(hdulist, hdu=None, hdu_bands=None)

Make a HpxMap object from a FITS HDUList.

Parameters: hdulist : HDUList HDU list containing HDUs for map data and bands. hdu : str Name or index of the HDU with the map data. If None then the method will try to load map data from the first BinTableHDU in the file. hdu_bands : str Name or index of the HDU with the BANDS table. hpx_map : HpxMap Map object
get_by_coords(coords, interp=None)

Return map values at the given map coordinates.

Parameters: coords : tuple or MapCoords MapCoords object or tuple of coordinate arrays for each dimension of the map. Tuple should be ordered as (lon, lat, x_0, …, x_n) where x_i are coordinates for non-spatial dimensions of the map. interp : {None, ‘nearest’, ‘linear’, ‘cubic’, 0, 1, 2, 3} Method to interpolate data values. By default no interpolation is performed and the return value will be the amplitude of the pixel encompassing the given coordinate. Integer values can be used in lieu of strings to choose the interpolation method of the given order (0=’nearest’, 1=’linear’, 2=’quadratic’, 3=’cubic’). Note that only ‘nearest’ and ‘linear’ methods are supported for all map types. vals : ndarray Values of pixels in the map. np.nan used to flag coords outside of map.
get_by_idx(idx)[source]

Return map values at the given pixel indices.

Parameters: idx : tuple Tuple of pixel index arrays for each dimension of the map. Tuple should be ordered as (I_lon, I_lat, I_0, …, I_n) for WCS maps and (I_hpx, I_0, …, I_n) for HEALPix maps. vals : ndarray Array of pixel values. np.nan used to flag coordinate outside of map
get_by_pix(pix, interp=None)[source]

Return map values at the given pixel coordinates.

Parameters: pix : tuple Tuple of pixel index arrays for each dimension of the map. Tuple should be ordered as (I_lon, I_lat, I_0, …, I_n) for WCS maps and (I_hpx, I_0, …, I_n) for HEALPix maps. Pixel indices can be either float or integer type. interp : {None, ‘nearest’, ‘linear’, ‘cubic’, 0, 1, 2, 3} Method to interpolate data values. By default no interpolation is performed and the return value will be the amplitude of the pixel encompassing the given coordinate. Integer values can be used in lieu of strings to choose the interpolation method of the given order (0=’nearest’, 1=’linear’, 2=’quadratic’, 3=’cubic’). Note that only ‘nearest’ and ‘linear’ methods are supported for all map types. vals : ndarray Array of pixel values. np.nan used to flag coordinates outside of map
interp_by_coords(coords, interp=None)[source]

Interpolate map values at the given map coordinates.

Parameters: coords : tuple or MapCoords MapCoords object or tuple of coordinate arrays for each dimension of the map. Tuple should be ordered as (lon, lat, x_0, …, x_n) where x_i are coordinates for non-spatial dimensions of the map. interp : {None, ‘nearest’, ‘linear’, ‘cubic’, 0, 1, 2, 3} Method to interpolate data values. By default no interpolation is performed and the return value will be the amplitude of the pixel encompassing the given coordinate. Integer values can be used in lieu of strings to choose the interpolation method of the given order (0=’nearest’, 1=’linear’, 2=’quadratic’, 3=’cubic’). Note that only ‘nearest’ and ‘linear’ methods are supported for all map types. vals : ndarray Values of pixels in the flattened map. np.nan used to flag coords outside of map
iter_by_coords()[source]

Iterate over elements of the map returning a tuple with values and map coordinates.

Parameters: buffersize : int Set the size of the buffer. The map will be returned in chunks of the given size. Map values. coords : tuple Tuple of map coordinates.
iter_by_image()[source]

Iterate over image planes of the map returning a tuple with the image array and image plane index.

Returns: val : ndarray Array of image plane values. idx : tuple Index of image plane.
iter_by_pix()[source]

Iterate over elements of the map returning a tuple with values and pixel coordinates.

Parameters: buffersize : int Set the size of the buffer. The map will be returned in chunks of the given size. Map values. pix : tuple Tuple of pixel coordinates.
make_hdu(**kwargs)

Make a FITS HDU with input data.

Parameters: extname : str The HDU extension name. extname_bands : str The HDU extension name for BANDS table. colbase : str The prefix for column names sparse : bool Set INDXSCHM to SPARSE and sparsify the map by only writing pixels with non-zero amplitude.
pad(pad_width)[source]

Pad the spatial dimension of the map by extending the edge of the map by the given number of pixels.

Parameters: pad_width : {sequence, array_like, int} Number of values padded to the edges of each axis, passed to numpy.pad Padded map.
read(filename, **kwargs)

Read a map from a FITS file.

Parameters: filename : str Name of the FITS file. hdu : str Name or index of the HDU with the map data. hdu_bands : str Name or index of the HDU with the BANDS table. If not defined this will be inferred from the FITS header of the map HDU. map_out : MapBase Map object
reproject(geom, order=1, mode='interp')

Reproject this map to a different geometry.

Parameters: geom : MapGeom Geometry of projection. mode : str Method for reprojection. ‘interp’ method interpolates at pixel centers. ‘exact’ method integrates over intersection of pixels. order : int or str Order of interpolating polynomial (0 = nearest-neighbor, 1 = linear, 2 = quadratic, 3 = cubic). Reprojected map.
set_by_coords(coords, vals)

Set pixels at the given map coordinates to the values in vals vector.

Parameters: coords : tuple or MapCoords MapCoords object or tuple of coordinate arrays for each dimension of the map. Tuple should be ordered as (lon, lat, x_0, …, x_n) where x_i are coordinates for non-spatial dimensions of the map. vals : ndarray Values vector. Pixels at coords will be set to these values.
set_by_idx(idx, vals)[source]

Set pixels at the given pixel indices to the values in vals vector.

Parameters: idx : tuple Tuple of pixel index arrays for each dimension of the map. Tuple should be ordered as (I_lon, I_lat, I_0, …, I_n) for WCS maps and (I_hpx, I_0, …, I_n) for HEALPix maps. vals : ndarray Values vector. Pixels at idx will be set to these values.
set_by_pix(pix, vals)

Set pixels at the given pixel coordinates to the values in vals vector.

Parameters: pix : tuple Tuple of pixel index arrays for each dimension of the map. Tuple should be ordered as (I_lon, I_lat, I_0, …, I_n) for WCS maps and (I_hpx, I_0, …, I_n) for HEALPix maps. Pixel indices can be either float or integer type. Float indices will be rounded to the nearest integer. vals : ndarray Values vector. Pixels at pix will be set to these values.
sum_over_axes()[source]

Reduce to a 2D image by summing over non-spatial dimensions.

to_hdulist(**kwargs)
to_swapped_scheme()[source]

Return a new map with the opposite scheme (ring or nested).

to_ud_graded()[source]

Upgrade or downgrade the resolution of the map to the chosen nside.

Parameters: nside : int NSIDE parameter of the new map. preserve_counts : bool Choose whether to preserve counts (total amplitude) or intensity (amplitude per unit solid angle).
to_wcs(sum_bands=False, normalize=True, proj='AIT', oversample=2)[source]

Make a WCS object and convert HEALPIX data into WCS projection.

Parameters: sum_bands : bool Sum over non-spatial axes before reprojecting. If False then the WCS map will have the same dimensionality as the HEALPix one. normalize : bool True -> preserve integral by splitting HEALPIX values between bins wcs : WCS WCS object data : ndarray Reprojected data
upsample(factor)[source]

Upsample the spatial dimension of the map by a given factor.

Parameters: factor : int Upsampling factor. Upsampled map.
write(filename, **kwargs)

Write to a FITS file.

Parameters: filename : str Output file name. extname : str Set the name of the image extension. By default this will be set to SKYMAP (for BINTABLE HDU) or PRIMARY (for IMAGE HDU). extname_bands : str Set the name of the bands table extension. By default this will be set to BANDS. conv : str FITS format convention. By default files will be written to the gamma-astro-data-formats (GADF) format. This option can be used to write files that are compliant with format conventions required by specific software (e.g. the Fermi Science Tools). Supported conventions are ‘gadf’, ‘fgst-ccube’, ‘fgst-ltcube’, ‘fgst-bexpcube’, ‘fgst-template’, ‘fgst-srcmap’, ‘fgst-srcmap-sparse’, ‘galprop’, and ‘galprop2’. sparse : bool Sparsify the map by dropping pixels with zero amplitude. This option is only compatible with the ‘gadf’ format.