{ "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/spectrum_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", "[spectrum_analysis.ipynb](../_static/notebooks/spectrum_analysis.ipynb) |\n", "[spectrum_analysis.py](../_static/notebooks/spectrum_analysis.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Spectral analysis with Gammapy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prerequisites \n", "\n", "- Understanding how spectral extraction is performed in Cherenkov astronomy, in particular regarding OFF background measurements. \n", "- Understanding the basics data reduction and modeling/fitting process with the gammapy library API as shown in the [first gammapy analysis with the gammapy library API tutorial](analysis_2.ipynb)\n", "\n", "## Context\n", "\n", "While 3D analysis allows in principle to deal with complex situations such as overlapping sources, in many cases, it is not required to extract the spectrum of a source. Spectral analysis, where all data inside a ON region are binned into 1D datasets, provides a nice alternative. \n", "\n", "In classical Cherenkov astronomy, it is used with a specific background estimation technique that relies on OFF measurements taken in the field-of-view in regions where the background\n", "rate is assumed to be equal to the one in the ON region. \n", "\n", "This allows to use a specific fit statistics for ON-OFF measurements, the wstat (see `~gammapy.stats.fit_statistics`), where no background model is assumed. Background is treated as a set of nuisance parameters. This removes some systematic effects connected\n", "to the choice or the quality of the background model. But this comes at the expense of larger statistical uncertainties on the fitted model parameters.\n", "\n", "**Objective: perform a full region based spectral analysis of 4 Crab observations of H.E.S.S. data release 1 and fit the resulting datasets.**\n", "\n", "## Introduction\n", "\n", "Here, as usual, we use the `~gammapy.data.DataStore` to retrieve a list of selected observations (`~gammapy.data.Observations`). Then, we define the ON region containing the source and the geometry of the `~gammapy.datasets.SpectrumDataset` object we want to produce. We then create the corresponding dataset Maker. \n", "\n", "We have to define the Maker object that will extract the OFF counts from reflected regions in the field-of-view. To ensure we use data in an energy range where the quality of the IRFs is good enough we also create a safe range Maker.\n", "\n", "We can then proceed with data reduction with a loop over all selected observations to produce datasets in the relevant geometry.\n", "\n", "We can then explore the resulting datasets and look at the cumulative signal and significance of our source. We finally proceed with model fitting. \n", "\n", "In practice, we have to:\n", "- Create a `~gammapy.data.DataStore` poiting to the relevant data \n", "- Apply an observation selection to produce a list of observations, a `~gammapy.data.Observations` object.\n", "- Define a geometry of the spectrum we want to produce:\n", " - Create a `~regions.CircleSkyRegion` for the ON extraction region\n", " - Create a `~gammapy.maps.MapAxis` for the energy binnings: one for the reconstructed (i.e. measured) energy, the other for the true energy (i.e. the one used by IRFs and models)\n", "- Create the necessary makers : \n", " - the spectrum dataset maker : `~gammapy.makers.SpectrumDatasetMaker`\n", " - the OFF background maker, here a `~gammapy.makers.ReflectedRegionsBackgroundMaker`\n", " - and the safe range maker : `~gammapy.makers.SafeRangeMaker`\n", "- Perform the data reduction loop. And for every observation:\n", " - Apply the makers sequentially to produce a `~gammapy.datasets.SpectrumDatasetOnOff`\n", " - Append it to list of datasets\n", "- Define the `~gammapy.modeling.models.SkyModel` to apply to the dataset.\n", "- Create a `~gammapy.modeling.Fit` object and run it to fit the model parameters\n", "- Apply a `~gammapy.estimators.FluxPointsEstimator` to compute flux points for the spectral part of the fit.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "As usual, we'll start with some setup ..." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gammapy: 0.17\n", "numpy: 1.18.1\n", "astropy 4.0\n", "regions 0.4\n" ] } ], "source": [ "# Check package versions\n", "import gammapy\n", "import numpy as np\n", "import astropy\n", "import regions\n", "\n", "print(\"gammapy:\", gammapy.__version__)\n", "print(\"numpy:\", np.__version__)\n", "print(\"astropy\", astropy.__version__)\n", "print(\"regions\", regions.__version__)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "import astropy.units as u\n", "from astropy.coordinates import SkyCoord, Angle\n", "from regions import CircleSkyRegion\n", "from gammapy.maps import Map\n", "from gammapy.modeling import Fit\n", "from gammapy.data import DataStore\n", "from gammapy.datasets import (\n", " Datasets,\n", " SpectrumDataset,\n", " SpectrumDatasetOnOff,\n", " FluxPointsDataset,\n", ")\n", "from gammapy.modeling.models import (\n", " PowerLawSpectralModel,\n", " create_crab_spectral_model,\n", " SkyModel,\n", ")\n", "from gammapy.makers import (\n", " SafeMaskMaker,\n", " SpectrumDatasetMaker,\n", " ReflectedRegionsBackgroundMaker,\n", ")\n", "from gammapy.estimators import FluxPointsEstimator\n", "from gammapy.visualization import plot_spectrum_datasets_off_regions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load Data\n", "\n", "First, we select and load some H.E.S.S. observations of the Crab nebula (simulated events for now).\n", "\n", "We will access the events, effective area, energy dispersion, livetime and PSF for containement correction." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "datastore = DataStore.from_dir(\"$GAMMAPY_DATA/hess-dl3-dr1/\")\n", "obs_ids = [23523, 23526, 23559, 23592]\n", "observations = datastore.get_observations(obs_ids)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define Target Region\n", "\n", "The next step is to define a signal extraction region, also known as on region. In the simplest case this is just a [CircleSkyRegion](http://astropy-regions.readthedocs.io/en/latest/api/regions.CircleSkyRegion.html), but here we will use the ``Target`` class in gammapy that is useful for book-keeping if you run several analysis in a script." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "target_position = SkyCoord(ra=83.63, dec=22.01, unit=\"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": [ "## Create exclusion mask\n", "\n", "We will use the reflected regions method to place off regions to estimate the background level in the on region.\n", "To make sure the off regions don't contain gamma-ray emission, we create an exclusion mask.\n", "\n", "Using http://gamma-sky.net/ we find that there's only one known gamma-ray source near the Crab nebula: the AGN called [RGB J0521+212](http://gamma-sky.net/#/cat/tev/23) at GLON = 183.604 deg and GLAT = -8.708 deg." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "exclusion_region = CircleSkyRegion(\n", " center=SkyCoord(183.604, -8.708, unit=\"deg\", frame=\"galactic\"),\n", " radius=0.5 * u.deg,\n", ")\n", "\n", "skydir = target_position.galactic\n", "exclusion_mask = Map.create(\n", " npix=(150, 150), binsz=0.05, skydir=skydir, proj=\"TAN\", frame=\"icrs\"\n", ")\n", "\n", "mask = exclusion_mask.geom.region_mask([exclusion_region], inside=False)\n", "exclusion_mask.data = mask\n", "exclusion_mask.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run data reduction chain\n", "\n", "We begin with the configuration of the maker classes:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "e_reco = np.logspace(-1, np.log10(40), 40) * u.TeV\n", "e_true = np.logspace(np.log10(0.05), 2, 200) * u.TeV\n", "dataset_empty = SpectrumDataset.create(\n", " e_reco=e_reco, e_true=e_true, region=on_region\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "dataset_maker = SpectrumDatasetMaker(\n", " containment_correction=False, selection=[\"counts\", \"aeff\", \"edisp\"]\n", ")\n", "bkg_maker = ReflectedRegionsBackgroundMaker(exclusion_mask=exclusion_mask)\n", "safe_mask_masker = SafeMaskMaker(methods=[\"aeff-max\"], aeff_percent=10)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2.63 s, sys: 117 ms, total: 2.75 s\n", "Wall time: 2.76 s\n" ] } ], "source": [ "%%time\n", "datasets = Datasets()\n", "\n", "for obs_id, observation in zip(obs_ids, observations):\n", " dataset = dataset_maker.run(\n", " dataset_empty.copy(name=str(obs_id)), observation\n", " )\n", " dataset_on_off = bkg_maker.run(dataset, observation)\n", " dataset_on_off = safe_mask_masker.run(dataset_on_off, observation)\n", " datasets.append(dataset_on_off)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot off regions" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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MauMMV3Ksm0iIiJOV9ZH0vnAOGttU6A9cI8x5gJgAvC1tfY84GvfvzHGNPH9XGfgnjJum4iIiKOVaUhba/daa1f7vk8H/gBqAX2BD33FPgT6+b4PADyABUxZtk1ERMTpztg1aWNMfaAVsBKoZq3dC94gB+J9368HwoDvgbfOVNtEREScKPBMPIkxJgKYDYyx1qYZU/xBsrV2VAn1GCDj2L/j4uJOZzNFRETOuO3bt2OMySywKcJaa+EMHEkbY4LwBvSn1to5vs37jTE1fPtrAAf8qct6hR97JCQklE2jRUREzpCEhAQKZtuxgIayH91tgHeBP6y1rxTYtQC4xff9LcD8smyHiIhIRVTWp7s7AcOAdcaYtb5tDwPPAzOMMbcDu4AbyrgdIiIiFU6ZhrS19nuKH6XdrSyfW0REpKLTjGMiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymkRUREHEohLSIi4lAKaREREYdSSIuIiDiUQlpERMShFNIiIiIOpZAWERFxKIW0iIiIQymk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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 8))\n", "_, ax, _ = exclusion_mask.plot()\n", "on_region.to_pixel(ax.wcs).plot(ax=ax, edgecolor=\"k\")\n", "plot_spectrum_datasets_off_regions(ax=ax, datasets=datasets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Source statistic\n", "\n", "Next we're going to look at the overall source statistics in our signal region." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "info_table = datasets.info_table(cumulative=True)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=4\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
namelivetimen_onbackgroundexcesssignificance [1]background_rategamma_ratea_onn_offa_offalpha
s1 / s1 / s
str7float64float32float64float64float64float64float64float64float32float64float64
stacked1581.7367584109306172.013.5158.521.1081393207378160.0085349220900465020.100206307501657091.0162.012.00.08333333333333333
stacked3154.4234824180603365.032.000003814697266333.029.9338163840236820.0101444856700620580.105566041419630481.0384.012.00.0833333358168602
stacked4732.546999931335512.041.902442932128906470.0975952148437537.3712713492325650.0088540996915058360.099332895208788071.0790.018.8533153533935550.05304107069969177
stacked6313.811640620232636.052.54133224487305583.458679199218841.988552878149460.0083216502543163770.092409896336708461.01173.022.3252811431884770.04479226842522621
" ], "text/plain": [ "\n", " name livetime n_on ... a_off alpha \n", " s ... \n", " str7 float64 float32 ... float64 float64 \n", "------- ------------------ ------- ... ------------------ -------------------\n", "stacked 1581.7367584109306 172.0 ... 12.0 0.08333333333333333\n", "stacked 3154.4234824180603 365.0 ... 12.0 0.0833333358168602\n", "stacked 4732.546999931335 512.0 ... 18.853315353393555 0.05304107069969177\n", "stacked 6313.811640620232 636.0 ... 22.325281143188477 0.04479226842522621" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "info_table" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(\n", " info_table[\"livetime\"].to(\"h\"), info_table[\"excess\"], marker=\"o\", ls=\"none\"\n", ")\n", "plt.xlabel(\"Livetime [h]\")\n", "plt.ylabel(\"Excess\");" ] }, { "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": [ "plt.plot(\n", " info_table[\"livetime\"].to(\"h\"),\n", " info_table[\"significance\"],\n", " marker=\"o\",\n", " ls=\"none\",\n", ")\n", "plt.xlabel(\"Livetime [h]\")\n", "plt.ylabel(\"Significance\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally you can write the extrated datasets to disk using the OGIP format (PHA, ARF, RMF, BKG, see [here](https://gamma-astro-data-formats.readthedocs.io/en/latest/spectra/ogip/index.html) for details):" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "path = Path(\"spectrum_analysis\")\n", "path.mkdir(exist_ok=True)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "for dataset in datasets:\n", " dataset.to_ogip_files(outdir=path, overwrite=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want to read back the datasets from disk you can use:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "datasets = Datasets()\n", "for obs_id in obs_ids:\n", " filename = path / f\"pha_obs{obs_id}.fits\"\n", " datasets.append(SpectrumDatasetOnOff.from_ogip_files(filename))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fit spectrum\n", "\n", "Now we'll fit a global model to the spectrum. First we do a joint likelihood fit to all observations. If you want to stack the observations see below. We will also produce a debug plot in order to show how the global fit matches one of the individual observations." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "spectral_model = PowerLawSpectralModel(\n", " index=2, amplitude=2e-11 * u.Unit(\"cm-2 s-1 TeV-1\"), reference=1 * u.TeV\n", ")\n", "model = SkyModel(spectral_model=spectral_model, name=\"crab\")\n", "\n", "for dataset in datasets:\n", " dataset.models = model\n", "\n", "fit_joint = Fit(datasets)\n", "result_joint = fit_joint.run()\n", "\n", "# we make a copy here to compare it later\n", "model_best_joint = model.copy()" ] }, { "cell_type": "code", "execution_count": 19, "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 : 52\n", "\ttotal stat : 122.01\n", "\n" ] } ], "source": [ "print(result_joint)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.1, 40)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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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 = datasets[0].plot_fit()\n", "ax_spectrum.set_ylim(0.1, 40)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compute Flux Points\n", "\n", "To round up our analysis we can compute flux points by fitting the norm of the global model in energy bands. We'll use a fixed energy binning for now:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "e_min, e_max = 0.7, 30\n", "e_edges = np.logspace(np.log10(e_min), np.log10(e_max), 11) * u.TeV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we create an instance of the `~gammapy.estimators.FluxPointsEstimator`, by passing the dataset and the energy binning:" ] }, { "cell_type": "code", "execution_count": 22, "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": [ "fpe = FluxPointsEstimator(e_edges=e_edges, source=\"crab\")\n", "flux_points = fpe.run(datasets=datasets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is a the table of the resulting flux points:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=10\n", "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
e_refe_mine_maxref_dnderef_fluxref_efluxref_e2dndenormstatsuccessnorm_errnorm_errpnorm_errnnorm_ulsqrt_tstsnull_valuenorm_scan [11]stat_scan [11]counts [4]dndednde_uldnde_errdnde_errpdnde_errn
TeVTeVTeV1 / (cm2 s TeV)1 / (cm2 s)TeV / (cm2 s)TeV / (cm2 s)1 / (cm2 s TeV)1 / (cm2 s TeV)1 / (cm2 s TeV)1 / (cm2 s TeV)1 / (cm2 s TeV)
float64float64float64float64float64float64float64float64float64boolfloat64float64float64float64float64float64int64float64float64int64float64float64float64float64float64
0.8590.7371.0024.041e-111.077e-119.177e-122.983e-110.96918.394True0.0860.0890.0841.15220.687427.94800.200 .. 5.000188.877 .. 679.45449 .. 313.914e-114.655e-113.459e-123.612e-123.395e-12
1.2611.0021.5881.488e-118.850e-121.095e-112.368e-110.97212.585True0.0980.0940.0881.16420.513420.78700.200 .. 5.000172.378 .. 615.32731 .. 361.446e-111.733e-111.456e-121.392e-121.306e-12
1.8521.5882.1605.482e-123.151e-125.786e-121.881e-111.1969.948True0.1310.1550.1431.51915.286233.67100.200 .. 5.000115.961 .. 242.74827 .. 126.559e-128.329e-127.205e-138.522e-137.865e-13
2.5182.1602.9362.466e-121.927e-124.812e-121.564e-111.2519.175True0.1700.1850.1691.63813.945194.47100.200 .. 5.00096.549 .. 175.20110 .. 113.085e-124.038e-124.180e-134.573e-134.157e-13
3.6972.9364.6569.083e-131.583e-125.741e-121.242e-110.93914.941True0.1610.1670.1491.28910.703114.54800.200 .. 5.00060.495 .. 213.69517 .. 118.528e-131.171e-121.461e-131.518e-131.358e-13
5.4294.6566.3303.346e-135.637e-133.034e-129.860e-121.1368.759True0.2600.2860.2461.7498.14166.27100.200 .. 5.00038.261 .. 80.9569 .. 53.799e-135.852e-138.689e-149.573e-148.244e-14
7.9716.33010.0371.232e-134.631e-133.620e-127.830e-121.04012.416True0.2720.2970.2521.6806.85546.99500.200 .. 5.00032.844 .. 80.5365 .. 41.281e-132.070e-133.349e-143.658e-143.111e-14
11.70310.03713.6474.539e-141.649e-131.913e-126.217e-120.90110.500True0.4320.4920.3732.0093.36911.35100.200 .. 5.00015.516 .. 38.2760 .. 14.089e-149.118e-141.962e-142.233e-141.692e-14
17.18313.64721.6361.672e-141.354e-132.283e-124.937e-120.3107.206True0.2830.3580.3101.1840.9530.90800.200 .. 5.0007.390 .. 42.9811 .. 05.188e-151.980e-144.738e-155.978e-155.188e-15
25.22921.63629.4196.159e-154.823e-141.206e-123.920e-120.0000.524True0.0020.2770.0001.108nan-0.00000.200 .. 5.0001.246 .. 18.5710 .. 01.468e-206.825e-151.001e-171.706e-151.468e-20
" ], "text/plain": [ "\n", " e_ref e_min e_max ... dnde_err dnde_errp dnde_errn \n", " TeV TeV TeV ... 1 / (cm2 s TeV) 1 / (cm2 s TeV) 1 / (cm2 s TeV)\n", "float64 float64 float64 ... float64 float64 float64 \n", "------- ------- ------- ... --------------- --------------- ---------------\n", " 0.859 0.737 1.002 ... 3.459e-12 3.612e-12 3.395e-12\n", " 1.261 1.002 1.588 ... 1.456e-12 1.392e-12 1.306e-12\n", " 1.852 1.588 2.160 ... 7.205e-13 8.522e-13 7.865e-13\n", " 2.518 2.160 2.936 ... 4.180e-13 4.573e-13 4.157e-13\n", " 3.697 2.936 4.656 ... 1.461e-13 1.518e-13 1.358e-13\n", " 5.429 4.656 6.330 ... 8.689e-14 9.573e-14 8.244e-14\n", " 7.971 6.330 10.037 ... 3.349e-14 3.658e-14 3.111e-14\n", " 11.703 10.037 13.647 ... 1.962e-14 2.233e-14 1.692e-14\n", " 17.183 13.647 21.636 ... 4.738e-15 5.978e-15 5.188e-15\n", " 25.229 21.636 29.419 ... 1.001e-17 1.706e-15 1.468e-20" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "flux_points.table_formatted" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we plot the flux points and their likelihood profiles. For the plotting of upper limits we choose a threshold of TS < 4." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "flux_points.table[\"is_ul\"] = flux_points.table[\"ts\"] < 4\n", "ax = flux_points.plot(\n", " energy_power=2, flux_unit=\"erg-1 cm-2 s-1\", color=\"darkorange\"\n", ")\n", "flux_points.to_sed_type(\"e2dnde\").plot_ts_profiles(ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The final plot with the best fit model, flux points and residuals can be quickly made like this: " ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "flux_points_dataset = FluxPointsDataset(\n", " data=flux_points, models=model_best_joint\n", ")" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 6))\n", "flux_points_dataset.peek();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Stack observations\n", "\n", "And alternative approach to fitting the spectrum is stacking all observations first and the fitting a model. For this we first stack the individual datasets:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "dataset_stacked = Datasets(datasets).stack_reduce()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again we set the model on the dataset we would like to fit (in this case it's only a single one) and pass it to the `~gammapy.modeling.Fit` object:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "dataset_stacked.models = model\n", "stacked_fit = Fit([dataset_stacked])\n", "result_stacked = stacked_fit.run()\n", "\n", "# make a copy to compare later\n", "model_best_stacked = model.copy()" ] }, { "cell_type": "code", "execution_count": 29, "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 : 29\n", "\ttotal stat : 29.05\n", "\n" ] } ], "source": [ "print(result_stacked)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=3\n", "
\n", "\n", "\n", "\n", "\n", "\n", "
namevalueunitminmaxfrozenerror
str9float64str14float64float64boolfloat64
index2.600e+00nannanFalse5.850e-02
amplitude2.723e-11cm-2 s-1 TeV-1nannanFalse1.255e-12
reference1.000e+00TeVnannanTrue0.000e+00
" ], "text/plain": [ "\n", " name value unit min max frozen error \n", " str9 float64 str14 float64 float64 bool float64 \n", "--------- --------- -------------- ------- ------- ------ ---------\n", " index 2.600e+00 nan nan False 5.850e-02\n", "amplitude 2.723e-11 cm-2 s-1 TeV-1 nan nan False 1.255e-12\n", "reference 1.000e+00 TeV nan nan True 0.000e+00" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_best_joint.parameters.to_table()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=3\n", "
\n", "\n", "\n", "\n", "\n", "\n", "
namevalueunitminmaxfrozenerror
str9float64str14float64float64boolfloat64
index2.601e+00nannanFalse6.346e-02
amplitude2.723e-11cm-2 s-1 TeV-1nannanFalse1.305e-12
reference1.000e+00TeVnannanTrue0.000e+00
" ], "text/plain": [ "\n", " name value unit min max frozen error \n", " str9 float64 str14 float64 float64 bool float64 \n", "--------- --------- -------------- ------- ------- ------ ---------\n", " index 2.601e+00 nan nan False 6.346e-02\n", "amplitude 2.723e-11 cm-2 s-1 TeV-1 nan nan False 1.305e-12\n", "reference 1.000e+00 TeV nan nan True 0.000e+00" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_best_stacked.parameters.to_table()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we compare the results of our stacked analysis to a previously published Crab Nebula Spectrum for reference. This is available in `~gammapy.modeling.models.create_crab_spectral_model`." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_kwargs = {\n", " \"energy_range\": [0.1, 30] * u.TeV,\n", " \"energy_power\": 2,\n", " \"flux_unit\": \"erg-1 cm-2 s-1\",\n", "}\n", "\n", "# plot stacked model\n", "model_best_stacked.spectral_model.plot(\n", " **plot_kwargs, label=\"Stacked analysis result\"\n", ")\n", "model_best_stacked.spectral_model.plot_error(**plot_kwargs)\n", "\n", "# plot joint model\n", "model_best_joint.spectral_model.plot(\n", " **plot_kwargs, label=\"Joint analysis result\", ls=\"--\"\n", ")\n", "model_best_joint.spectral_model.plot_error(**plot_kwargs)\n", "\n", "create_crab_spectral_model(\"hess_pl\").plot(\n", " **plot_kwargs, label=\"Crab reference\"\n", ")\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises\n", "\n", "Now you have learned the basics of a spectral analysis with Gammapy. To practice you can continue with the following exercises:\n", "\n", "- Fit a different spectral model to the data.\n", " You could try `~gammapy.modeling.models.ExpCutoffPowerLawSpectralModel` or `~gammapy.modeling.models.LogParabolaSpectralModel`.\n", "- Compute flux points for the stacked dataset.\n", "- Create a `~gammapy.estimators.FluxPointsDataset` with the flux points you have computed for the stacked dataset and fit the flux points again with obe of the spectral models. How does the result compare to the best fit model, that was directly fitted to the counts data?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What next?\n", "\n", "The methods shown in this tutorial is valid for point-like or midly extended sources where we can assume that the IRF taken at the region center is valid over the whole region. If one wants to extract the 1D spectrum of a large source and properly average the response over the extraction region, one has to use a different approach explained in [the extended source spectral analysis tutorial](extended_source_spectral_analysis.ipynb)." ] }, { "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 }