{ "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://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/gammapy/gammapy-webpage/v0.15?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.irf import EnergyDependentTablePSF, EnergyDispersion\n", "from gammapy.maps import Map, MapAxis, WcsNDMap, WcsGeom\n", "from gammapy.modeling.models import (\n", " PowerLawSpectralModel,\n", " PointSpatialModel,\n", " SkyModel,\n", " SkyDiffuseCube,\n", " SkyModels,\n", " create_fermi_isotropic_diffuse_model,\n", ")\n", "from gammapy.cube import MapDataset, PSFKernel\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", " [10, 30, 100, 300, 2000], name=\"energy\", unit=\"GeV\", interp=\"log\"\n", ")\n", "counts = Map.create(\n", " skydir=gc_pos,\n", " npix=(100, 80),\n", " proj=\"TAN\",\n", " coordsys=\"GAL\",\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 : 'GeV' \n", "\tnbins : 4 \n", "\tnode type : edges \n", "\tedges min : 1.0e+01 GeV\n", "\tedges max : 2.0e+03 GeV\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']\n", "\tshape : (49152, 18)\n", "\tndim : 3\n", "\tnside : 64\n", "\tnested : False\n", "\tcoordsys : CEL\n", "\tprojection : HPX\n", "\tcenter : 0.0 deg, 0.0 deg\n", "\n", "MapAxis\n", "\n", "\tname : energy \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\", unit=\"GeV\", interp=\"log\"\n", ")\n", "geom = WcsGeom(wcs=counts.geom.wcs, npix=counts.geom.npix, axes=[axis])\n", "\n", "coord = counts.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']\n", "\tshape : (100, 80, 4)\n", "\tndim : 3\n", "\tcoordsys : GAL\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 \n", "\tunit : 'GeV' \n", "\tnbins : 4 \n", "\tnode type : center \n", "\tcenter min : 1.7e+01 GeV\n", "\tcenter max : 7.7e+02 GeV\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\": 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\": 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", "\tcoordsys : GAL\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']\n", "\tshape : (100, 80, 4)\n", "\tndim : 3\n", "\tcoordsys : GAL\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 \n", "\tunit : 'GeV' \n", "\tnbins : 4 \n", "\tnode type : center \n", "\tcenter min : 1.7e+01 GeV\n", "\tcenter max : 7.7e+02 GeV\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)" ] }, { "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\": 0}).plot(add_cbar=True);" ] }, { "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\": energy}, interp=\"linear\", 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 = EnergyDependentTablePSF.read(\n", " \"$GAMMAPY_DATA/fermi_3fhl/fermi_3fhl_psf_gc.fits.gz\"\n", ")\n", "print(psf)" ] }, { "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.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_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_psf_in_energy_band(energy_band=erange, spectrum=spectrum)\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_kernel = PSFKernel.from_table_psf(psf, counts.geom, max_radius=\"1 deg\")" ] }, { "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_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.axes[0].edges\n", "e_reco = counts.geom.axes[0].edges\n", "edisp = EnergyDispersion.from_diagonal_response(e_true=e_true, e_reco=e_reco)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit\n", "\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": 33, "metadata": {}, "outputs": [], "source": [ "spatial_model = PointSpatialModel(\n", " lon_0=\"0 deg\", lat_0=\"0 deg\", frame=\"galactic\"\n", ")\n", "spectral_model = PowerLawSpectralModel(\n", " index=2.5, amplitude=\"1e-11 cm-2 s-1 TeV-1\", reference=\"100 GeV\"\n", ")\n", "\n", "source = SkyModel(spectral_model=spectral_model, spatial_model=spatial_model)\n", "\n", "models = SkyModels([source, diffuse_gal, diffuse_iso])\n", "\n", "dataset = MapDataset(\n", " models=models,\n", " counts=counts,\n", " exposure=exposure,\n", " psf=psf_kernel,\n", " edisp=edisp,\n", ")" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 9.33 s, sys: 162 ms, total: 9.49 s\n", "Wall time: 9.51 s\n" ] } ], "source": [ "%%time\n", "fit = Fit([dataset])\n", "result = fit.run()" ] }, { "cell_type": "code", "execution_count": 35, "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 : 455\n", "\ttotal stat : 20050.89\n", "\n" ] } ], "source": [ "print(result)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=12\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
namevalueerrorunitminmaxfrozen
str9float64float64str14float64float64bool
lon_0-2.501e-02nandegnannanFalse
lat_0-3.980e-02nandeg-9.000e+019.000e+01False
index2.711e+00nannannanFalse
amplitude5.852e-10nancm-2 s-1 TeV-1nannanFalse
reference1.000e-01nanTeVnannanTrue
norm1.025e+00nannannanFalse
tilt0.000e+00nannannanTrue
reference1.000e+00nanTeVnannanTrue
value1.000e+00nansr-1nannanTrue
norm3.425e+00nannannanFalse
tilt0.000e+00nannannanTrue
reference1.000e+00nanTeVnannanTrue
" ], "text/plain": [ "\n", " name value error unit min max frozen\n", " str9 float64 float64 str14 float64 float64 bool \n", "--------- ---------- ------- -------------- ---------- --------- ------\n", " lon_0 -2.501e-02 nan deg nan nan False\n", " lat_0 -3.980e-02 nan deg -9.000e+01 9.000e+01 False\n", " index 2.711e+00 nan nan nan False\n", "amplitude 5.852e-10 nan cm-2 s-1 TeV-1 nan nan False\n", "reference 1.000e-01 nan TeV nan nan True\n", " norm 1.025e+00 nan nan nan False\n", " tilt 0.000e+00 nan nan nan True\n", "reference 1.000e+00 nan TeV nan nan True\n", " value 1.000e+00 nan sr-1 nan nan True\n", " norm 3.425e+00 nan nan nan False\n", " tilt 0.000e+00 nan nan nan True\n", "reference 1.000e+00 nan TeV nan nan True" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset.parameters.to_table()" ] }, { "cell_type": "code", "execution_count": 37, "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.0, "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.0, "lenType": 16.0, "lenVar": 40.0 }, "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 }