PSFKing#

class gammapy.irf.PSFKing(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#

Bases: gammapy.irf.psf.parametric.ParametricPSF

King profile analytical PSF depending on energy and offset.

This PSF parametrisation and FITS data format is described here: PSF_KING.

Parameters
axeslist of MapAxis or MapAxes

Data axes, required are [“energy_true”, “offset”]

metadict

Meta data

Attributes Summary

axes

MapAxes

data

default_interp_kwargs

fov_alignment

Alignment of the field of view coordinate axes, see FoVAlignment

has_offset_axis

Whether the IRF explicitly depends on offset

is_pointlike

Whether the IRF is pointlike of full containment.

quantity

Quantity

required_axes

required_parameters

tag

unit

Map unit (Unit)

Methods Summary

containment(rad, **kwargs)

Containment of the PSF at given axes coordinates

containment_radius(fraction[, factor])

Containment radius at given axes coordinates

cumsum(axis_name)

Compute cumsum along a given axis

evaluate(rad, **kwargs)

Evaluate the PSF model.

evaluate_containment(rad, gamma, sigma)

Containment of the PSF at given axes coordinates

evaluate_direct(rad, gamma, sigma)

Evaluate the PSF model.

evaluate_parameters(energy_true, offset)

Evaluate analytic PSF parameters at a given energy and offset.

from_hdulist(hdulist[, hdu, format])

Create from HDUList.

from_table(table[, format])

Create parametric psf from Table.

info([fraction, energy_true, offset])

Print PSF summary info.

integral(axis_name, **kwargs)

Compute integral along a given axis

integrate_log_log(axis_name, **kwargs)

Integrate along a given axis.

interp_missing_data(axis_name)

Interpolate missing data along a given axis

is_allclose(other[, rtol_axes, atol_axes])

Compare two data IRFs for equivalency

normalize()

Normalize parametric PSF

pad(pad_width, axis_name, **kwargs)

Pad irf along a given axis.

peek([figsize])

Quick-look summary plots.

plot_containment_radius([ax, fraction, add_cbar])

Plot containment image with energy and theta axes.

plot_containment_radius_vs_energy([ax, ...])

Plot containment fraction as a function of energy.

plot_psf_vs_rad([ax, offset, energy_true])

Plot PSF vs rad.

read(filename[, hdu, format])

Read from file.

slice_by_idx(slices)

Slice sub IRF from IRF object.

to_hdulist([format])

to_psf3d([rad])

Create a PSF3D from a parametric PSF.

to_table([format])

Convert PSF table data to table.

to_table_hdu([format])

Convert to BinTableHDU.

to_unit(unit)

Convert IRF to unit.

write(filename, *args, **kwargs)

Write IRF to fits.

Attributes Documentation

axes#

MapAxes

data#
default_interp_kwargs = {'bounds_error': False, 'fill_value': None}#
fov_alignment#

Alignment of the field of view coordinate axes, see FoVAlignment

has_offset_axis#

Whether the IRF explicitly depends on offset

is_pointlike#

Whether the IRF is pointlike of full containment.

quantity#

Quantity

required_axes = ['energy_true', 'offset']#
required_parameters = ['gamma', 'sigma']#
tag = 'psf_king'#
unit#

Map unit (Unit)

Methods Documentation

containment(rad, **kwargs)#

Containment of the PSF at given axes coordinates

Parameters
radQuantity

Rad value

**kwargsdict

Other coordinates

Returns
containmentndarray

Containment

containment_radius(fraction, factor=20, **kwargs)#

Containment radius at given axes coordinates

Parameters
fractionfloat or ndarray

Containment fraction

factorint

Up-sampling factor of the rad axis, determines the precision of the computed containment radius.

**kwargsdict

Other coordinates

Returns
radiusAngle

Containment radius

cumsum(axis_name)#

Compute cumsum along a given axis

Parameters
axis_namestr

Along which axis to integrate.

Returns
irfIRF

Cumsum IRF

evaluate(rad, **kwargs)#

Evaluate the PSF model.

Parameters
radAngle

Offset from PSF center used for evaluating the PSF on a grid

**kwargsdict

Other coordinates

Returns
psf_valueQuantity

PSF value

static evaluate_containment(rad, gamma, sigma)[source]#

Containment of the PSF at given axes coordinates

Parameters
radQuantity

Rad value

gammaQuantity

Gamma parameter

sigmaQuantity

Sigma parameter

Returns
containmentndarray

Containment

static evaluate_direct(rad, gamma, sigma)[source]#

Evaluate the PSF model.

Formula is given here: PSF_KING.

Parameters
radAngle

Offset from PSF center used for evaluating the PSF on a grid

Returns
psf_valueQuantity

PSF value

evaluate_parameters(energy_true, offset)#

Evaluate analytic PSF parameters at a given energy and offset.

Uses nearest-neighbor interpolation.

Parameters
energy_trueQuantity

energy value

offsetAngle

Offset in the field of view

Returns
valuesQuantity

Interpolated value

classmethod from_hdulist(hdulist, hdu=None, format='gadf-dl3')#

Create from HDUList.

Parameters
hdulistHDUList

HDU list

hdustr

HDU name

format{“gadf-dl3”}

Format specification

Returns
irfIRF

IRF class

classmethod from_table(table, format='gadf-dl3')#

Create parametric psf from Table.

Parameters
tableTable

Table info.

Returns
psfParametricPSF

PSF class

info(fraction=(0.68, 0.95), energy_true=<Quantity [[ 1.],            [10.]] TeV>, offset=<Quantity 0. deg>)#

Print PSF summary info.

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

Parameters
fractionlist

Containment fraction to compute containment radius for.

energy_trueQuantity

Energies to compute containment radius for.

offsetQuantity

Offset to compute containment radius for.

Returns
ssstring

Formatted string containing the summary info.

integral(axis_name, **kwargs)#

Compute integral along a given axis

This method uses interpolation of the cumulative sum.

Parameters
axis_namestr

Along which axis to integrate.

**kwargsdict

Coordinates at which to evaluate the IRF

Returns
arrayQuantity

Returns 2D array with axes offset

integrate_log_log(axis_name, **kwargs)#

Integrate along a given axis.

This method uses log-log trapezoidal integration.

Parameters
axis_namestr

Along which axis to integrate.

**kwargsdict

Coordinates at which to evaluate the IRF

Returns
arrayQuantity

Returns 2D array with axes offset

interp_missing_data(axis_name)#

Interpolate missing data along a given axis

is_allclose(other, rtol_axes=0.001, atol_axes=1e-06, **kwargs)#

Compare two data IRFs for equivalency

Parameters
othergammapy.irfs.ParametricPSF

The PSF to compare against

rtol_axesfloat

Relative tolerance for the axes comparison.

atol_axesfloat

Relative tolerance for the axes comparison.

**kwargsdict

keywords passed to numpy.allclose

Returns
is_allclosebool

Whether the IRF is all close.

normalize()#

Normalize parametric PSF

pad(pad_width, axis_name, **kwargs)#

Pad irf along a given axis.

Parameters
pad_width{sequence, array_like, int}

Number of pixels padded to the edges of each axis.

axis_namestr

Which axis to downsample. By default spatial axes are padded.

**kwargsdict

Keyword argument forwarded to pad

Returns
irfIRF

Padded irf

peek(figsize=(15, 5))#

Quick-look summary plots.

Parameters
figsizetuple

Size of the figure.

plot_containment_radius(ax=None, fraction=0.68, add_cbar=True, **kwargs)#

Plot containment image with energy and theta axes.

Parameters
axAxes

Axes to plot on.

fractionfloat

Containment fraction between 0 and 1.

add_cbarbool

Add a colorbar

**kwargsdict

Keyword arguments passed to pcolormesh

Returns
axAxes

Axes to plot on.

plot_containment_radius_vs_energy(ax=None, fraction=(0.68, 0.95), offset=<Quantity [0., 1.] deg>, **kwargs)#

Plot containment fraction as a function of energy.

Parameters
axAxes

Axes to plot on.

fractionlist of float or ndarray

Containment fraction between 0 and 1.

offsetQuantity

Offset array

**kwargsdict

Keyword arguments passed to plot

Returns
axAxes

Axes to plot on.

plot_psf_vs_rad(ax=None, offset=<Quantity [0.] deg>, energy_true=<Quantity [ 0.1, 1., 10. ] TeV>, **kwargs)#

Plot PSF vs rad.

Parameters
axAxes

Axes to plot on.

offsetAngle

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

energy_trueQuantity

True energy at which to plot the profile

classmethod read(filename, hdu=None, format='gadf-dl3')#

Read from file.

Parameters
filenamestr or Path

Filename

hdustr

HDU name

format{“gadf-dl3”}

Format specification

Returns
irfIRF

IRF class

slice_by_idx(slices)#

Slice sub IRF from IRF object.

Parameters
slicesdict

Dict of axes names and slice object pairs. Contains one element for each non-spatial dimension. Axes not specified in the dict are kept unchanged.

Returns
slicedIRF

Sliced IRF object.

to_hdulist(format='gadf-dl3')#
to_psf3d(rad=None)#

Create a PSF3D from a parametric PSF.

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

Parameters
radQuantity

Rad values

Returns
psf3dPSF3D

PSF3D.

to_table(format='gadf-dl3')#

Convert PSF table data to table.

Parameters
format{“gadf-dl3”}

Format specification

Returns
hdu_listHDUList

PSF in HDU list format.

to_table_hdu(format='gadf-dl3')#

Convert to BinTableHDU.

Parameters
format{“gadf-dl3”}

Format specification

Returns
hduBinTableHDU

IRF data table hdu

to_unit(unit)#

Convert IRF to unit.

write(filename, *args, **kwargs)#

Write IRF to fits.

Calls writeto, forwarding all arguments.