{ "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.14?urlpath=lab/tree/pulsar_analysis.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", "[pulsar_analysis.ipynb](../_static/notebooks/pulsar_analysis.ipynb) |\n", "[pulsar_analysis.py](../_static/notebooks/pulsar_analysis.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Pulsar analysis with Gammapy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook shows how to do a pulsar analysis with Gammapy. It's based on a Vela simulation file from the CTA DC1, which already contains a column of phases. We will produce a phasogram, a phase-resolved map and a phase-resolved spectrum of the Vela pulsar using the class PhaseBackgroundEstimator. \n", "\n", "The phasing in itself is not done here, and it requires specific packages like Tempo2 or PINT (https://nanograv-pint.readthedocs.io/en/latest/readme.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Opening the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's first do the imports and load the only observation containing Vela in the CTA 1DC dataset shipped with Gammapy." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from gammapy.utils.regions import SphericalCircleSkyRegion\n", "from astropy.coordinates import SkyCoord\n", "import astropy.units as u\n", "\n", "from gammapy.maps import Map, WcsGeom\n", "from gammapy.cube import fill_map_counts\n", "from gammapy.data import DataStore\n", "from gammapy.modeling.models import PowerLawSpectralModel\n", "from gammapy.modeling import Fit, Datasets\n", "from gammapy.spectrum import (\n", " PhaseBackgroundEstimator,\n", " SpectrumExtraction,\n", " FluxPointsEstimator,\n", " FluxPointsDataset,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load the data store (which is a subset of CTA-DC1 data):" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "data_store = DataStore.from_dir(\"$GAMMAPY_DATA/cta-1dc/index/gps\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define obsevation ID and print events:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EventList info:\n", "- Number of events: 101430\n", "- Median energy: 0.1 TeV\n", "- OBS_ID = 111630\n" ] } ], "source": [ "id_obs_vela = [111630]\n", "obs_list_vela = data_store.get_observations(id_obs_vela)\n", "print(obs_list_vela[0].events)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have our observation, let's select the events in 0.2° radius around the pulsar position." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EventList info:\n", "- Number of events: 843\n", "- Median energy: 0.107 TeV\n", "- OBS_ID = 111630\n" ] } ], "source": [ "pos_target = SkyCoord(ra=128.836 * u.deg, dec=-45.176 * u.deg, frame=\"icrs\")\n", "on_radius = 0.2 * u.deg\n", "on_region = SphericalCircleSkyRegion(pos_target, on_radius)\n", "\n", "# Apply angular selection\n", "events_vela = obs_list_vela[0].events.select_region(on_region)\n", "print(events_vela)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's load the phases of the selected events in a dedicated array." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<Column name='PHASE' dtype='float32' length=10>\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
0.81847286
0.45646095
0.111507416
0.43416595
0.76837444
0.3639946
0.58693695
0.51095676
0.5606985
0.2505703
" ], "text/plain": [ "\n", " 0.81847286\n", " 0.45646095\n", "0.111507416\n", " 0.43416595\n", " 0.76837444\n", " 0.3639946\n", " 0.58693695\n", " 0.51095676\n", " 0.5606985\n", " 0.2505703" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phases = events_vela.table[\"PHASE\"]\n", "\n", "# Let's take a look at the first 10 phases\n", "phases[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Phasogram" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once we have the phases, we can make a phasogram. A phasogram is a histogram of phases and it works exactly like any other histogram (you can set the binning, evaluate the errors based on the counts in each bin, etc)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "nbins = 30\n", "phase_min, phase_max = (0, 1)\n", "values, bin_edges = np.histogram(\n", " phases, range=(phase_min, phase_max), bins=nbins\n", ")\n", "bin_width = (phase_max - phase_min) / nbins\n", "\n", "bin_center = (bin_edges[:-1] + bin_edges[1:]) / 2\n", "\n", "\n", "# Poissonian uncertainty on each bin\n", "values_err = np.sqrt(values)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.bar(\n", " x=bin_center,\n", " height=values,\n", " width=bin_width,\n", " color=\"#d53d12\",\n", " alpha=0.8,\n", " edgecolor=\"black\",\n", " yerr=values_err,\n", ")\n", "plt.xlim(0, 1)\n", "plt.xlabel(\"Phase\")\n", "plt.ylabel(\"Counts\")\n", "plt.title(\"Phaseogram with angular cut of {}\".format(on_radius));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's add some fancy additions to our phasogram: a patch on the ON- and OFF-phase regions and one for the background level." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of Off events: 234\n" ] } ], "source": [ "# Evaluate background level\n", "off_phase_range = (0.7, 1.0)\n", "on_phase_range = (0.5, 0.6)\n", "\n", "mask_off = (off_phase_range[0] < phases) & (phases < off_phase_range[1])\n", "\n", "count_bkg = mask_off.sum()\n", "print(\"Number of Off events: {}\".format(count_bkg))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# bkg level normalized by the size of the OFF zone (0.3)\n", "bkg = count_bkg / nbins / (off_phase_range[1] - off_phase_range[0])\n", "\n", "# error on the background estimation\n", "bkg_err = (\n", " np.sqrt(count_bkg) / nbins / (off_phase_range[1] - off_phase_range[0])\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Let's redo the same plot for the basis\n", "plt.bar(\n", " x=bin_center,\n", " height=values,\n", " width=bin_width,\n", " color=\"#d53d12\",\n", " alpha=0.8,\n", " edgecolor=\"black\",\n", " yerr=values_err,\n", ")\n", "\n", "# Plot background level\n", "x_bkg = np.linspace(0, 1, 50)\n", "\n", "kwargs = {\"color\": \"black\", \"alpha\": 0.5, \"ls\": \"--\", \"lw\": 2}\n", "\n", "plt.plot(x_bkg, (bkg - bkg_err) * np.ones_like(x_bkg), **kwargs)\n", "plt.plot(x_bkg, (bkg + bkg_err) * np.ones_like(x_bkg), **kwargs)\n", "\n", "plt.fill_between(\n", " x_bkg, bkg - bkg_err, bkg + bkg_err, facecolor=\"grey\", alpha=0.5\n", ") # grey area for the background level\n", "\n", "# Let's make patches for the on and off phase zones\n", "on_patch = plt.axvspan(\n", " on_phase_range[0], on_phase_range[1], alpha=0.3, color=\"gray\", ec=\"black\"\n", ")\n", "\n", "off_patch = plt.axvspan(\n", " off_phase_range[0],\n", " off_phase_range[1],\n", " alpha=0.4,\n", " color=\"white\",\n", " hatch=\"x\",\n", " ec=\"black\",\n", ")\n", "\n", "# Legends \"ON\" and \"OFF\"\n", "plt.text(0.55, 5, \"ON\", color=\"black\", fontsize=17, ha=\"center\")\n", "plt.text(0.895, 5, \"OFF\", color=\"black\", fontsize=17, ha=\"center\")\n", "plt.xlabel(\"Phase\")\n", "plt.ylabel(\"Counts\")\n", "plt.xlim(0, 1)\n", "plt.title(\"Phasogram with angular cut of {}\".format(on_radius));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Phase-resolved map" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that the phases are computed, we want to do a phase-resolved sky map : a map of the ON-phase events minus alpha times the OFF-phase events. Alpha is the ratio between the size of the ON-phase zone (here 0.1) and the OFF-phase zone (0.3).\n", "It's a map of the excess events in phase, which are the pulsed events." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "geom = WcsGeom.create(binsz=0.02 * u.deg, skydir=pos_target, width=\"5 deg\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Let's create an ON-map and an OFF-map:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "on_map = Map.from_geom(geom)\n", "off_map = Map.from_geom(geom)\n", "\n", "events_vela_on = events_vela.select_parameter(\"PHASE\", on_phase_range)\n", "events_vela_off = events_vela.select_parameter(\"PHASE\", off_phase_range)" ] }, { "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": [ "fill_map_counts(on_map, events_vela_on)\n", "fill_map_counts(off_map, events_vela_off)\n", "\n", "# Defining alpha as the ratio of the ON and OFF phase zones\n", "alpha = (on_phase_range[1] - on_phase_range[0]) / (\n", " off_phase_range[1] - off_phase_range[0]\n", ")\n", "\n", "# Create and fill excess map\n", "# The pulsed events are the difference between the ON-phase count and alpha times the OFF-phase count\n", "excess_map = on_map - off_map * alpha\n", "\n", "# Plot excess map\n", "excess_map.smooth(kernel=\"gauss\", width=0.2 * u.deg).plot(add_cbar=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Phase-resolved spectrum" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also do a phase-resolved spectrum. In order to do that, there is the class PhaseBackgroundEstimator. In a phase-resolved analysis, the background is estimated in the same sky region but in the OFF-phase zone.\n", "\n", "We start by estimating the background with the class PhaseBackgroundEstimator. It takes the observations, the ON-region, and an ON- and OFF-phase zones (the same we defined for the phasogram and the phase-resolved map). It results in a PhaseBackgroundEstimator that serves as an input for other spectral analysis classes in Gammapy." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# The PhaseBackgroundEstimator uses the OFF-phase in the ON-region to estimate the background\n", "bkg_estimator = PhaseBackgroundEstimator(\n", " observations=obs_list_vela,\n", " on_region=on_region,\n", " on_phase=on_phase_range,\n", " off_phase=off_phase_range,\n", ")\n", "bkg_estimator.run()\n", "bkg_estimate = bkg_estimator.result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The rest of the analysis is the same as for a standard spectral analysis with Gammapy. All the specificity of a phase-resolved analysis is contained in the PhaseBackgroundEstimator, where the background is estimated in the ON-region OFF-phase rather than in an OFF-region.\n", "\n", "We can now extract a spectrum with the SpectrumExtraction class. It takes the reconstructed and the true energy binning. Both are expected to be a Quantity with unit energy, i.e. an array with an energy unit. EnergyBounds is a dedicated class to do it." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/adonath/github/adonath/gammapy/gammapy/utils/interpolation.py:159: Warning: Interpolated values reached float32 precision limit\n", " \"Interpolated values reached float32 precision limit\", Warning\n", "/Users/adonath/github/adonath/gammapy/gammapy/spectrum/extract.py:232: RuntimeWarning: invalid value encountered in true_divide\n", " self.containment = new_aeff.data.data.value / self._aeff.data.data.value\n", "No thresholds defined for obs Info for OBS_ID = 111630\n", "- Start time: 59300.83\n", "- Pointing pos: RA 130.89 deg / Dec -44.63 deg\n", "- Observation duration: 1800.0 s\n", "- Dead-time fraction: 2.000 %\n", "\n" ] } ], "source": [ "etrue = np.logspace(-2.5, 1, 100) * u.TeV\n", "ereco = np.logspace(-2, 1, 30) * u.TeV\n", "\n", "extraction = SpectrumExtraction(\n", " observations=obs_list_vela,\n", " bkg_estimate=bkg_estimate,\n", " containment_correction=True,\n", " e_true=etrue,\n", " e_reco=ereco,\n", ")\n", "\n", "extraction.run()\n", "extraction.compute_energy_threshold(\n", " method_lo=\"energy_bias\", bias_percent_lo=20\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's a look at the files we just created with spectrum_observation." ] }, { "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": [ "extraction.spectrum_observations[0].peek()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'll fit a model to the spectrum with the `Fit` class. First we load a power law model with an initial value for the index and the amplitude and then wo do a likelihood fit. The fit results are printed below." ] }, { "cell_type": "code", "execution_count": 18, "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 : 84\n", "\ttotal stat : 5.04\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/adonath/software/anaconda3/envs/gammapy-dev/lib/python3.7/site-packages/numpy/core/fromnumeric.py:90: RuntimeWarning: overflow encountered in reduce\n", " return ufunc.reduce(obj, axis, dtype, out, **passkwargs)\n" ] } ], "source": [ "model = PowerLawSpectralModel(\n", " index=4, amplitude=\"1.3e-9 cm-2 s-1 TeV-1\", reference=\"0.02 TeV\"\n", ")\n", "\n", "emin_fit, emax_fit = (0.04 * u.TeV, 0.4 * u.TeV)\n", "\n", "for obs in extraction.spectrum_observations:\n", " obs.model = model\n", " obs.mask_fit = obs.counts.energy_mask(emin=emin_fit, emax=emax_fit)\n", "\n", "joint_fit = Fit(extraction.spectrum_observations)\n", "joint_result = joint_fit.run()\n", "\n", "model.parameters.covariance = joint_result.parameters.covariance\n", "print(joint_result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now you might want to do the stacking here even if in our case there is only one observation which makes it superfluous.\n", "We can compute flux points by fitting the norm of the global model in energy bands." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "e_edges = np.logspace(np.log10(0.04), np.log10(0.4), 7) * u.TeV\n", "\n", "dataset = Datasets(extraction.spectrum_observations).stack_reduce()\n", "\n", "dataset.model = model\n", "\n", "fpe = FluxPointsEstimator(datasets=[dataset], e_edges=e_edges)\n", "\n", "flux_points = fpe.run()\n", "flux_points.table[\"is_ul\"] = flux_points.table[\"ts\"] < 1\n", "\n", "amplitude_ref = 0.57 * 19.4e-14 * u.Unit(\"1 / (cm2 s MeV)\")\n", "spec_model_true = PowerLawSpectralModel(\n", " index=4.5, amplitude=amplitude_ref, reference=\"20 GeV\"\n", ")\n", "\n", "flux_points_dataset = FluxPointsDataset(data=flux_points, model=model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can plot." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/adonath/github/adonath/gammapy/gammapy/spectrum/flux_point.py:638: UserWarning: Data has no positive values, and therefore cannot be log-scaled.\n", " ax.set_yscale(\"log\", nonposy=\"clip\")\n", "/Users/adonath/github/adonath/gammapy/gammapy/modeling/models/spectral.py:246: UserWarning: Data has no positive values, and therefore cannot be log-scaled.\n", " ax.plot(energy.value, y.value, **kwargs)\n", "/Users/adonath/github/adonath/gammapy/gammapy/modeling/models/spectral.py:331: UserWarning: Data has no positive values, and therefore cannot be log-scaled.\n", " ax.set_yscale(\"log\", nonposy=\"clip\")\n", "/Users/adonath/github/adonath/gammapy/gammapy/modeling/models/spectral.py:317: UserWarning: Data has no positive values, and therefore cannot be log-scaled.\n", " ax.fill_between(energy.value, y_lo.value, y_hi.value, where=where, **kwargs)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf4AAAF3CAYAAABE0Ck1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3hVVfb/8fdKQhFBVHqRJoogLTTBBoxDU5oCciMowijqqDjOiIo62L6OOpafglgYBdQZAyoMAiKCFVRGAUEFQUCI0kEQhl6S9fsjZQImJCT35Ca5n9fz5OGetvfKJcm6e5999jZ3R0RERKJDTKQDEBERkYKjxC8iIhJFlPhFRESiiBK/iIhIFFHiFxERiSJK/CIiIlEkLtIBBMnMegA9ypUrd/3ZZ58d6XBEREQKzKJFi35x90rH7rdoeI6/VatWvnDhwkiHISIiUmDMbJG7tzp2v7r6RUREoogSv4iISBRR4hcREYkixXpwn4iIwOHDh1m/fj0HDhyIdCgSgNKlS1OzZk1KlCiRq/OV+EVEirn169dTrlw56tSpg5lFOhwJI3dn+/btrF+/nrp16+bqGnX1i4gUcwcOHKBChQpK+sWQmVGhQoUT6s1R4hcRiQJK+sXXif7fKvGLiEjgYmNjad68Oc2aNaNFixZ88cUXeSrnmWeeYd++fVkemzdvHueeey7Nmzdnw4YN9O3bF4AlS5Ywc+bMPMeeW0lJSTRu3Djf5wRNiV9ERAJ30kknsWTJEr755hseffRRRowYkadyjpf4//Wvf3HHHXewZMkSatSowdtvvw0UXOIvKpT4RUSkQP33v//ltNNOy9h+4oknaN26NU2bNuX+++8HYO/evVx22WU0a9aMxo0bM2nSJEaNGsXGjRvp2LEjHTt2PKrMl19+mTfffJOHHnqIAQMGZLSsDx06xMiRI5k0aRLNmzdn0qRJR103YcIEevfuTY8ePahbty7PPfccTz/9NPHx8bRt25YdO3YAqR8e2rZtS9OmTbn88sv59ddfAVi0aBHNmjWjXbt2jBkzJqPc5ORkhg8fnvF9vfTSS4G8l3lRrEf1p8/VX79+/UiHIiJSOLx3N2z+LrxlVm0C3R477in79++nefPmHDhwgE2bNvHRRx8BMHv2bFatWsVXX32Fu9OzZ0/mzp3Ltm3bqF69Ou+++y4Au3btonz58jz99NN8/PHHVKxY8ajyr7vuOj777DO6d+9O3759SUpKAqBkyZI89NBDLFy4kOeeey7L2JYuXcrixYs5cOAA9evX5/HHH2fx4sXcfvvtvPbaa/zpT3/immuuYfTo0bRv356RI0fy4IMP8swzzzB48OCM/cOHD88o85VXXqF8+fIsWLCAgwcPcsEFF9C5c+dCMdaiWLf43X26uw8tX758pEMREYlq6V39K1asYNasWVxzzTW4O7Nnz2b27NnEx8fTokULVqxYwapVq2jSpAkffPABd911F/PmzSPIv+MdO3akXLlyVKpUifLly9OjRw8AmjRpQlJSErt27WLnzp20b98egEGDBjF37tzf7L/66qszypw9ezavvfYazZs357zzzmP79u2sWrUqsO/hRBTrFr+IiBwjh5Z5QWjXrh2//PIL27Ztw90ZMWIEN9xww2/OW7RoETNnzmTEiBF07tyZkSNHBhJPqVKlMl7HxMRkbMfExHDkyJFsr3P3bFvw7s7o0aPp0qXLUfvTeyIiqVi3+EVEpPBZsWIFycnJVKhQgS5dujBu3Dj27NkDwIYNG9i6dSsbN26kTJkyDBw4kDvuuIOvv/4agHLlyrF79+4Tqi8v12RWvnx5TjvtNObNmwfA66+/Tvv27Tn11FMpX748n332GZA6uDBdly5deOGFFzh8+DAAK1euZO/evXmOIZzU4hcRkcCl3+OH1Nbwq6++SmxsLJ07d2b58uW0a9cOgLJly/LPf/6T1atXM3z4cGJiYihRogQvvPACAEOHDqVbt25Uq1aNjz/+OFd1d+zYkccee4zmzZszYsQI+vfvf8Lxv/rqq9x4443s27ePevXqMX78eADGjx/PkCFDKFOmzFGt++uuu46kpCRatGiBu1OpUiWmTp16wvUGwdw90jEErlWrVr5w4cJIhyEiEhHLly+nYcOGkQ5DApTV/7GZLXL3Vseeq65+ERGRKKLELyIiEkWU+EVERKKIEr+IiEgUUeIXERGJIkr8IiIiUUSJX0REApe+LG/jxo3p0aMHO3fuzPGaUaNG0bBhQwYMGFAAEUZehw4dyOnR89yckxMlfhERCVz6XP1Lly7l9NNPP2olu+w8//zzzJw586gZ8Y7neNPryv8o8YuISIFq164dGzZsyNjOalneG2+8kTVr1tCzZ0/+3//7f+zdu5chQ4bQunVr4uPjeeedd4DUZXX79etHjx496Ny5c7blJSUl0bBhQ66//nrOPfdcOnfuzP79+wFYvXo1v//972nWrBktWrTgxx9/zLacY5UtW5a77rqLli1b8vvf/56vvvqKDh06UK9ePaZNmwbAgQMHGDx4ME2aNCE+Pj5jxsH9+/cTCoVo2rQp/fv3z4gHUhf5adeuHS1atKBfv34ZUxqHhbsX+6+WLVu6iEi0+v7774/abt++/W++xowZ4+7ue/fuzfL4+PHj3d1927ZtvzmWGyeffLK7ux85csT79u3r7733nru7v//++3799dd7SkqKJycn+2WXXeaffvqpu7vXrl3bt23b5u7uI0aM8Ndff93d3X/99Vc/66yzfM+ePT5+/HivUaOGb9++/bjlrV271mNjY33x4sXu7t6vX7+M8tq0aeNTpkxxd/f9+/f73r17jxtXZoDPnDnT3d179+7tnTp18kOHDvmSJUu8WbNm7u7+5JNP+rXXXuvu7suXL/czzjjD9+/f70899ZQPHjzY3d2/+eYbj42N9QULFvi2bdv8oosu8j179ri7+2OPPeYPPvhgxv/dggULfhPHsf/HabEt9CxyYqGfq9/M6gH3AuXdvW92+0REpPBKn6s/KSmJli1b0qlTJ4CjluUF2LNnD6tWreLiiy8+6vrZs2czbdo0nnzySSC1Ff3zzz8D0KlTJ04//fTjllerVi3q1q2bsV5Ay5YtSUpKYvfu3WzYsIHLL78cgNKlS59QXCVLlqRr165A6jK+pUqVokSJEhlL+gJ89tln3HrrrQCcc8451K5dm5UrVzJ37lyGDRsGQNOmTWnatCkA//nPf/j++++54IILADh06FDGWgbhEGjiN7NxQHdgq7s3zrS/K/AsEAu87O7ZrhPp7muAP5jZ28fbJyIiufPJJ59ke6xMmTLHPV6xYsXjHs9O+j3+Xbt20b17d8aMGcOwYcOOuyxvZu7O5MmTadCgwVH7v/zyS04++eSjzsuqvKSkpKOW342NjWX//v14NuvV5DauEiVKZCzNm92SvtnVAWS5rK+706lTJxITE49bd14FfY9/AtA18w4ziwXGAN2ARkCCmTUysyZmNuOYr8oBxyciIgWofPnyjBo1iieffJLDhw9nuyzvsbp06cLo0aMzkujixYuzLD+35aU75ZRTqFmzZsbKeQcPHmTfvn0n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+mnGGgFvvvkma9asiXCUIiISpFw9x29mM0kd1d8VaAXsBRa4e7NgwwuPaBnclxdHjhwhLi6OPXv2UKFCBQ4dOkSbNm1ISEjgyiuvpHr16pEOUURE8iC/i/RcCXwKXObuvwIVgbvDGJ9ESPqywGXLlmXlypU8/vjjHDp0iNtvv52aNWsyYcKEyAYoIiJhpZn7JEsrVqxg4sSJXH311Zx55plMnz6dF198kVAoRO/evSlXrlykQxQRkePQsrxyQs455xweeOABzjzzTAB2797Nd999xzXXXEPlypXp168fkydPJjk5OYeSRESkMFGLX3ItJSWF+fPnM3HiRN58803Kli3L6tWrMTOWLVvG2WefrYmCREQKiTzN3FdcKPGH35EjR/j555+pV68ehw4dolq1apgZffv2JSEhgYsuuijjaQERESl4eerqN7MaZvZPM/vYzO40s7hMxyYHEagUDXFxcdSrVw+AmJgYxo8fT+fOnXn99dfp0KEDZ5xxBpMn60dERKSwyalJNg74DzAcqAt8bGanpR2rF2RgUnTExcXRs2dP3njjDbZu3crEiRNp3bo1VatWBWDRokXce++9fPfddxGOVEREclqkZ7G7x2faHgTcAfQEJrt7i+BDzD919UfWmDFjGDZsGCkpKZx77rkkJCQQCoUyBg6KiEj45XVUfykzy5ihz91fJbX1PweoGt4Qpbi6+eab2bhxI8899xynnnoq9913H61ateLw4cMAHDhwIMIRiohEj5wS/3igXeYd7j4LCAE/BBWUFD9VqlTh5ptv5rPPPuOnn37ijTfeoESJErg7zZs3p0OHDrz44ov88ssvkQ5VRKRYy2lZ3ifc/ZMs9i90946BRRUmmqu/cKpVqxbdunUD4PDhwyQkJLB582ZuuukmqlatSrdu3fjkk08iG6SISDGV22V5a5nZ39OW452S/hV0cPnl7tPdfWj58uUjHYpko2TJktx///0sX76cxYsX85e//IXly5ezbds2ANatW8dbb73F/v37IxypiEjxkNtFepYArwHfARlruLr7h8GFFj4a3Fe0uDspKSnExsby1FNPcccdd1C2bFl69+5NKBSic+fOmihIRCQH+ZrAx8y+cvc2gURWAJT4i67k5GQ++eQTJk6cyOTJk/n111+pWrUqa9eupXTp0pEOT0Sk0Mpv4r8aqA28DxxM3+/u34Yz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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 6))\n", "ax_spectrum, ax_residual = flux_points_dataset.peek()\n", "\n", "ax_spectrum.set_ylim([1e-14, 3e-11])\n", "ax_residual.set_ylim([-1.7, 1.7])\n", "\n", "spec_model_true.plot(\n", " ax=ax_spectrum,\n", " energy_range=(emin_fit, emax_fit),\n", " label=\"Reference model\",\n", " c=\"black\",\n", " linestyle=\"dashed\",\n", " energy_power=2,\n", ")\n", "\n", "ax_spectrum.legend(loc=\"best\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial suffers a bit from the lack of statistics: there were 9 Vela observations in the CTA DC1 while there is only one here. When done on the 9 observations, the spectral analysis is much better agreement between the input model and the gammapy fit." ] } ], "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 } }, "nbformat": 4, "nbformat_minor": 2 }