{ "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.10?urlpath=lab/tree/spectrum_pipe.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", "[spectrum_pipe.ipynb](../_static/notebooks/spectrum_pipe.ipynb) |\n", "[spectrum_pipe.py](../_static/notebooks/spectrum_pipe.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Spectrum analysis with Gammapy (run pipeline)\n", "\n", "In this tutorial we will learn how to perform a 1d spectral analysis.\n", "\n", "We will use a \"pipeline\" or \"workflow\" class to run a standard analysis. If you're interested in implementation detail of the analysis in order to create a custom analysis class, you should read ([spectrum_analysis.ipynb](spectrum_analysis.ipynb)) that executes the analysis using lower-level classes and methods in Gammapy. \n", "\n", "In this tutorial we will use the folling Gammapy classes:\n", "\n", "- [gammapy.data.DataStore](..\/api/gammapy.data.DataStore.rst) to load the data to \n", "- [gammapy.scripts.SpectrumAnalysisIACT](..\/api/gammapy.scripts.SpectrumAnalysisIACT.rst) to run the analysis\n", "\n", "We use 4 Crab observations from H.E.S.S. for testing." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "As usual, we'll start with some setup for the notebook, and import the functionality we need." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import astropy.units as u\n", "from astropy.coordinates import SkyCoord\n", "from regions import CircleSkyRegion\n", "\n", "from gammapy.utils.energy import EnergyBounds\n", "from gammapy.data import DataStore\n", "from gammapy.scripts import SpectrumAnalysisIACT\n", "from gammapy.catalog import SourceCatalogGammaCat\n", "from gammapy.maps import Map\n", "from gammapy.spectrum.models import LogParabola\n", "from gammapy.spectrum import CrabSpectrum" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Select data\n", "\n", "First, we select and load some H.E.S.S. data (simulated events for now). In real life you would do something fancy here, or just use the list of observations someone send you (and hope they have done something fancy before). We'll just use the standard gammapy 4 crab runs." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[23523 23526 23559 23592]\n" ] } ], "source": [ "data_store = DataStore.from_dir(\"$GAMMAPY_DATA/hess-dl3-dr1/\")\n", "mask = data_store.obs_table[\"TARGET_NAME\"] == \"Crab\"\n", "obs_ids = data_store.obs_table[\"OBS_ID\"][mask].data\n", "observations = data_store.get_observations(obs_ids)\n", "print(obs_ids)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configure the analysis\n", "\n", "Now we'll define the input for the spectrum analysis. It will be done the python way, i.e. by creating a config dict containing python objects. We plan to add also the convenience to configure the analysis using a plain text config file." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "crab_pos = SkyCoord.from_name(\"crab\")\n", "on_region = CircleSkyRegion(crab_pos, 0.15 * u.deg)\n", "\n", "model = LogParabola(\n", " alpha=2.3,\n", " beta=0.01,\n", " amplitude=1e-11 * u.Unit(\"cm-2 s-1 TeV-1\"),\n", " reference=1 * u.TeV,\n", ")\n", "\n", "flux_point_binning = EnergyBounds.equal_log_spacing(0.7, 30, 5, u.TeV)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "exclusion_mask = Map.create(skydir=crab_pos, width=(10, 10), binsz=0.02)\n", "\n", "gammacat = SourceCatalogGammaCat(\"$GAMMAPY_DATA/gamma-cat/gammacat.fits.gz\")\n", "\n", "regions = []\n", "for source in gammacat:\n", " if not exclusion_mask.geom.contains(source.position):\n", " continue\n", " region = CircleSkyRegion(source.position, 0.15 * u.deg)\n", " regions.append(region)\n", "\n", "exclusion_mask.data = exclusion_mask.geom.region_mask(regions, inside=False)\n", "exclusion_mask.plot();" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "config = dict(\n", " outdir=\".\",\n", " background=dict(\n", " on_region=on_region,\n", " exclusion_mask=exclusion_mask,\n", " min_distance=0.1 * u.rad,\n", " ),\n", " extraction=dict(containment_correction=False),\n", " fit=dict(\n", " model=model,\n", " stat=\"wstat\",\n", " forward_folded=True,\n", " fit_range=flux_point_binning[[0, -1]],\n", " ),\n", " fp_binning=flux_point_binning,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the analysis\n", "\n", "TODO: Clean up the log (partly done, get rid of remaining useless warnings)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FCN = 108.83548432146347TOTAL NCALL = 118NCALLS = 118
EDM = 2.6101114618499355e-06GOAL EDM = 1e-05\n", " UP = 1.0
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ValidValid ParamAccurate CovarPosDefMade PosDef
TrueTrueTrueTrueFalse
Hesse FailHasCovAbove EDMReach calllim
FalseTrueFalseFalse
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
+NameValueHesse ErrorMinos Error-Minos Error+Limit-Limit+Fixed?
0par_000_amplitude3.329310.222011No
1par_001_reference11Yes
2par_002_alpha2.323270.193054No
3par_003_beta18.66029.95332No
\n", "
\n",
       "\n",
       "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "analysis = SpectrumAnalysisIACT(observations=observations, config=config)\n", "analysis.run(optimize_opts={\"print_level\": 1})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results\n", "\n", "Let's look at the results, and also compare with a previously published Crab nebula spectrum for reference." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Fit result info \n", "--------------- \n", "Model: LogParabola\n", "\n", "Parameters: \n", "\n", "\t name value error unit min max frozen\n", "\t--------- --------- --------- -------------- --- --- ------\n", "\tamplitude 3.329e-11 2.220e-12 cm-2 s-1 TeV-1 nan nan False\n", "\treference 1.000e+00 0.000e+00 TeV nan nan True\n", "\t alpha 2.323e+00 1.931e-01 nan nan False\n", "\t beta 1.866e-01 9.953e-02 nan nan False\n", "\n", "Covariance: \n", "\n", "\t name amplitude reference alpha beta \n", "\t--------- ---------- --------- ---------- ----------\n", "\tamplitude 4.929e-24 0.000e+00 2.248e-13 -6.322e-14\n", "\treference 0.000e+00 0.000e+00 0.000e+00 0.000e+00\n", "\t alpha 2.248e-13 0.000e+00 3.727e-02 -1.744e-02\n", "\t beta -6.322e-14 0.000e+00 -1.744e-02 9.907e-03 \n", "\n", "Statistic: 39.258 (wstat)\n", "Fit Range: [ 0.87992254 27.82559402] TeV\n", "\n" ] } ], "source": [ "print(analysis.fit.result[0])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "opts = {\n", " \"energy_range\": analysis.fit.fit_range,\n", " \"energy_power\": 2,\n", " \"flux_unit\": \"erg-1 cm-2 s-1\",\n", "}\n", "axes = analysis.spectrum_result.plot(**opts)\n", "CrabSpectrum().model.plot(ax=axes[0], **opts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises\n", "\n", "Rerun the analysis, changing some aspects of the analysis as you like:\n", "\n", "* only use one or two observations\n", "* a different spectral model\n", "* different config options for the spectral analysis\n", "* different energy binning for the spectral point computation\n", "\n", "Observe how the measured spectrum changes." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [] } ], "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.6.0" }, "nbsphinx": { "orphan": true } }, "nbformat": 4, "nbformat_minor": 2 }