PSFKernel#
- class gammapy.irf.PSFKernel(psf_kernel_map, normalize=True)[source]#
Bases:
object
PSF kernel for
Map
.This is a container class to store a PSF kernel that can be used to convolve
WcsNDMap
objects. It is usually computed from anPSFMap
.- Parameters
- psf_kernel_map
Map
PSF kernel stored in a Map
- psf_kernel_map
Examples
from gammapy.maps import Map, WcsGeom, MapAxis from gammapy.irf import PSFMap from astropy import units as u # Define energy axis energy_axis_true = MapAxis.from_energy_bounds( "0.1 TeV", "10 TeV", nbin=4, name="energy_true ) # Create WcsGeom and map geom = WcsGeom.create(binsz=0.02 * u.deg, width=2.0 * u.deg, axes=[energy_axis_true]) some_map = Map.from_geom(geom) # Fill map at three positions some_map.fill_by_coord([[0, 0, 0], [0, 0, 0], [0.3, 1, 3]]) psf = PSFMap.from_gauss( energy_axis_true=energy_axis_true, sigma=[0.3, 0.2, 0.1] * u.deg ) kernel = psf.get_psf_kernel(geom=geom, max_radius=1*u.deg) # Do the convolution some_map_convolved = some_map.convolve(kernel) some_map_convolved.plot_grid();
Attributes Summary
Access the PSFKernel numpy array
The map object holding the kernel (
Map
)Methods Summary
from_gauss
(geom, sigma[, max_radius, factor])Create Gaussian PSF.
from_spatial_model
(model, geom[, ...])Create PSF kernel from spatial model
Force normalisation of the kernel
peek
([figsize])Quick-look summary plots.
plot_kernel
([ax, energy, add_cbar])Plot PSF kernel.
read
(*args, **kwargs)Read kernel Map from file.
slice_by_idx
(slices)Slice by idx
to_image
([spectrum, exposure, keepdims])Transform 3D PSFKernel into a 2D PSFKernel.
write
(*args, **kwargs)Write the Map object which contains the PSF kernel to file.
Attributes Documentation
- data#
Access the PSFKernel numpy array
Methods Documentation
- classmethod from_gauss(geom, sigma, max_radius=None, factor=4)[source]#
Create Gaussian PSF.
This is used for testing and examples. The map geometry parameters (pixel size, energy bins) are taken from
geom
. The Gaussian widthsigma
is a scalar,TODO : support array input if it should vary along the energy axis.
- classmethod from_spatial_model(model, geom, max_radius=None, factor=4)[source]#
Create PSF kernel from spatial model
- to_image(spectrum=None, exposure=None, keepdims=True)[source]#
Transform 3D PSFKernel into a 2D PSFKernel.
- Parameters
- spectrum
SpectralModel
Spectral model to compute the weights. Default is power-law with spectral index of 2.
- exposure
Quantity
orndarray
1D array containing exposure in each true energy bin. It must have the same size as the PSFKernel energy axis. Default is uniform exposure over energy.
- keepdimsbool
If true, the resulting PSFKernel will keep an energy axis with one bin. Default is True.
- spectrum
- Returns
- weighted_kernel
PSFKernel
the weighted kernel summed over energy
- weighted_kernel