EnergyDispersion2D¶
-
class
gammapy.irf.EnergyDispersion2D(e_true_lo, e_true_hi, migra_lo, migra_hi, offset_lo, offset_hi, data, interp_kwargs=None)[source]¶ Bases:
objectOffset-dependent energy dispersion matrix.
See edisp_2d
Parameters: e_true_lo :
QuantityTrue energy axis lower bounds
e_true_hi :
QuantityTrue energy axis upper bounds
migra_lo :
ndarray, listMigration axis lower bounds
migra_hi :
ndarray, listMigration axis upper bounds
offset_lo :
AngleOffset axis lower bounds
offset_hi :
AngleOffset axis upper bounds
data :
ndarrayPDF matrix
Examples
Read energy dispersion from disk and create RMF matrix
>>> from gammapy.irf import EnergyDispersion2D >>> from gammapy.utils.energy import EnergyBounds >>> filename = '$GAMMAPY_EXTRA/test_datasets/irf/hess/pa/hess_edisp_2d_023523.fits.gz' >>> edisp = EnergyDispersion2D.read(filename, hdu='ENERGY DISPERSION') >>> print(edisp) EnergyDispersion2D NDDataArray summary info e_true : size = 15, min = 0.125 TeV, max = 80.000 TeV migra : size = 100, min = 0.051, max = 10.051 offset : size = 6, min = 0.125 deg, max = 2.500 deg Data : size = 9000, min = 0.000, max = 3.405 >>> e_axis = EnergyBounds.equal_log_spacing(0.1,20,60, 'TeV') >>> offset = '1.2 deg' >>> rmf = edisp.to_energy_dispersion(offset=offset, e_reco=e_axis, e_true=e_axis) >>> print(rmf) EnergyDispersion NDDataArray summary info e_true : size = 60, min = 0.105 TeV, max = 19.136 TeV e_reco : size = 60, min = 0.105 TeV, max = 19.136 TeV Data : size = 3600, min = 0.000, max = 0.266
Attributes Summary
default_interp_kwargsDefault Interpolation kwargs for NDDataArray.e_trueTrue energy axis migraEnergy migration axis offsetOffset axis Methods Summary
from_gauss(e_true, migra, bias, sigma, offset)Create Gaussian EnergyDispersion2Dmatrix.from_hdulist(hdulist[, hdu])from_table(table)Create from Tableget_response(offset, e_true[, e_reco, ...])Detector response R(Delta E_reco, E_true) 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, e_true, migra])Plot energy dispersion for given offset and true energy. read(filename[, hdu])Read from FITS file. to_energy_dispersion(offset[, e_true, e_reco])Detector response R(Delta E_reco, Delta E_true) Attributes Documentation
-
default_interp_kwargs= {'fill_value': None, 'bounds_error': False}¶ Default Interpolation kwargs for
NDDataArray. Extrapolate.
-
e_true¶ True energy axis
-
migra¶ Energy migration axis
-
offset¶ Offset axis
Methods Documentation
-
classmethod
from_gauss(e_true, migra, bias, sigma, offset)[source]¶ Create Gaussian
EnergyDispersion2Dmatrix.The output matrix will be Gaussian in (e_true / e_reco). bias and sigma should be either floats or arrays of same dimension than e_true. Note that, the output matrix is flat in offset.
Parameters: e_true :
Quantity,BinnedDataAxisBin edges of true energy axis
migra :
Quantity,BinnedDataAxisBin edges of migra axis
bias : float or
arrayCenter of Gaussian energy dispersion, bias
sigma : float or
arrayRMS width of Gaussian energy dispersion, resolution
offset :
Quantity,BinnedDataAxis, optionalBin edges of offset
-
get_response(offset, e_true, e_reco=None, migra_step=0.005)[source]¶ Detector response R(Delta E_reco, E_true)
Probability to reconstruct a given true energy in a given reconstructed energy band. In each reco bin, you integrate with a riemann sum over the default migra bin of your analysis.
Parameters: e_true :
EnergyTrue energy
e_reco :
EnergyBounds, NoneReconstructed energy axis
offset :
AngleOffset
mig_step : float
Integration step in migration
Returns: rv :
ndarrayRedistribution vector
-
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, optionalAxis
offset :
Angle, optionalOffset
add_cbar : bool
Add a colorbar to the plot.
kwargs : dict
Keyword arguments passed to
pcolormesh.Returns: ax :
AxesAxis
-
plot_migration(ax=None, offset=None, e_true=None, migra=None, **kwargs)[source]¶ Plot energy dispersion for given offset and true energy.
Parameters: ax :
Axes, optionalAxis
offset :
Angle, optionalOffset
e_true :
Energy, optionalTrue energy
migra :
array, list, optionalMigration nodes
Returns: ax :
AxesAxis
-
classmethod
read(filename, hdu='edisp_2d')[source]¶ Read from FITS file.
Parameters: filename : str
File name
-
to_energy_dispersion(offset, e_true=None, e_reco=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: offset :
AngleOffset
e_true :
EnergyBounds, NoneTrue energy axis
e_reco :
EnergyBoundsReconstructed energy axis
Returns: edisp :
EnergyDispersionEnergy disperion matrix
-