\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.19?urlpath=lab/tree/tutorials/api/catalog.ipynb)\n",
"- You may download all the notebooks in the documentation as a\n",
"[tar file](../../_downloads/notebooks-0.19.tar).\n",
"- **Source files:**\n",
"[catalog.ipynb](../../_static/notebooks/catalog.ipynb) |\n",
"[catalog.py](../../_static/notebooks/catalog.py)\n",
"
\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Source catalogs\n",
"\n",
"`~gammapy.catalog` provides convenient access to common gamma-ray source catalogs.\n",
"This module is mostly independent from the rest of Gammapy.\n",
"Typically you use it to compare new analyses against catalog results, e.g. overplot the spectral model, or compare the source position.\n",
"\n",
"Moreover as creating a source model and flux points for a given catalog from the FITS table is tedious, `~gammapy.catalog` has this already implemented. So you can create initial source models for your analyses.\n",
"This is very common for Fermi-LAT, to start with a catalog model.\n",
"For TeV analysis, especially in crowded Galactic regions, using the HGPS, gamma-cat or 2HWC catalog in this way can also be useful.\n",
"\n",
"In this tutorial you will learn how to:\n",
"\n",
"- List available catalogs\n",
"- Load a catalog\n",
"- Access the source catalog table data\n",
"- Select a catalog subset or a single source\n",
"- Get source spectral and spatial models\n",
"- Get flux points (if available)\n",
"- Get lightcurves (if available)\n",
"- Access the source catalog table data\n",
"- Pretty-print the source information\n",
"\n",
"In this tutorial we will show examples using the following catalogs:\n",
"\n",
"- `~gammapy.catalog.SourceCatalogHGPS`\n",
"- `~gammapy.catalog.SourceCatalogGammaCat`\n",
"- `~gammapy.catalog.SourceCatalog3FHL`\n",
"- `~gammapy.catalog.SourceCatalog4FGL`\n",
"\n",
"All catalog and source classes work the same, as long as some information is available. E.g. trying to access a lightcurve from a catalog and source that doesn't have that information will return ``None``.\n",
"\n",
"Further information is available at `~gammapy.catalog`."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:34.423421Z",
"iopub.status.busy": "2021-11-22T21:09:34.422535Z",
"iopub.status.idle": "2021-11-22T21:09:35.105228Z",
"shell.execute_reply": "2021-11-22T21:09:35.105399Z"
}
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import astropy.units as u\n",
"from gammapy.catalog import CATALOG_REGISTRY"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## List available catalogs\n",
"\n",
"`~gammapy.catalog` contains a catalog registry ``CATALOG_REGISTRY``, which maps catalog names (e.g. \"3fhl\") to catalog classes (e.g. ``SourceCatalog3FHL``). "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:35.108216Z",
"iopub.status.busy": "2021-11-22T21:09:35.107906Z",
"iopub.status.idle": "2021-11-22T21:09:35.109869Z",
"shell.execute_reply": "2021-11-22T21:09:35.110050Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"[gammapy.catalog.gammacat.SourceCatalogGammaCat,\n",
" gammapy.catalog.hess.SourceCatalogHGPS,\n",
" gammapy.catalog.hawc.SourceCatalog2HWC,\n",
" gammapy.catalog.fermi.SourceCatalog3FGL,\n",
" gammapy.catalog.fermi.SourceCatalog4FGL,\n",
" gammapy.catalog.fermi.SourceCatalog2FHL,\n",
" gammapy.catalog.fermi.SourceCatalog3FHL,\n",
" gammapy.catalog.hawc.SourceCatalog3HWC]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CATALOG_REGISTRY"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load catalogs\n",
"\n",
"If you have run `gammapy download datasets` or `gammapy download tutorials`,\n",
"you have a copy of the catalogs as FITS files in `$GAMMAPY_DATA/catalogs`,\n",
"and that is the default location where `~gammapy.catalog` loads from.\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:35.112051Z",
"iopub.status.busy": "2021-11-22T21:09:35.111745Z",
"iopub.status.idle": "2021-11-22T21:09:35.231747Z",
"shell.execute_reply": "2021-11-22T21:09:35.232078Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2HWC.ecsv\r\n",
"2HWC.yaml\r\n",
"3HWC.ecsv\r\n",
"3HWC.yaml\r\n",
"README.rst\r\n",
"\u001b[1m\u001b[34mfermi\u001b[m\u001b[m\r\n",
"\u001b[1m\u001b[34mgammacat\u001b[m\u001b[m\r\n",
"hgps_catalog_v1.fits.gz\r\n",
"make_2hwc.py\r\n",
"make_3hwc.py\r\n"
]
}
],
"source": [
"!ls -1 $GAMMAPY_DATA/catalogs"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:35.236270Z",
"iopub.status.busy": "2021-11-22T21:09:35.235741Z",
"iopub.status.idle": "2021-11-22T21:09:35.361370Z",
"shell.execute_reply": "2021-11-22T21:09:35.362197Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m\u001b[34mExtended_archive_v15\u001b[m\u001b[m\r\n",
"\u001b[1m\u001b[34mExtended_archive_v18\u001b[m\u001b[m\r\n",
"\u001b[1m\u001b[34mLAT_extended_sources_8years\u001b[m\u001b[m\r\n",
"README.rst\r\n",
"gll_psc_v16.fit.gz\r\n",
"gll_psc_v20.fit.gz\r\n",
"gll_psc_v27.fit.gz\r\n",
"gll_psch_v08.fit.gz\r\n",
"gll_psch_v09.fit.gz\r\n",
"gll_psch_v13.fit.gz\r\n"
]
}
],
"source": [
"!ls -1 $GAMMAPY_DATA/catalogs/fermi"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So a catalog can be loaded directly from its corresponding class"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:35.372496Z",
"iopub.status.busy": "2021-11-22T21:09:35.371714Z",
"iopub.status.idle": "2021-11-22T21:09:35.634077Z",
"shell.execute_reply": "2021-11-22T21:09:35.634316Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of sources : 5788\n"
]
}
],
"source": [
"from gammapy.catalog import SourceCatalog4FGL\n",
"\n",
"catalog = SourceCatalog4FGL()\n",
"print(\"Number of sources :\", len(catalog.table))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that it loads the default catalog from `$GAMMAPY_DATA/catalogs`, you could pass a different `filename` when creating the catalog.\n",
"For example here we load an older version of 4FGL catalog: "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:35.636285Z",
"iopub.status.busy": "2021-11-22T21:09:35.636000Z",
"iopub.status.idle": "2021-11-22T21:09:36.026181Z",
"shell.execute_reply": "2021-11-22T21:09:36.026375Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of sources : 5066\n"
]
}
],
"source": [
"catalog = SourceCatalog4FGL(\"$GAMMAPY_DATA/catalogs/fermi/gll_psc_v20.fit.gz\")\n",
"print(\"Number of sources :\", len(catalog.table))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Alternatively you can load a catalog by name via `CATALOG_REGISTRY.get_cls(name)()` (note the `()` to instantiate a catalog object from the catalog class - only this will load the catalog and be useful), or by importing the catalog class (e.g. `SourceCatalog3FGL`) directly. The two ways are equivalent, the result will be the same.\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.028254Z",
"iopub.status.busy": "2021-11-22T21:09:36.027950Z",
"iopub.status.idle": "2021-11-22T21:09:36.185495Z",
"shell.execute_reply": "2021-11-22T21:09:36.185684Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# FITS file is loaded\n",
"catalog = CATALOG_REGISTRY.get_cls(\"3fgl\")()\n",
"catalog"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.187617Z",
"iopub.status.busy": "2021-11-22T21:09:36.187336Z",
"iopub.status.idle": "2021-11-22T21:09:36.583191Z",
"shell.execute_reply": "2021-11-22T21:09:36.583361Z"
}
},
"outputs": [],
"source": [
"# Let's load the source catalogs we will use throughout this tutorial\n",
"catalog_gammacat = CATALOG_REGISTRY.get_cls(\"gamma-cat\")()\n",
"catalog_3fhl = CATALOG_REGISTRY.get_cls(\"3fhl\")()\n",
"catalog_4fgl = CATALOG_REGISTRY.get_cls(\"4fgl\")()\n",
"catalog_hgps = CATALOG_REGISTRY.get_cls(\"hgps\")()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Catalog table\n",
"\n",
"Source catalogs are given as `FITS` files that contain one or multiple tables.\n",
"\n",
"However, you can also access the underlying `astropy.table.Table` for a catalog,\n",
"and the row data as a Python `dict`. This can be useful if you want to do something\n",
"that is not pre-scripted by the `~gammapy.catalog` classes, such as e.g. selecting\n",
"sources by sky position or association class, or accessing special source information.\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.585491Z",
"iopub.status.busy": "2021-11-22T21:09:36.585167Z",
"iopub.status.idle": "2021-11-22T21:09:36.586605Z",
"shell.execute_reply": "2021-11-22T21:09:36.586759Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"astropy.table.table.Table"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(catalog_3fhl.table)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.588613Z",
"iopub.status.busy": "2021-11-22T21:09:36.588288Z",
"iopub.status.idle": "2021-11-22T21:09:36.589774Z",
"shell.execute_reply": "2021-11-22T21:09:36.589932Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"1556"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(catalog_3fhl.table)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.592260Z",
"iopub.status.busy": "2021-11-22T21:09:36.591960Z",
"iopub.status.idle": "2021-11-22T21:09:36.594067Z",
"shell.execute_reply": "2021-11-22T21:09:36.594298Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
Table length=3\n",
"
\n",
"
Source_Name
RAJ2000
DEJ2000
\n",
"
deg
deg
\n",
"
bytes18
float32
float32
\n",
"
3FHL J0001.2-0748
0.3107
-7.8075
\n",
"
3FHL J0001.9-4155
0.4849
-41.9303
\n",
"
3FHL J0002.1-6728
0.5283
-67.4825
\n",
"
"
],
"text/plain": [
"
\n",
" Source_Name RAJ2000 DEJ2000 \n",
" deg deg \n",
" bytes18 float32 float32 \n",
"------------------ -------- --------\n",
"3FHL J0001.2-0748 0.3107 -7.8075\n",
"3FHL J0001.9-4155 0.4849 -41.9303\n",
"3FHL J0002.1-6728 0.5283 -67.4825"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"catalog_3fhl.table[:3][[\"Source_Name\", \"RAJ2000\", \"DEJ2000\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the catalogs object include a helper property that gives directly the sources positions as a `SkyCoord` object (we will show an usage example in the following)."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.596479Z",
"iopub.status.busy": "2021-11-22T21:09:36.596123Z",
"iopub.status.idle": "2021-11-22T21:09:36.598706Z",
"shell.execute_reply": "2021-11-22T21:09:36.598925Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"catalog_3fhl.positions[:3]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Source object\n",
"\n",
"### Select a source\n",
"\n",
"The catalog entries for a single source are represented by a `SourceCatalogObject`.\n",
"In order to select a source object index into the catalog using `[]`, with a catalog table row index (zero-based, first row is `[0]`), or a source name. If a name is given, catalog table columns with source names and association names (\"ASSOC1\" in the example below) are searched top to bottom. There is no name resolution web query.\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.601726Z",
"iopub.status.busy": "2021-11-22T21:09:36.601411Z",
"iopub.status.idle": "2021-11-22T21:09:36.602859Z",
"shell.execute_reply": "2021-11-22T21:09:36.603090Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source = catalog_4fgl[49]\n",
"source"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.604871Z",
"iopub.status.busy": "2021-11-22T21:09:36.604582Z",
"iopub.status.idle": "2021-11-22T21:09:36.605931Z",
"shell.execute_reply": "2021-11-22T21:09:36.606221Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(49, '4FGL J0010.8-2154')"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source.row_index, source.name"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.688774Z",
"iopub.status.busy": "2021-11-22T21:09:36.663590Z",
"iopub.status.idle": "2021-11-22T21:09:36.690172Z",
"shell.execute_reply": "2021-11-22T21:09:36.690414Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(49, '4FGL J0010.8-2154')"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source = catalog_4fgl[\"4FGL J0010.8-2154\"]\n",
"source.row_index, source.name"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.692225Z",
"iopub.status.busy": "2021-11-22T21:09:36.691902Z",
"iopub.status.idle": "2021-11-22T21:09:36.693321Z",
"shell.execute_reply": "2021-11-22T21:09:36.693503Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"'PKS 0008-222 '"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source.data[\"ASSOC1\"]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.700914Z",
"iopub.status.busy": "2021-11-22T21:09:36.700618Z",
"iopub.status.idle": "2021-11-22T21:09:36.737010Z",
"shell.execute_reply": "2021-11-22T21:09:36.737234Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(49, '4FGL J0010.8-2154')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source = catalog_4fgl[\"PKS 0008-222\"]\n",
"source.row_index, source.name"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that you can also do a `for source in catalog` loop, to find or process\n",
"sources of interest.\n",
"\n",
"### Source information\n",
"\n",
"The source objects have a `data` property that contains the information of the catalog row corresponding to the source."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.739172Z",
"iopub.status.busy": "2021-11-22T21:09:36.738844Z",
"iopub.status.idle": "2021-11-22T21:09:36.740217Z",
"shell.execute_reply": "2021-11-22T21:09:36.740462Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"276.04663"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source.data[\"Npred\"]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.742516Z",
"iopub.status.busy": "2021-11-22T21:09:36.742177Z",
"iopub.status.idle": "2021-11-22T21:09:36.743704Z",
"shell.execute_reply": "2021-11-22T21:09:36.743879Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(, )"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source.data[\"GLON\"], source.data[\"GLAT\"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As for the catalog object, the source object has a `position` property."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:36.752480Z",
"iopub.status.busy": "2021-11-22T21:09:36.752174Z",
"iopub.status.idle": "2021-11-22T21:09:36.753483Z",
"shell.execute_reply": "2021-11-22T21:09:36.753705Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"source.position.galactic"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Select a catalog subset\n",
"\n",
"The catalog objects support selection using boolean arrays (of the same length), so one can create a new catalog as a subset of the main catalog that verify a set of conditions.\n",
"\n",
"In the next example we selection only few of the brightest sources brightest sources in the 100 to 200 GeV energy band."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.156805Z",
"iopub.status.busy": "2021-11-22T21:09:37.055322Z",
"iopub.status.idle": "2021-11-22T21:09:37.680753Z",
"shell.execute_reply": "2021-11-22T21:09:37.680937Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"352 3FHL J0534.5+2201 2.99e-10 1 / (cm2 s)\n",
"553 3FHL J0851.9-4620e 1.24e-10 1 / (cm2 s)\n",
"654 3FHL J1036.3-5833e 1.57e-10 1 / (cm2 s)\n",
"691 3FHL J1104.4+3812 3.34e-10 1 / (cm2 s)\n",
"1111 3FHL J1653.8+3945 1.27e-10 1 / (cm2 s)\n",
"1219 3FHL J1824.5-1351e 1.77e-10 1 / (cm2 s)\n",
"1361 3FHL J2028.6+4110e 1.75e-10 1 / (cm2 s)\n"
]
}
],
"source": [
"mask_bright = np.zeros(len(catalog_3fhl.table), dtype=bool)\n",
"for k, source in enumerate(catalog_3fhl):\n",
" flux = (\n",
" source.spectral_model()\n",
" .integral(100 * u.GeV, 200 * u.GeV)\n",
" .to(\"cm-2 s-1\")\n",
" )\n",
" if flux > 1e-10 * u.Unit(\"cm-2 s-1\"):\n",
" mask_bright[k] = True\n",
" print(f\"{source.row_index:<7d} {source.name:20s} {flux:.3g}\")"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.683453Z",
"iopub.status.busy": "2021-11-22T21:09:37.683143Z",
"iopub.status.idle": "2021-11-22T21:09:37.687401Z",
"shell.execute_reply": "2021-11-22T21:09:37.687560Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"catalog_3fhl_bright = catalog_3fhl[mask_bright]\n",
"catalog_3fhl_bright"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.689630Z",
"iopub.status.busy": "2021-11-22T21:09:37.689308Z",
"iopub.status.idle": "2021-11-22T21:09:37.690683Z",
"shell.execute_reply": "2021-11-22T21:09:37.690906Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<Column name='Source_Name' dtype='bytes18' length=7>\n",
"
\n",
"
3FHL J0534.5+2201
\n",
"
3FHL J0851.9-4620e
\n",
"
3FHL J1036.3-5833e
\n",
"
3FHL J1104.4+3812
\n",
"
3FHL J1653.8+3945
\n",
"
3FHL J1824.5-1351e
\n",
"
3FHL J2028.6+4110e
\n",
"
"
],
"text/plain": [
"\n",
"3FHL J0534.5+2201 \n",
"3FHL J0851.9-4620e\n",
"3FHL J1036.3-5833e\n",
"3FHL J1104.4+3812 \n",
"3FHL J1653.8+3945 \n",
"3FHL J1824.5-1351e\n",
"3FHL J2028.6+4110e"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"catalog_3fhl_bright.table[\"Source_Name\"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Similarly we can select only sources within a region of interest. Here for example we use the `position` property of the catalog object to select sources whitin 5 degrees from \"PKS 0008-222\":\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.717173Z",
"iopub.status.busy": "2021-11-22T21:09:37.716875Z",
"iopub.status.idle": "2021-11-22T21:09:37.740577Z",
"shell.execute_reply": "2021-11-22T21:09:37.740747Z"
}
},
"outputs": [],
"source": [
"source = catalog_4fgl[\"PKS 0008-222\"]\n",
"mask_roi = source.position.separation(catalog_4fgl.positions) < 5 * u.deg"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.743031Z",
"iopub.status.busy": "2021-11-22T21:09:37.742736Z",
"iopub.status.idle": "2021-11-22T21:09:37.758566Z",
"shell.execute_reply": "2021-11-22T21:09:37.758785Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of sources : 11\n"
]
}
],
"source": [
"catalog_4fgl_roi = catalog_4fgl[mask_roi]\n",
"print(\"Number of sources :\", len(catalog_4fgl_roi.table))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Source models\n",
"\n",
"The `~gammapy.catalog.SourceCatalogObject` classes have a `sky_model()` model\n",
"which creates a `gammapy.modeling.models.SkyModel` object, with model parameter\n",
"values and parameter errors from the catalog filled in.\n",
"\n",
"In most cases, the `spectral_model()` method provides the `gammapy.modeling.models.SpectralModel`\n",
"part of the sky model, and the `spatial_model()` method the `gammapy.modeling.models.SpatialModel`\n",
"part individually.\n",
"\n",
"We use the `gammapy.catalog.SourceCatalog3FHL` for the examples in this section."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.801447Z",
"iopub.status.busy": "2021-11-22T21:09:37.801160Z",
"iopub.status.idle": "2021-11-22T21:09:37.802289Z",
"shell.execute_reply": "2021-11-22T21:09:37.802460Z"
}
},
"outputs": [],
"source": [
"source = catalog_4fgl[\"PKS 2155-304\"]"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.806359Z",
"iopub.status.busy": "2021-11-22T21:09:37.806067Z",
"iopub.status.idle": "2021-11-22T21:09:37.815412Z",
"shell.execute_reply": "2021-11-22T21:09:37.815590Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"SkyModel(spatial_model=, spectral_model=)temporal_model=None)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = source.sky_model()\n",
"model"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.817399Z",
"iopub.status.busy": "2021-11-22T21:09:37.817113Z",
"iopub.status.idle": "2021-11-22T21:09:37.818567Z",
"shell.execute_reply": "2021-11-22T21:09:37.818339Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SkyModel\n",
"\n",
" Name : 4FGL J2158.8-3013\n",
" Datasets names : None\n",
" Spectral model type : LogParabolaSpectralModel\n",
" Spatial model type : PointSpatialModel\n",
" Temporal model type : \n",
" Parameters:\n",
" amplitude : 1.44e-11 +/- 1.7e-13 1 / (cm2 MeV s)\n",
" reference (frozen) : 1118.643 MeV \n",
" alpha : 1.767 +/- 0.01 \n",
" beta : 0.041 +/- 0.00 \n",
" lon_0 : 329.714 +/- 0.00 deg \n",
" lat_0 : -30.225 +/- 0.00 deg \n",
"\n",
"\n"
]
}
],
"source": [
"print(model)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.820899Z",
"iopub.status.busy": "2021-11-22T21:09:37.820591Z",
"iopub.status.idle": "2021-11-22T21:09:37.821863Z",
"shell.execute_reply": "2021-11-22T21:09:37.822011Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PointSpatialModel\n",
"\n",
" type name value unit error min max frozen link\n",
"------- ----- ----------- ---- --------- ---------- --------- ------ ----\n",
"spatial lon_0 3.2971e+02 deg 3.735e-03 nan nan False \n",
"spatial lat_0 -3.0225e+01 deg 3.227e-03 -9.000e+01 9.000e+01 False \n"
]
}
],
"source": [
"print(model.spatial_model)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.824330Z",
"iopub.status.busy": "2021-11-22T21:09:37.824030Z",
"iopub.status.idle": "2021-11-22T21:09:37.825332Z",
"shell.execute_reply": "2021-11-22T21:09:37.825506Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"LogParabolaSpectralModel\n",
"\n",
" type name value unit error min max frozen link\n",
"-------- --------- ---------- -------------- --------- --- --- ------ ----\n",
"spectral amplitude 1.4365e-11 cm-2 MeV-1 s-1 1.655e-13 nan nan False \n",
"spectral reference 1.1186e+03 MeV 0.000e+00 nan nan True \n",
"spectral alpha 1.7668e+00 1.163e-02 nan nan False \n",
"spectral beta 4.0969e-02 4.120e-03 nan nan False \n"
]
}
],
"source": [
"print(model.spectral_model)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:37.878288Z",
"iopub.status.busy": "2021-11-22T21:09:37.840360Z",
"iopub.status.idle": "2021-11-22T21:09:38.135879Z",
"shell.execute_reply": "2021-11-22T21:09:38.136112Z"
},
"nbsphinx-thumbnail": {
"tooltip": "Access and explore thew most common gamma-ray source catalogs."
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"energy_bounds = (100 * u.MeV, 100 * u.GeV)\n",
"opts = dict(sed_type=\"e2dnde\", yunits=u.Unit(\"TeV cm-2 s-1\"))\n",
"model.spectral_model.plot(energy_bounds, **opts)\n",
"model.spectral_model.plot_error(energy_bounds, **opts);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can create initial source models for your analyses using the `.to_models()` method of the catalog objects. Here for example we create a `Models` object from the 4FGL catalog subset we previously defined:"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:38.140640Z",
"iopub.status.busy": "2021-11-22T21:09:38.140274Z",
"iopub.status.idle": "2021-11-22T21:09:38.209798Z",
"shell.execute_reply": "2021-11-22T21:09:38.210044Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"models_4fgl_roi = catalog_4fgl_roi.to_models()\n",
"models_4fgl_roi"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Specificities of the HGPS catalog\n",
"\n",
"Using the `.to_models()` method for the `gammapy.catalog.SourceCatalogHGPS` will return only the models components of the sources retained in the main catalog, several candidate objects appears only in the Gaussian components table (see section 4.9 of the HGPS paper, https://arxiv.org/abs/1804.02432). To access these components you can do the following:\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:38.212232Z",
"iopub.status.busy": "2021-11-22T21:09:38.211951Z",
"iopub.status.idle": "2021-11-22T21:09:38.213157Z",
"shell.execute_reply": "2021-11-22T21:09:38.213335Z"
}
},
"outputs": [],
"source": [
"discarded_ind = np.where(\n",
" [\n",
" \"Discarded\" in _\n",
" for _ in catalog_hgps.table_components[\"Component_Class\"]\n",
" ]\n",
")[0]\n",
"discarded_table = catalog_hgps.table_components[discarded_ind]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There is no spectral model available for these components but you can access their spatial models:"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:38.217929Z",
"iopub.status.busy": "2021-11-22T21:09:38.217642Z",
"iopub.status.idle": "2021-11-22T21:09:38.218796Z",
"shell.execute_reply": "2021-11-22T21:09:38.219019Z"
}
},
"outputs": [],
"source": [
"discarded_spatial = [\n",
" catalog_hgps.gaussian_component(idx).spatial_model()\n",
" for idx in discarded_ind\n",
"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In addition to the source components the HGPS catalog include a large scale diffuse component built by fitting a gaussian model in a sliding window along the Galactic plane. Information on this model can be accessed via the propoerties `.table_large_scale_component` and `.large_scale_component` of `gammapy.catalog.SourceCatalogHGPS`."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"execution": {
"iopub.execute_input": "2021-11-22T21:09:38.221462Z",
"iopub.status.busy": "2021-11-22T21:09:38.221170Z",
"iopub.status.idle": "2021-11-22T21:09:38.222577Z",
"shell.execute_reply": "2021-11-22T21:09:38.222803Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"