{ "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", "[nddata_demo.ipynb](../_static/notebooks/nddata_demo.ipynb) |\n", "[nddata_demo.py](../_static/notebooks/nddata_demo.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# How to use the NDDataArray class" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "This notebook explains how to use the class [gammapy.utils.nddata.NDDataArray](http://docs.gammapy.org/dev/api/gammapy.utils.nddata.NDDataArray.html)\n", "\n", "The NDDataArray is basically an numpy array with associated axes and convenience methods for interpolation. For now \n", "only the scipy [RegularGridInterpolator](https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.interpolate.RegularGridInterpolator.html)\n", "can be used, i.e. available interpolation methods are \"nearest neighbour\" and \"linear\". A spline interpolator\n", "will be added in the future. The interpolation behaviour (\"log\", \"linear\") can be set for each axis individually.\n", "\n", "The NDDataArray is currently used in the following classes\n", "\n", "* [gammapy.irf.EffectiveAreaTable](http://docs.gammapy.org/dev/api/gammapy.irf.EffectiveAreaTable.html)\n", "* [gammapy.irf.EffectiveAreaTable2D](http://docs.gammapy.org/dev/api/gammapy.irf.EffectiveAreaTable2D.html)\n", "* [gammapy.irf.EnergyDispersion](http://docs.gammapy.org/dev/api/gammapy.irf.EnergyDispersion.html)\n", "* [gammapy.spectrum.CountsSpectrum](http://docs.gammapy.org/dev/api/gammapy.spectrum.CountsSpectrum.html)\n", "* [gammapy.scripts.BgRateTable](http://docs.gammapy.org/dev/api/gammapy.scripts.BgRateTable.html)\n", "* [gammapy.scripts.Psf68Table](http://docs.gammapy.org/dev/api/gammapy.scripts.Psf68Table.html)\n", "\n", "\n", "Feedback welcome!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "As usual, we'll start with some setup ..." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from gammapy.utils.nddata import NDDataArray, DataAxis, BinnedDataAxis\n", "from gammapy.utils.energy import Energy, EnergyBounds\n", "import numpy as np\n", "import astropy.units as u" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1D example\n", "\n", "Let's start with a simple example. A one dimensional array storing an exposure in ``cm-2 s-1`` as a function of energy. The energy axis is log spaced and thus also the interpolation shall take place in log." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NDDataArray summary info\n", "energy : size = 10, min = 10.000 TeV, max = 100.000 TeV\n", "Data : size = 10, min = 2.000 1 / (cm2 s), max = 20.000 1 / (cm2 s)\n", "\n", "DataAxis\n", "Name: energy\n", "Unit: TeV\n", "Nodes: 10\n", "Interpolation mode: log\n" ] } ], "source": [ "energies = Energy.equal_log_spacing(10, 100, 10, unit=u.TeV)\n", "x_axis = DataAxis(energies, name='energy', interpolation_mode='log')\n", "data = np.arange(20,0,-2) / u.cm **2 / u.s\n", "nddata = NDDataArray(axes=[x_axis], data=data)\n", "print(nddata)\n", "print(nddata.axis('energy'))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 10. 12.91549665 16.68100537 21.5443469 27.82559402\n", " 35.93813664 46.41588834 59.94842503 77.42636827 100. ] TeV\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "eval_energies = np.linspace(2, 6, 20) *1e4 * u.GeV\n", "eval_exposure = nddata.evaluate(energy=eval_energies, method='linear')\n", "\n", "plt.plot(nddata.axis('energy').nodes.value, nddata.data.value, '.', label='Interpolation nodes')\n", "print(nddata.axis('energy').nodes)\n", "plt.plot(eval_energies.to('TeV').value, eval_exposure, '--', label='Interpolated values')\n", "plt.xlabel('{} [{}]'.format(nddata.axes[0].name, nddata.axes[0].unit))\n", "plt.ylabel('{} [{}]'.format('Exposure', nddata.data.unit))\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2D example\n", "\n", "Another common use case is to store a Quantity as a function of field of view offset and energy. The following shows how to use the NDDataArray to slice the data array at any values of offset and energy" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NDDataArray summary info\n", "energy : size = 50, min = 1.023 TeV, max = 9.772 TeV\n", "offset : size = 4, min = 0.000 deg, max = 2.000 deg\n", "Data : size = 200, min = 3.763 1 / (cm2 s TeV), max = 27.082 1 / (cm2 s TeV)\n", "\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "energy_data = EnergyBounds.equal_log_spacing(1, 10, 50, unit=u.TeV)\n", "energy_axis = BinnedDataAxis(lo=energy_data.lower_bounds,\n", " hi=energy_data.upper_bounds,\n", " name='energy', interpolation_mode='log')\n", "offset_data = np.linspace(0, 2, 4) * u.deg\n", "offset_axis = DataAxis(offset_data, name='offset')\n", "\n", "data_temp = 10 * np.exp(- energy_data.log_centers.value / 10) \n", "data = np.outer(data_temp, (offset_data.value + 1))\n", "\n", "nddata2d = NDDataArray(axes=[energy_axis, offset_axis], data=data * u.Unit('cm-2 s-1 TeV-1'))\n", "\n", "print(nddata2d)\n", "extent_x = nddata2d.axis('energy').bins[[0, -1]].value\n", "extent_y = nddata2d.axis('offset').nodes[[0, -1]].value\n", "extent = extent_x[0], extent_x[1], extent_y[0], extent_y[1]\n", "plt.imshow(nddata2d.data, extent=extent, aspect='auto')\n", "plt.xlabel('Energy')\n", "plt.ylabel('Offset')\n", "plt.colorbar()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nbub/BzUqDTmMvj/XAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "offsets = [0.23, 1.23, 2] * u.deg\n", "eval_energies = Energy.equal_log_spacing(3, 8, 20, u.TeV)\n", "\n", "for offset in offsets:\n", " slice_ = nddata2d.evaluate(offset=offset, energy=eval_energies)\n", " plt.plot(eval_energies.value, slice_, label='Offset: {}'.format(offset))\n", "plt.xlabel('Energy [TeV]')\n", "plt.legend()" ] } ], "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.3" }, "nbsphinx": { "orphan": true } }, "nbformat": 4, "nbformat_minor": 1 }