{ "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", "[source_catalogs.ipynb](../_static/notebooks/source_catalogs.ipynb) |\n", "[source_catalogs.py](../_static/notebooks/source_catalogs.py)\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Gamma-ray source catalogs with Gammapy\n", "\n", "## Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook shows how to work with gamma-ray source catalogs using [gammapy.catalog](http://docs.gammapy.org/dev/catalog/index.html)\n", "\n", "* Load GeV and TeV gamma-ray source catalogs\n", "* Select a given source and plot it's spectral model and spectral points\n", "* Select a subset of sources of interest\n", "* Plot parameter distributions\n", "* Plot a sky image with source position markers\n", "\n", "You will mainly learn how to work with Astropy tables and how to make some plots to investigate the data.\n", "\n", "References:\n", "\n", "* [astropy.table](http://astropy.readthedocs.io/en/latest/table/index.html)\n", "* [gammapy.catalog](http://docs.gammapy.org/dev/catalog/index.html)\n", "* [gammapy.catalog.SourceCatalog3FGL](http://docs.gammapy.org/dev/api/gammapy.catalog.SourceCatalog3FGL.html) and [gammapy.catalog.SourceCatalogObject3FGL](http://docs.gammapy.org/dev/api/gammapy.catalog.SourceCatalogObject3FGL.html)\n", "* [gammapy.catalog.SourceCatalogGammaCat](http://docs.gammapy.org/dev/api/gammapy.catalog.SourceCatalogGammaCat.html) and [gammapy.catalog.SourceCatalogObjectGammaCat](http://docs.gammapy.org/dev/api/gammapy.catalog.SourceCatalogObjectGammaCat.html)\n", "\n", "\n", "## Setup" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from pprint import pprint\n", "import numpy as np\n", "import astropy.units as u" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6.dev4117\n" ] } ], "source": [ "import gammapy\n", "print(gammapy.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Access catalogs and sources\n", "\n", "### gamma-cat" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from gammapy.catalog import SourceCatalogGammaCat\n", "gammacat = SourceCatalogGammaCat()\n", "gammacat_source = gammacat['Vela Junior']" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "gammapy.catalog.gammacat.SourceCatalogGammaCat" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(gammacat)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "astropy.table.table.QTable" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(gammacat.table)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "gammapy.catalog.gammacat.SourceCatalogObjectGammaCat" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(gammacat_source)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "collections.OrderedDict" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(gammacat_source.data)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "# You can print the catalog table and source data if you like\n", "# by uncommenting one of the following commands and executing the cell\n", "# gammacat.table.show_in_browser(jsviewer=True)\n", "# gammacat.table.info()\n", "# gammacat.table.info('stats')\n", "# pprint(gammacat_source.data)\n", "# gammacat_source.pprint()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot SED\n", "\n", "Here's an example how to plot a TeV SED.\n", "\n", "TODO: move content from this section and http://docs.gammapy.org/dev/spectrum/plotting_fermi_spectra.html to a separate notebook about SED access and plotting" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# gammacat_source.spectral_model.b\n", "energy_range = [0.3, 40] * u.TeV\n", "gammacat_source.spectral_model.plot(energy_range)\n", "gammacat_source.flux_points.plot()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "from gammapy.catalog import SourceCatalog3FGL\n", "fermi_3fgl = SourceCatalog3FGL()\n", "fermi_3fgl_source = fermi_3fgl['Crab']" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "gammapy.catalog.fermi.SourceCatalog3FGL" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(fermi_3fgl)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "astropy.table.table.Table" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(fermi_3fgl.table)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "gammapy.catalog.fermi.SourceCatalogObject3FGL" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(fermi_3fgl_source)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "collections.OrderedDict" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(fermi_3fgl_source.data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Work in progress ...\n", "\n", "The rest of this notebook is outdated, it needs to be re-written." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading catalogs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [gammapy.datasets](http://docs.gammapy.org/dev/datasets/index.html)\n", "module gives you quick access to the most important gamma-ray source catalogs\n", "as [Astropy table objects](http://astropy.readthedocs.org/en/latest/table/index.html).\n", "\n", "As you can see we store some parameters in the `meta` dict of the table that will\n", "make it easier to label and color the plots we'll create below." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: AstropyDeprecationWarning: Use of an 'eval' method when defining subclasses of FittableModel is deprecated; please rename this method to 'evaluate'. Otherwise its semantics remain the same. [astropy.modeling.core]\n", "WARNING:astropy:AstropyDeprecationWarning: Use of an 'eval' method when defining subclasses of FittableModel is deprecated; please rename this method to 'evaluate'. Otherwise its semantics remain the same.\n" ] } ], "source": [ "from gammapy import datasets\n", "tevcat = datasets.load_tevcat()\n", "tevcat.meta['name'] = 'TeVCat'\n", "tevcat.meta['color'] = 'red'\n", "#hesscat = datasets.load_hess_galactic_catalog()\n", "hesscat = tevcat.copy()\n", "hesscat.meta['name'] = 'HESS Galactic Catalog'\n", "hesscat.meta['color'] = 'green'\n", "fermicat = datasets.fetch_fermi_catalog('2FGL', 'LAT_Point_Source_Catalog')\n", "fermicat.meta['name'] = '2FGL'\n", "fermicat.meta['color'] = 'blue'" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
canonical_namecatalog_idcatalog_id_namecatalog_namecoord_deccoord_gal_latcoord_gal_loncoord_racoord_typediscovererdiscovery_datedistance_valuedistance_typedistance_kpcethfluxidobservatory_nameother_namesownersize_xsize_ysource_typesource_type_namespec_idxsrc_rankvariability
degdegdegdegkpcTeVdegdeg
PKS 2005-4891Default CatalogTeV J2009-488-48.8311111111-32.605110192350.374122052302.3625-9962005-06-010.071z323761.88689400.00.03100H.E.S.S.HESS J2009-488-99nannan1HBL3.21-99
H 2356-3091Default CatalogTeV J2359-306-30.6229722222-78.041938334312.8562912922359.78925-9962006-04-010.165z800886.991458100.00.02101H.E.S.S.1H 2354-315, HESS J2359-306-99nannan1HBL3.091-99
PG 1553+1131Default CatalogTeV J1555+11111.194722222243.960237045821.9189101955238.93625-9962006-03-010.5z2874104.13541300.00.034102H.E.S.S.1ES 1553+113, HESS J1555+111-99nannan1HBL4.51-99
" ], "text/plain": [ "\n", "array([ ('PKS 2005-489', '1', 'Default Catalog', 'TeV J2009-488', -48.83111111111111, -32.6051101920264, 350.374122051594, 302.36249999999995, -99, 6, '2005-06-01', 0.071, 'z', 323761.88688950095, 400.0, 0.03, 100, 'H.E.S.S.', 'HESS J2009-488', -99, nan, nan, 1, 'HBL', 3.2, 1, -99),\n", " ('H 2356-309', '1', 'Default Catalog', 'TeV J2359-306', -30.622972222222224, -78.0419383343485, 12.8562912921689, 359.78925, -99, 6, '2006-04-01', 0.165, 'z', 800886.9914584757, 100.0, 0.02, 101, 'H.E.S.S.', '1H 2354-315, HESS J2359-306', -99, nan, nan, 1, 'HBL', 3.09, 1, -99),\n", " ('PG 1553+113', '1', 'Default Catalog', 'TeV J1555+111', 11.194722222222222, 43.9602370458084, 21.9189101954641, 238.93624999999997, -99, 6, '2006-03-01', 0.5, 'z', 2874104.135406067, 300.0, 0.034, 102, 'H.E.S.S.', '1ES 1553+113, HESS J1555+111', -99, nan, nan, 1, 'HBL', 4.5, 1, -99)], \n", " dtype=[('canonical_name', 'f8'), ('coord_gal_lat', '>f8'), ('coord_gal_lon', '>f8'), ('coord_ra', '>f8'), ('coord_type', '>i8'), ('discoverer', '>i8'), ('discovery_date', 'f8'), ('distance_type', 'f8'), ('eth', '>f8'), ('flux', '>f8'), ('id', '>i8'), ('observatory_name', 'i8'), ('size_x', '>f8'), ('size_y', '>f8'), ('source_type', '>i8'), ('source_type_name', 'f8'), ('src_rank', '>i8'), ('variability', '>i8')])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show the first three rows.\n", "# In the IPython notebook this automatically gives an HTML table\n", "tevcat[:3]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
canonical_namecatalog_idcatalog_id_namecatalog_namecoord_deccoord_gal_latcoord_gal_loncoord_racoord_typediscovererdiscovery_datedistance_valuedistance_typedistance_kpcethfluxidobservatory_nameother_namesownersize_xsize_ysource_typesource_type_namespec_idxsrc_rankvariability
degdegdegdegkpcTeVdegdeg
PKS 2005-4891Default CatalogTeV J2009-488-48.8311111111-32.605110192350.374122052302.3625-9962005-06-010.071z323761.88689400.00.03100H.E.S.S.HESS J2009-488-99nannan1HBL3.21-99
H 2356-3091Default CatalogTeV J2359-306-30.6229722222-78.041938334312.8562912922359.78925-9962006-04-010.165z800886.991458100.00.02101H.E.S.S.1H 2354-315, HESS J2359-306-99nannan1HBL3.091-99
PG 1553+1131Default CatalogTeV J1555+11111.194722222243.960237045821.9189101955238.93625-9962006-03-010.5z2874104.13541300.00.034102H.E.S.S.1ES 1553+113, HESS J1555+111-99nannan1HBL4.51-99
" ], "text/plain": [ "\n", "array([ ('PKS 2005-489', '1', 'Default Catalog', 'TeV J2009-488', -48.83111111111111, -32.6051101920264, 350.374122051594, 302.36249999999995, -99, 6, '2005-06-01', 0.071, 'z', 323761.88688950095, 400.0, 0.03, 100, 'H.E.S.S.', 'HESS J2009-488', -99, nan, nan, 1, 'HBL', 3.2, 1, -99),\n", " ('H 2356-309', '1', 'Default Catalog', 'TeV J2359-306', -30.622972222222224, -78.0419383343485, 12.8562912921689, 359.78925, -99, 6, '2006-04-01', 0.165, 'z', 800886.9914584757, 100.0, 0.02, 101, 'H.E.S.S.', '1H 2354-315, HESS J2359-306', -99, nan, nan, 1, 'HBL', 3.09, 1, -99),\n", " ('PG 1553+113', '1', 'Default Catalog', 'TeV J1555+111', 11.194722222222222, 43.9602370458084, 21.9189101954641, 238.93624999999997, -99, 6, '2006-03-01', 0.5, 'z', 2874104.135406067, 300.0, 0.034, 102, 'H.E.S.S.', '1ES 1553+113, HESS J1555+111', -99, nan, nan, 1, 'HBL', 4.5, 1, -99)], \n", " dtype=[('canonical_name', 'f8'), ('coord_gal_lat', '>f8'), ('coord_gal_lon', '>f8'), ('coord_ra', '>f8'), ('coord_type', '>i8'), ('discoverer', '>i8'), ('discovery_date', 'f8'), ('distance_type', 'f8'), ('eth', '>f8'), ('flux', '>f8'), ('id', '>i8'), ('observatory_name', 'i8'), ('size_x', '>f8'), ('size_y', '>f8'), ('source_type', '>i8'), ('source_type_name', 'f8'), ('src_rank', '>i8'), ('variability', '>i8')])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hesscat[:3]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Source_NameRAJ2000DEJ2000GLONGLATConf_68_SemiMajorConf_68_SemiMinorConf_68_PosAng
2FGL J0000.9-07480.233711-7.815588.8292-67.28050.1204250.1030447.85
2FGL J0001.7-41590.438849-41.9965334.076-71.99670.07536410.070615362.01
2FGL J0002.7+62200.67981262.3396117.3120.0007522920.05743850.05503698.6
" ], "text/plain": [ "\n", "array([ ('2FGL J0000.9-0748 ', 0.23371103405952454, -7.815497875213623, 88.82917785644531, -67.28050231933594, 0.12042465806007385, 0.10303960740566254, 47.849998474121094),\n", " ('2FGL J0001.7-4159 ', 0.4388492703437805, -41.99647903442383, 334.0755920410156, -71.99669647216797, 0.07536407560110092, 0.07061527669429779, 62.0099983215332),\n", " ('2FGL J0002.7+6220 ', 0.6798120141029358, 62.33962631225586, 117.31168365478516, 0.0007522919913753867, 0.05743847414851189, 0.05503685772418976, 8.600000381469727)], \n", " dtype=[('Source_Name', 'f4'), ('DEJ2000', '>f4'), ('GLON', '>f4'), ('GLAT', '>f4'), ('Conf_68_SemiMajor', '>f4'), ('Conf_68_SemiMinor', '>f4'), ('Conf_68_PosAng', '>f4')])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show the first 8 columns and 3 rows\n", "fermicat[fermicat.colnames[:8]][:3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Select a subset of sources of interest" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's say we're interested only interested in sources in the inner Galaxy,\n", "namely the box `|GLON| < 30 deg` and `|GLAT| < 5 deg` ... here's how you make this selection.\n", "\n", "Working with many catalogs is often a bit tedious because column names are different\n", "(e.g. `GLON` and `coord_gal_lon`) or because of other data cleaning that's required\n", "(like wrapping `GLON` to the range `(-180, 180]` here)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def select_sources(catalog):\n", " \"\"\"Select sources of interest to us.\"\"\"\n", " print('Number of sources before selection: {}'.format(len(catalog)))\n", " \n", " glon = catalog['GLON']\n", " glat = catalog['GLAT']\n", " \n", " glon_min, glon_max = -30, 30\n", " glat_min, glat_max = -5, 5\n", "\n", " mask = (glon_min < glon) & (glon < glon_max)\n", " mask &= (glat_min < glat) & (glat < glat_max)\n", "\n", " catalog = catalog[mask]\n", " print('Number of sources after selection: {}'.format(len(catalog)))\n", " \n", " return catalog" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of sources before selection: 173\n", "Number of sources after selection: 45\n" ] } ], "source": [ "tevcat['GLON'] = tevcat['coord_gal_lon']\n", "tevcat['GLAT'] = tevcat['coord_gal_lat']\n", "tevcat['GLON'] = np.where(tevcat['GLON'] > 180, tevcat['GLON'] - 360, tevcat['GLON'])\n", "tevcat2 = select_sources(tevcat)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "#hesscat['GLON'] = np.where(hesscat['GLON'] > 180, hesscat['GLON'] - 360, hesscat['GLON'])\n", "#hesscat2 = select_sources(hesscat)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of sources before selection: 1873\n", "Number of sources after selection: 126\n" ] } ], "source": [ "fermicat['GLON'] = np.where(fermicat['GLON'] > 180, fermicat['GLON'] - 360, fermicat['GLON'])\n", "fermicat2 = select_sources(fermicat)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot parameter distributions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the `GLON`, `GLAT` parameter distributions.\n", "\n", "For the source flux distributions we make separate plots for `GeV` and `TeV` sources, because their fluxes aren't easily comparable." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "catalogs = [fermicat2, tevcat2]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for catalog in catalogs:\n", " plt.hist(catalog['GLON'], bins=10, range=(-30, 30),\n", " label=catalog.meta['name'],\n", " color=catalog.meta['color'],\n", " alpha=0.3, histtype=\"stepfilled\",)\n", "plt.xlabel('Galactic longitude (deg)')\n", "plt.ylabel('Number of sources')\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nhf8Ph/73YLvZh4gAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for catalog in catalogs:\n", " plt.hist(catalog['GLAT'], bins=10, range=(-5, 5),\n", " label=catalog.meta['name'],\n", " color=catalog.meta['color'],\n", " alpha=0.3, histtype=\"stepfilled\",)\n", "plt.xlabel('Galactic latitude (deg)')\n", "plt.ylabel('Number of sources')\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "45\n", "33\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/matplotlib/axes/_axes.py:475: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n", " warnings.warn(\"No labelled objects found. \"\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "flux = tevcat2['flux']\n", "print(len(flux))\n", "# We need to remove sources with missing flux info (a `NaN` value)\n", "# or matplotlib will not plot it\n", "flux = flux[~np.isnan(flux)]\n", "print(len(flux))\n", "plt.hist(flux, bins=np.logspace(-3, 1, 20),\n", " color=tevcat2.meta['color'],\n", " alpha=0.3, histtype=\"stepfilled\",)\n", "plt.xlabel('TeV Flux (% Crab)')\n", "plt.ylabel('Number of sources')\n", "plt.semilogx()\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot a sky image with source position markers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use [APLPy](http://aplpy.github.io/) to plot an empty sky image showing the locations of the sources as markers.\n", "\n", "This is a bit complicated because we don't have an image or WCS to instantiate the [aplpy.FITSFigure](http://aplpy.readthedocs.org/en/stable/api/aplpy.FITSFigure.html).\n", "Here we'll use the [gammapy.image.make_empty_image](https://gammapy.readthedocs.org/en/latest/api/gammapy.image.make_empty_image.html) utility function to make an empty image to plot on." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "from gammapy.image import make_empty_image\n", "from aplpy import FITSFigure" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nPPTQQ9y8eZM6derwxRdf0LRpU90fsH79+nrbe3t7c+XKFd3nuXPnEhkZyTPPPMPQoUOtYprhWbNm\n0Xpu2U4AAA+TSURBVKZNG71JNvr168fQoUMJDAzk/PnzvPHGGwwdOpS4uDhq1aoF2EZerl69Cthm\nuZRkq2VSnK2XR8eOHfn4449p2rQp165d45133qF///7s3bsXT09PXnjhBR555BGioqLo0qUL77zz\njqWTbFBqaioajQYfHx+95d7e3rpXgNaSl7KuuWDcOTFy5Ejuu+8+fH19OXHiBAsWLCAhIYENGzbo\nfuPNN99k7Nix5OTkMHXqVMLCwqwuLykpKSiVSr03CFB4Ll27dq1a81JePqKiovD29mbSpEllft9W\nyqSivNhKmQDExsYyefJkcnJy8Pb2Jjo6Gk9PT916WymTivJirjKpUYFus2bNdE8Bmzdv5sknn2TL\nli3lfqd4mx5rm2b4lVdeYf/+/Wzbtk0vncWHXWvZsiXh4eG0bt2an376iSFDhgC2k5eyWHO5GGKL\nZVIZtlAe/fr10/vcsWNH2rZtyzfffMOzzz6Lv78/+/fvJzU1lXr16lkolaZhLXkp65rbrl07o86J\nxx9/XG+bxo0b06dPH/7880/atm0LQEREBGfPniU7O5u6detabV6MUR15KSsfWVlZfPvtt+zatUtv\ne61Wf2AmWygTY/NiDEuWSbt27QDo2bMnv//+O6mpqaxevZoxY8awY8cO3aRZtlAmxubFGJXNS41q\nuuDk5ERQUBBt27bltddeo0OHDnz66ac0aNAAQO+JoehzyVoTY6YZrg6zZ89m48aNfP/99wQGBpa7\nra+vL/7+/qUabFt7XmyxXIxl7WViiL2Vh4uLCy1atChVBtYe5NarVw+lUqnXgQMKy6GojIpva0ll\nXXMNKeucKK5t27YolcpS2zg6Opr15g33lhcfHx80Gg1paWl626WkpJQ6d8ydl7LysXv3bq5cuULz\n5s3x9vbG29ubixcvMn/+/HJrzKyxTIzJiy2USREXFxeCgoK4//77+fDDD3F3dy93wixrLJMi5eXF\nXGVSowLdkjQaDQUFBQQFBdGgQQN++eUX3bq8vDz27t1L586dLZhCw15++WVdYBgSElLh9tevXyc5\nObnUTdAalJeXwMBAmyqXyrDmMimLvZVHXl4ep06dsqkyAKhVqxbh4eH8+uuvest//fVXqy+Homuu\nIcacEwkJCWg0Gqsos8rkJTw8HCcnJ71z5/Lly5w6dcriZVaUj6eeeoo9e/bw+++/8/vvv7Nr1y78\n/Px49tln2bx5c5nft8YyMSYvtlAmVV1vjWVizHpzlUmNabowf/58+vfvj7+/v66X+O7du1m/fj1Q\nOA7i4sWLadq0KcHBwbz77ru4ubkRGRlp4ZTre+mll4iOjubrr7/G3d1d127Szc0NV1dXsrOziYqK\nYtiwYfj4+HDhwgVef/11fHx8GDx4sIVTr6+ivCgUCpspl+zsbM6cOQNAQUEBFy9e5MiRI3h5eeHp\n6WkzZVJePho2bGgz5WHInDlzGDBgAAEBAVy/fp133nmH3Nxcxo4da+mkVdqzzz7LlClTaN++PZ07\nd+bzzz8nJSWl3LaV1a28a64x16lz587x3Xff0b9/fzw9PTl58iRz5syhbdu2dOnSxabyUrduXSZM\nmMC8efN0IzK8+uqrhIWF0atXL6vIR7169Uq9AXB0dMTHx0fX2cdWysSYvNhCmWRmZrJ06VIGDBiA\nj48PqampfPrpp1y5coVHH30UsJ0yMSYv5iqTGhPopqSk8PTTT5OSkoK7uzthYWGsX79e13P5+eef\nJzc3l5kzZ6JWq+nQoQMbNmzA1dXVwinXt2rVKhQKBcOGDdNbPmvWLF5++WWUSiUnTpzgu+++IyMj\ngwYNGtCzZ0/+85//2FxewHbK5dChQwwdOhQofG0fFRVFVFQUjz32GIsXL7aZMikvH8uWLbOZ8jAk\nOTmZyZMnk5qaire3Nx07dmT79u00bNjQ0kmrtEcffZS0tDTeffddrl69SqtWrYiOjraqvJR3zc3L\ny6vwnHBycmLnzp2sWLGC7OxsAgIC6N+/Py+//LJR7fitKS9Q2DlKqVQyadIk8vLyiIiIYOXKldWa\nl4rugxWxlTIxlrWXSW5uLomJiaxZs4a0tDS8vLxo374927Zto2XLloDtlIkxeQHzlIlMASyEEEII\nIexSjW6jK4QQQggh7JcEukIIIYQQwi5JoCuEEEIIIeySBLpCCCGEEMIuSaArhBBCCCHskgS6Qggh\nhBDCLkmgK4QQQggh7JIEukIIUUPMnDmTAQMGVLjd+fPn8fT01M1Bby69e/dm3rx5Zv0NIUTNJoGu\nEEIYcP36dV5//XW6detGo0aN8PX1JTw8nKlTp7Jr1y69bdesWYOnpyd//PFHhfuNjY1l+PDhNG7c\n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\niIgoK/0FHZtdASKeF3IAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "image = make_empty_image(nxpix=62, nypix=12, binsz=1)\n", "figure = FITSFigure(image)\n", "# This call to `show_grayscale` is a workaround to get the Figure stretch correct.\n", "figure.show_grayscale(vmin=-1, vmax=0)\n", "for catalog in catalogs:\n", " figure.show_markers(catalog['GLON'], catalog['GLAT'],\n", " facecolor=catalog.meta['color'],\n", " alpha=0.5,\n", " label=catalog.meta['name'],\n", " )\n", "figure.ticks.set_xspacing(5)\n", "figure.ticks.set_yspacing(2)\n", "figure.tick_labels.set_xformat('dd')\n", "figure.tick_labels.set_yformat('dd')\n", "figure.axis_labels.set_xtext('GLON (deg)')\n", "figure.axis_labels.set_ytext('GLAT (deg)')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises\n", "\n", "* Choose another source, e.g. \"Crab\" or \"PKS 2155-304\". Access it for the three catalogs ``3fgl``, ``3fhl`` and ``gamma-cat``, print the data on it, and make a plot showing the spectral model and spectral points from those catalogs (not necessarily in one plot, but you can try if you like).\n", "* Make a list of sources in the 3FGL catalog within one degree of the Galactic center, and compute their distance to the Galactic center. Make a plot with source markers and names and separation as labels. Tip: use `gc = SkyCoord(0, 0, frame='galactic', unit='deg')` to get a ``SkyCoord`` object for the Galactic center location." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "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.3" }, "nbsphinx": { "orphan": true } }, "nbformat": 4, "nbformat_minor": 1 }