MapGeom

class gammapy.maps.MapGeom[source]

Bases: object

Base class for WCS and HEALPix geometries.

Attributes Summary

center_coord
center_pix
center_skydir
data_shape Shape of the Numpy data array matching this geometry.
is_allsky
is_image Whether the geom is equivalent to an image without extra dimensions.

Methods Summary

contains(coords) Check if a given map coordinate is contained in the geometry.
contains_pix(pix) Check if a given pixel coordinate is contained in the geometry.
coord_to_idx(coords[, clip]) Convert map coordinates to pixel indices.
coord_to_pix(coords) Convert map coordinates to pixel coordinates.
coord_to_tuple(coord) Generate a coordinate tuple compatible with this geometry.
copy(**kwargs) Copy MapGeom instance and overwrite given attributes.
crop(crop_width) Crop the geometry at the edges.
downsample(factor) Downsample the spatial dimension of the geometry by a given factor.
energy_mask([emin, emax]) Create a mask for a given energy range.
from_hdulist(hdulist[, hdu, hdu_bands]) Load a geometry object from a FITS HDUList.
get_axis_by_name(name) Get an axis by name (case in-sensitive).
get_axis_index_by_name(name) Get an axis index by name (case in-sensitive).
get_coord([idx, flat]) Get the coordinate array for this geometry.
get_idx([idx, local, flat]) Get tuple of pixel indices for this geometry.
make_bands_hdu([hdu, hdu_skymap, conv])
pad(pad_width) Pad the geometry at the edges.
pix_to_coord(pix) Convert pixel coordinates to map coordinates.
pix_to_idx(pix[, clip]) Convert pixel coordinates to pixel indices.
slice_by_idx(slices) Create a new geometry by cutting in the non-spatial dimensions of this geometry.
solid_angle() Solid angle (Quantity in sr).
to_cube(axes) Create a new geometry by appending a list of non-spatial axes to the present geometry.
to_image() Create a 2D geometry by dropping all non-spatial dimensions of this geometry.
upsample(factor) Upsample the spatial dimension of the geometry by a given factor.

Attributes Documentation

center_coord
center_pix
center_skydir
data_shape

Shape of the Numpy data array matching this geometry.

is_allsky
is_image

Whether the geom is equivalent to an image without extra dimensions.

Methods Documentation

contains(coords)[source]

Check if a given map coordinate is contained in the geometry.

Parameters:
coords : tuple or MapCoord

Tuple of map coordinates.

Returns:
containment : ndarray

Bool array.

contains_pix(pix)[source]

Check if a given pixel coordinate is contained in the geometry.

Parameters:
pix : tuple

Tuple of pixel coordinates.

Returns:
containment : ndarray

Bool array.

coord_to_idx(coords, clip=False)[source]

Convert map coordinates to pixel indices.

Parameters:
coords : tuple or MapCoord

Coordinate values in each dimension of the map. This can either be a tuple of numpy arrays or a MapCoord object. If passed as a tuple then the ordering should be (longitude, latitude, c_0, …, c_N) where c_i is the coordinate vector for axis i.

clip : bool

Choose whether to clip indices to the valid range of the geometry. If false then indices for coordinates outside the geometry range will be set -1.

Returns:
pix : tuple

Tuple of pixel indices in image and band dimensions. Elements set to -1 correspond to coordinates outside the map.

coord_to_pix(coords)[source]

Convert map coordinates to pixel coordinates.

Parameters:
coords : tuple

Coordinate values in each dimension of the map. This can either be a tuple of numpy arrays or a MapCoord object. If passed as a tuple then the ordering should be (longitude, latitude, c_0, …, c_N) where c_i is the coordinate vector for axis i.

Returns:
pix : tuple

Tuple of pixel coordinates in image and band dimensions.

coord_to_tuple(coord)[source]

Generate a coordinate tuple compatible with this geometry.

Parameters:
coord : MapCoord
copy(**kwargs)[source]

Copy MapGeom instance and overwrite given attributes.

Parameters:
**kwargs : dict

Keyword arguments to overwrite in the map geometry constructor.

Returns:
copy : MapGeom

Copied map geometry.

crop(crop_width)[source]

Crop the geometry at the edges.

