HpxGeom¶
-
class
gammapy.maps.
HpxGeom
(nside, nest=True, coordsys='CEL', region=None, axes=None, conv='gadf', sparse=False)[source]¶ Bases:
gammapy.maps.MapGeom
Geometry class for HEALPIX maps.
This class performs mapping between partial-sky indices (pixel number within a HEALPIX region) and all-sky indices (pixel number within an all-sky HEALPIX map). Multi-band HEALPIX geometries use a global indexing scheme that assigns a unique pixel number based on the all-sky index and band index. In the single-band case the global index is the same as the HEALPIX index.
By default the constructor will return an all-sky map. Partial-sky maps can be defined with the
region
argument.Parameters: nside :
ndarray
HEALPIX nside parameter, the total number of pixels is 12*nside*nside. For multi-dimensional maps one can pass either a single nside value or a vector of nside values defining the pixel size for each image plane. If nside is not a scalar then its dimensionality should match that of the non-spatial axes.
nest : bool
True -> ‘NESTED’, False -> ‘RING’ indexing scheme
coordsys : str
Coordinate system, ‘CEL’ | ‘GAL’
region : str or tuple
Spatial geometry for partial-sky maps. If none the map will encompass the whole sky. String input will be parsed according to HPX_REG header keyword conventions. Tuple input can be used to define an explicit list of pixels encompassed by the geometry.
axes : list
Axes for non-spatial dimensions.
conv : str
Convention for FITS serialization format.
sparse : bool
If True defer allocation of partial- to all-sky index mapping arrays. This option is only compatible with partial-sky maps with an analytic geometry (e.g. DISK).
Attributes Summary
axes
List of non-spatial axes. center_coord
Map coordinate of the center of the geometry. center_pix
Pixel coordinate of the center of the geometry. center_skydir
Sky coordinate of the center of the geometry. conv
Name of default FITS convention associated with this geometry. coordsys
hpx_conv
ipix
HEALPIX pixel and band indices for every pixel in the map. is_allsky
Flag for all-sky maps. is_regular
Flag identifying whether this geometry is regular in non-spatial dimensions. ndim
Number of dimensions (int). nest
Is HEALPix order nested? (bool). npix
Number of pixels in each band. nside
NSIDE in each band. order
ORDER in each band (NSIDE = 2**ORDER). ordering
HEALPix ordering (‘NESTED’ or ‘RING’). projection
Map projection. region
Region string. shape
Shape of non-spatial axes. 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. create
([nside, binsz, nest, coordsys, …])Create an HpxGeom object. crop
(crop_width)Crop the geometry at the edges. downsample
(factor)Downsample the spatial dimension of the geometry by a given factor. from_hdu
(hdu[, hdu_bands])Create an HPX object from a BinTable HDU. from_hdulist
(hdulist[, hdu, hdu_bands])Load a geometry object from a FITS HDUList. from_header
(header[, hdu_bands, pix])Create an HPX object from a FITS header. get_coord
([idx, flat])Get the coordinate array for this geometry. get_idx
([idx, local, flat])Get tuple of pixel indices for this geometry. get_index_list
(nside, nest, region)Get list of pixels indices for all the pixels in a region. get_skydirs
()Get the sky coordinates of all the pixels in this geometry. global_to_local
(idx_global[, ravel])Compute a global (all-sky) index from a local (partial-sky) index. identify_HPX_convention
(header)Identify the convention used to write this file. local_to_global
(idx_local)Compute a local index (partial-sky) from a global (all-sky) index. make_bands_hdu
([hdu, hdu_skymap, conv])make_ebounds_hdu
([hdu])Make a FITS HDU with the energy bin boundaries. make_energies_hdu
([hdu])Make a FITS HDU with the energy bin centers. make_header
(**kwargs)“Build and return FITS header for this HEALPIX map. make_wcs
([proj, oversample, drop_axes, …])Make a WCS projection appropriate for this HPX pixelization. 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. read
(filename, **kwargs)Create a geometry object from a FITS file. skydir_to_pix
(skydir)Return the pixel index of a SkyCoord object. 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. to_slice
(slices[, drop_axes])Create a new geometry by cutting in the non-spatial dimensions of this geometry. to_swapped
()Make a copy of this geometry with a swapped ORDERING. to_ud_graded
(order)Upgrade or downgrade the resolution of this geometry to the given order. upsample
(factor)Upsample the spatial dimension of the geometry by a given factor. write
(data, outfile[, hdu, overwrite])Write input data to a FITS file. Attributes Documentation
-
axes
¶ List of non-spatial axes.
-
center_coord
¶ Map coordinate of the center of the geometry.
Returns: coord : tuple
-
center_pix
¶ Pixel coordinate of the center of the geometry.
Returns: pix : tuple
-
conv
¶ Name of default FITS convention associated with this geometry.
-
coordsys
¶
-
hpx_conv
¶
-
ipix
¶ HEALPIX pixel and band indices for every pixel in the map.
-
is_allsky
¶ Flag for all-sky maps.
-
is_regular
¶ Flag identifying whether this geometry is regular in non-spatial dimensions. False for multi-resolution or irregular geometries. If true all image planes have the same pixel geometry.
-
ndim
¶ Number of dimensions (int).
-
nest
¶ Is HEALPix order nested? (bool).
-
npix
¶ Number of pixels in each band.
For partial-sky geometries this can be less than the number of pixels for the band NSIDE.
-
nside
¶ NSIDE in each band.
-
order
¶ ORDER in each band (NSIDE = 2**ORDER). Set to -1 for bands with NSIDE that is not a power of 2.
-
ordering
¶ HEALPix ordering (‘NESTED’ or ‘RING’).
-
projection
¶ Map projection.
-
region
¶ Region string.
-
shape
¶ Shape of non-spatial axes.
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)¶ 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)¶ 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)¶ Generate a coordinate tuple compatible with this geometry.
Parameters: coord : MapCoord
-
classmethod
create
(nside=None, binsz=None, nest=True, coordsys='CEL', region=None, axes=None, conv='gadf', skydir=None, width=None)[source]¶ Create an HpxGeom object.
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.
region : str
HPX region string. Allows for partial-sky maps.
width : float
Diameter of the map in degrees. If set the map will encompass all pixels within a circular region centered on
skydir
.axes : list
List of axes for non-spatial dimensions.
conv : str
Convention for FITS file format.
Returns: geom :
HpxGeom
A HEALPix geometry object.
Examples
>>> from gammapy.maps import HpxGeom, MapAxis >>> axis = MapAxis.from_bounds(0,1,2) >>> geom = HpxGeom.create(nside=16) >>> geom = HpxGeom.create(binsz=0.1, width=10.0) >>> geom = HpxGeom.create(nside=64, width=10.0, axes=[axis]) >>> geom = HpxGeom.create(nside=[32,64], width=10.0, axes=[axis])
-
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.
-
classmethod
from_hdu
(hdu, hdu_bands=None)[source]¶ Create an HPX object from a BinTable HDU.
Parameters: hdu :
BinTableHDU
The FITS HDU
hdu_bands :
BinTableHDU
The BANDS table HDU
Returns: hpx :
HpxGeom
HEALPix geometry.
-
from_hdulist
(hdulist, hdu=None, hdu_bands=None)¶ 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.
-
classmethod
from_header
(header, hdu_bands=None, pix=None)[source]¶ Create an HPX object from a FITS header.
Parameters: header :
Header
The FITS header
hdu_bands :
BinTableHDU
The BANDS table HDU.
pix : tuple
List of pixel index vectors defining the pixels encompassed by the geometry. For EXPLICIT geometries with HPX_REG undefined this tuple defines the geometry.
Returns: hpx :
HpxGeom
HEALPix geometry.
-
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.
-
static
get_index_list
(nside, nest, region)[source]¶ Get list of pixels indices for all the pixels in a region.
Parameters: nside : int
HEALPIX nside parameter
nest : bool
True for ‘NESTED’, False = ‘RING’
region : str
HEALPIX region string
Returns: ilist :
ndarray
List of pixel indices.
-
global_to_local
(idx_global, ravel=False)[source]¶ Compute a global (all-sky) index from a local (partial-sky) index.
Parameters: idx_global : tuple
A tuple of pixel indices with global HEALPix pixel indices.
ravel : bool
Return a raveled index.
Returns: idx_local : tuple
A tuple of pixel indices with local HEALPIX pixel indices.
-
local_to_global
(idx_local)[source]¶ Compute a local index (partial-sky) from a global (all-sky) index.
Returns: idx_global : tuple
A tuple of pixel index vectors with global HEALPIX pixel indices.
-
make_bands_hdu
(hdu=None, hdu_skymap=None, conv=None)¶
-
make_ebounds_hdu
(hdu='EBOUNDS')[source]¶ Make a FITS HDU with the energy bin boundaries.
Parameters: hdu : str
The HDU extension name
-
make_energies_hdu
(hdu='ENERGIES')[source]¶ Make a FITS HDU with the energy bin centers.
Parameters: hdu : str
The HDU extension name
-
make_wcs
(proj='AIT', oversample=2, drop_axes=True, width_pix=None)[source]¶ Make a WCS projection appropriate for this HPX pixelization.
Parameters: drop_axes : bool
Drop non-spatial axes from the HEALPIX geometry. If False then all dimensions of the HEALPIX geometry will be copied to the WCS geometry.
proj : str
Projection type of WCS geometry.
oversample : float
Oversampling factor for WCS map. This will be the approximate ratio of the width of a HPX pixel to a WCS pixel. If this parameter is None then the width will be set from
width_pix
.width_pix : int
Width of the WCS geometry in pixels. The pixel size will be set to the number of pixels satisfying
oversample
orwidth_pix
whichever is smaller. If this parameter is None then the width will be set fromoversample
.Returns: wcs :
WcsGeom
WCS geometry
-
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.
-
read
(filename, **kwargs)¶ Create a geometry object 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: geom :
MapGeom
Geometry object.
-
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.
-
to_slice
(slices, drop_axes=True)[source]¶ Create a new geometry by cutting in the non-spatial dimensions of this geometry.
Parameters: slices : tuple
Tuple of integers or
slice
objects. Contains one element for each non-spatial dimension.drop_axes : bool
Drop axes for which the slice reduces the size of that dimension to one.
Returns: geom :
MapGeom
Sliced geometry.
-
to_swapped
()[source]¶ Make a copy of this geometry with a swapped ORDERING. (NEST->RING or vice versa)
Returns: geom :
HpxGeom
A HEALPix geometry object.
-
to_ud_graded
(order)[source]¶ Upgrade or downgrade the resolution of this geometry to the given order. This method does not preserve the geometry footprint.
Returns: geom :
HpxGeom
A HEALPix geometry object.
-