# TablePSF¶

class gammapy.irf.TablePSF(rad, psf_value, interp_kwargs=None)[source]

Bases: object

Parameters
radQuantity with angle units

Offset wrt source position

psf_valueQuantity with sr^-1 units

PSF value array

interp_kwargsdict

Keyword arguments passed to ScaledRegularGridInterpolator

Methods Summary

 broaden(self, factor[, normalize]) Broaden PSF by scaling the offset array. containment(self, rad_max) Compute PSF containment fraction. containment_radius(self, fraction) Containment radius. evaluate(self, rad) Evaluate PSF. from_shape(shape, width, rad) Make TablePSF objects with commonly used shapes. info(self) Print basic info. normalize(self) Normalize PSF to unit integral. plot_psf_vs_rad(self[, ax]) Plot PSF vs radius.

Methods Documentation

broaden(self, factor, normalize=True)[source]

Broaden PSF by scaling the offset array.

For a broadening factor $$f$$ and the offset array $$r$$, the offset array scaled in the following way:

$r_{new} = f \times r_{old} \frac{dP}{dr}(r_{new}) = \frac{dP}{dr}(r_{old})$
Parameters
factorfloat

normalizebool

containment(self, rad_max)[source]

Compute PSF containment fraction.

Parameters
rad_maxQuantity

Offset angle range

Returns
integralfloat

PSF integral

containment_radius(self, fraction)[source]

Parameters
fractionarray_like

Containment fraction (range 0 .. 1)

Returns
radAngle

evaluate(self, rad)[source]

Evaluate PSF.

The following PSF quantities are available:

• ‘dp_domega’: PDF per 2-dim solid angle $$\Omega$$ in sr^-1

$\frac{dP}{d\Omega}$
Parameters
radAngle

Offset wrt source position

Returns
psf_valueQuantity

PSF value

classmethod from_shape(shape, width, rad)[source]

Make TablePSF objects with commonly used shapes.

This function is mostly useful for examples and testing.

Parameters
shape{‘disk’, ‘gauss’}

PSF shape.

widthQuantity with angle units

PSF width angle (radius for disk, sigma for Gauss).

radQuantity with angle units

Offset angle

Returns
psfTablePSF

Table PSF

Examples

>>> import numpy as np
>>> from astropy.coordinates import Angle
>>> from gammapy.irf import TablePSF
>>> rad = Angle(np.linspace(0, 0.7, 100), 'deg')

info(self)[source]

Print basic info.

normalize(self)[source]

Normalize PSF to unit integral.

Computes the total PSF integral via the $$dP / dr$$ spline and then divides the $$dP / dr$$ array.

plot_psf_vs_rad(self, ax=None, **kwargs)[source]

ax
Keyword arguments passed to matplotlib.pyplot.plot