MapBase

class gammapy.maps.MapBase(geom, data)[source]

Bases: object

Abstract map class.

This can represent WCS- or HEALPIX-based maps with 2 spatial dimensions and N non-spatial dimensions.

Parameters:

geom : MapGeom

Geometry

data : ndarray

Data array

Attributes Summary

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

Methods Summary

create(**kwargs) Create an empty map object.
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.
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([buffersize]) 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([buffersize]) Iterate over elements of the map returning a tuple with values and pixel coordinates.
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.
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

classmethod create(**kwargs)[source]

Create an empty map object.

This method accepts generic options listed below as well as options for HpxMap and WcsMap objects (see create and create for WCS- and HPX-specific options).

Parameters:

coordsys : str

Coordinate system, either Galactic (‘GAL’) or Equatorial (‘CEL’).

map_type : str

Internal map representation. Valid types are wcs, wcs-sparse, hpx, and hpx-sparse.

binsz : float or ndarray

Pixel size in degrees.

skydir : SkyCoord

Coordinate of map center.

axes : list

List of MapAxis objects for each non-spatial dimension. If None then the map will be a 2D image.

dtype : str

Data type, default is float32

unit : str or Unit

Data unit.

Returns:

map : MapBase

Empty map object.

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.

Returns:

map : MapBase

Cropped map.

downsample(factor)[source]

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

Parameters:

factor : int

Downsampling factor.

Returns:

map : MapBase

Downsampled map.

fill_by_coords(coords, weights=None)[source]

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)[source]

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.

get_by_coords(coords, interp=None)[source]

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.

Returns:

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.

Returns:

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.

Returns:

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.

Returns:

vals : ndarray

Values of pixels in the flattened map. np.nan used to flag coords outside of map

iter_by_coords(buffersize=1)[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.

Returns:

val : ndarray

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(buffersize=1)[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.

Returns:

val : ndarray

Map values.

pix : tuple

Tuple of pixel coordinates.

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

Returns:

map : MapBase

Padded map.

classmethod read(filename, **kwargs)[source]

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.

Returns:

map_out : MapBase

Map object

reproject(geom, order=1, mode='interp')[source]

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).

Returns:

map : MapBase

Reprojected map.

set_by_coords(coords, vals)[source]

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)[source]

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.

upsample(factor)[source]

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

Parameters:

factor : int

Upsampling factor.

Returns:

map : MapBase

Upsampled map.

write(filename, **kwargs)[source]

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.