EnergyDependentMultiGaussPSF#

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

Bases: ParametricPSF

Triple Gauss analytical PSF depending on true energy and offset.

Parameters:
axeslist of MapAxis or MapAxes
Required axes (in the given order) are:
  • energy_true (true energy axis)

  • migra_axis (energy migration axis)

  • offset_axis (field of view offset axis)

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.