PSF3D#

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

Bases: gammapy.irf.psf.core.PSF

PSF with axes: energy, offset, rad.

Data format specification: PSF_TABLE

Parameters
energy_axis_trueMapAxis

True energy axis.

offset_axisMapAxis

Offset axis

rad_axisMapAxis

Rad axis

dataQuantity

PSF (3-dim with axes: psf[rad_index, offset_index, energy_index]

metadict

Meta dict

Attributes Summary

axes

MapAxes

data

default_interp_kwargs

default_unit

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

tag

unit

Map unit (Unit)

Methods Summary

containment(rad, **kwargs)

Containment tof 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([method])

Evaluate IRF

from_hdulist(hdulist[, hdu, format])

Create from HDUList.

from_table(table[, format])

Read 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()

Normalise 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_table([format])

Convert to table

to_table_hdu([format])

Convert to BinTableHDU.

to_unit(unit)

Convert irf to different unit

write(filename, *args, **kwargs)

Write IRF to fits.

Attributes Documentation

axes#

MapAxes

data#
default_interp_kwargs = {'bounds_error': False, 'fill_value': 0.0}#
default_unit = Unit("1 / sr")#
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', 'rad']#
tag = 'psf_table'#
unit#

Map unit (Unit)

Methods Documentation

containment(rad, **kwargs)#

Containment tof 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(method=None, **kwargs)#

Evaluate IRF

Parameters
**kwargsdict

Coordinates at which to evaluate the IRF

methodstr {‘linear’, ‘nearest’}, optional

Interpolation method

Returns
arrayQuantity

Interpolated values

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')#

Read from Table.

Parameters
tableTable

Table with irf data

format{“gadf-dl3”}

Format specification

Returns
irfIRF

IRF 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.IRF

The irf 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()#

Normalise 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_table(format='gadf-dl3')#

Convert to table

Parameters
format{“gadf-dl3”}

Format specification

Returns
tableTable

IRF data table

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 different unit

Parameters
unitUnit or str

New unit

Returns
irfIRF

IRF with new unit and converted data

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

Write IRF to fits.

Calls writeto, forwarding all arguments.