EffectiveAreaTable2D#
- class gammapy.irf.EffectiveAreaTable2D(axes, data=0, unit='', is_pointlike=False, fov_alignment=FoVAlignment.RADEC, meta=None, interp_kwargs=None)[source]#
Bases:
IRF2D effective area table.
Data format specification: AEFF_2D.
- Parameters:
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
Quantityobject.Map unit as a
Unitobject.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