EffectiveAreaTable2D#
- class gammapy.irf.EffectiveAreaTable2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#
Bases:
IRF
2D effective area table.
Data format specification: AEFF_2D.
- Parameters:
- energy_axis_true
MapAxis
True energy axis.
- offset_axis
MapAxis
Field of view offset axis.
- data
Quantity
Effective area.
- metadict
Metadata dictionary.
- energy_axis_true
Examples
Here’s an example you can use to learn about this class:
>>> from gammapy.irf import EffectiveAreaTable2D >>> filename = '$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits' >>> aeff = EffectiveAreaTable2D.read(filename, hdu='EFFECTIVE AREA') >>> print(aeff) EffectiveAreaTable2D -------------------- axes : ['energy_true', 'offset'] shape : (42, 6) ndim : 2 unit : m2 dtype : >f4
Here’s another one, created from scratch, without reading a file:
>>> from gammapy.irf import EffectiveAreaTable2D >>> from gammapy.maps import MapAxis >>> energy_axis_true = MapAxis.from_energy_bounds( ... "0.1 TeV", "100 TeV", nbin=30, name="energy_true" ... ) >>> offset_axis = MapAxis.from_bounds(0, 5, nbin=4, name="offset") >>> aeff = EffectiveAreaTable2D(axes=[energy_axis_true, offset_axis], data=1e10, unit="cm2") >>> print(aeff) EffectiveAreaTable2D -------------------- axes : ['energy_true', 'offset'] shape : (30, 4) ndim : 2 unit : cm2 dtype : float64
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.
Quantity as a
Quantity
object.Map unit as a
Unit
object.Methods Summary
cumsum
(axis_name)Compute cumsum along a given axis.
evaluate
([method])Evaluate IRF.
from_hdulist
(hdulist[, hdu, format])Create from
HDUList
.from_parametrization
([energy_axis_true, ...])Create parametrized effective area.
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.
normalize
(axis_name)Normalise data in place along a given axis.
pad
(pad_width, axis_name, **kwargs)Pad IRF along a given axis.
peek
([figsize])Quick-look summary plots.
plot
([ax, add_cbar, axes_loc, kwargs_colorbar])Plot effective area image.
plot_energy_dependence
([ax, offset])Plot effective area versus energy for a given offset.
plot_offset_dependence
([ax, energy])Plot effective area versus offset for a given energy.
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_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("m2")#
- 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', 'offset']#
- tag = 'aeff_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_hdulist(hdulist, hdu=None, format='gadf-dl3')#
Create from
HDUList
.- Parameters:
- hdulist
HDUList
HDU list.
- hdustr
HDU name.
- format{“gadf-dl3”}
Format specification. Default is “gadf-dl3”.
- hdulist
- Returns:
- irf
IRF
IRF class.
- irf
- classmethod from_parametrization(energy_axis_true=None, instrument='HESS')[source]#
Create parametrized effective area.
Parametrizations of the effective areas of different Cherenkov telescopes taken from Appendix B of Abramowski et al. (2010), see https://ui.adsabs.harvard.edu/abs/2010MNRAS.402.1342A .
\[A_{eff}(E) = g_1 \left(\frac{E}{\mathrm{MeV}}\right)^{-g_2}\exp{\left(-\frac{g_3}{E}\right)}\]This method does not model the offset dependence of the effective area, but just assumes that it is constant.
- Parameters:
- energy_axis_true
MapAxis
, optional Energy binning, analytic function is evaluated at log centers. Default is None.
- instrument{‘HESS’, ‘HESS2’, ‘CTAO’}
Instrument name. Default is ‘HESS’.
- energy_axis_true
- Returns:
- aeff
EffectiveAreaTable2D
Effective area table.
- aeff
- 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
IRF
The IRF to compare against.
- rtol_axesfloat, optional
Relative tolerance for the axis comparison. Default is 1e-3.
- atol_axesfloat, optional
Absolute tolerance for the axis comparison. Default is 1e-6.
- **kwargsdict
Keywords passed to
numpy.allclose
.
- other
- Returns:
- is_allclosebool
Whether the IRF is all close.
- normalize(axis_name)#
Normalise data in place along a given axis.
- Parameters:
- axis_namestr
Along which axis to normalize.
- pad(pad_width, axis_name, **kwargs)#
Pad IRF along a given axis.
- peek(figsize=(15, 5))[source]#
Quick-look summary plots.
- Parameters:
- figsizetuple, optional
Size of the figure. Default is (15, 5).
- plot(ax=None, add_cbar=True, axes_loc=None, kwargs_colorbar=None, **kwargs)[source]#
Plot effective area image.
- Parameters:
- ax
Axes
, optional Matplotlib axes. Default is None.
- add_cbarbool, optional
Add a colorbar to the plot. 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
.
- ax
- Returns:
- ax
Axes
Matplotlib axes.
- ax
- plot_energy_dependence(ax=None, offset=None, **kwargs)[source]#
Plot effective area versus energy for a given offset.
- plot_offset_dependence(ax=None, energy=None, **kwargs)[source]#
Plot effective area versus offset for a given energy.
- classmethod read(filename, hdu=None, format='gadf-dl3')#
Read from file.
- slice_by_idx(slices)#
Slice sub IRF from IRF object.
- to_hdulist(format='gadf-dl3')#
Write the HDU list.
- Parameters:
- format{“gadf-dl3”}, optional
Format specification. Default is “gadf-dl3”.
- to_table(format='gadf-dl3')#
Convert to table.
- Parameters:
- format{“gadf-dl3”}, optional
Format specification. Default is “gadf-dl3”.
- Returns:
- table
Table
IRF data table.
- table
- to_table_hdu(format='gadf-dl3')#
Convert to
BinTableHDU
.- Parameters:
- format{“gadf-dl3”}, optional
Format specification. Default is “gadf-dl3”.
- Returns:
- hdu
BinTableHDU
IRF data table HDU.
- hdu