EnergyDispersion2D#
- class gammapy.irf.EnergyDispersion2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#
Bases:
gammapy.irf.core.IRF
Offset-dependent energy dispersion matrix.
Data format specification: EDISP_2D
- Parameters
- energy_axis_true
MapAxis
True energy axis
- migra_axis
MapAxis
Energy migration axis
- offset_axis
MapAxis
Field of view offset axis
- data
ndarray
Energy dispersion probability density
- energy_axis_true
See also
EnergyDispersion
Examples
Read energy dispersion IRF from disk:
>>> from gammapy.maps import MapAxis >>> 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 (
EnergyDispersion
) for a given field of view offset and energy binning:>>> energy = MapAxis.from_bounds(0.1, 20, nbin=60, unit="TeV", interp="log").edges >>> edisp = edisp2d.to_edisp_kernel(offset='1.2 deg', energy=energy, energy_true=energy)
Attributes Summary
MapAxes
Alignment of the field of view coordinate axes, see
FoVAlignment
Whether the IRF explicitly depends on offset
Whether the IRF is pointlike of full containment.
Map unit (
Unit
)Methods Summary
cumsum
(axis_name)Compute cumsum along a given axis
evaluate
([method])Evaluate IRF
from_gauss
(energy_axis_true, migra_axis, ...)Create Gaussian energy dispersion matrix (
EnergyDispersion2D
).from_hdulist
(hdulist[, hdu, format])Create from
HDUList
.from_table
(table[, format])Read from
Table
.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
Normalise energy dispersion
pad
(pad_width, axis_name, **kwargs)Pad irf along a given axis.
peek
([figsize])Quick-look summary plots.
plot_bias
([ax, offset, add_cbar])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.
read
(filename[, hdu, format])Read from file.
slice_by_idx
(slices)Slice sub IRF from IRF object.
to_edisp_kernel
(offset[, energy_true, energy])Detector response R(Delta E_reco, Delta E_true)
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(dimensionless)#
- 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.
- required_axes = ['energy_true', 'migra', 'offset']#
- tag = 'edisp_2d'#
Methods Documentation
- cumsum(axis_name)#
Compute cumsum along a given axis
- Parameters
- axis_namestr
Along which axis to integrate.
- Returns
- irf
IRF
Cumsum IRF
- irf
- evaluate(method=None, **kwargs)#
Evaluate IRF
- Parameters
- **kwargsdict
Coordinates at which to evaluate the IRF
- methodstr {‘linear’, ‘nearest’}, optional
Interpolation method
- Returns
- array
Quantity
Interpolated values
- array
- 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
- classmethod from_hdulist(hdulist, hdu=None, format='gadf-dl3')#
Create from
HDUList
.- Parameters
- hdulist
HDUList
HDU list
- hdustr
HDU name
- format{“gadf-dl3”}
Format specification
- hdulist
- Returns
- irf
IRF
IRF class
- irf
- classmethod from_table(table, format='gadf-dl3')#
Read from
Table
.- Parameters
- table
Table
Table with irf data
- format{“gadf-dl3”}
Format specification
- table
- Returns
- irf
IRF
IRF class.
- irf
- 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
- array
Quantity
Returns 2D array with axes offset
- array
- 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
- array
Quantity
Returns 2D array with axes offset
- array
- 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
- other
gammapy.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
- other
- Returns
- is_allclosebool
Whether the IRF is all close.
- 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
- irf
IRF
Padded irf
- irf
- peek(figsize=(15, 5))[source]#
Quick-look summary plots.
- Parameters
- figsize(float, float)
Size of the resulting plot
- plot_bias(ax=None, offset=None, add_cbar=False, **kwargs)[source]#
Plot migration as a function of true energy for a given offset.
- Parameters
- ax
Axes
, optional Axis
- offset
Angle
, optional Offset
- add_cbarbool
Add a colorbar to the plot.
- kwargsdict
Keyword arguments passed to
pcolormesh
.
- ax
- Returns
- ax
Axes
Axis
- ax
- plot_migration(ax=None, offset=None, energy_true=None, **kwargs)[source]#
Plot energy dispersion for given offset and true energy.
- classmethod read(filename, hdu=None, format='gadf-dl3')#
Read from file.
- Parameters
- filenamestr or
Path
Filename
- hdustr
HDU name
- format{“gadf-dl3”}
Format specification
- filenamestr or
- Returns
- irf
IRF
IRF class
- irf
- 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
- sliced
IRF
Sliced IRF object.
- sliced
- to_edisp_kernel(offset, energy_true=None, energy=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
- to_hdulist(format='gadf-dl3')#
- to_table(format='gadf-dl3')#
Convert to table
- Parameters
- format{“gadf-dl3”}
Format specification
- Returns
- table
Table
IRF data table
- table
- to_table_hdu(format='gadf-dl3')#
Convert to
BinTableHDU
.- Parameters
- format{“gadf-dl3”}
Format specification
- Returns
- hdu
BinTableHDU
IRF data table hdu
- hdu
- to_unit(unit)#
Convert irf to different unit
- Parameters
- unit
Unit
or str New unit
- unit
- Returns
- irf
IRF
IRF with new unit and converted data
- irf