# TablePSF¶

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

Bases: object

Parameters
rad_axisQuantity with angle units

Offset wrt source position

psf_valueQuantity with sr^-1 units

PSF value array

interp_kwargsdict

Keyword arguments passed to ScaledRegularGridInterpolator

Attributes Summary

Methods Summary

 containment(rad_max) Compute PSF containment fraction. containment_radius(fraction) Containment radius. evaluate(rad) Evaluate PSF. from_shape(shape, width, rad) Make TablePSF objects with commonly used shapes. Print basic info. Normalize PSF to unit integral. Plot PSF vs radius.

Attributes Documentation

rad_axis

Methods Documentation

containment(rad_max)[source]

Compute PSF containment fraction.

Parameters
rad_maxQuantity

Offset angle range

Returns
integralfloat

PSF integral

containment_radius(fraction)[source]

Parameters
fractionarray_like

Containment fraction (range 0 .. 1)

Returns
radAngle

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

Print basic info.

normalize()[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(ax=None, **kwargs)[source]

ax
Keyword arguments passed to matplotlib.pyplot.plot