{ "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.18.2?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/docs/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)." ] }, { "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.makers import (\n", " SafeMaskMaker,\n", " PhaseBackgroundMaker,\n", " SpectrumDatasetMaker,\n", ")\n", "from gammapy.maps import Map, WcsGeom, MapAxis\n", "from gammapy.data import DataStore\n", "from gammapy.datasets import Datasets, SpectrumDataset, FluxPointsDataset\n", "from gammapy.modeling.models import PowerLawSpectralModel, SkyModel\n", "from gammapy.modeling import Fit\n", "from gammapy.estimators import FluxPointsEstimator" ] }, { "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\n", "---------\n", "\n", " Instrument : None\n", " Telescope : CTA\n", " Obs. ID : 111630\n", "\n", " Number of events : 101430\n", " Event rate : 56.350 1 / s\n", "\n", " Time start : 59300.833333333336\n", " Time stop : 59300.854166666664\n", "\n", " Min. energy : 3.00e-02 TeV\n", " Max. energy : 1.52e+02 TeV\n", " Median energy : 1.00e-01 TeV\n", "\n", " Max. offset : 5.0 deg\n", "\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\n", "---------\n", "\n", " Instrument : None\n", " Telescope : CTA\n", " Obs. ID : 111630\n", "\n", " Number of events : 843\n", " Event rate : 0.468 1 / s\n", "\n", " Time start : 59300.833333333336\n", " Time stop : 59300.854166666664\n", "\n", " Min. energy : 3.00e-02 TeV\n", " Max. energy : 4.33e+01 TeV\n", " Median energy : 1.07e-01 TeV\n", "\n", " Max. offset : 1.7 deg\n", "\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(f\"Phasogram with angular cut of {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(f\"Number of Off events: {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(f\"Phasogram with angular cut of {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": [ "on_map.fill_events(events_vela_on)\n", "off_map.fill_events(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 PhaseBackgroundMaker. In a phase-resolved analysis, the background is estimated in the same sky region but in the OFF-phase zone." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Invalid unit found in background table! Assuming (s-1 MeV-1 sr-1)\n", "No thresholds defined for obs 111630\n" ] } ], "source": [ "e_true = MapAxis.from_energy_bounds(\n", " 0.003, 10, 100, unit=\"TeV\", name=\"energy_true\"\n", ")\n", "e_reco = MapAxis.from_energy_bounds(0.01, 10, 30, unit=\"TeV\", name=\"energy\")\n", "\n", "dataset_empty = SpectrumDataset.create(\n", " e_reco=e_reco, e_true=e_true, region=on_region\n", ")\n", "dataset_maker = SpectrumDatasetMaker()\n", "phase_bkg_maker = PhaseBackgroundMaker(\n", " on_phase=on_phase_range, off_phase=off_phase_range\n", ")\n", "safe_mask_maker = SafeMaskMaker(\n", " methods=[\"aeff-default\", \"edisp-bias\"], bias_percent=20\n", ")\n", "\n", "datasets = []\n", "\n", "for obs in obs_list_vela:\n", " dataset = dataset_maker.run(dataset_empty, obs)\n", " dataset_on_off = phase_bkg_maker.run(dataset, obs)\n", " dataset_on_off = safe_mask_maker.run(dataset_on_off, obs)\n", " datasets.append(dataset_on_off)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's a look at the datasets we just created:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(,\n", " ,\n", " )" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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3TnmmGM47bTTeOCBB4Cgpt2nn36a1cS1T58+Slzz0O23387B180OO4ySp35QJDy6/0REcivUqcLRaSENDelPCxk5ciQjR47shqgkFc8++yyVlZWcffbZsbbRo0fz1a9+lZ///Ofstttu7L777jz44IMAzH3pecaOHRs79txzz2XatGkADB8+nMsuu4y9996b3Xffnffff59FixZx2223ccMNNzB69Giee+45/vznP7Pbbrux55578rWvfS2nv69sbOTIkVTWDA47jKKgflCkMOn+ExHJrVBHXDMpAzFjxgwAxo0bl+2wJAVvv/02Y8aM2aT9kUceYd68ebz55pusWLGCr3zlKyklmQMHDuT111/nlltu4brrruPOO+/k7LPPpk+fPlxwwQUA7L777jz99NMMGjSIVatWJbmidKcZM2awbsFcVMc1c+oHRQqT7j8Rkdwq2M2Zrr/+eq6//vqww5B2nn/+eU466STKy8vZeuut+frXv87cuXOTnvfd734XgDFjxrBo0aIOjznwwAMZP348d9xxB62trdkMW9J0/fXXs/ofj4YdRslTPygSHt1/IiK5VbBrXCVcX/7yl5k+ffom7e4dFPsCysvLaWuL1zNrbGzc6PkePXrEjmtpaenwGrfddhuvvPIKTz75JKNHj2bevHnU1NRs7q8gIiIiJWbAoTd2+fzKWecB8N+PVsXaavcIHl/3WFDjdPgOfWPPvf5hUG/18xXxL9SHbh/USV35ebzuaq/eVRv9CdCzMvjM9NWd421fqg7qwe7YN14ntXdl8BrV5ZUJbVsBUFUWr8VaWRY8X13RM9ZWZsEYlRG/Xo+y4PVavGWTcxO1evA7lUdqu7Z5/HNc4vVEcqVgR1wlXAcffDAbNmzgjjvuiLXNnTuXAQMG8OCDD9La2sry5cuZM2cO++yzD9sNHsK7777Lhg0baGho4Jlnnkn6Gn379mXNmjWxnz/66CP23XdfLr/8cgYOHMiSJUu65XcTEREREZH8ohHXIjCof3VKOwGnc71kzIxHH32UiRMncvXVV9OzZ89YOZwvvviCPffcEzPj2muvZZtttuH/t3fvYVZVZ57Hvz+K0iokmmhhZgjYhZFI0gHBVDAqdjDVbUgEzKQxSlCgcUDHJEz7PB0Hc+km4zg6kondhBQZ7EChneYS2ojaRNMdRaJNEkJUxIhPVMAhsZWL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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "datasets[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": 17, "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 : 101\n", "\ttotal stat : 7.07\n", "\n" ] } ], "source": [ "spectral_model = PowerLawSpectralModel(\n", " index=4, amplitude=\"1.3e-9 cm-2 s-1 TeV-1\", reference=\"0.02 TeV\"\n", ")\n", "model = SkyModel(spectral_model=spectral_model, name=\"vela psr\")\n", "emin_fit, emax_fit = (0.04 * u.TeV, 0.4 * u.TeV)\n", "\n", "\n", "for dataset in datasets:\n", " dataset.models = model\n", " geom = dataset.counts.geom\n", " data = geom.energy_mask(energy_min=emin_fit, energy_max=emax_fit)\n", " dataset.mask_fit = Map.from_geom(geom=geom, data=data)\n", "\n", "joint_fit = Fit(datasets)\n", "joint_result = joint_fit.run()\n", "\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": 18, "metadata": {}, "outputs": [], "source": [ "energy_edges = np.logspace(np.log10(0.04), np.log10(0.4), 7) * u.TeV\n", "\n", "dataset = Datasets(datasets).stack_reduce()\n", "\n", "dataset.models = model\n", "\n", "fpe = FluxPointsEstimator(energy_edges=energy_edges, source=\"vela psr\")\n", "\n", "flux_points = fpe.run(datasets=[dataset])\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, models=model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can plot." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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IQD27dtH37596dKlC9deey07d+4kOTmZxx9/nLVr1xIXF0dubi7r1q2je/fuJCQkMHTo0JIUv82bN+e5557jmmuuYcWKFed93jPPPENCQgKdOnVi586dAGRlZXHvvffSqVMnYmNj+eCDDwDKfR9nPXv2ZOLEiVx33XW0b9+en376icGDB9OmTRueeuqpkue98sorxMTEEBMTw6uvvlpy/fnnn+fyyy/nz3/+M7t27Sq5XtbvpDJJyl4hhKhjevbsec6122+/nYceeoicnBxuuummc74/cuRIRo4cyfHjxxkyZEip73399dcuf3ZRURHr16/nvvvuA0wK3tdff502bdrw448/8tBDD/Hll1+WKqV7/Phx/v73v/PFF18QGBjIiy++yCuvvFJStMfPz4/vvvuO48ePM3jw4HKfFxERwZYtW/jXv/7FjBkzmDdvHtOmTSM0NJRt20yp4pMnT1b4ec58fHzYsGEDM2fO5JZbbmHz5s3Ur1+fVq1aMXHiRFJTU1m4cCE//vgjWmuuuuoqrr/+eoqLi1m2bBlJSUkUFhaSkJBAly5dzvs7qSwy8AshhHA7e67+1NRUunTpQu/evcnKyuL7779n6NChJc/Lz88/57U//PADv/76Kz169ADgzJkzJbn9gZLc+xU9b/DgwQB06dKFDz/8EIAvvviCZcuWlTynXr16fPzxx+d9H2c333wzYEr4duzYkejoaABatmzJwYMH+e677xg0aBCBgYElffj2228pLi5m0KBBBAQElHofV38nl0IGfiGEqGPOd4ceEBBw3u9HRERc0B2+nX2N/9SpUwwYMIDXXnuNkSNHEhYWRnJy8nlfq7Wmd+/eLF26tMzv2wfVip5nL7drtVpLyu2WVVq3ovcp6z2dy/naHxcWFnK+ejhllfQtLi526XdyKWSNXwghRJUJDQ1l1qxZzJgxA39/f1q0aMGKFSsAM+Bu3br1nNd069aN//73v+zduxeAnJwcdu/efdHPc9anTx/mzJlT8vjkyZMX9T7lue6661i1ahU5OTlkZ2ezcuVKrr32Wq677jpWrlxJbm4umZmZrF69GoCQkBCXfieXQgZ+IYQQVSo+Pp7OnTuzbNkylixZwvz58+ncuTMdO3bkP//5zznPb9CgAW+//TaJiYnExsbSrVu3Mje8ufo8Z0899RQnT54kJiaGzp0789VXX13U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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax_spectrum, ax_residuals = flux_points_dataset.plot_fit()\n", "\n", "ax_spectrum.set_ylim([1e-14, 3e-11])\n", "ax_residuals.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." ] }, { "cell_type": "code", "execution_count": null, "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.7.0" }, "nbsphinx": { "orphan": true } }, "nbformat": 4, "nbformat_minor": 2 }