{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "
\n", "**This is a fixed-text formatted version of a Jupyter notebook.**\n", "\n", " You can contribute with your own notebooks in this\n", " [GitHub repository](https://github.com/gammapy/gammapy-extra/tree/master/notebooks).\n", "\n", "**Source files:**\n", "[light_curve.ipynb](../_static/notebooks/light_curve.ipynb) |\n", "[light_curve.py](../_static/notebooks/light_curve.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example of light curve\n", "\n", "## Introduction\n", "\n", "This tutorial explain how light curves can be computed with Gammapy.\n", "\n", "Currently this notebook is using simulated data from the Crab Nebula. We will replace it with a more interesting dataset of a variable source soon.\n", "\n", "The main classes we will use are:\n", "\n", "* [gammapy.time.LightCurve](http://docs.gammapy.org/dev/api/gammapy.time.LightCurve.html)\n", "* [gammapy.time.LightCurveEstimator](http://docs.gammapy.org/dev/api/gammapy.time.LightCurveEstimator.html)\n", "\n", "## Setup\n", "\n", "As usual, we'll start with some setup..." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import astropy.units as u\n", "from astropy.units import Quantity\n", "from astropy.coordinates import SkyCoord, Angle\n", "\n", "from regions import CircleSkyRegion\n", "\n", "from gammapy.utils.energy import EnergyBounds\n", "from gammapy.data import Target, DataStore\n", "from gammapy.spectrum import SpectrumExtraction\n", "from gammapy.spectrum.models import PowerLaw\n", "from gammapy.background import ReflectedRegionsBackgroundEstimator\n", "from gammapy.image import SkyImage\n", "from gammapy.time import LightCurve, LightCurveEstimator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extract spectral data\n", "First, we will extract the spectral data needed to build the light curve." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Prepare the data\n", "data_store = DataStore.from_dir('$GAMMAPY_EXTRA/datasets/hess-crab4-hd-hap-prod2/')\n", "obs_ids = [23523, 23526]\n", "obs_list = data_store.obs_list(obs_ids)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Target definition\n", "target_position = SkyCoord(ra=83.63308, dec=22.01450, unit='deg')\n", "on_region_radius = Angle('0.2 deg')\n", "on_region = CircleSkyRegion(center=target_position, radius=on_region_radius)\n", "target = Target(on_region=on_region, name='Crab', tag='ana_crab')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Exclusion regions\n", "exclusion_file = '$GAMMAPY_EXTRA/datasets/exclusion_masks/tevcat_exclusion.fits'\n", "allsky_mask = SkyImage.read(exclusion_file)\n", "exclusion_mask = allsky_mask.cutout(\n", " position=target.on_region.center,\n", " size=Angle('6 deg'),\n", ")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Estimation of the background\n", "bkg_estimator = ReflectedRegionsBackgroundEstimator(\n", " on_region=on_region,\n", " obs_list=obs_list,\n", " exclusion_mask=exclusion_mask,\n", ")\n", "bkg_estimator.run()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/jlenain/local/src/python/anaconda/envs/cta/lib/python3.5/site-packages/astropy/units/quantity.py:641: RuntimeWarning: invalid value encountered in true_divide\n", " *arrays, **kwargs)\n" ] } ], "source": [ "# Extract the spectral data\n", "e_reco = EnergyBounds.equal_log_spacing(0.7, 100, 50, unit='TeV') # fine binning\n", "e_true = EnergyBounds.equal_log_spacing(0.05, 100, 200, unit='TeV')\n", "extraction = SpectrumExtraction(\n", " obs_list=obs_list,\n", " bkg_estimate=bkg_estimator.result,\n", " containment_correction=False,\n", " e_reco=e_reco,\n", " e_true=e_true,\n", ")\n", "extraction.run()\n", "extraction.compute_energy_threshold(\n", " method_lo='area_max',\n", " area_percent_lo=10.0,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Light curve estimation" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Define the time intervals. Here, we only select intervals corresponding to an observation\n", "intervals = []\n", "for obs in extraction.obs_list:\n", " intervals.append([obs.events.time[0], obs.events.time[-1]])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Model to compute the expected counts (generally, parameters come from the fit)\n", "model = PowerLaw(\n", " index=2. * u.Unit(''),\n", " amplitude=2.e-11 * u.Unit('1 / (cm2 s TeV)'),\n", " reference=1 * u.TeV,\n", ")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I am hacking lightcurve in gammapy\n" ] } ], "source": [ "# Estimation of the light curve\n", "lc_estimator = LightCurveEstimator(extraction)\n", "lc = lc_estimator.light_curve(\n", " time_intervals=intervals,\n", " spectral_model=model,\n", " energy_range=[0.7, 100] * u.TeV,\n", ")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Results\n", "\n", "The light curve measurement result is stored in a table. Let's have a look at the results:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['time_min', 'time_max', 'flux', 'flux_err', 'livetime', 'n_on', 'n_off', 'alpha', 'measured_excess', 'expected_excess']\n" ] } ], "source": [ "print(lc.table.colnames)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<Table length=2>\n", "\n", "\n", "\n", "\n", "\n", "\n", "
time_mintime_maxfluxflux_errlivetimen_onn_offalphameasured_excessexpected_excess
1 / (cm2 s)1 / (cm2 s)s
float64float64float64float64float64int64int64float64float64float64
53343.921006953343.94050192.51134593372e-112.18682649576e-121579.27251851153610.166666666667142.833333333161.363102545
53343.953003253343.97240472.5848461759e-112.34244310984e-121566.41994765151860.166666666667136.666666667150.006163136
" ], "text/plain": [ "\n", " time_min time_max ... measured_excess expected_excess\n", " ... \n", " float64 float64 ... float64 float64 \n", "------------- ------------- ... --------------- ---------------\n", "53343.9210069 53343.9405019 ... 142.833333333 161.363102545\n", "53343.9530032 53343.9724047 ... 136.666666667 150.006163136" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lc.table['time_min', 'time_max', 'flux', 'flux_err', 'livetime', 'n_on', 'n_off', 'alpha', 'measured_excess', 'expected_excess']" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lc.plot()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Exercises\n", "\n", "* Change the assumed spectral model shape (e.g. to a steeper power-law), and see how the integral flux estimate for the lightcurve changes.\n", "* Try a time binning where you split the observation time for every run into two time bins." ] }, { "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.5.4" }, "nbsphinx": { "orphan": true } }, "nbformat": 4, "nbformat_minor": 2 }