EnergyDependentMultiGaussPSF

class gammapy.irf.EnergyDependentMultiGaussPSF(energy_lo, energy_hi, theta, sigmas, norms, energy_thresh_lo=<Quantity 0.1 TeV>, energy_thresh_hi=<Quantity 100. TeV>)[source]

Bases: object

Triple Gauss analytical PSF depending on energy and theta.

To evaluate the PSF call the to_energy_dependent_table_psf or psf_at_energy_and_theta methods.

Parameters:

energy_lo : Quantity

Lower energy boundary of the energy bin.

energy_hi : Quantity

Upper energy boundary of the energy bin.

theta : Quantity

Center values of the theta bins.

sigmas : list of ‘numpy.ndarray’

Triple Gauss sigma parameters, where every entry is a two dimensional ‘numpy.ndarray’ containing the sigma value for every given energy and theta.

norms : list of ‘numpy.ndarray’

Triple Gauss norm parameters, where every entry is a two dimensional ‘numpy.ndarray’ containing the norm value for every given energy and theta. Norm corresponds to the value of the Gaussian at theta = 0.

energy_thresh_lo : Quantity

Lower save energy threshold of the psf.

energy_thresh_hi : Quantity

Upper save energy threshold of the psf.

Examples

Plot R68 of the PSF vs. theta and energy:

import matplotlib.pyplot as plt
from gammapy.irf import EnergyDependentMultiGaussPSF
filename = '$GAMMAPY_EXTRA/test_datasets/unbundled/irfs/psf.fits'
psf = EnergyDependentMultiGaussPSF.read(filename, hdu='POINT SPREAD FUNCTION')
psf.plot_containment(0.68, show_safe_energy=False)
plt.show()

(png, hires.png, pdf)

../_images/gammapy-irf-EnergyDependentMultiGaussPSF-1.png

Methods Summary

containment_radius(energy, theta[, fraction]) Compute containment for all energy and theta values
from_fits(hdu) Create EnergyDependentMultiGaussPSF from HDU list.
info([fractions, energies, thetas]) Print PSF summary info.
peek([figsize]) Quick-look summary plots.
plot_containment([fraction, ax, …]) Plot containment image with energy and theta axes.
plot_containment_vs_energy([fractions, …]) Plot containment fraction as a function of energy.
psf_at_energy_and_theta(energy, theta) Get MultiGauss2D model for given energy and theta.
read(filename[, hdu]) Create EnergyDependentMultiGaussPSF from FITS file.
to_energy_dependent_table_psf([theta, rad, …]) Convert triple Gaussian PSF ot table PSF.
to_fits() Convert psf table data to FITS hdu list.
to_psf3d(rad) Creates a PSF3D from an analytical PSF.
write(filename, *args, **kwargs) Write PSF to FITS file.

Methods Documentation

containment_radius(energy, theta, fraction=0.68)[source]

Compute containment for all energy and theta values

classmethod from_fits(hdu)[source]

Create EnergyDependentMultiGaussPSF from HDU list.

Parameters:

hdu : BintableHDU

HDU

info(fractions=[0.68, 0.95], energies=<Quantity [ 1., 10.] TeV>, thetas=<Quantity [0.] deg>)[source]

Print PSF summary info.

The containment radius for given fraction, energies and thetas is computed and printed on the command line.

Parameters:

fractions : list

Containment fraction to compute containment radius for.

energies : Quantity

Energies to compute containment radius for.

thetas : Quantity

Thetas to compute containment radius for.

Returns:

ss : string

Formatted string containing the summary info.

peek(figsize=(15, 5))[source]

Quick-look summary plots.

plot_containment(fraction=0.68, ax=None, show_safe_energy=False, add_cbar=True, **kwargs)[source]

Plot containment image with energy and theta axes.

Parameters:

fraction : float

Containment fraction between 0 and 1.

add_cbar : bool

Add a colorbar

plot_containment_vs_energy(fractions=[0.68, 0.95], thetas=<Angle [0., 1.] deg>, ax=None, **kwargs)[source]

Plot containment fraction as a function of energy.

psf_at_energy_and_theta(energy, theta)[source]

Get MultiGauss2D model for given energy and theta.

No interpolation is used.

Parameters:

energy : Quantity

Energy at which a PSF is requested.

theta : Angle

Offset angle at which a PSF is requested.

Returns:

psf : MultiGauss2D

Multigauss PSF object.

classmethod read(filename, hdu='PSF_2D_GAUSS')[source]

Create EnergyDependentMultiGaussPSF from FITS file.

Parameters:

filename : str

File name

to_energy_dependent_table_psf(theta=None, rad=None, exposure=None)[source]

Convert triple Gaussian PSF ot table PSF.

Parameters:

theta : Angle

Offset in the field of view. Default theta = 0 deg

rad : Angle

Offset from PSF center used for evaluating the PSF on a grid. Default offset = [0, 0.005, …, 1.495, 1.5] deg.

exposure : Quantity

Energy dependent exposure. Should be in units equivalent to ‘cm^2 s’. Default exposure = 1.

Returns:

tabe_psf : EnergyDependentTablePSF

to_fits()[source]

Convert psf table data to FITS hdu list.

Returns:

hdu_list : HDUList

PSF in HDU list format.

to_psf3d(rad)[source]

Creates a PSF3D from an analytical PSF.

Parameters:

rad : Quantity or Angle

the array of position errors (rad) on which the PSF3D will be defined

Returns:

psf3d : PSF3D

the PSF3D. It will be defined on the same energy and offset values than the input psf.

write(filename, *args, **kwargs)[source]

Write PSF to FITS file.

Calls writeto, forwarding all arguments.