Parameters:
crop_width : {sequence, array_like, int}

Number of values cropped from the edges of each axis.

Returns:
geom : MapGeom

Cropped geometry.

downsample(factor)[source]

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

Parameters:
factor : int

Downsampling factor.

Returns:
geom : MapGeom

Downsampled geometry.

energy_mask(emin=None, emax=None)[source]

Create a mask for a given energy range.

Parameters:
emin, emax : Quantity

Energy range

classmethod from_hdulist(hdulist, hdu=None, hdu_bands=None)[source]

Load a geometry 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.

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:
geom : MapGeom

Geometry object.

get_axis_by_name(name)[source]

Get an axis by name (case in-sensitive).

Parameters:
name : str

Name of the requested axis

Returns:
axis : MapAxis

Axis

get_axis_index_by_name(name)[source]

Get an axis index by name (case in-sensitive).

Parameters:
name : str

Axis name

Returns:
index : int

Axis index

get_coord(idx=None, flat=False)[source]

Get the coordinate array for this geometry.

Returns a coordinate array with the same shape as the data array. Pixels outside the geometry are set to NaN. Coordinates for a single image plane can be accessed by setting idx to the index tuple of a plane.

Parameters:
idx : tuple, optional

A tuple of indices with one index for each non-spatial dimension. If defined only coordinates for the image plane with this index will be returned. If none then coordinates for all pixels will be returned.

flat : bool, optional

Return a flattened array containing only coordinates for pixels contained in the geometry.

Returns:
coords : tuple

Tuple of coordinate vectors with one vector for each dimension.

get_idx(idx=None, local=False, flat=False)[source]

Get tuple of pixel indices for this geometry.

Returns all pixels in the geometry by default. Pixel indices for a single image plane can be accessed by setting idx to the index tuple of a plane.

Parameters:
idx : tuple, optional

A tuple of indices with one index for each non-spatial dimension. If defined only pixels for the image plane with this index will be returned. If none then all pixels will be returned.

local : bool

Flag to return local or global pixel indices. Local indices run from 0 to the number of pixels in a given image plane.

flat : bool, optional

Return a flattened array containing only indices for pixels contained in the geometry.

Returns:
idx : tuple

Tuple of pixel index vectors with one vector for each dimension.

make_bands_hdu(hdu=None, hdu_skymap=None, conv=None)[source]
pad(pad_width)[source]

Pad the geometry at the edges.

Parameters:
pad_width : {sequence, array_like, int}

Number of values padded to the edges of each axis.

Returns:
geom : MapGeom

Padded geometry.

pix_to_coord(pix)[source]

Convert pixel coordinates to map coordinates.

Parameters:
pix : tuple

Tuple of pixel coordinates.

Returns:
coords : tuple

Tuple of map coordinates.

pix_to_idx(pix, clip=False)[source]

Convert pixel coordinates to pixel indices. Returns -1 for pixel coordinates that lie outside of the map.

Parameters:
pix : tuple

Tuple of pixel coordinates.

clip : bool

Choose whether to clip indices to the valid range of the geometry. If false then indices for coordinates outside the geometry range will be set -1.

Returns:
idx : tuple

Tuple of pixel indices.

slice_by_idx(slices)[source]

Create a new geometry by cutting in the non-spatial dimensions of this geometry.

Parameters:
slices : dict

Dict of axes names and integers or slice object pairs. Contains one element for each non-spatial dimension. For integer indexing the correspoding axes is dropped from the map. Axes not specified in the dict are kept unchanged.

Returns:
geom : MapGeom

Sliced geometry.

solid_angle()[source]

Solid angle (Quantity in sr).

to_cube(axes)[source]

Create a new geometry by appending a list of non-spatial axes to the present geometry. This will result in a new geometry with N+M dimensions where N is the number of current dimensions and M is the number of axes in the list.

Parameters:
axes : list

Axes that will be appended to this geometry.

Returns:
geom : MapGeom

Map geometry.

to_image()[source]

Create a 2D geometry by dropping all non-spatial dimensions of this geometry.

Returns:
geom : MapGeom

Image geometry.

upsample(factor)[source]

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

Parameters:
factor : int

Upsampling factor.

Returns:
geom : MapGeom

Upsampled geometry.