{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "\n", "**This is a fixed-text formatted version of a Jupyter notebook**\n", "\n", "- Try online [![Binder](https://static.mybinder.org/badge.svg)](https://mybinder.org/v2/gh/gammapy/gammapy-webpage/v0.17?urlpath=lab/tree/fermi_lat.ipynb)\n", "- You can contribute with your own notebooks in this\n", "[GitHub repository](https://github.com/gammapy/gammapy/tree/master/tutorials).\n", "- **Source files:**\n", "[fermi_lat.ipynb](../_static/notebooks/fermi_lat.ipynb) |\n", "[fermi_lat.py](../_static/notebooks/fermi_lat.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fermi-LAT data with Gammapy\n", "\n", "## Introduction\n", "\n", "This tutorial will show you how to work with Fermi-LAT data with Gammapy. As an example, we will look at the Galactic center region using the high-energy dataset that was used for the 3FHL catalog, in the energy range 10 GeV to 2 TeV.\n", "\n", "We note that support for Fermi-LAT data analysis in Gammapy is very limited. For most tasks, we recommend you use \n", "[Fermipy](http://fermipy.readthedocs.io/), which is based on the [Fermi Science Tools](https://fermi.gsfc.nasa.gov/ssc/data/analysis/software/) (Fermi ST).\n", "\n", "Using Gammapy with Fermi-LAT data could be an option for you if you want to do an analysis that is not easily possible with Fermipy and the Fermi Science Tools. For example a joint likelihood fit of Fermi-LAT data with data e.g. from H.E.S.S., MAGIC, VERITAS or some other instrument, or analysis of Fermi-LAT data with a complex spatial or spectral model that is not available in Fermipy or the Fermi ST.\n", "\n", "Besides Gammapy, you might want to look at are [Sherpa](http://cxc.harvard.edu/sherpa/) or [3ML](https://threeml.readthedocs.io/). Or just using Python to roll your own analyis using several existing analysis packages. E.g. it it possible to use Fermipy and the Fermi ST to evaluate the likelihood on Fermi-LAT data, and Gammapy to evaluate it e.g. for IACT data, and to do a joint likelihood fit using e.g. [iminuit](http://iminuit.readthedocs.io/) or [emcee](http://dfm.io/emcee).\n", "\n", "To use Fermi-LAT data with Gammapy, you first have to use the Fermi ST to prepare an event list (using ``gtselect`` and ``gtmktime``, exposure cube (using ``gtexpcube2`` and PSF (using ``gtpsf``). You can then use `~gammapy.data.EventList`, `~gammapy.maps` and the `~gammapy.irf.EnergyDependentTablePSF` to read the Fermi-LAT maps and PSF, i.e. support for these high-level analysis products from the Fermi ST is built in. To do a 3D map analyis, you can use Fit for Fermi-LAT data in the same way that it's use for IACT data. This is illustrated in this notebook. A 1D region-based spectral analysis is also possible, this will be illustrated in a future tutorial.\n", "\n", "## Setup\n", "\n", "**IMPORTANT**: For this notebook you have to get the prepared ``3fhl`` dataset provided in your $GAMMAPY_DATA.\n", "\n", "Note that the ``3fhl`` dataset is high-energy only, ranging from 10 GeV to 2 TeV." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fermi_3fhl_events_selected.fits.gz\r\n", "fermi_3fhl_exposure_cube_hpx.fits.gz\r\n", "fermi_3fhl_psf_gc.fits.gz\r\n", "gll_iem_v06_cutout.fits\r\n", "iso_P8R2_SOURCE_V6_v06.txt\r\n" ] } ], "source": [ "# Check that you have the prepared Fermi-LAT dataset\n", "# We will use diffuse models from here\n", "!ls -1 $GAMMAPY_DATA/fermi_3fhl" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from astropy import units as u\n", "from astropy.coordinates import SkyCoord\n", "from gammapy.data import EventList\n", "from gammapy.datasets import MapDataset\n", "from gammapy.datasets.map import MapEvaluator\n", "from gammapy.irf import EnergyDependentTablePSF, PSFMap, EDispMap\n", "from gammapy.maps import Map, MapAxis, WcsNDMap, WcsGeom\n", "from gammapy.modeling.models import (\n", " PowerLawSpectralModel,\n", " PointSpatialModel,\n", " SkyModel,\n", " SkyDiffuseCube,\n", " Models,\n", " create_fermi_isotropic_diffuse_model,\n", " BackgroundModel,\n", ")\n", "from gammapy.modeling import Fit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Events\n", "\n", "To load up the Fermi-LAT event list, use the `~gammapy.data.EventList` class:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EventList info:\n", "- Number of events: 697317\n", "- Median energy: 1.59e+04 MeV\n", "\n" ] } ], "source": [ "events = EventList.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_events_selected.fits.gz\"\n", ")\n", "print(events)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The event data is stored in a [astropy.table.Table](http://docs.astropy.org/en/stable/api/astropy.table.Table.html) object. In case of the Fermi-LAT event list this contains all the additional information on positon, zenith angle, earth azimuth angle, event class, event type etc." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ENERGY',\n", " 'RA',\n", " 'DEC',\n", " 'L',\n", " 'B',\n", " 'THETA',\n", " 'PHI',\n", " 'ZENITH_ANGLE',\n", " 'EARTH_AZIMUTH_ANGLE',\n", " 'TIME',\n", " 'EVENT_ID',\n", " 'RUN_ID',\n", " 'RECON_VERSION',\n", " 'CALIB_VERSION',\n", " 'EVENT_CLASS',\n", " 'EVENT_TYPE',\n", " 'CONVERSION_TYPE',\n", " 'LIVETIME',\n", " 'DIFRSP0',\n", " 'DIFRSP1',\n", " 'DIFRSP2',\n", " 'DIFRSP3',\n", " 'DIFRSP4']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "events.table.colnames" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=5\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
ENERGYRADEC
MeVdegdeg
float32float32float32
12856.5205139.64438-9.93702
14773.319177.0445460.55275
23273.527110.2132537.002018
41866.125334.8528717.577398
42463.074316.8667648.152477
" ], "text/plain": [ "\n", " ENERGY RA DEC \n", " MeV deg deg \n", " float32 float32 float32 \n", "---------- --------- ---------\n", "12856.5205 139.64438 -9.93702\n", " 14773.319 177.04454 60.55275\n", " 23273.527 110.21325 37.002018\n", " 41866.125 334.85287 17.577398\n", " 42463.074 316.86676 48.152477" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "events.table[:5][[\"ENERGY\", \"RA\", \"DEC\"]]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2008-08-04 15:49:26.782\n", "2015-07-30 11:00:41.226\n" ] } ], "source": [ "print(events.time[0].iso)\n", "print(events.time[-1].iso)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mean = 28905.451171875 MeV\n", "std = 61051.7421875 MeV\n", "min = 10000.03125 MeV\n", "max = 1998482.75 MeV\n", "n_bad = 0\n", "length = 697317\n" ] } ], "source": [ "energy = events.energy\n", "energy.info(\"stats\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a short analysis example we will count the number of events above a certain minimum energy: " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Events above 10 GeV: 697317\n", "Events above 100 GeV: 23628\n", "Events above 1000 GeV: 544\n" ] } ], "source": [ "for e_min in [10, 100, 1000] * u.GeV:\n", " n = (events.energy > e_min).sum()\n", " print(f\"Events above {e_min:4.0f}: {n:5.0f}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Counts\n", "\n", "Let us start to prepare things for an 3D map analysis of the Galactic center region with Gammapy. The first thing we do is to define the map geometry. We chose a TAN projection centered on position ``(glon, glat) = (0, 0)`` with pixel size 0.1 deg, and four energy bins." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "gc_pos = SkyCoord(0, 0, unit=\"deg\", frame=\"galactic\")\n", "energy_axis = MapAxis.from_edges(\n", " [1e4, 3e4, 1e5, 3e5, 2e6], name=\"energy\", unit=\"MeV\", interp=\"log\"\n", ")\n", "counts = Map.create(\n", " skydir=gc_pos,\n", " npix=(100, 80),\n", " proj=\"TAN\",\n", " frame=\"galactic\",\n", " binsz=0.1,\n", " axes=[energy_axis],\n", " dtype=float,\n", ")\n", "# We put this call into the same Jupyter cell as the Map.create\n", "# because otherwise we could accidentally fill the counts\n", "# multiple times when executing the ``fill_by_coord`` multiple times.\n", "counts.fill_by_coord({\"skycoord\": events.radec, \"energy\": events.energy})" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MapAxis\n", "\n", "\tname : energy \n", "\tunit : 'MeV' \n", "\tnbins : 4 \n", "\tnode type : edges \n", "\tedges min : 1.0e+04 MeV\n", "\tedges max : 2.0e+06 MeV\n", "\tinterp : log " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts.geom.axes[0]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "counts.sum_over_axes().smooth(2).plot(stretch=\"sqrt\", vmax=30);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exposure\n", "\n", "The Fermi-LAT datatset contains the energy-dependent exposure for the whole sky as a HEALPix map computed with ``gtexpcube2``. This format is supported by `~gammapy.maps` directly.\n", "\n", "Interpolating the exposure cube from the Fermi ST to get an exposure cube matching the spatial geometry and energy axis defined above with Gammapy is easy. The only point to watch out for is how exactly you want the energy axis and binning handled.\n", "\n", "Below we just use the default behaviour, which is linear interpolation in energy on the original exposure cube. Probably log interpolation would be better, but it doesn't matter much here, because the energy binning is fine. Finally, we just copy the counts map geometry, which contains an energy axis with `node_type=\"edges\"`. This is non-ideal for exposure cubes, but again, acceptable because exposure doesn't vary much from bin to bin, so the exact way interpolation occurs in later use of that exposure cube doesn't matter a lot. Of course you could define any energy axis for your exposure cube that you like." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "HpxGeom\n", "\n", "\taxes : ['skycoord', 'energy_true']\n", "\tshape : (49152, 18)\n", "\tndim : 3\n", "\tnside : 64\n", "\tnested : False\n", "\tframe : icrs\n", "\tprojection : HPX\n", "\tcenter : 0.0 deg, 0.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy_true\n", "\tunit : 'MeV' \n", "\tnbins : 18 \n", "\tnode type : center \n", "\tcenter min : 1.0e+04 MeV\n", "\tcenter max : 2.0e+06 MeV\n", "\tinterp : log \n", "\n" ] } ], "source": [ "exposure_hpx = Map.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_exposure_cube_hpx.fits.gz\"\n", ")\n", "# Unit is not stored in the file, set it manually\n", "exposure_hpx.unit = \"cm2 s\"\n", "print(exposure_hpx.geom)\n", "print(exposure_hpx.geom.axes[0])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "exposure_hpx.plot();" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# For exposure, we choose a geometry with node_type='center',\n", "# whereas for counts it was node_type='edge'\n", "axis = MapAxis.from_nodes(\n", " counts.geom.axes[0].center, name=\"energy_true\", unit=\"MeV\", interp=\"log\"\n", ")\n", "geom = WcsGeom(wcs=counts.geom.wcs, npix=counts.geom.npix, axes=[axis])\n", "\n", "coord = geom.get_coord()\n", "data = exposure_hpx.interp_by_coord(coord)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WcsGeom\n", "\n", "\taxes : ['lon', 'lat', 'energy_true']\n", "\tshape : (100, 80, 4)\n", "\tndim : 3\n", "\tframe : galactic\n", "\tprojection : TAN\n", "\tcenter : 0.0 deg, 0.0 deg\n", "\twidth : 10.0 deg x 8.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy_true\n", "\tunit : 'MeV' \n", "\tnbins : 4 \n", "\tnode type : center \n", "\tcenter min : 1.7e+04 MeV\n", "\tcenter max : 7.7e+05 MeV\n", "\tinterp : log \n", "\n" ] } ], "source": [ "exposure = WcsNDMap(geom, data, unit=exposure_hpx.unit, dtype=float)\n", "print(exposure.geom)\n", "print(exposure.geom.axes[0])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Exposure is almost constant accross the field of view\n", "exposure.slice_by_idx({\"energy_true\": 0}).plot(add_cbar=True);" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3.19917466e+11, 3.27536547e+11, 3.03032026e+11])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Exposure varies very little with energy at these high energies\n", "energy = [10, 100, 1000] * u.GeV\n", "exposure.get_by_coord({\"skycoord\": gc_pos, \"energy_true\": energy})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Galactic diffuse background" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Fermi-LAT collaboration provides a galactic diffuse emission model, that can be used as a background model for\n", "Fermi-LAT source analysis.\n", "\n", "Diffuse model maps are very large (100s of MB), so as an example here, we just load one that represents a small cutout for the Galactic center region." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WcsGeom\n", "\n", "\taxes : ['lon', 'lat', 'energy']\n", "\tshape : (88, 48, 30)\n", "\tndim : 3\n", "\tframe : galactic\n", "\tprojection : CAR\n", "\tcenter : 0.0 deg, -0.1 deg\n", "\twidth : 11.0 deg x 6.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy \n", "\tunit : 'MeV' \n", "\tnbins : 30 \n", "\tnode type : center \n", "\tcenter min : 5.8e+01 MeV\n", "\tcenter max : 5.1e+05 MeV\n", "\tinterp : lin \n", "\n" ] } ], "source": [ "diffuse_galactic_fermi = Map.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/gll_iem_v06_cutout.fits\"\n", ")\n", "\n", "# Unit is not stored in the file, set it manually\n", "diffuse_galactic_fermi.unit = \"cm-2 s-1 MeV-1 sr-1\"\n", "print(diffuse_galactic_fermi.geom)\n", "\n", "print(diffuse_galactic_fermi.geom.axes[0])" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WcsGeom\n", "\n", "\taxes : ['lon', 'lat', 'energy_true']\n", "\tshape : (100, 80, 4)\n", "\tndim : 3\n", "\tframe : galactic\n", "\tprojection : TAN\n", "\tcenter : 0.0 deg, 0.0 deg\n", "\twidth : 10.0 deg x 8.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy_true\n", "\tunit : 'MeV' \n", "\tnbins : 4 \n", "\tnode type : center \n", "\tcenter min : 1.7e+04 MeV\n", "\tcenter max : 7.7e+05 MeV\n", "\tinterp : log \n", "\n" ] } ], "source": [ "# Interpolate the diffuse emission model onto the counts geometry\n", "# The resolution of `diffuse_galactic_fermi` is low: bin size = 0.5 deg\n", "# We use ``interp=3`` which means cubic spline interpolation\n", "coord = counts.geom.get_coord()\n", "\n", "data = diffuse_galactic_fermi.interp_by_coord(\n", " {\"skycoord\": coord.skycoord, \"energy\": coord[\"energy\"]}, interp=3\n", ")\n", "diffuse_galactic = WcsNDMap(\n", " exposure.geom, data, unit=diffuse_galactic_fermi.unit\n", ")\n", "\n", "print(diffuse_galactic.geom)\n", "print(diffuse_galactic.geom.axes[0])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "diffuse_gal = SkyDiffuseCube(diffuse_galactic, name=\"diffuse-gal\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the map of first energy band of the cube:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "diffuse_gal.map.slice_by_idx({\"energy_true\": 0}).plot(add_cbar=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is the spectrum at the Glaactic center:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Flux (cm-2 s-1 MeV-1 sr-1)')" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Exposure varies very little with energy at these high energies\n", "energy = np.logspace(1, 3, 10) * u.GeV\n", "dnde = diffuse_gal.map.interp_by_coord(\n", " {\"skycoord\": gc_pos, \"energy_true\": energy},\n", " interp=\"linear\",\n", " fill_value=None,\n", ")\n", "plt.plot(energy.value, dnde, \"+\")\n", "plt.loglog()\n", "plt.xlabel(\"Energy (GeV)\")\n", "plt.ylabel(\"Flux (cm-2 s-1 MeV-1 sr-1)\")" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# TODO: show how one can fix the extrapolate to high energy\n", "# by computing and padding an extra plane e.g. at 1e3 TeV\n", "# that corresponds to a linear extrapolation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Isotropic diffuse background\n", "\n", "To load the isotropic diffuse model with Gammapy, use the `~gammapy.modeling.models.TemplateSpectralModel`. We are using `'fill_value': 'extrapolate'` to extrapolate the model above 500 GeV:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "filename = \"$GAMMAPY_DATA/fermi_3fhl/iso_P8R2_SOURCE_V6_v06.txt\"\n", "\n", "diffuse_iso = create_fermi_isotropic_diffuse_model(\n", " filename=filename, interp_kwargs={\"fill_value\": None}\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot the model in the energy range between 50 GeV and 2000 GeV:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "erange = [50, 2000] * u.GeV\n", "diffuse_iso.spectral_model.plot(erange, flux_unit=\"1 / (cm2 MeV s)\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PSF\n", "\n", "Next we will tke a look at the PSF. It was computed using ``gtpsf``, in this case for the Galactic center position. Note that generally for Fermi-LAT, the PSF only varies little within a given regions of the sky, especially at high energies like what we have here. We use the `~gammapy.irf.EnergyDependentTablePSF` class to load the PSF and use some of it's methods to get some information about it." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EnergyDependentTablePSF\n", "-----------------------\n", "\n", "Axis info:\n", " rad : size = 300, min = 0.000 deg, max = 9.933 deg\n", " energy : size = 17, min = 10.000 GeV, max = 2000.000 GeV\n", "\n", "Containment info:\n", " 68.0% containment radius at 10 GeV: 0.16 deg\n", " 68.0% containment radius at 100 GeV: 0.10 deg\n", " 95.0% containment radius at 10 GeV: 0.71 deg\n", " 95.0% containment radius at 100 GeV: 0.43 deg\n", "\n" ] } ], "source": [ "psf_table = EnergyDependentTablePSF.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_psf_gc.fits.gz\"\n", ")\n", "print(psf_table)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get an idea of the size of the PSF we check how the containment radii of the Fermi-LAT PSF vari with energy and different containment fractions:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfEAAAFBCAYAAABn+JYIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deXzdZZ33/9cnW9N9TfeWrnRPW7pQRNm0iChWgVGEuWEQYUBxlFGUW+UeRr1HZnjcIwiMTOGHdVwAF5YKFRQBK4J2o3vpwiIN3Vu6J22Wz++P65ycJSfJaZKT5Ju8n4/H9Tg53+18Dg35fK/le13m7oiIiEj05LV1ACIiItI0SuIiIiIRpSQuIiISUUriIiIiEaUkLiIiElFK4iIiIhFV0NYBnKoBAwb4qFGj2joMERGRVrNy5cp97l6Svj1ySXzUqFGsWLGircMQERFpNWb2t0zb1ZwuIiISUUriIiIiEaUkLiIiElGR6xMXEYm6yspKysrKqKioaOtQpJ0pLi5m+PDhFBYWZnW8kriISCsrKyujZ8+ejBo1CjNr63CknXB39u/fT1lZGaNHj87qHDWni4i0soqKCvr3768ELinMjP79+59SC42SuIhIG1ACl0xO9fdCSVxEpBM6ePAgl19+ORMnTmTSpEm8+uqrAKxevZp58+YxY8YMZs+ezbJlyzKe/+yzzzJhwgTGjRvHnXfeWbv961//OqWlpVx99dW1237yk59wzz331BvLli1buPjiixk3bhyTJk3iU5/6FLt3727S9/q3f/u3rI67+OKLOXjwYJM+o7mefPJJNm7c2DIXc/dIlVmzZrmISJRt3LixrUPwq6++2h988EF3dz9x4oS/99577u4+f/58X7Jkibu7P/PMM37uuefWObeqqsrHjBnjb7zxhp84ccJLS0t9w4YNfvDgQX//+9/v7u5XXnmlr1271o8fP+4XXHCBnzx5MmMc5eXlPm7cOF+8eHHtthdeeMHXrVvXpO/VvXv3Jp3Xmq655hr/5S9/We/+TL8fwArPkBNVExcR6WQOHz7M0qVLue666wAoKiqiT58+QGjOPXz4MACHDh1i6NChdc5ftmwZ48aNY8yYMRQVFXHFFVfw1FNPkZeXx8mTJ3F3ysvLKSws5K677uKf/umf6h1t/fOf/5yzzjqLSy65pHbb+eefz9SpU6moqODaa69l2rRpzJw5kxdffBGARYsWcemll3LRRRcxfvx4vva1rwFw2223UV5ezowZM7jqqqsA+MQnPsGsWbOYMmUKCxcurP2MUaNGsW/fPt5++20mTZrE9ddfz5QpU7jwwgspLy8H4LzzzuOWW27hnHPOYdKkSSxfvpxLL72U8ePH861vfav2Wj/96U+ZO3cuM2bM4B//8R+prq4GoEePHnzzm99k+vTpzJs3j927d/PKK6+wePFibr31VmbMmMEbb7zRhH/BhJwmcTO7yMw2m9k2M7stw/5bzWx1rKw3s2oz65fLmEREOrs333yTkpISrr32WmbOnMnnPvc5jh07BsDdd9/NrbfeyogRI/jqV7/K9773vTrnv/vuu4wYMaL2/fDhw3n33Xfp2bMnl112GTNnzmT06NH07t2b5cuXs2DBgnpjWb9+PbNmzcq47/777wdg3bp1PPLII1xzzTW1g75Wr17NY489xrp163jsscfYvn07d955J127dmX16tX87Gc/A+Dhhx9m5cqVrFixgh/84Afs37+/zuds3bqVL3zhC2zYsIE+ffrw61//unZfUVERS5cu5cYbb2TBggXcf//9rF+/nkWLFrF//342bdrEY489xp///GdWr15Nfn5+7WcfO3aMefPmsWbNGs455xwefPBB3ve+9/Hxj3+cu+66i9WrVzN27NgG/60ak7NHzMwsH7gfmA+UAcvNbLG713YEuPtdwF2x4y8BbnH3A7mKSUSkvRl12zM5ue7bd3603n1VVVWsWrWKe++9lzPPPJMvfelL3HnnnXznO9/hhz/8Id///ve57LLL+MUvfsF1113H888/n3J+aN1NFR+Q9bWvfa22Zvy5z32Ob3/72zz00EP87ne/o7S0NKUG25iXX36ZL37xiwBMnDiR0047jS1btgDwwQ9+kN69ewMwefJk/va3v6XcWMT94Ac/4IknngBg+/btbN26lf79+6ccM3r0aGbMmAHArFmzePvtt2v3ffzjHwdg2rRpTJkyhSFDhgAwZswYtm/fzssvv8zKlSuZM2cOAOXl5QwcOBAINwAf+9jHaq/7+9//Puvvnq1c1sTnAtvc/U13Pwk8CtR/OwafAR7JYTwiIkKoOQ8fPpwzzzwTgMsvv5xVq1YB8OMf/5hLL70UgL/7u7/LOLBt+PDhbN++vfZ9WVlZ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "psf_table.plot_containment_vs_energy(linewidth=2, fractions=[0.68, 0.95])\n", "plt.xlim(50, 2000)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition we can check how the actual shape of the PSF varies with energy and compare it against the mean PSF between 50 GeV and 2000 GeV:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "\n", "for energy in [100, 300, 1000] * u.GeV:\n", " psf_at_energy = psf_table.table_psf_at_energy(energy)\n", " psf_at_energy.plot_psf_vs_rad(label=f\"PSF @ {energy:.0f}\", lw=2)\n", "\n", "erange = [50, 2000] * u.GeV\n", "spectrum = PowerLawSpectralModel(index=2.3)\n", "psf_mean = psf_table.table_psf_in_energy_band(\n", " energy_band=erange, spectrum=spectrum\n", ")\n", "psf_mean.plot_psf_vs_rad(label=\"PSF Mean\", lw=4, c=\"k\", ls=\"--\")\n", "\n", "plt.xlim(1e-3, 0.3)\n", "plt.ylim(1e3, 1e6)\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "# Let's compute a PSF kernel matching the pixel size of our map\n", "psf = PSFMap.from_energy_dependent_table_psf(psf_table)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVUAAAEJCAYAAAAkQLSiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3de7gcVZ3u8e/LJYGEOwkIcgkqczjogyiIKB4NoBDwgiI6iMNNlFFBZ1BnRMfHGfVc8IKXM6CoiARmVBQQGA5XQUQUkZDhpqJECIIwkJAQCIiQ5Hf+qNXZlW1379U71d3V3e/neerZ1atWV63q3vu3V1WtiyICMzOrxjr9LoCZ2TBxUDUzq5CDqplZhRxUzcwq5KAKSDq332Woks+nvobpXGD4zqcK8tN/kPRkREzvdzmq4vOpr2E6Fxi+86nCev0ugJlZN0k6C3gD8EhEvKjJ9n8A3plergf8d2BmRCyRtBB4AlgJrIiIPSc83qjVVKdOnRobbbTRGmnLly9nfNog8/nU1zCdCzQ/n2effTYef/zxtbq1OGfOnFi8eHFW3ltuueXKiJjTarukVwPLgXOaBdVxed8InBQR+6XXC4E9IyKvMAAR0bMFOAt4BLizlLYtcC1wMbBRSpsKnAcsAG4CZpXyHw3cnZajS+nXlfO1KUMM07LOACzr9Xnp9/nnLP3+Papy2XHHHWNtY8Uee+wRuYB5GX/3syjFnTb5vgO8p/R6ITCjk7L3+kHV2cD4/ygfBD4AnAn8TUo7DlgaES8AvgR8FkDSFsA/Ay8H9gL+WdLm3S+2mfXeqsylGpKmUcSnC0rJAVwl6RZJx+fsp6dBNSKuB5aMS16XsU9HKe0QYG5aPx/YX5KAA4GrI2JJRCwFrmYsSC+huO9hZgMvgBWZCzMkzSstWcGviTcCP4uIcozaJyJeChwEnJBuJbRVhwdVpwHnAsuAI1Lac4H7ASJihaRlwJbl9OSBlEZEHNqrAptZL2TXQhdHmwdI6UHVm4CmN7Mlzaa4/RjAY5I+GRGfTpt3k/RjisrfQoor5OvbFabvQTUi7gPGR381y9om3cyGSlDhpf3ZFJf0F7TJcyNFwHxhRDwJIGlj4KvAaymuhP8IfH+ig/U9qLbwALA98ICk9YBNKU7qAWB2Kd92FA+o2pL0ZPVFNLNmFi1atMbfXEy6HWtlQfV9wP7AVEkPUDyXWT+V7YyU5znAVY2AmhwAzAB+SBErb6C4Ym6rrkH1Eoqn/DcChwHXRkRIuhL436WHUwcAH5toZ+UvVZJrtmZdNHPmTBYuXLiWHQKqq6lGxDskzQIujdZNqrYHJOly4CMR8SuKK+PvR8S7KTYeSfGQvK2eBlVJ36Woac5o/MeIiG81yfot4FxJCyhqqIcDRNEY9zPAzSnfp8fdVDazoZEdVGdImld6/Y2I+EYHB5oP7BgRyyUdDFwE7Mwkbzf2NKhGxDsy8z0NvK3FtrMo2rua2dBqPP3P0vZB1YRHini8tH6ZpK9KmsHYbciG7YAHJ9pfXS//R17Vbd260XZuUEbjyS1ndS0eO99nP8tYX9WcbcbT//cD7y0lTQUeBR4D9pN0F/BnitrryyY6noOqmdVQpU//d0g7bPWg6vnp9TPAFGBJ6qm1QtISiji5PvC/0r3WthxUzaymKntQ9dp2D6oi4sPAhwHSQ/A7S5v/BOwdHfT9H5QrODMbKY2aalY31ap6VEHRRf7ycQXpqJuqa6pmVlO9eVDVIGlfiqD6qlLyPhHxoKStgKsl3ZW627fkmqqZ1VBHNdW1Jmk3ikGdDomIR1eXIuLB9PMRik4Ae020LwdVM6up3gRVSTsAFwJHRsTvSunTU1dVJE2n6Gx0Z/O9jPHlv5nVUHVP/yX9nmI81XVaPP3/JEUb1B9LWgXcGxG7AlsDP5K0LUVHgOsi4oqJjuegamY1VVmTqmNpP/L/hRSj3R1M0Q31Kyn9PorovitFR4CbJe0aEb9udzBf/ptZTVVz+d9iHOeyQygCbkTEL4DNJG1Dcf90QUTcExHPAN9LedtyTdXMaqijbqpr2/e/1TjNzdLrNaDKsBqELqCd7C8377Bd5uRebA5bV9F6nk9H91TXtklVpeM3O6iaWU31LNy3GjhlSov0toatsmFmQ6Nn7VQvAY5SYW9gWUQ8RDHE6M6SdpI0hWII0ksm2plrqmZWQ5U2qfqLcZxZs0nVZRRP/hcAT1G0FmjMj3cicCXFHFVneUAVMxtQHT2oar+nCcZxTiNSndBi22UUQTebL//NrKaqu/yXNEfSbyUtkHRyk+3/IOnWtNwpaaWkLdK2hZLuSNvm/eXe1+SaqpnVVGWX/+sCpwOvY6wR/yXlRvwR8Xng8yn/G4GTxk3VtG/u8H+uqZpZDVU6oEqnjfjfAXx3siV3UDWzmqosqLZq3P8XJE0D5gAXlJI7GlPVl/9mVkMdPf2fqEdVJ4343wj8bNylf0djqjqo9lA/ezV1cuzcX4pB6XlVdU+pTp5J97OXVj17SnWiskGqO5kV9XDGXfqXx1SV1BhTtWVQ7ffvu5lZE5XeU81qxC9pU+A1wMWltI7HVHVN1cxqqrKJ/5o24pf03rT9jJT1LcBVEfFk6e1bAz+UBEW8/M5EY6o6qJpZDVU6RXXTRvylYNp4fTZw9ri0e4AXd3IsB1Uzq6nBvCvsoGpmNeWgamZWker6/veag6qZ1VC191R7yU2qzKymejqgymxJy0qDqnwy973juaZqZjXVuwFVkp9GxBsm+d7VXFM1sxrq64Aqa/Ve11Rb6PdEebl5c7/ATr7oKX08du55d1KHyX3ckZvvmT4eu996d5ez0tlUc2dFfYWk2yi6sH4kjfLf8YyqDqpmVlOVzaaaM6DKfGDHiFgu6WDgImDnzPeuwZf/ZlZDlV7+TzigSkQ8HhHL0/plwPqSZuS8dzwHVTOrqd4NqCLpOUod/CXtRREbH81573i+/DezmurpgCqHAe+TtAL4E3B4mhCw4xlVHVTNrIZ6O6BKRJwGnJb73nYcVM2shtxN1cysYoPZTdVB1cxqykHVzKwigzugykgG1X61I+vG5Hu5vZ826ODYuXlz8+WWEfLPu5O7bbk9oJ6uOF+neXN0Y9LBTvT2b2cwg2pPP6Nmo71I2lbStZIulrRRSnuvpDvSaDE3SNq1tI+jJd2dlqNL6ddJmtXL8zGzbqm08X9P9aym2mq0F+Ao4APA84C/Ac6gmFzrjPS+NwFfBOZI2gL4Z2BPik/9ljRizNJenYeZ9cpgPv3vZU211Wgv6zL2L0dQdBkrvW86Y31tDwSujoglKZBeDcxJ25YAK7t+FmbWA66p5mg12svngXOBZcARjY2STgA+RHFLbr82+3guQEQc2q2Cm1kfrKpfwMzRy6DadLSXiLgPeHWTDacDp0s6AvgEcHSrfUx4YOnJifKYWTUWLVq0xt9cREzveCcRAxtUe3n53/FoL8n3gDevzT4iYnpjySyrmU3SzJkzq/mbW7Uqb6mZXgbV7NFeJO1cevl64O60fiVwgKTNJW0OHJDSzGyYRMCzK/KWmunZ5X+rkWJaZD9R0muBZ4GlFJf+RMQSSZ+hCNAAn46IJV0uupn1Q1RXC5U0B/gKRew5MyJOGbf9ncBH08vlwPsi4ra0bSHwBMWD8BUTDIjd28b/uaO9RMTftdl2FnBWleUys5qp8J5q5uR99wKviYilkg4CvsGa06bsGxGLc443kj2qcvR7jqrcLya3V9O0Do69WWa+jSvOB/m9rzqZJ+qJivM91sGxc+WGj07CTDfu7fX0DmZ190tXN+cEkNRozrk6qEbEz0v5f0HxvGZSPPK/mdVPUOWDqpZNMVs4Drh8XGmuknSLpOMnOphrqmZWQx1d/k80m2p2U0xJ+1IE1VeVkveJiAclbQVcLemuiLi+VWEcVM2sfhpP//NMNJtqVlNMSbsBZwIHRcSjY0WJB9PPRyT9kOJ2Qsug6st/M6un6i7/cyb+2wG4EDgyIn5XSp8uaePGOkUzzjvbHcw1VTOrn6CyJlWZE/99EtgS+GqaVLXRdGpr4IcpbT2KwZ6uaHe8rKAqaUdg54j4kaQNgfUiIvdhqZlZh6rtppox8d+7gXc3ed89wIs7OdaEl/+S3gOcD3w9JW0HXNTJQczMOjbE3VRPAPYBHgeIiLuBrbpZKDMbcY3G/wMYVHMu//8cEc+kewpIWo+MkaHMzCYtgBX169efIyeo/kTSx4ENJb0OeD/wH90tlpmNtoCV9auF5sgJqidTNIa9A/hbipu9Z3azUIMmt11aJ00tqp7QL7frKcDMzHztuqRMZn8A0zI/pKc6qMQsysz3x/xdZssNC7mn00mY6UbX155p9KgaQBP+CkfEKuCbaTEz64GodJSqXmoZVCXdQZt7pxGxW1dKZGYGQ1lTfUP6eUL6eW76+U7gqa6VyMwsYvgeVKW5o5C0T0TsU9p0sqSfAZ/uduHMbIQNaE015xnLdEmrR2yR9EqKaaPNzLoj0tP/nKVmcp61HgecJWnT9Pox4F3dK5KZGQNbU815+n8L8GJJmwCKiGXdL5aZjbQBnqJ6wqAq6ZPjXgMQEb6nambdM2xNqkqeLK1vQNEq4DfdKY6ZGcP59L8hIk4tv5b0BcYN8DqMhm3iv04m38vtKfWizG5au3XQonlm5lA9ix7J3+ftt2dmzJzR7+n8Q2e3PczdZ79/Lwd04r+emswg1dOA51VdEDOz1Yb8nmq5Z9W6FF25P9PNQpmZDW1QZaxnFRTjPjwcEYN5s8PMBkNQyzaoOXJup/zPiLgvLX9M872cO/HbzMwmK2DlirylZnJqqi8sv0iDVO/RneKYmTHQ91Rb1lQlfUzSE8Bukh5PyxPAw8DFPSuhmY2mAZ1OpWVQjYj/ExEbA5+PiE3SsnFEbBkRH+thGc1sFA1oUG03nuouEXEX8ANJLx2/PSLmd7VkZja6Bvjyv9091Q8BxwOnNtkWwH5dKZGZGQzs0/9246ken1YPiog1OnxIyu3IU0ud9CDp13Fze2XkzmXVSY+q3DmlcntK7fvuDvqKHHBAXr6rrsrf55n3ZGV7+Pq83XXQmYulmflyv+9+/e72/PgD3E015zP6eWaamVl1YlXeUjPt7qk+h6Ib+IaSXgIobdqEoquqmVl3DOk91QOBY4DtgC+W0p8APt7FMpmZDV9QjYi5wFxJb42IC3pYJjMbdUNaUwUgIi6Q9HqKnlUblNI9SLWZdc+wBlVJZ1DcQ90XOBM4DPhll8tlZqMsAp4d3qf/r4yIo4ClEfEp4BXA9t0tlpmNtGD4elSV/Cn9fErStsCjwE7dK5KZWdSyuVSOnKB6qaTNgM8D8yn+h3yzq6UyM6thLTRHzoOqxij/F0i6lOJh1S5dLZWZjbbG5f8A6miOqoj4M/BnST8AduhOkcZImgN8hWIalzMj4hRJWwDnAbOAhcDbI2KppNnAMRFxTLfL1Qu53QGr7s4KMC1zp7mT9GV3PQXY+muZ+3xf9i5nXnJGVr7c857SwfOTQel+Wj/D3U21GU2cZe1IWhc4HTgI2BV4h6RdgZOBayJiZ+Ca9NrMhklEMaBKzlIzkw2qMXGWtbYXsCAi7omIZ4DvAYekZW7KMxd4c1p/BljWg3KZWS8M29N/Sf9B8+ApYMuulWjMc4H7S68fAF4ObB0RDwFExEOStkrrP8cDvZgNhyG9p/qFSW6rSrNbDL2oIZtZ3w1hk6qI+EkvC9LEA6zZyWA74EHgYUnbpFrqNmQMb5lmfz20O8U0s7LFixcj6clS0oURcWTHOxrCmmq/3QzsLGkn4I/A4cARwBbA0cAp6eeEkxCmL/RIAEmu7Zp10YwZM1i+fPn0tdpJwMoVg/mnWtugGhErJJ0IXEnRpOqsiPiVpFOA70s6DvgD8LZ+ltPMqhcBq1b2uxSTU9ugChARlwGXjUt7FNi/PyUys15ZNZgV1YmbVEm6OnVTbbzeXNKV3S2WmY2yAR5PJaumOiMiHmu8SL2XcvvS2CTl/q7k9jl5poNjP5W500W5M+B1Mklfbk+pDvaZW87c8+7ks8z9fmoYG/pryC//V0naISL+ACBpR9y0ycy6rI610Bw5QfWfgBskNZpYvRo4vk1+M7O1EgErhrWmGhFXSHopsDdFg/yTImJx10tmZiNrgDtUte2muktE3JUCKhQN7wF2SLcD5ne/eGY2kob0nuqHKC7zT22yLYD9ulIiMxt5weA2qWrXTbVx3/SgiHi6vE3SBk3eYmZWjcGdoTpr6L9mIz95NCgz65oIWPFs3lI37e6pPodi+L0NJb2EsVGjNqGYstrMrGuG7vIfOBA4hmJ0qFMZC6qPAx/vbrHMbJQN5dP/iJgLzJX01oi4oIdlMrNRN8D3VHMa/+8h6ZpGV1VJmwMfjohPdLdo3ZPzXXVjIrZOfkeq7n76RAfHXpSZ7/bbMzOeeU/2sXMn6cvuIkt+OXPPu5PPMvf7GZTurL08/qA2qcqJHQeN7/sPHNy9IpnZqGs0qcpZ6ianprqupKlpemokbQhM7W6xzGyUNZ7+D6KcoPpvwDWSvk3xD+RdjM1mamZWvWG+pxoRn5N0B8XA0AI+ExEeT9XMuqqOl/Y5skb+j4jLgcu7XBYzMyBNpzKgNdWckf/3lnSzpOWSnpG0UtLjvSicmY2uYR75/zSKmUx/AOwJHAW8oJuFMrPRNvQT/0XEAknrRsRK4NuS3PffzLpqaAepBp6SNAW4VdLngIeAtZvT28ysjWGvqR4JrAucCJwEbA+8tZuFqoNObtXk5u1Gj6qnJ84CdNYL6I+5GR+bOAvAw9fnH3ta5qTpuZP0QX5Pqdzz7uSzzP1+utGjqhu/l71Ux/ulOXKaVN2XVv8EfKq7xTEzG9JBqlPb1JanFRG7daVEZmYD3KSqXU31DT0rhZlZyVB2Uy1d9puZ9dygXv678b+Z1U5jkGo3/jczq8KQN6ly438z67k61kJzuPG/mdVO1HQA6hw5I/8fmfKdCDzJiDT+N7P+CWDFirylbjpp/P80bvzfVO5VSifff+7cRrk9djI7P3Uk99gdTCfFlMwPKffzgfweULn5Ovkscz+jqueygvr2lMoywPdUW9ZUJR0i6YTS65sk3ZOWw3pTPDMbVcM4R9U/Ujz1b5gKvIzifuq3gfO7WC4zG2GDPEh1u6A6JSLuL72+ISIeBR6V5AdVZtZVg3r53y6obl5+EREnll7O7E5xzMxSN9UBDartnv7fJOk94xMl/S3wy+4VycxG3bD2qDoJuEjSEcD8lLYHxb3VN3e7YGY2wobxnmpEPAK8UtJ+wAtT8v+LiGt7UjIzG2nDeE8VgBREHUjNrGeG9em/mVnf1LENag4HVTOrnaEcpLpqkgR8BTgYeAo4JiLmp22HU3Q2OCcivpzSrgC2SWX8KXBCRKyUNBU4h+Kh2aPAX0fEQkmzgLMjYnYV5e3GlUc/J/7rRG45n8rMt7SDY+f+Qvazy28nn7kn/pu8Qb38zxlQpSoHATun5Xjga6Vth1P01tpb0kYp7e0R8WLgRRTtYt+W0o8DlkbEC4AvAZ/tQdnNrIcaE/8NYjfVXgbVQyhqohERvwA2k7RN2qb0MxrrEdGYXWA9YApjkxAeAsxN6+cD+6da8EpgSXdPwcx6Iga3nWovg+pzgXK31wdSGsCFwDxgXkSsHixI0pUUgxw9wdhYA6v3ExErgGXAlhFxf0Qc2tUzMLOeCIomVTlL3fQyqKpJWgBExNyIeElEnLrGxogDKe6rTgX2m2g/ZjYkXFNtTtIJkm6VdCvwIMUA1w3bpbS2IuJp4BKKy34oarjbp/2vB2zKBJf9kp5sLJ2fhZl1YvHixWv9NxcxuINUdzWoRsTpEbF7ROwOXAQcpcLewLKIeKjZ+yRt1LjfmgLnwcBdafMlwNFp/TDg2ohoW1ONiOmNpYLTMrM2ZsyYUcnf3KDWVHvZTvUyiuC4gKI1zrFt8k4HLknNp9al6NF1Rtr2LeBcSQsoaqiHN9+FmQ2qxoAqg6hnQTXVJk+YMGOR92GKJlbNtj3NWPMqMxtSAxpT3aPKzOrJQXWA5HxZ3bjZ3I0eVf08dm5voU5+yXI/926cT26+TiYdrPrY/Q40vTp+UP3fQK+MZFA1s3oL+v8PZLIcVM2slhxUzcwq5KBqZlYRX/6bmVXMQdXMrCJ++m9mVjHXVM3MKuJ7qmZmFXNQHTKD8oX2c26j3N5PvRy0t5mq52rq5F5f1ccelTmqXFM1M6uYg6qZWUX89N/MrGKuqZqZVcT3VM3MKuagamZWIQdVM7OK+EGVmVmFfE/VzKxiDqpmZhVxTdWydOOXpOoupd3a5yDoZ1fRfu2vzgb1XB1UzayWHFTNzCrip/9mZhXyPVUzs4o5qJqZVchB1cysIr78NzOrmIOqmVlF/PTfzKxirqmOsEH98ltxj6r67nPYftda8T1VM7OKOaiamVXENVUzs4r5QZWZWUVcUzUzq5iDqplZRVxTNTOrmIOqmVmFHFTNzCribqpmZhUa5HuqPetpKGkXSTdK+rOkj4zbdrik+ZL+vpS2h6Q7JC2Q9H8lKaVPlXReSr9J0qyUPkvSdb06n25blblUvb9OlhWZSzeOPSjlzFX1/obBoH4mvey+vQT4IPCFJtsOB14G7C1po5T2NeB4YOe0zEnpxwFLI+IFwJeAz3az0GbWHw6qE4iIRyLiZuDZJpvVyAZI0jbAJhFxY0QEcA7w5pTnEGBuWj8f2D/VYldSBG4zG3CNy38H1cm7EJgHzIuIJ4DnAg+Utj+Q0kg/7weIiBXAMmDLiLg/Ig7tXZHNrJsGNajW4kFVRMxlrPYJYzXXNbJlbDOzITDIT/+7WlOVdIKkW9OybQdvfQDYrvR6O+DB0rbt0/7XAzZlgst+SU82lg7KYGaTsHjx4kr+5ga1ptrVoBoRp0fE7ml5cOJ3rH7fQ8ATkvZO90uPAi5Omy8Bjk7rhwHXpvuu7fY3vbFM4jTMrAMzZsxY67+5Qb6n2rPLf0nPobhvugmwKjWf2jUiHm/xlvcBZwMbApenBeBbwLmSFlDUUA/vZrnNrD/qGDBz9CyoRsR/seYl/UT55wEvapL+NPC2CotmZjUzyI3/a/GgqpemTZvGLrvs0u9iVKYuzTfaafZksZcG4SnmoAaQZpYtW1bJfgb1QdXIBdUNN9yQ1DlrtXvvvZeddtqpTyVaO80CRt3OZ22DWt3OZ220Opd+/+OZrGbns3Tp0ir+j10JzMjMu7iC41VGEzzjGQmSnhymh1g+n/oapnOB4TufKgzC1aOZ2cBwUDUzq5CDauHCfhegYj6f+hqmc4HhO5+15nuqZmYVck3VzKxCQxlUJZ0l6RFJd5bStpV0raSLG2O2thrwOm07WtLdaTm6lH5dOV8vSJoj6bepnCe3OZ/3poG9b5V0g6Rd63g+zbQ4xy0kXZ3KfLWkzVP6bEln97BsG0j6paTbJP1K0qdS+r9I+mNpfIuDU/oUSd9O38VtkmaX9jVb0jxJnyulfSvlu13S+aXvU2mA9gVp20tL71nYq/NPx6vt91M7ETF0C/Bq4KXAnaW0U4AXAm8E3pvS3g+ckdYPB85L61sA96Sfm6f1zdO264BZPTyXdYHfA88DpgC3Abu2OJ9NSu97E3BF3c6nw3P8HHByynMy8Nm0Phs4u4flE7BRWl8fuAnYG/gX4CNN8p8AfDutbwXcAqyTXp9H0fX6VGCXJt/bF0vnfDBF92yl491UyrfQ3089l6GsqUbE9fzlyFXrMjYGQ6OtdasBrw8Ero6IJRGxFLiasZkHllAMiN0rewELIuKeiHgG+F4q91+cT6w5jsJ0xtrd1+l8mml1juXvZy5jA5U/QzGObk9EYXl6uX5a2j2M2BW4Jr33EeAxYM+0bR3GemGu8b2l370NS/s+BDgnHf8XwGZpAHeARRWcWq5afz91M5RBtYXTgK8D7wX+LaU1HfC6nJ6sHiQ7Ig6NiPK2bmtVlmbn0xhu8fcUtYgPTrCPfpxPM63Kt3UUI5aRfm6V1n8eEX/XywJKWlfSrcAjFP+gbkqbTkyX5mc1Ln8panKHSFpP0k7AHqThKoEzgZ9T1Fx/U9r/t4H/AnYB/jUlt/veXlb5SbZW+++nTkYmqEbEfRHx6oh4YxSzC0DrAa/rNBB207K0OB+iGG7x+cBHgU+020cXyjpZdS8fEbEyInanGBRoL0kvophH7fnA7sBDFJf0AGdRBJ55wJcpguiKtJ8rI+KlEfHhcfs/FtgW+A3w1ym5Lp9LXcoxEEYmqLbQasDr1elJeZDsXptsWb7H2OVYnc6nmVble7hxuZt+PtKHsq0hIh6juA89JyIeTsF2FfBNistkImJFRJwUxTjChwCbAXdn7HslxT3Xt6akunxvA/P91MGoB9VWA15fCRwgafN0SXdASuuHm4GdJe0kaQrFA7VLmmWUtHPp5esZ+0Ou0/k00+ocy9/P0YwNVN5TkmZK2iytbwi8FrirdH8T4C3AnSnPNEnT0/rrgBUR8esW+5akFzTWKR483pU2XwIclfLsDSxrXG73WK2/n9rp95OybizAdykux56l+C97XIt8GwA/ABYAvwSeV9r2rpS+ADi2z+dzMPA7iiew/9Qm31eAXwG3Aj8GXljH88k9R4r729dQ/HO4BtiiT2XbDfhP4HaKwPnJlH4ucEdKvwTYJqXPAn5LcSn/I2DHNvteB/hZ2s+dwL+TWgNQXHafnj6TO4A9/f3Uf3GPKjOzCo365b+ZWaUcVM3MKuSgamZWIQdVM7MKOaiamVXIQdXMrEIOqiNE0taSviPpHkm3SLpR0lsmeM8slYZQ7PB4x0jatvT6zPJwhBO8d7akSydz3FySfp5+zpJ0xCTef4yk06ovmQ0yB9URkXrrXARcHxHPi4g9KHrGbNfFwx5D0Z8dgIh4d7ToWdQPEfHKtDoL6DiomjXjoDo69gOeiYgzGglRDMryr7C6tvZTSfPT8srxO2iXR9I/lgZlPkXSYRTD3f17GsB5QxUDYu+Z8s9J+7hN0jW5JyFpf0n/mY51lqSpKX2hpE+lfd4haZeUPjMNoDxf0tcl3SdpRtrWGM7vFOB/pHKeNL4GKulSpYGmJR0r6XeSfgLsU2YKZ6UAAAK4SURBVMozU9IFkm5Oy+ptNmL63aXLS28WimEAv9Rm+zRgg7S+MzAvrc8iDfbdJs9BFCMxTUuvt0g/r6PUtbLxGphJMZTcTuX848ozG7h0XNoG6X1/lV6fA/x9Wl8IfCCtvx84M62fBnwsrc+hGF1pRnq9vNmxKGrYp5VeX5rybAP8IZV/CkX30tNSnu8Ar0rrOwC/6fd37qU/y3rZ0deGiqTTgVdR1F5fRjHw8mmSdqcYtPqvmrytVZ7XUox0/xRARIwfIHy8vSluQ9ybmb/hvwH3RsTv0uu5FKPsfzm9bszseQtwaFp/FcVgJ0TEFZKWZh6rmZcD10XEIgBJ57HmZ7BrcZcFgE0kbRylYRltNDiojo5fMTakHBFxQroMnpeSTgIeBl5McVvo6Sb7aJVHdDa+Zqf5y+9r58/p50rGfrcnek8zK1jz1tgGpfVW5V4HeEVE/GkSx7Mh4nuqo+NaYANJ7yulTSutbwo8FMXYoEdSTNcyXqs8VwHvkjQNignhUvoTwMZN9nMj8BoVo+KX80/kLmBWY6i8VIafTPCeG4C3p+McQDFH13jjy7kQ2F3SOpK2J42TSjE31WxJW0paH3hb6T1XASc2XqTavI0gB9URERFBMWj1ayTdK+mXFJfPH01ZvgocLekXFJe0TzbZTdM8EXEFxdB381RMOfKRlP9s4IzGg6pSWRYBxwMXSrqNYmDmZvaX9EBjAV4CHAv8QNIdFPM8ndHivQ2fohhLdj7Fvd+HKIJo2e3AivTQ7CSKe6X3Ugy39wVgfir3QxST/d1IMaTf/NI+PgjsqWJqlV9TTHNjI8hD/9lQS60DVkbECkmvAL4WxbQoZl3he6o27HYAvi9pHYpZPt/T5/LYkHNN1cysQr6namZWIQdVM7MKOaiamVXIQdXMrEIOqmZmFXJQNTOr0P8HjGDihRtTB8kAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "psf_kernel = psf.get_psf_kernel(\n", " position=geom.center_skydir, geom=geom, max_radius=\"1 deg\"\n", ")\n", "psf_kernel.psf_kernel_map.sum_over_axes().plot(stretch=\"log\", add_cbar=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Energy Dispersion\n", "For simplicity we assume a diagonal energy dispersion:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "e_true = exposure.geom.get_axis_by_name(\"energy_true\")\n", "edisp = EDispMap.from_diagonal_response(energy_axis_true=e_true)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pre-processing\n", "\n", "The model components for which only a norm is fitted can be pre-processed so we don't have to apply the IRF at each iteration of the fit and then save computation time. This can be done using the `MapEvaluator`.\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "# pre-compute iso model\n", "evaluator = MapEvaluator(diffuse_iso)\n", "evaluator.update(exposure=exposure, psf=psf, edisp=edisp, geom=counts.geom)\n", "diffuse_iso = BackgroundModel(\n", " evaluator.compute_npred(), name=\"bkg-iso\", norm=3.3\n", ")\n", "\n", "# pre-compute diffuse model\n", "evaluator = MapEvaluator(diffuse_gal)\n", "evaluator.update(exposure=exposure, psf=psf, edisp=edisp, geom=counts.geom)\n", "\n", "diffuse_gal = BackgroundModel(evaluator.compute_npred(), name=\"bkg-iem\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit\n", "Finally, the big finale: let’s do a 3D map fit for the source at the Galactic center, to measure it’s position and spectrum. We keep the background normalization free." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "No background model defined for dataset -Ipql3gX\n" ] } ], "source": [ "spatial_model = PointSpatialModel(\n", " lon_0=\"0 deg\", lat_0=\"0 deg\", frame=\"galactic\"\n", ")\n", "spectral_model = PowerLawSpectralModel(\n", " index=2.7, amplitude=\"5.8e-10 cm-2 s-1 TeV-1\", reference=\"100 GeV\"\n", ")\n", "\n", "source = SkyModel(\n", " spectral_model=spectral_model,\n", " spatial_model=spatial_model,\n", " name=\"source-gc\",\n", ")\n", "\n", "models = Models([source, diffuse_gal, diffuse_iso])\n", "\n", "dataset = MapDataset(\n", " models=models, counts=counts, exposure=exposure, psf=psf, edisp=edisp,\n", ")" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 4.46 s, sys: 186 ms, total: 4.64 s\n", "Wall time: 4.71 s\n" ] } ], "source": [ "%%time\n", "fit = Fit([dataset])\n", "result = fit.run()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OptimizeResult\n", "\n", "\tbackend : minuit\n", "\tmethod : minuit\n", "\tsuccess : True\n", "\tmessage : Optimization terminated successfully.\n", "\tnfev : 162\n", "\ttotal stat : 20048.21\n", "\n" ] } ], "source": [ "print(result)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Models\n", "\n", "Component 0: SkyModel\n", "\n", " Name : source-gc\n", " Datasets names : None\n", " Spectral model type : PowerLawSpectralModel\n", " Spatial model type : PointSpatialModel\n", " Temporal model type : None\n", " Parameters:\n", " index : 2.684 \n", " amplitude : 5.62e-10 1 / (cm2 s TeV)\n", " reference (frozen) : 0.100 TeV \n", " lon_0 : -0.025 deg \n", " lat_0 : -0.040 deg \n", "\n", "Component 1: BackgroundModel\n", "\n", " Name : bkg-iem\n", " Datasets names : None\n", " Parameters:\n", " norm : 1.028 \n", " tilt (frozen) : 0.000 \n", " reference (frozen) : 1.000 TeV \n", "\n", "Component 2: BackgroundModel\n", "\n", " Name : bkg-iso\n", " Datasets names : None\n", " Parameters:\n", " norm : 3.555 \n", " tilt (frozen) : 0.000 \n", " reference (frozen) : 1.000 TeV \n", "\n", "\n" ] } ], "source": [ "print(models)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "residual = counts - dataset.npred()\n", "residual.sum_over_axes().smooth(\"0.1 deg\").plot(\n", " cmap=\"coolwarm\", vmin=-3, vmax=3, add_cbar=True\n", ");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises\n", "\n", "- Fit the position and spectrum of the source [SNR G0.9+0.1](http://gamma-sky.net/#/cat/tev/110).\n", "- Make maps and fit the position and spectrum of the [Crab nebula](http://gamma-sky.net/#/cat/tev/25)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "In this tutorial you have seen how to work with Fermi-LAT data with Gammapy. You have to use the Fermi ST to prepare the exposure cube and PSF, and then you can use Gammapy for any event or map analysis using the same methods that are used to analyse IACT data.\n", "\n", "This works very well at high energies (here above 10 GeV), where the exposure and PSF is almost constant spatially and only varies a little with energy. It is not expected to give good results for low-energy data, where the Fermi-LAT PSF is very large. If you are interested to help us validate down to what energy Fermi-LAT analysis with Gammapy works well (e.g. by re-computing results from 3FHL or other published analysis results), or to extend the Gammapy capabilities (e.g. to work with energy-dependent multi-resolution maps and PSF), that would be very welcome!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" }, "nbsphinx": { "orphan": true }, "toc": { "base_numbering": 1, "nav_menu": { "height": "237px", "width": "253px" }, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }