{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "\n", "**This is a fixed-text formatted version of a Jupyter notebook**\n", "\n", "- Try online [![Binder](https://static.mybinder.org/badge.svg)](https://mybinder.org/v2/gh/gammapy/gammapy-webpage/v0.17?urlpath=lab/tree/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)." ] }, { "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\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 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(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": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEWCAYAAABi5jCmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2deZgU1bn/P+8sPcMszAwMzDAIjAgiooKKcYkJqLhmjGZREw1Rr4rGrDfb1ZibmHi92W4Wb35ZrolGk2hM4i4xLqBAXBEVRUUEcQAZZthm35fz+6Oqm+ptprqnqqd75v08zzzTXXXq22+d6j5v1TmnviXGGBRFURQlSNZIB6AoiqKkF5oYFEVRlDA0MSiKoihhaGJQFEVRwtDEoCiKooShiUFRFEUJQxNDGiEiq0TkypGOI90RkUtE5IlB1i8WkfdTGVMyiMhlIvLMSMcxXERknIg8IiLNIvL3EY5lVNTpSKOJIcWISK2IdIpIm4g0iMgfRKRopOPKJIwxdxljzgi+FxEjIrNGMqZMRkRuFJE/D0Pik0AFMNEYc0Gcz/h3Eam3k8ftIpIXp9yhIvKQiOwRkf0i8riIzBlGbEoSaGIYGc41xhQBxwDHAd8e4XhcISI5Ix2DYpFmx2IG8I4xpi/WShE5E7gOOA2oBmYC34ujVQo8DMzBSjZrgYc8jlcZAk0MI4gxZifwT+AIx+IZIvKsiLSKyBMiUh5cISJ/d5x1rRGReY5154jIW/Z2O0Xk6451V4nIFvsM7GERqXKsO0NENtmavxaR1cHuLPuy/FkR+bmI7AduFJFDROQpEdknIntF5C4RKXXo1YrIN0TkdRFpF5HbRKRCRP5px7ZCRMpi1Yf92Z+wX59sXwmcY79fIiLrHXE9Y79eY2/+mn0VdpFD72sisltEdonI5fGOg4hcLiIb7fi2isjVjnWLReT9eFoiMtHuRmkRkZdE5L8csVXb+5DjKB+3u1BEbhGRHbbWyyLyIce6G0XkXhH5s4i0AJfF2H6ciPxURLbZx/MZe1lU15p9nJaIyFnAt4CL7Pp7LU5sc+3Ym0TkTRH5qL38e8B3HNtfEWPzS4HbjDFvGmMagZtixQ9gjFlrjLnNGLPfGNML/ByYIyIT48Q10f5Ot4jIWuCQiPWHiciT9nd/k4hcGLFtzGM31tHEMIKIyDTgHOBVx+KLgcuByUAA+Lpj3T+B2fa6V4C7HOtuA642xhRjJZqn7M84FfgBcCEwBdgG3GOvKwfuBa4HJgKbgJMiwjwe2Gp/5s2A2HpVwFxgGnBjxDafAE4HDgXOteP+FlCO9Z37UpwqWQ0stl9/2P7cRY73qyM3MMZ82H453xhTZIz5q/2+EigBpgJXAL+Kl5CA3UANMB6r7n8uIsc41g+m9Sug3S5zqf2XLC8BC4AJwN3A30Uk37H+PKzjVUr4sQ/yP8CxWMdwAvBNYGCwDzTGPAb8N/BXu/7mR5YRkVzgEeAJrO/BF4G7RGSOMea7EdvfFuNj5gHOhPMaUBGvsY/gw0C9MWZfnPW/Arqwvtv/Zv8F4y4EnsSqy8nAp4Ffy4ETKi+P3ejCGKN/KfwDaoE2oAmrkf41MM5etwr4tqPstcBjcXRKAQOU2O+3A1cD4yPK3Qb82PG+COjFuqT/LPC8Y50AO4Ar7feXAduH2J/zgVcj9u8Sx/v7gN843n8ReDCO1mnA6/brx4ArgRfs96uBjzviesaxnQFmOd4vBjqBHMey3cAJLo/Rg8CXh9ICsu26nONY91/B2Ow6NhHbroqo32cGiaMRK+GBlXzXDFI2y45zfox1i4H3Y3wPlzi0/zyI9oeAeiDLsewvwI0ut38XOMvxPteul+ohjsNBwE7g03HWB+v/MMey/3bU/0XAvyK2+T/gu0Mdu7H+p1cMI8P5xphSY8wMY8y1xphOx7p6x+sOrIYcEckWkR+KyLt2V0KtXSbY1fQJrKuPbXaXzIn28iqsBASAMaYN2Id19luFlQiC6wwQOZtnh/ONiEwWkXvE6q5qAf7siCFIg+N1Z4z38QbbnwcOFZEKrDPnPwLT7CubDwBr4mwXi30mvM87VJeRiMjZIvKC3d3QhFWPzn2KpzUJyCG8jsLqKxHs7qqNdjdQE9ZVijOOwbTLgXysRthrqoAdxhjn1cc2rO+QG9qwrsaCBF+3xttARCZhXaH82hjzlzjFYtX/NsfrGcDxdvdXk12nl2BdIXh67EYbmhgyh4uxuhKWYDUY1fZyATDGvGSMOQ/rkvlB4G/2+jqsH4hV2Lq8noh1JrYL66wsuE6c720i7Xd/YC87yhgzHvhMMIbhYozpAF4Gvgy8YYzpAZ4Dvgq8a4zZ68XnOBFrdsx9WN0wFcaYUuBR3O3THqCP8Dqb5njdbv8vcCyrjBPHh4D/wOryK7PjaI6IYzAr5L1YXSqHxFjX7oxBRLKxGkY3umB9h6aJiLO9mI71HXLDm4Czi2o+0GDidA/Z3XRPAA8bY24eRDdY/846n+54vQNYbZ+EBf+KjDGfY+hjN6bRxJA5FAPdWGf7BViXzACISECsuf0lxhqwawH67dV3A5eLyAK7Efxv4EVjTC3wD+BIETnfHiD9PHEarog42oAmEZkKfMOzPbRYDXyBA+MJqyLex6IBa6ZLMgSAPOyGQkTOBs4YfBMLY0w/cD/WoHyBiByG1T0XXL8Hq/H8jH3F92/EbrjBqtc+O44cEfkO4WfZQ8UyANwO/ExEquzPO9E+5u8A+SLyEXu84Nv2PgdpAKojGn4nL2Ill2+KSK6ILMYaO7rHZXh/BK4QkcPtRv/bwB2xCorIeOBx4FljzHWDicao/8MJHydYjnUFutSOO1dEjhORuUMdu7GOJobM4Y9Yl8k7gbeAFyLWLwVq7e6da7DO5DHGrAT+E+useBdWw/Qpe91e4ALgx1gJ53BgHVYCisf3sKbZNmMllvuHv2thrMZqJNfEeR+LG4E77e6CCwcpF4UxphVrMPxvWH36F2NNl3TLF7Cu4OqBP2H1vTvr7yqs5LkPaxD2uTg6j2MN0r+DdZy7SLxr4+vABqxB7P3Aj7DGBZqxxqt+j/X9aSe8yzB4U9o+EXklUtS+cvsocDbWlcmvgc8aY952E5SxBrh/DDxt79s2rH5+AMSasfYt++3HsKZwX27Pcgr+TY/UtfkCVrdePVay+YPjc1uxkvynsK566u06yXNsO9ixG7OIPeiiKNhnjO9jDR4/PdLxZCIi8iOg0hijM1wyDD12B9ArhjGOiJwpIqV2l8O3sPq0I69GlDjY8+SPEosPYE1nfWCk41KGRo9dfNLp7kllZDgRaxwigNVFdX7ELCllcIqxuiCqsKax/hS9UzdT0GMXB+1KUhRFUcLQriRFURQljIzoSiovLzfV1dUjHYaiRNHc3Ex/f//QBX0mOzubkpKSEY1h//79rurCGENfXx85OVbzE3xt3UYzfFT/ANu3b99rjJk0dMlwMiIxVFdXs27dupEOQ1GiuOuuu1i4cOFIh8G6deu45JJLRjSGW2+9lWXLlrkqW1dXx/LlywGoqamhqqpqiC0SQ/UtRGTb0KWi0a4kRVEUJYyMuGJQFGX0UFdXx4oVK6ipqQFgxYoVLFmyxLOzbtUfPnrFoChKygg2esGGrqqqiiVLlrBixQrq6upU32d9t2hiUBQlJUQ2ekG8avxU3zs0MSiK4jvxGr0gw238VN9bNDEoiuIrQzV6QZJt/FTfezQxKIriG24bvSCJNn6q7w+aGBRF8YVEG70gbhs/1R9aP1k0MSiK4jnJNnpBhmr8VN+dfrJoYlCUDGHp0qUsXbp0pMMYkuE2ekHiNX6q714/WTQxKIriCV1dXZ41ekEiGz/VT42+3vmsKIonNDQ0sHz5cs+9g4KNn1/eRKofjV4xKIqiKGFoYlAUxRMqKiqoqanxfCql0ztI9VOjr4lBURRPyM/PzzjvINWPjSYGRVE8JVO8g8aCfrJoYlAUxXPS3TtorOgniyYGRVF8IV29g8aSfrJoYlAUxTfSzTtorOkniyYGRVF8JZ28g8aifjJoYlAUxXfSxTtorOoniiYGRVFSQjp4B41l/UTQxKAoSsrIVO+g0aLvFvVKUhQlpWSid9Bo0neDXjEoiqIoYegVg6IoKcXp7QN43lWi+sNHrxgURUkZmeodNFr03aKJQVGUlJAO3kFjWT8RfE0MIlIrIhtEZL2IrLOXTRCRJ0Vks/2/zM8YFEUZedLFO2is6idKKq4YTjHGLDDGLLTfXwesNMbMBlba7xVFGaWkk3fQWNRPhpHoSjoPuNN+fSdw/gjEoChKCkg376Cxpp8sficGAzwhIi+LyDJ7WYUxZheA/X9yrA1FZJmIrBORdXv27PE5TEVRvCZdvYPGkn6y+J0YPmiMOQY4G/i8iHzY7YbGmFuNMQuNMQsnTZrkX4SKonhOunsHjRX9ZPE1MRhj6uz/u4EHgA8ADSIyBcD+v9vPGBRFSS2Z4h00FvSTxbfEICKFIlIcfA2cAbwBPAxcahe7FHjIrxgURUkdXV1dGecdpPqxEWPMsIOLKSwyE+sqAaw7rO82xtwsIhOBvwHTge3ABcaY/YNpLVy40Kxbt86XOBVlONx1110sXLhw6IJJ8L0brqdx74HxtRfXvw7A8QuOiirb1NrB8y+/7EscbrnhhhuYMWOGL94+dXV1vnoHjVZ9EXnZMSPUNb5ZYhhjtgLzYyzfB5zm1+cqymihce8erjuyMvT+y5vfBghbFuRzj+qJk+IdeuezoiieUFFRQU1NjedTKZ3eQaqfGn1NDIqieEJ+fn7GeQepfmw0MSiK4imZ4h00FvSTRRODoiiek+7eQWNFP1k0MSiK4gvp6h00lvSTRRODoii+kW7eQWNNP1k0MSiK4ivp5B00FvWTQRODoii+ky7eQWNVP1E0MSiKkhLSwTtoLOsngiYGRVFSRqZ6B40Wfbf4ZomhKIoSi2Dj55d3kOoPH71iUBRFUcLQKwZFUVKK09sH8LyrRPWHj14xKIqSMjLVO2i06LtFE4OiKCkhHbyDxrJ+ImhiUBSPWbp0KUuXLh3pMNKKdPEOGqv6iaKJQVEUX0kn76CxqJ8MmhgURfGNdPMOGmv6yaKJQVEUX0hX76CxpJ8smhgURfGcdPcOGiv6yaKJQVEUT8kU76CxoJ8smhgURfGErq6ujPMOUv3Y6J3PiqJ4QkNDA8uXL8847yDVj0YTg6JkCLd8fPFIh5A2LF68GIBVq1aNaByjFU0MiqJ4QkVFBTU1NSnxDurp6SEQCPimn0neR37o6xiDoiiekJ+fnzLvoMbGRnp6enzTzxTvI7/0NTEoiuIpqfAOKisro7GxMa29idJBP1k0MSiKCxYvXhzq1/aS0eqr5Ld3UCAQoKysLG29idJFP1l8Twwiki0ir4rIcvv9BBF5UkQ22//L/I5BUZTU47d3UCAQSEtvonTST5ZUXDF8GdjoeH8dsNIYMxtYab9XFGUUkm7eQWNNP1l8TQwichDwEeD3jsXnAXfar+8EzvczBkVRRpZ08g4ai/rJ4PcVwy+AbwIDjmUVxphdAPb/ybE2FJFlIrJORNbt2bPH5zAVRfGTdPEOGqv6ieJbYhCRGmC3MeblZLY3xtxqjFlojFk4adIkj6NTFCXVpIN30FjWTwQ/rxg+CHxURGqBe4BTReTPQIOITAGw/+/2MQZFUdKITPUOGi36bvHtzmdjzPXA9QAishj4ujHmMyLyE+BS4If2/4f8ikFRlPQjE72DRpO+G0biPoYfAqeLyGbgdPu9oiiKkiakxCvJGLMKWGW/3geclorPDaKGW4qSPmSid9Bo0neD3vmsKErKyFTvoNGi7xZ1V1WUYfD/fvYzSosLwpZteWcTAF+5+sqo8mXlk/juzT9ISWzphhtvn+GcGau+d2hiUJRh0Ny0nx+eNDNs2Zc3vw3AdUdWRpX/4Yb6lMSVbiTiHZRM46f63qJdSWmIX4Zt6cJo3z8lnHTyDhqL+smgiUFRFN9IN++gsaafLJoYFEXxBb+9g3p6etLSmyid9JNFE4OiKJ7jt3dQT08PjY2NaetNlC76yaKJQUlr/ByP0LEOf0iFd1BjYyNlZWVp7U2UDvrJoolBURRP6OrqSpl3UFlZGYFAwDf9TPE+8ktfp6sqiuIJDQ0NLF++3BfvoG1bNvO5e/4CwKGzZrFr504AbrrhW1HlSyZM4Etf+3pC+pnsfeSHviYGRVHSnpamJj5cUQTAGYeU8VyB1XRdM2diVNnfbtqX0thGI9qVpChKQsQbm6moqKCmpsbzqZR1dXVsra3ljAVzOWPBXFa/uZme3n5P9YPeRH7Fn2n6esWgKBGcc8oidu3YHrZs885dABw96+Cw5S0tLQlp729sCrPKGMw+o6mxCYi+ezpdyc/P9/wO3WCjN7O6msqyEgAWzZvNLctXUlpQMMTW7vWdsfoR/0jpJ4smBkWJYNeO7dx3SngCuHh5EwB3Ryz/0P2vJqRtBgbCrDIGs8/4xqr9CWmnC354B23b9HZoeWVZCaUFBTR1dFDf2BxKGMPRz0TvIzf6yaJdSYqieM5w79AdanZNIDeb0oICVr+5mfrGZs/1/Y4/VfrJoolBURRf8Ns7KJCbzaJ5sxNODpnufZSIfrJoYlAUxTf89g6qLCtJKDlkuvdRqp4BrYlBURRf8ds7yG1yGA3eR2lruy0iZSJylB/BKIoyOvHbO8iZHFpaWz3XTxfvo1Q9qMdVYhCRVSIyXkQmAK8BfxCRn/kb2uCoz42F1oOSKfjtHRRMDltra8P0TzrpJE477bQR9z4a6rfqd/0kgtvpqiXGmBYRuRL4gzHmuyLyup+BJUsic9CnTJvOo0+vTllsijLWiZyqCd4+7L6yrISZ1dVh+l4Y7gXxO36/9d3iNjHkiMgU4ELgBh/jGTaJzEH/xNPvpSwuRVEs/PYOGl9cHKbvleFekEz0PkoUt2MM3wMeB7YYY14SkZnAZv/CUhRFUUYKt1cMu4wxoQFnY8zWkR5jyDSCfYurVq2KWhfZ/RWv6wvSt/trtO+f4h1Obx/wvqukpbU1TP/nP/85ZWVlnmiD//H7re8Gt4nhl8AxLpYpSRDZ/RWv6wsys/trtO9fJLd8fPFIh5C2+O0dVN/YzNbaWv79uutDWmVlZTQ2NlJXV5fx3kepSg6DdiWJyIki8jVgkoh81fF3I5CdkggVRRkVuPH2GY4raH1jM6vf3MzM6uow/UAgQFlZ2bD1/Y7fb/1EGGqMIQAUYV1ZFDv+WoBP+huaoiijBb+9g4JJYdG82YwvLo5aHwgERoX3UaqSw6BdScaY1cBqEbnDGLPN92iUMc+u+vqwsQevxiMSmcbc0FAPRH9eJjHYmE+qScY7KJFuE2dSqCwrgd2xH9STrP5g8Tvr2Q99N/H7cazdjjHkicitQLVzG2PMqfE2EJF8YA2QZ29zr33/wwTgr7ZWLXChMaYxmeCV0YcZ6PdlPCKRacwn3rXTta4yOMPxDnKzTVRS8Fjf7/j91k8Wt9NV/w68Cnwb+IbjbzC6gVONMfOBBcBZInICcB2w0hgzG1hpv1cUZZTht3dQT29/QkkhUf109T5KRD9Z3CaGPmPMb4wxa40xLwf/BtvAWLTZb3PtPwOcB9xpL78TOD+ZwBVFSV/89g7q6e2nqaMj4aTgVj/dvY+c+j09PXH1k8VtV9IjInIt8ADWlQAAxphBHzElItnAy8As4FfGmBdFpMIYs8vefpeITI6z7TJgGcD06dNdhqkMRTr1PSvpTyJjM2VVB7Fs2bKkG73I76az8bOM8SYCVvfRpaeemHRSCBKvW8Yrb6JY9hZu9d38ToP6P/jBD8Lu03DqJ4vbxHCp/d/ZfWSAmYNtZIzpBxaISCnwgIgc4TYwY8ytwK0ACxcuNG63UxTFOxIZm7nghd2eG74FG7+H7v079YdYjV8y3UdD6afC+yh4Zu+1vvM+Da/0XSUGY8ywpmgYY5pEZBVwFtAgIlPsq4UpwO7haCuKkh50dXezfPlyX7yDZlZX88T6jQCcsWCuJ0nBqZ8K76Obb74ZwPNB4+B9Gl7G7yoxiMhnYy03xvxxkG0mAb12UhgHLAF+BDyMdQXyQ/v/Q4kGrSip5u6ao33R1buklXTE7eDzcY6/DwE3Ah8dYpspwNO2PfdLwJPGmOVYCeF0EdkMnG6/VxRlBPHiuR75eXnU1NR4fhNWXV0dW2trOWPBXM5YMDfhZzy70Q96E/kV/4oVK5g4cSITJ070XL+np4fGxkZP43eVGIwxX3T8XQUcjXVX9GDbvG6MOdoYc5Qx5ghjzPft5fuMMacZY2bb/wcdwFYUJTPIzsry/A7dYKM6s7qayrKShJ/x7FY/2L3jV/xLliwhEAgM+w7sWPrO5014FX+yz3zuAGYn/amKooxa/PAOctpceJUcMt37KKgf+bwJp36yuB1jeARrFhJY5nlzgb8l/akJ8saGDVROKA1btr/FukVizrQqCvLyAOjo7qauYTe3RNxh8X5rZ5Tm3Rt3smt/IzfeeGPUumOPPZZzzz0XsCr/1ltvjRvbsmXLQgf9kUce4eWXY9/eEens6PzcXfsbw2Ju7+2jMNc6NBv2tvLUtr2hdZu37wiri7bOLsCaOri3uZXe/r7QuuLxJVxy2eVR+9Td3R1zvxPdpylTpnD11VeH3tfW1sbU3bW/kQ17yzmyvDi0f41dvdzycvSdy229/WHvGzq66e0fiFm2ub0j9Hqo49Tbd6BeVm7byxt7W0PfC6f2pILwC+FYnxvk1Bnlodebdjfy3Hvxf+SXHz8v9PrhN7ayrz36OwkwZ3IZJx1s1X1Pby9/ePHNuJrnzptJedE4AFrbO8Lqvra2FrC+Z5HHKdYxCpZ/+eWXOfbYY0OvI7+bEP/3tLO+KUy7tbWVBx54gPPOO4/LLrsMGPw41dbWMmXKlFC5n/zkJ2RlZbF161ZWr/kXLW+NC5WtKB3PmQsOD81Q+uOqF0Lrnt3ZyFNr/hV6/86WLeQFAtx0w7eo27WLtzdvobunm8amJiorK9m6dWtU3VRVVbFr1y4+//nPM3PmTIoj/JeG+j2tfvop6uvrKSstZcO6lxhfXMy2996jo6ODUz70IWu7nm5+cPN/UVlZyaJTTnX9ewI44YQT2L17N0uWLOGWW26hrq4uqmxrjGdfu8XtdNX/cbzuA7YZY95P+lMTpK+vj/OrCsOWPdxtfTlvnFvG4ROsdW/tb+fKXfV0R9zwMWCsnNba2hZa1t3VTV9fX+gH4SQQCIS+CHv37o1ZJshzzz1HebnVQGzYsCFu2c7OTpqamkLzkp3l+vr6wmLu6x+gL6uf1tY2Oto7wtaZgYGwuli3ewCA2xZO4t4thj1dvaF1927fF/qc4D41NTXR29vryT61tLSE9qepqYmurq6YZfv6+uho76A1T0L7N2BM1HGydtCEHaeBgfhle3p7Qp8/1HHq6ukO6XZ2dtHd0xP6Xji1u7NMWAwxY7TpaO8ADJ2dnXR3W9+neHR2BhtTQ29vT9yy3T09YWUH0+zq6qLT9jju7w//Lnd1WScMtbW1YccpuCyWFsC6detCDcqmTZuivpsQ//c0YAbYu3dvWNnS0lKefvppZs6cSUVFBQ0NDVFlgvT29tLZ2cmaNWt4/vnnmTx5Mjt37qS7u5uBgX76+vodZfsoLcjn+NkzWPHaRpraOijKt04QMYYFpQcS/N5AFkX52VxWXcTrUkDfDsP2tjbmTZ/MOx19YfFs2rQprE5KS0t57bXXmDZtGoWFB35377//Pps2baKjo4Oenp4wjfb2durqdvHh6gqK8vO4cFohlaVFPJqfTWNftiO2AG3jA6yp3cW2bdsQkdDnd3R00NvbG7Ou2tvb2bdvHxdccAGtra10dXXFLZssbqerrhaRCqzBZ0jx09tys7P43BFTw5at2219eYNJIfi6KDc7blknn5w1mXsbukNnMvEoLy8fskyQk046iZNOOinmuvXr14e9d2q+uPLxsJid8R4+oTBsHx94d3dY2Sueejv0+pOzwu8VXN08EDP23NxcT/YpksrKypi6L658PGwfCnOzKYxxnMDaPyeTxlk/olhlVzfvCL0e6ji9uPLx0OtFU0tZNLU0VM+R2re+ecArKdbnxmJ2eQmzy91NoTznsBmuygVyc/nMMYPeKhSiqGBc2P4Hv2+x6iTWsmD5OXPmhJbNmTOHSSXFrn9P/+hq54tf/GLUuoaGBp5//nlOPPFEKioqYpYBWLt2Lb29vWFlg9x1+++5alb0w3YqS8dz8txDADh57iFUlo7nlvU7+PKCaaEyL7xz4Kpvckkxh0+bwrIzTqaydDy/29LIJf92Zcx4PvWpT8WMP5JAIBDap2DZ0nH5fPXoaVFly4oK+OpHTwtb9rNXd1A5o5oTTzwxbPnUqVOj6ipWLIWFhRQWFsas11/96lcx920oXI0xiMiFwFrgAqznPr8oIhlju33bqYdx26mHjXQYijImqaio4MQTT+T555+noaEhbrne3l6am5vjNsDxCCaHZza+S31TS9xy9U0tPLPx3VAC8Tp+Z6NdXFzkWr+4uChh/UTqJxncdiXdABxnjNkNoXsUVgD3+hVYpnPDV7/M/j0Hzn632VbAn1v66aiyTfv3A9FnF+lK5L7B6No/xXucjWushq2hoYHm5mZKSkqSavScyaFtYFzU+p6+vqSSQiLxD6fRjtSPJJVJAdwnhqxgUrDZR/IzmsYE+/fs5p4PHmgMr3iqHYDbPhjdQJ7xkHd9g6kgct9gdO2f4g/xGtdgo1dSUkJubm7S+sHk8MRja6lvqgolgJ6+Ppo7Ol0nhaVLlwLwpz/9yVX88bq/EsWp39vbG6qLVCcFcN+4PyYij4vIZSJyGfAP4FH/whrbjPaur9G+f0p8IrtlnI3ecJJCkMrS8cyYdlCoW6m+qYXmjk5KCsYldaUwVPzJdn8Npd/c3Exvb++IJAUY4opBRGYBFcaYb4jIx4GTAQGeB+5KQXyKoowygo1fcKbU4sWLPW30igoLObm6ipWvWxMzSgrGEchx2zkyNM74m5qaKC0t9TT+iooKSkpKQrMYva4fNwxVW78AvgVgjLkfuB9ARBba6871NTpFUVzR3t4eNhWCIsEAACAASURBVL4z2JjPhEmTuflnt6QsttHCg3//K+32VN7W1jY2v/suLc3N9PZ0c9ftvw8r29neDkTPovI6DoDd9ZYNemQMw2GoxFBtjHk9cqExZp2IVHsWRYbyla98BYBf/OIXIxyJMuYxxvWY1qee3RG1LJUEu0eC3kzxBlyTpa29nWc27uW0o6zuyt+veJaSgugB6URpb23lqlll1uymPXu5eMkxXLPlbZo7Ojm3PDusq+qW9W2DKA1OcCC+tLSUxYsXR3UlBeMI8uQ4qwsu1nTem5KMYajEkD/IuuHXtKIMgZ9jETrOkXpi9ZnHGnBNlvqmFrbteJ8rzvpAqKEuKRhHc0cn9U0twx5niJzyGsjJoaRg3LBmPDmJHIgfajaUXwyVGF4SkauMMb9zLhSRK7CezKakMfv374/qSojXxaDdC4rfOJPC82tWhXWHtLa2sWP7dvLz82J2ibjpmgk22jOmHRTWQHvVeLe2tvHMnr1RGoGcnNBU2WT0O9rbuev239Pa2sbWbduYOWMGjfusmXzBumhtbeOna1Yzc8YMcrIEv7qpggyVGL6C9eS1SziQCBZiOat+zM/AFA8YGHA9rXSkuxeU0U3klUJkdwiUsebxwpjdMjB014zzTH5nbbSx3nAb74aGBrZu28bFi4+Kua3zPorgndiuMYZzy7Ot7ilb/4WVkd1DZdQfXMIzG99lU4z7NLxm0MRgjGkAThKRU4DgYzn/YYx5yvfIHPT2D/CbN3aGLatrtx49/db+9jCvpLbe/qiyQZy39t+7ZTd7mlu54447osodeuihIRuIvXv3hp6MFEl9fT0TJ04MvX/uued45513ANjT3BoWx57OnpC9AxC2LjLmRVWlYfu0uq4pblkn927ZHeaV5Cx7eFkhi6Za5ns9MerTWRc1NTWUl5fzla98hebmZhYtWhRV9jdv7GRSfm6YDUdde3fM2Np6+6OOk3OfIssOtk9OWm0DQbCO0xe+8AUAzjrrrKiyvf0HdFfvbOKtxvaYmpPyw7sy4tU1WMcpyOa9zby4Pf5dq5855tDQ60ff3sb+ju6Y5WaVl3DCdKu7oKe3lz+/8k5czbPnTGdiodXb29XTGxZr8PcR6zjF+t7X19cDlldQ0BZj06ZNUd9jgIWTww3lwDpOu3a388tf/jJq3dSpU8nKygqNI/zyl79kw6uv0PpWeAPX0NRKWVFBqHHdsG0nG7ZZxoQv1jfTv/1AXUwuKeYziz5gxd7Uwrfvfpjp5RPYvmd/VNm2rm6K8vOoLB3PxOLCUNmi/Dxe2d/JfoehodNW4p577mHPnj20t7ezY8cO2pqbuHvNSwAcOaOK0+fPBaz7JH728MrQZz326pvsM7n0b7f8xi7+8HGhZNLY1hEqG+RfO/ay4blejpk5PSzp7NjbGFW2raubp7fs5KSSLE454tDQsli6w8GtV9LTwNOefWqCiAh5gXDXyyyxDNkKCgtCt58XdBuIUTaI8zb1vPxmcnJyqK6ujip35JFHhgbG6urqeOONN2Lq5efnM378+FDZ1tbW0HNdc3JywuLIysoiJzs7FENYjBExR+5TXqAjbtmc7OzQvuXlN5M3IDHLjhuXT3FxETnZ2QwQXUfOujjppJOoqqqitLSUvr6+qDoK7ltefiAUZ052Nlnx6l5k8H2KKBt5nML2yUEgty/sOOXnW41krGO6LpAX0h03rou89tjJJi8/EBZDvO8SWMcJhHHjxpGX10XOIFMix40LNoJCbm6AnJz+mOXyAoGwsoNp5ufnh5UN+77Zv4/I4wTE/N4H627hwoUhd9Xi4uKo77GTyOOUJZ0h88Ugra2t7N69m2984xtUVVVRV1dHeXk5WVnZ5ORkh5UVgfzcHJbMtx7GY4w5UEYIK5+bm0N+Xh71jc28uHkbMysmUTQuL2bZrCwhK0vIz8ujakIZMysmsW3PPmZMmkhWVnZYzHPmzKGgoACwvL9aWlrYuXMn8+fP55W1a0O6gdxc8vPyLG2R0PLSogJysrN5953tdPWWUjQuj/xAIFRWImJr6+ymqaWF4w6dzsTxReTbTtGxygb1S0vG88b2XRw9czqVZSVxyw4H7yb3+khuTjZfPjb8sdMv7rLOOINWzsHXRbnRZWNx8dyp3FffM6j9NFj2u/HKOB0rAc4999yQFe9Df74zLI5gvEGc6+55e2fcmI8sLw7bx8iyFy9/NWyfnMTTDWRnRS1f0xLbjrm8vDxqeeS+BTmoeFzM5fe8vTPqODnfR5Z1ErlPYTE/fcAcraqqKtTYxdqPh/58Z+j1aTPKOW1GeVSZIL985YCum+8SWHbZcya76/f96BHujPECublcfvzhrsrmB3Jjft9ixt/THVYfAHsbrCuGKy8Kt0DL6u12/Xt6uDUvrO5jPY8g+Hu6qbeHa+ZMDNN47u13gfDnLXx28QlUlpXwo7Vb+OYHZoWVr29sDtluX3TywtDyyLJBXYD5Bx/E/IMPCm1blB/9/Q5y7rnnsmLFCr72ta9RVVXFTTd8KypmgEBuDt/82Jlhy8zTrzEvt5dF82aHPZ96QnFhqGwwBjNlBt8/ZX6U7vRJE6J0AczaLSydPSm070X5eRTl50WVrW9s5n8efDLmvg1FRiQGRVG8wwz0c98p4Y39xcutRHJ3xPIT74rflTYY8R5S4xZnclg0L/qZYM6k4Gx4E9W/ceWrUc9KAetxmcOJv6iwkEWOxjsyRmf8tZv3JB3/6jc309PbTyA3/GohqJ8s6nekKIqnDDcpBHE2fm3tB8aEhpsUnPozq6ujnqQWfIayl/E7nzTnZfyL5s2mqaODHsfYnFM/WTQxKIriCf0DA54lhSDBxm/bjvepb2z2rFENMr64OOwxm5HPUPYq/uCZfU9vv6fxV5aVUFpQQFNHh6f1o11JiqJ4Qld3N8uXL6empsaTRjVIZVkJM6YdxBPrNwJwxoK5njSqQYLPSA7OPox8hvJwCSaHnz9sPYPZq6QQJJCbTWlBgaf1k7GJ4e6ao0c6hLRA60FRBufB668d6RAAuPbsxSMdgmu0K0lRFE/Iz8ujpqYmqs9+uNQ3NrNtx/ucsWAuZyyYG9VnP1yC3V81NTXU1NTQ2NgYmnbuBcHuHb/i7+ntp6mjw1P9jL1iUBQlvcjOygp1ywTHGS6++GIgemq3W4KN6oxpB4W6R5yzlYbbZbKzro4vXnM1M6ur2bbJsulua21h757dfONLX2R88YFp1S2tzUD0dFU38Ttj9TL++sZmmjo6KC0oiKmfLJoYUsRo7/IZ7funuMeZHHp6epLur483pTNyKmuyjat1JbKdH597cpjGY8X59OTnMqNrL4sOKQut+9HaxqTjd+oPNRU3Uf3SgoKw6apO/WTRriRFUTwnmByS7ZYZanZNvKmgieo7r0ScBHKzh6Xf1t7uOn7nVNxE4180b3bUPQxO/WTRxKAoii9UVVVRVlZGY2NjQmMObqdcJpscnPpFhYW+6G/b8b7r+INTcd0yVNJx6ieLdiVFEPTeiewTPeeURezasT1s2ead1pOTjp4VbRnQ0FAPuLNTUJTRSiAQoKyszPW9DYnO80+0Wyk66Qx+13HYmX3v0M+KGOpKJJb+jGkHJRT/th3v8/mI7i+v8S0xiMg04I9AJTAA3GqMuUVEJgB/BaqBWuBCY0xinXcjwK4d213bCEDyVgKK4gXpNOYTCATCBqTjJYfg7JpExw3c9tkne/NXUP8fjzxDfWN12LbOqbDJ2lwMZZ8RqR+ZdPyYjutnV1If8DVjzFzgBODzInI4cB2w0hgzG1hpv1cUZRTjHJCO1a0Ua3ZNIgzVZ++Ft1LwzD5Wt49X3k1u9Afr/vIK3xKDMWaXMeYV+3UrsBGYCpwHBK0d7wTO9ysGRVHSB2dyaHE8vS3e7JpEiddn75VNRFFhYUq8j4L2GV7rJ0JKxhhEpBo4GngRqDDG7AIreYjI5DjbLAOWgWW7rXhDvC6GXfX1UWMl8cZQ0mX8JDJmHfNJf4LJ4aF7/079IZZNeSzr7GSJ7LN36nvlTRTZbeWHPlj3I4xEUoAUJAYRKQLuA75ijGkRif3QlUiMMbcCtwIU5OcZ/yJUIDVWzF4TGbOO+WQGVVVVzKyu9s37KNhn75d+sPHOVH03+DpdVURysZLCXcaY++3FDSIyxV4/BdjtZwyKoihKYvg5K0mA24CNxpifOVY9DFwK/ND+/5BfMSiK4o5UzmKqq6tja20tnz3N+kyvu0qsef5NnLFgri/6Tu+jTNR3g59XDB8ElgKnish6++8crIRwuohsBk633yuKMgYIGtbNrLamfQ73DuZIIm8u80Pf2VBnmr5b/JyV9IwxRowxRxljFth/jxpj9hljTjPGzLb/7/crBkVR0gfnQ3yc5nReNX7x5vl7pR/vjmOv4/dLPxHUEkNRFN8Z6sluXnkfxZvn74X+YDYXXsbvh7dSoqglhqIontDW3s5NN3wrbNm2996jr78vyto6loV1sq6pbm0uhqs/lM1FovYZQYJjIm69lWLdge01esWgKIonGDPANXMmhv2V5wr5A73ceNrRfHNhdWi5GRiIqZHomXei8/yHo+/mjuNEjfHcGu459Qe7A9srNDEoiuILydpcuG28h+t9NFS3zHD03TTeiRruBYl3B3Ys/WTRxKAoiucM1+YiEe+g4XgTxTqzf/D6a/ntNZcMS3+oxnu43kdu6ydZxvQYQybaQChKuuNs9P7yr7VJ68Trs/fSmyiW5bUf3keD67t3Yk1UP1nGdGLIRBsIRUlXBsyA594+kQOu4O0NX5GW117rp8pbyWv9MZ0Yhks6ed4rykjT09PLE+s3+uIdNGPaQRnrTZSJ+jrGoCiKooShiUFRFE8IBHI5Y8Fcz6dSBqd0nrFgrm/6QW8i1bfQriQlLpnWVZZp8Y42siTL9WM23RJrSmcyN6nFI9bNZV7qxxpzSaV+sugVg6IonhLvSWSJEm9Kp5feRLFuLssU7yM3+smiiUFRFM8JNk5NHR1JJYdEvIOG400U7+ay4erHM9yLpZ+M95Hb+kkWTQyKovhCZVkJpQUFNHV0JNS4up3ymmzj7fbmsuHou7G5SNQ+I8hQScepnyyaGBRF8Y1AbjalBQVp6X2UqL6bM/tEbS4S9T5K1FspWTQxKIriK4Hc7JR5H/mpP9SZfbI2F4l4HyXjrZQMmhgURfGdVHkfxTuz90J/sDN7L+P3w1spUTQxKIriGw9efy0PXn8tEL/x9tqbKPLM3iv9eGf2fngr+aGfCJoYFEVJGZGNtx/eSs4ze7+8mzJV3y16g5uiKCnFb++joDFeJnkTpVLfDZoYItC7ZxVFGetoV5KiKCnFb++j4Dz/TPImSqW+GzQxKIqSMiKnXHplD+HUd87z90Pf2eefafpu0cSgKEpKSIX3Uax5/l7px7vjOFO8lRJBE4OiKL6TKu+jePP8vdAf7I5jL+P3w1spUTQxKIriK6n0PvJTf6g7jpNtvBPxPkrGWykZNDEoiuIb6ex9lKi+mzuOE228E/U+StRbKVk0MSiK4gvp7n001Jn9cPTdNN7Jeh8l4q2ULL4lBhG5XUR2i8gbjmUTRORJEdls/y/z6/MVRRk5UukdNBz9eGf2w9UfqvEerveR2/pJFj+vGO4AzopYdh2w0hgzG1hpv1cUZRThh3eQX95Ksc7sM8X7yI1+sviWGIwxa4D9EYvPA+60X98JnO/X5yuKkloGzIBv3kF+eStFntlnmveRX/qptsSoMMbsAjDG7BKRyfEKisgyYBlAbk52isJTFCVZenp6eWL9Rl+8g/z0Vsp07yM/9NN28NkYc6sxZqExZmFOtiYGRVGUVJHqxNAgIlMA7P+7U/z5iqL4RCCQ65t3kJ/eSpnufeSHfqoTw8PApfbrS4GHUvz5iqL4RJZk+eYd5Je3UuTNZZnmfeSXvp/TVf8CPA/MEZH3ReQK4IfA6SKyGTjdfq8oyijCD+8gv7yVYt1clineR270k8XPWUmfNsZMMcbkGmMOMsbcZozZZ4w5zRgz2/4fOWtJUZRRQCq9g4ajH+/msuHqD2VzMVzvI7f1kyz6oB5F8Yl97Z3c/comXqitZ3dbB/k52ZCTy9NTizll9rSo8hfd+SgNrR2cedgMrl9yXNi63W0dXHjHo1x63FwuP35eqnZhWDgbv0SmTybjfZSsfu3mPXHLiQgvbNrK9/+6nOaOTrKyc1j79DQ+u/gEzjt+QVT5Y792Mzv2NsbUWvn9f+fIGVN5duMWPvbD30at/787/sS86VU8fdNXh4zfSjpNruonWTQxKIoPvN2wn28+8gw9ff2cNbeaWeWltPf08sdX3uF7j7/IC9vque60hYhI1LZPbtrO0oWHjUDU3pNo4z0c76Pk9GMnhle3bufTP/09XT29fPQD8xER3uscoH3/bq769Z9Z8frb/O+VF0Udv0MqJ/HBww5hR382n5w7PbR8Wnm4ycNlp57IcbOqAbh343amZfdz/KHVQ+5vsPvr8+ee7OvjPjUxKIrHtHX38p//fB6A31xwKgdPPPADfqmpl4Oyenhww7scMrGEC48+NGzbGWXF1LW0c8fajRAoSmncfuG28fbC+2iw7hO3+i0dnVz+S+s+3Me++2UOO6iS+sZmvvnIM/zokrO5ZflT3L7yOQ6fNoXPnbUotF1//wDZgSy+fv7p3Ll5Dxd8YFbczzhuVjUXfPBYALbmlnDp7Emhbquh6idRb6VkSNv7GBQlU1n+5lb2tHVyzUlHhiUFsLonPn/yfKrGF/Lnl9+mu68/bP3EwnGcO28mT23eTmd3dyrD9pVUeR/F67NPRP+Pq16gbn8z37mohsMOqgzpz5h2EGve2sLnz17MjEkTueWRlXT19Ib0u3p7KSsq8N0bKhlvpUTRxKAoHvPMe3XkZmdx2qHTY67Pzc5iyZzptHT18MauvVHrLzl2DrnZ2dTtjt//nYmkwvsoljFeovqPvfImebk5fPyEo8OWB+0zntu0lbOOPpz9bR2s3Vwb0s/PzSVLhH2t7XR0drKvtZ19re20dXZFfUZ7d3dofbDsxOIiX72VEkG7khTFY7btb2F6aTF5g1i5zCovtcu2cuy0irB1EwvH8dF5M/n7a5vZuq+ZmRNT0xikgmDj/Y9HnqG+sRrAc++goDFesFspUf136ho4pHIS+YHcuPGvf28HAOu21LKrsZlF82bz4wce5/lNW5n7he8C8JvbrW3OP34Bt177mTCdb955P9+88/7Q+9/cDvd87UpOPeqwqG6xVCcF0MSgKJ7T3tNHQWDwn1ZwfXtvb8z1Fx87h/te38Kda9/ie2ef6HmMI4nf3kdFhYUsmj0paf3Wzm6Kx+XHXV9ZVsLxs6u5bcWzrH/vfS7+8AdC+kfOmMp3LvoIf327josOqwJgcklxlMaXPnIqH5pnjUEEyx45Y2pI309vJTdoYlAUjykM5NDR0zdomeD6gtzYP8GygnwmT5zAmnd38u7eJorzA57HqcSmeFwerTG6f5y0dVnjP3kRx6+0sIBF8w7lhfYsFs2LP/g8Z2oFi+ZZEw+GKjsS6BiDonjMjLLxbG9qjRpYdvLu3iYAqieMj1umsnwi+bk5/GHtW57HOJL47X0UvLksWf3ZUyp4t35PaGA5kvrGZp54zTqb/8jCIzPC+yhRNDEoisecdPAUevsHeOqdHTHX9/UP8OQ72xmfH+CIKeVxdXJzcvjYkYfwzNY6Nu9p8ivclOK391GkzUUy+mceczjdvX088MKrMfWf2rCJN7fXMaGogDOPnhfS7+8f8CR+P72V3KKJQVE85twjZlJemM//Pb+BbY0tYeuMMfzm2depa27nkmMPG3SAGuBTx8yhIDeHO0bBVUMqvI9izfNPVP/SxSdSWTqem/72DzbXHTCAbmtvZ9Ub77B2cy079jbypZpTGRfIDel39fbS0zd4F6Kb+P3yVkoETQyK4jHFeQG+f/aJ9A8McPVfV3LL6lf5x1vv8bdX32Hj1lrue30LZx42gwsXDO1lMz4/wCfmz8r4K4ZUeR/Fm+efiH5J4Tj+8KVL6RsY4PTv/pzr//QAv/7nKlY9+xy/e/IZ7l6zlotOXhh2c1tlWQn5ubk0tnX47g2VjLdSomhiUBQfOLxyIn/49Bmcc/jBvLi9nl+sfpU7X9pIVpbw3TOP5/olx8W0w4jFhUcfSmGMqZOZQjLeR4k0rn7oH3vIDNbc/HUuXnQ8T6x/i//6+6O8V7udkoJ8fnftZ/jlVZ+KOn7Z2VmUFRUk3HgPZbgXGX/kfRp+oLOSFMUnyovG8aUPL+BLHDBc+8aqt2Ia6AH89dJzYi4vzgvwj2Xn+RKj36Te+ygx/aHKfukjpzC/+iAWzZvNnZv38B+D2Fy8/NMbQjEF79OIjOmDc2ex+87/CYs/Ee+jyPs0/JrGqlcMiqL4ghfeR4OdGXuhP9iZ/XD0g423m/gT9T4K3oHtRj9ZNDEoiuI5Xnof+emtFK9bZrj6QzXew/U+cls/yaKJQVEUT/Ha+8hPb6VYZ/Z+xD9S+smiiUFRFE8YMAOeG75Fntl7rR95Zu9X/Jmmr4PPiqJ4Qk9PL0+s3+i5t4/f3kp+exNlor5eMSiKoihhaGJQFMUTAoFcX7x9/PZW8tubKBP1NTEoiuIJWZLli/eRn95KkTeX+RV/pulrYlAUxVO89j7y01vJabjnZ/wjpZ8smhgURfEcL72P/PRWindz2XD1h7K5GK73kdv6SRZNDIqi+EI6eR/F0x/s5rLh6Me6Eomnn6j3USLeSsmiiUFRFN9ItHEdjveR3/puzuwTtblwa5/h1HeTdIaLJgZFUXwlld5HfuoPdWafrM1FIt5HyXgrJYMmBkVRfCdV3kfxzuy90B/szD6V3lDJeCslyogkBhE5S0Q2icgWEbluJGJQFCW1pML7KNaZvVf68c7sM8VbKRFSnhhEJBv4FXA2cDjwaRE5PNVxKIqSevz2Poo8s88Ub6JU6btlJLySPgBsMcZsBRCRe4DzgMx/qK2iKEPit/dRUWEhi2ZPyihvolTqu0GMMan9QJFPAmcZY6603y8FjjfGfCGi3DJgmf32COCNlAaavpQDe0c6iDRB6+IAWhcH0Lo4wBxjTHGiG43EFUOsB91GZSdjzK3ArQAiss4Ys9DvwDIBrYsDaF0cQOviAFoXBxCRdclsNxKDz+8DzofeHgTUjUAciqIoSgxGIjG8BMwWkYNFJAB8Cnh4BOJQFEVRYpDyriRjTJ+IfAF4HMgGbjfGvDnEZrf6H1nGoHVxAK2LA2hdHEDr4gBJ1UXKB58VRVGU9EbvfFYURVHC0MSgKIqihJFWiWEoqwyx+F97/esicsxIxJkKXNTFJXYdvC4iz4nI/JGI02/c2qeIyHEi0m/fJzMqcVMXIrJYRNaLyJsisjrVMaYKF7+PEhF5RERes+vi8pGIMxWIyO0isltEYt7rlVS7aYxJiz+sgeh3gZlAAHgNODyizDnAP7HuhTgBeHGk4x7BujgJKLNfnz0a68JNPTjKPQU8CnxypOMewe9EKZaDwHT7/eSRjnsE6+JbwI/s15OA/UBgpGP3qT4+DBwDvBFnfcLtZjpdMYSsMowxPUDQKsPJecAfjcULQKmITEl1oClgyLowxjxnjGm0376AdT/IaMPNdwLgi8B9wO5UBpdi3NTFxcD9xpjtAMaY0VofburCAMUiIkARVmLoS22YqcEYswZr/+KRcLuZTolhKrDD8f59e1miZUYDie7nFVhnBKONIetBRKYCHwN+m8K4RgI334lDgTIRWSUiL4vIZ1MWXWpxUxf/D5iLdfPsBuDLxpiB1ISXdiTcbo6EJUY83FhluLLTGAW43k8ROQUrMZzsa0Qjg5t6+AXwH8aYfuvkcNTipi5ygGOB04BxwPMi8oIx5h2/g0sxburiTGA9cCpwCPCkiPzLGNPid3BpSMLtZjolBjdWGWPFTsPVforIUcDvgbONMftSFFsqcVMPC4F77KRQDpwjIn3GmAdTE2LKcPv72GuMaQfaRWQNMB8YbYnBTV1cDvzQWJ3sW0TkPeAwYG1qQkwrEm4306kryY1VxsPAZ+1R9hOAZmPMrlQHmgKGrAsRmQ7cDywdhWeEQYasB2PMwcaYamNMNXAvcO0oTArg7vfxEPAhEckRkQLgeGBjiuNMBW7qYjvWlRMiUgHMAbamNMr0IeF2M22uGEwcqwwRucZe/1usWSfnAFuADqyzglGHy7r4DjAR+LV9ttxnRpmjpMt6GBO4qQtjzEYReQx4HRgAfm+MGXV29S6/FzcBd4jIBqyulP8wxoxKK24R+QuwGCgXkfeB7wK5kHy7qZYYiqIoShjp1JWkKIqipAGaGBRFUZQwNDEoiqIoYWhiUBRFUcLQxKAoiqKEoYlBUQDbmXW9iLwhIn8XkQIRqY7nWKkooxlNDIpi0WmMWWCMOQLoAa4Z6YAUZaTQxKAo0fwLmGW/zhaR39me/k+IyDgAEblKRF6y/f7vs+80RkQusK86XrMtKRCRbBH5iV3+dRG5emR2S1HcoYlBURyISA7W8y022ItmA78yxswDmoBP2MvvN8YcZ4yZj2U7cYW9/DvAmfbyj9rLrsCyITgOOA64SkQO9n9vFCU5NDEoisU4EVkPrMPy2bnNXv6eMWa9/fploNp+fYSI/Mu2XLgEmGcvfxbLiuEqLLsGgDOwvGrWAy9iWZnM9nNnFGU4pI1XkqKMMJ3GmAXOBbYHVbdjUT+WnTXAHcD5xpjXROQyLK8ajDHXiMjxwEeA9SKyAMur54vGmMf93AFF8Qq9YlCU5CgGdolILtYVAwAicogx5kVjzHeAvVh2x48Dn7PLIiKHikjhSAStKG7QKwZFSY7/xOoW2oY1HlFsL/+JiMzGukpYifU84texuqBesR81uQc4P9UBK4pb1F1VURRFCUO7khRFUZQwNDEoiqIoYWhiUBRFUcLQxKAoiqKEoYlB+Q9P/AAAABlJREFUURRFCUMTg6IoihKGJgZFURQljP8P4L8k4OYZINIAAAAASUVORK5CYII=\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": [ "No thresholds defined for obs Observation\n", "\n", "\tobs id : 111630 \n", " \ttstart : 59300.83\n", "\ttstop : 59300.85\n", "\tduration : 1800.00 s\n", "\tpointing (icrs) : 130.9 deg, -44.6 deg\n", "\n", "\tdeadtime fraction : 2.0%\n", "\n" ] } ], "source": [ "e_true = np.logspace(-2.5, 1, 100) * u.TeV\n", "e_reco = np.logspace(-2, 1, 30) * u.TeV\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": { "image/png": "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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 : 108\n", "\ttotal stat : 5.70\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", "for dataset in datasets:\n", " dataset.models = model\n", " dataset.mask_fit = dataset.counts.geom.energy_mask(\n", " emin=emin_fit, emax=emax_fit\n", " )\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": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/terrier/Code/gammapy-dev/gammapy-docs/build/v0.17/gammapy/gammapy/estimators/parameter_estimator.py:172: RuntimeWarning: invalid value encountered in sqrt\n", " {\"sqrt_ts\": np.sqrt(res), \"ts\": res, \"null_value\": null_value}\n" ] } ], "source": [ "e_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(e_edges=e_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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rvT8wqm12yXOtjsfQLt27fjoo49cel9iYiJXX301jzzyCHl5edx4441069atwut+++033nzzTS655BJuu+02XnnlFaZNm8Ytt9zCZ599RqdOnZg0aRKvvvoq999/f5n35uTkcPHFF/PMM8/wl7/8hX//+9888sgjXH311YwePZrx441NYGfPns2ePXsICAggOzu7Vv8d6oIG3fFrrZcBywb06337ko/eZOu2rWSsyrCXNfxg0SI2b9rMyKSRDBwwEH//yob5NRTlGIeNyc8aCISAfzBKl6JVoxg8EUI0cAeycsvc6X+35yQAseGBxEUE1/q6lQ31u2rmzJkkJiYSGBjInDlzKn1N69at7dvY3njjjcyZM4cRI0bQrl07e437m2++mXnz5lXo+P39/e25Bn369GH16tWVfkZCQgI33HADY8aMYcyYMbX6WeqCBt3xO1MKLuralYuc5mrycvP47rvvWJWxiiZNmnDZsMu44oor6NcvsfqLlRZB/injAOKLd1OIP2TH2oMB/II8+eMIIYRblb+Tn/jaN3y35ySZs6/yyudbLBZKS0vtj/PzHcHHyZMnOXv2LEVFReTn55fZhtem/Pa2Sqlqt8N15ry1rtlstm+nW94nn3zC2rVrWbp0KU899RS//vorFkv960Yb9W3qpEk3sXLVSubOmcvQIUP57LPPmD9/vv35Xbt3U1rq2i9O9unTkHsCTu2D49vh8M9wYjecPmwECCWV/yIJIYSA+Ph4Nm3aBMCmTZvYs2eP/bkpU6bw1FNPccMNN/DQQw9V+v59+/bxzTfGtERaWhqDBg2ic+fOZGZm2re3XbBgAUOGDHG5TaGhoZw5cwaA0tJS9u/fz7Bhw3juuefIzs62b9lb39S/UOUc2Ob4u3a6oMrX+FksDBw4gIEDB/C3h//GyRPGsNaJkydJTUklOjqaESNHkJSUROcLO6Mq22IIOHamoOwJXQIFp43DxhxgjAb4NzHyBfyCqPKCQgjhY7HhgV77rHHjxvHuu+/Ss2dPEhMT7cPz7777LhaLheuvv56SkhIGDhzI559/zmWXXVbm/V26dOGdd95h6tSpdOzYkTvvvJPAwEDmz5/PhAkTKC4uJjExkTvucH1/t5SUFG6//XbmzJlDeno6f/rTnzh16hRaax544AHCw8Pd+t/AWzy+LW9d0LJdZ33L//vbOb2npKiA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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." ] }, { "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 }