EnergyDependentMultiGaussPSF#

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

Bases: gammapy.irf.psf.parametric.ParametricPSF

Triple Gauss analytical PSF depending on true energy and offset.

Parameters
axeslist of MapAxis

Required axes are [“energy_true”, “offset”].

datarecarray

Data array.

metadict

Metadata dictionary.

Examples

Plot R68 of the PSF vs. offset and true energy:

import matplotlib.pyplot as plt
from gammapy.irf import EnergyDependentMultiGaussPSF
filename = '$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits'
psf = EnergyDependentMultiGaussPSF.read(filename, hdu='POINT SPREAD FUNCTION')
psf.plot_containment_radius(fraction=0.68)
plt.show()

(png, hires.png, pdf)

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

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 as a 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, **kwargs)

Containment of the PSF at given axes coordinates.

evaluate_direct(rad, **kwargs)

Evaluate 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 information.

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, ...])

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])

Write the HDU list.

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': 0.0}#
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 = ['sigma_1', 'sigma_2', 'sigma_3', 'scale', 'ampl_2', 'ampl_3']#
tag = 'psf_3gauss'#
unit#

Map unit as a 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, optional

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

**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, **kwargs)[source]#

Containment of the PSF at given axes coordinates.

Parameters
radQuantity

Rad value.

**kwargsdict

Parameters, see required_parameters.

Returns
containmentndarray

Containment.

static evaluate_direct(rad, **kwargs)[source]#

Evaluate PSF model.

Parameters
radQuantity

Rad value.

**kwargsdict

Parameters, see required_parameters.

Returns
valuendarray

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. Default is “gadf-dl3”.

Returns
irfIRF

IRF class.

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

Create parametric PSF from Table.

Parameters
tableTable

Table information.

format{“gadf-dl3”}, optional

Format specification. Default is “gadf-dl3”.

Returns
psfParametricPSF

PSF class.

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

Print PSF summary information.

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

Parameters
fractionlist, optional

Containment fraction to compute containment radius for, between 0 and 1. Default is (0.68, 0.95).

energy_trueQuantity, optional

Energies to compute containment radius for. Default is ([1.0], [10.0]) TeV.

offsetQuantity, optional

Offset to compute containment radius for. Default is 0 deg.

Returns
infostring

Formatted string containing the summary information.

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, optional

Relative tolerance for the axis comparison. Default is 1e-3.

atol_axesfloat, optional

Relative tolerance for the axis comparison. Default is 1e-6.

**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

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, optional

Size of the figure. Default is (15, 5).

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

Plot containment image with energy and theta axes.

Parameters
axAxes, optional

Matplotlib axes. Default is None.

fractionfloat, optional

Containment fraction between 0 and 1. Default is 0.68.

add_cbarbool, optional

Add a colorbar. Default is True.

axes_locdict, optional

Keyword arguments passed to append_axes.

kwargs_colorbardict, optional

Keyword arguments passed to colorbar.

**kwargsdict

Keyword arguments passed to pcolormesh.

Returns
axAxes

Matplotlib axes.

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, optional

Matplotlib axes. Default is None.

fractionlist of float or ndarray, optional

Containment fraction between 0 and 1. Default is (0.68, 0.95).

offsetQuantity, optional

Offset array. Default is (0, 1) deg.

**kwargsdict

Keyword arguments passed to plot.

Returns
axAxes

Matplotlib axes.

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, optional

Matplotlib axes. Default is None.

offsetAngle, optional

Offset in the field of view. Default is 0 deg.

energy_trueQuantity, optional

True energy at which to plot the profile. Default is [0.1, 1, 10] TeV.

kwargsdict

Keyword arguments.

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

Read from file.

Parameters
filenamestr or Path

Filename.

hdustr

HDU name.

format{“gadf-dl3”}, optional

Format specification. Default is “gadf-dl3”.

Returns
irfIRF

IRF class.

slice_by_idx(slices)#

Slice sub IRF from IRF object.

Parameters
slicesdict

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

Returns
slicedIRF

Sliced IRF object.

to_hdulist(format='gadf-dl3')#

Write the HDU list.

Parameters
format{“gadf-dl3”}, optional

Format specification. Default is “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

3D PSF.

to_table(format='gadf-dl3')#

Convert PSF table data to table.

Parameters
format{“gadf-dl3”}

Format specification. Default is “gadf-dl3”.

Returns
hdu_listHDUList

PSF in HDU list format.

to_table_hdu(format='gadf-dl3')#

Convert to BinTableHDU.

Parameters
format{“gadf-dl3”}, optional

Format specification. Default is “gadf-dl3”.

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.