EnergyDispersion2D#
- class gammapy.irf.EnergyDispersion2D[source]#
Bases:
IRF
Offset-dependent energy dispersion matrix.
Data format specification: EDISP_2D
- Parameters:
Examples
Read energy dispersion IRF from disk:
>>> from gammapy.maps import MapAxis, MapAxes >>> from gammapy.irf import EnergyDispersion2D >>> filename = '$GAMMAPY_DATA/hess-dl3-dr1/data/hess_dl3_dr1_obs_id_020136.fits.gz' >>> edisp2d = EnergyDispersion2D.read(filename, hdu="EDISP")
Create energy dispersion matrix (
EnergyDispersion2D
) for a given field of view offset and energy binning:>>> energy_axis = MapAxis.from_bounds(0.1, 20, nbin=60, unit="TeV", interp="log", name='energy') >>> edisp = edisp2d.to_edisp_kernel( ... offset='1.2 deg', ... energy_axis=energy_axis, ... energy_axis_true=energy_axis.copy(name='energy_true'), ... )
Create energy dispersion IRF from axes:
>>> energy_axis_true = MapAxis.from_energy_bounds("1 TeV", "10 TeV", nbin=10, name="energy_true") >>> offset_axis = MapAxis.from_bounds(0, 1, nbin=3, unit="deg", name="offset", node_type="edges") >>> migra_axis = MapAxis.from_bounds(0, 3, nbin=3, name="migra", node_type="edges") >>> axes = MapAxes([energy_axis_true, migra_axis, offset_axis]) >>> edisp2d_axes = EnergyDispersion2D(axes=axes)
Attributes Summary
Methods Summary
from_gauss
(energy_axis_true, migra_axis, ...)Create Gaussian energy dispersion matrix (
EnergyDispersion2D
).Normalise energy dispersion.
peek
([figsize])Quick-look summary plots.
plot_bias
([ax, offset, add_cbar, axes_loc, ...])Plot migration as a function of true energy for a given offset.
plot_migration
([ax, offset, energy_true])Plot energy dispersion for given offset and true energy.
to_edisp_kernel
(offset[, energy_axis_true, ...])Detector response R(Delta E_reco, Delta E_true).
Attributes Documentation
- default_unit = Unit(dimensionless)#
- required_axes = ['energy_true', 'migra', 'offset']#
- tag = 'edisp_2d'#
Methods Documentation
- classmethod from_gauss(energy_axis_true, migra_axis, offset_axis, bias, sigma, pdf_threshold=1e-06)[source]#
Create Gaussian energy dispersion matrix (
EnergyDispersion2D
).The output matrix will be Gaussian in (energy_true / energy).
The
bias
andsigma
should be either floats or arrays of same dimension thanenergy_true
.bias
refers to the mean value of themigra
distribution minus one, i.e.bias=0
means no bias.Note that, the output matrix is flat in offset.
- Parameters:
- energy_axis_true
MapAxis
True energy axis.
- migra_axis
Quantity
Migra axis.
- offset_axis
Quantity
Bin edges of offset.
- biasfloat or
ndarray
Center of Gaussian energy dispersion, bias.
- sigmafloat or
ndarray
RMS width of Gaussian energy dispersion, resolution.
- pdf_thresholdfloat, optional
Zero suppression threshold. Default is 1e-6.
- energy_axis_true
- peek(figsize=(15, 5))[source]#
Quick-look summary plots.
This method creates a figure with three subplots:
Bias plot : migration as a function of true energy for a given offset
Migration matrix plot : energy dispersion for given offset and true energy
Energy dispersion matrix plot : probability density function matrix to have
energy
as a function ofenergy_true
- Parameters:
- figsizetuple, optional
Size of the resulting plot. Default is (15, 5).
- plot_bias(ax=None, offset=None, add_cbar=False, axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#
Plot migration as a function of true energy for a given offset.
- Parameters:
- ax
Axes
, optional Matplotlib axes. Default is None.
- offset
Angle
, optional Offset. Default is None.
- add_cbarbool, optional
Add a colorbar to the plot. Default is False.
- axes_locdict, optional
Keyword arguments passed to
append_axes
.- kwargs_colorbardict, optional
Keyword arguments passed to
colorbar
.- kwargsdict
Keyword arguments passed to
pcolormesh
.
- ax
- Returns:
- ax
Axes
Matplotlib axes.
- ax
- plot_migration(ax=None, offset=None, energy_true=None, **kwargs)[source]#
Plot energy dispersion for given offset and true energy.
- to_edisp_kernel(offset, energy_axis_true=None, energy_axis=None)[source]#
Detector response R(Delta E_reco, Delta E_true).
Probability to reconstruct an energy in a given true energy band in a given reconstructed energy band.
- Parameters:
- Returns:
- edisp
EDispKernel
Energy dispersion matrix.
- edisp
- __init__(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)#
- classmethod __new__(*args, **kwargs)#