# Licensed under a 3-clause BSD style license - see LICENSE.rst
from ..utils.scripts import make_path
from .effective_area import EffectiveAreaTable2D
from .background import Background3D
from .energy_dispersion import EnergyDispersion2D
from .psf_gauss import EnergyDependentMultiGaussPSF
__all__ = ["load_cta_irfs"]
[docs]def load_cta_irfs(filename):
"""load CTA instrument response function and return a dictionary container.
The IRF format should be compliant with the one discussed
at http://gamma-astro-data-formats.readthedocs.io/en/latest/irfs/.
The various IRFs are accessible with the following keys:
- 'aeff' is a `~gammapy.irf.EffectiveAreaTable2D`
- 'edisp' is a `~gammapy.irf.EnergyDispersion2D`
- 'psf' is a `~gammapy.irf.EnergyDependentMultiGaussPSF`
- 'bkg' is a `~gammapy.irf.Background3D`
Parameters
----------
filename : str
the input filename. Default is
Returns
-------
cta_irf : dict
the IRF dictionary
Examples
--------
Access the CTA 1DC IRFs stored in the gammapy datasets
.. code-block:: python
from gammapy.irf import load_cta_irfs
cta_irf = load_cta_irfs("$GAMMAPY_DATA/cta-1dc/caldb/data/cta/1dc/bcf/South_z20_50h/irf_file.fits")
print(cta_irf['aeff'])
"""
filename = str(make_path(filename))
aeff = EffectiveAreaTable2D.read(filename, hdu="EFFECTIVE AREA")
bkg = Background3D.read(filename, hdu="BACKGROUND")
edisp = EnergyDispersion2D.read(filename, hdu="ENERGY DISPERSION")
psf = EnergyDependentMultiGaussPSF.read(filename, hdu="POINT SPREAD FUNCTION")
return dict(aeff=aeff, bkg=bkg, edisp=edisp, psf=psf)