{ "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.15?urlpath=lab/tree/light_curve_flare.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", "[light_curve_flare.ipynb](../_static/notebooks/light_curve_flare.ipynb) |\n", "[light_curve_flare.py](../_static/notebooks/light_curve_flare.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Light curve - Flare\n", "\n", "To see the general presentation on our light curve estimator, please refer to the [light curve notebook](light_curve.ipynb)\n", "\n", "Here we present the way to compute a light curve on time intervals smaller than the duration of an observation.\n", "\n", "We will use the Crab nebula observations from the H.E.S.S. first public test data release. We will use time intervals of 15 minutes duration. \n", "\n", "The first important step is to filter the observations to produce shorter observations for each time bin. We can then perform data reduction as before and then estimate the light curve in all of those time bins.\n", "\n", "## Setup \n", "\n", "As usual, we'll start with some general imports..." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import astropy.units as u\n", "from astropy.coordinates import SkyCoord\n", "from astropy.time import Time\n", "from regions import CircleSkyRegion\n", "from astropy.coordinates import Angle\n", "\n", "import logging\n", "\n", "log = logging.getLogger(__name__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's import gammapy specific classes and functions" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from gammapy.data import DataStore\n", "from gammapy.modeling.models import PowerLawSpectralModel, SkyModel\n", "from gammapy.maps import MapAxis\n", "from gammapy.time import LightCurveEstimator\n", "from gammapy.cube import SafeMaskMaker\n", "from gammapy.spectrum import (\n", " SpectrumDatasetMaker,\n", " SpectrumDataset,\n", " ReflectedRegionsBackgroundMaker,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Select the data\n", "\n", "We look for relevant observations in the datastore." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "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", "crab_obs = data_store.get_observations(obs_ids)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define time intervals\n", "We create the list of time intervals. Each time interval is an `~astropy.time.Time` object, containing a start and stop time." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "time_intervals = [\n", " [\"2004-12-04T22:00\", \"2004-12-04T22:15\"],\n", " [\"2004-12-04T22:15\", \"2004-12-04T22:30\"],\n", " [\"2004-12-04T22:30\", \"2004-12-04T22:45\"],\n", " [\"2004-12-04T22:45\", \"2004-12-04T23:00\"],\n", " [\"2004-12-04T23:00\", \"2004-12-04T23:15\"],\n", " [\"2004-12-04T23:15\", \"2004-12-04T23:30\"],\n", "]\n", "time_intervals = [Time(_) for _ in time_intervals]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Filter the observations list in time intervals\n", "\n", "Here we apply the list of time intervals to the observations with `~gammapy.data.Observations.select_time()`.\n", "\n", "This will return a new list of Observations filtered by time_intervals. For each time interval, a new observation is created that convers the intersection of the GTIs and time interval. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GTI info:\n", "- Number of GTIs: 1\n", "- Duration: 420.00000017881393 s\n", "- Start: 53343.95421509259 MET\n", "- Start: 2004-12-04T22:54:04.184\n", "- Stop: 53343.959076203704 MET\n", "- Stop: 2004-12-04T23:01:04.184\n", "\n" ] } ], "source": [ "observations = crab_obs.select_time(time_intervals)\n", "# check that observations have been filtered\n", "print(observations[3].gti)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Building 1D datasets from the new observations\n", "\n", "Here we will perform the data reduction in 1D with reflected regions.\n", "\n", "Beware, with small time intervals the background normalization with OFF regions might become problematic." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Defining the geometry\n", "\n", "We need to define the ON extraction region. We will keep the same reco and true energy axes as in 3D." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Target definition\n", "e_reco = MapAxis.from_energy_bounds(0.1, 40, 100, \"TeV\").edges\n", "e_true = MapAxis.from_energy_bounds(0.05, 100, 100, \"TeV\").edges\n", "\n", "target_position = SkyCoord(83.63308 * u.deg, 22.01450 * u.deg, frame=\"icrs\")\n", "on_region_radius = Angle(\"0.11 deg\")\n", "on_region = CircleSkyRegion(center=target_position, radius=on_region_radius)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Creation of the data reduction makers\n", "\n", "We now create the dataset and background makers for the selected geometry." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "dataset_maker = SpectrumDatasetMaker(\n", " containment_correction=True, selection=[\"counts\", \"aeff\", \"edisp\"]\n", ")\n", "bkg_maker = ReflectedRegionsBackgroundMaker()\n", "safe_mask_masker = SafeMaskMaker(methods=[\"aeff-max\"], aeff_percent=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Creation of the datasets\n", "\n", "Now we perform the actual data reduction in the time_intervals." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "datasets = []\n", "\n", "dataset_empty = SpectrumDataset.create(\n", " e_reco=e_reco, e_true=e_true, region=on_region\n", ")\n", "\n", "for obs in observations:\n", " dataset = dataset_maker.run(dataset_empty, obs)\n", "\n", " dataset_on_off = bkg_maker.run(dataset, obs)\n", " dataset_on_off = safe_mask_masker.run(dataset_on_off, obs)\n", " datasets.append(dataset_on_off)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define the Model\n", "\n", "Here we use only a spectral model in the `~gammapy.modeling.models.SkyModel` object." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "spectral_model = PowerLawSpectralModel(\n", " index=2.702,\n", " amplitude=4.712e-11 * u.Unit(\"1 / (cm2 s TeV)\"),\n", " reference=1 * u.TeV,\n", ")\n", "spectral_model.parameters[\"index\"].frozen = False\n", "\n", "sky_model = SkyModel(\n", " spatial_model=None, spectral_model=spectral_model, name=\"crab\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We affect to each dataset it spectral model" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "for dataset in datasets:\n", " dataset.models = sky_model" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "lc_maker_1d = LightCurveEstimator(datasets, source=\"crab\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "lc_1d = lc_maker_1d.run(e_ref=1 * u.TeV, e_min=1.0 * u.TeV, e_max=10.0 * u.TeV)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we plot the result for the 1D lightcurve:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lc_1d.plot(marker=\"o\")" ] }, { "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": 4 }