{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Gravitational Wave Localizations and Galaxy Crossmatch Module\n", "\n", "**Lecturer:** Leo Singer
\n", "**Jupyter Notebook Authors:** Leo Singer, Dave Cook, Shreya Anand & Cameron Hummels\n", "\n", "This is a Jupyter notebook lesson taken from the GROWTH Summer School 2019. For other lessons and their accompanying lectures, please see: http://growth.caltech.edu/growth-school-2019.html\n", "## Objective\n", "Learn how to use LIGO/Virgo localizations and match with galaxies\n", "\n", "## Key steps\n", "- Manipulate HEALPix localization files\n", "- Cross-match a LIGO localization with a galaxy catalog\n", "\n", "## Required dependencies\n", "\n", "See GROWTH school webpage for detailed instructions on how to install these modules and packages. Nominally, you should be able to install the python modules with `pip install `. The external astromatic packages are easiest installed using package managers (e.g., `rpm`, `apt-get`).\n", "\n", "### Python modules\n", "* python 3\n", "* astropy\n", "* numpy\n", "* scipy\n", "* matplotlib\n", "* healpy\n", "* ligo.skymap\n", "\n", "### External packages\n", "None" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, some imports: Numpy, Matplotlib, Healpy, and parts of Astropy." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import astropy.utils.data\n", "from matplotlib import pyplot as plt\n", "import numpy as np\n", "import healpy as hp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are some extra imports for the galaxy cross matching:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from astropy.table import Table, vstack, hstack, Column\n", "import astropy.units as u\n", "from astropy.coordinates import SkyCoord\n", "import ligo.skymap.plot\n", "from scipy.stats import norm\n", "import scipy.stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And configure Matplotlib to send plot output directly to the notebook:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## HEALPix Basics\n", "\n", "This section on using HEALPix localization files is adapted from the [LIGO/Virgo Public Alerts User Guide](https://emfollow.docs.ligo.org/userguide/tutorial/skymaps.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download and read localization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's start by downloading a sample localization file from the User Guide. We could do this on the command line using `curl`:\n", "\n", " $ curl -O https://emfollow.docs.ligo.org/userguide/_static/bayestar.fits.gz\n", "\n", "But after all, this is a Python lesson, so let's download the file using the handy `astropy.utils.data.download_file` function from Astropy." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "url = 'https://emfollow.docs.ligo.org/userguide/_static/bayestar.fits.gz'\n", "filename = astropy.utils.data.download_file(url)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let's read in the HEALPix data using Healpy. Note that by default, Healpy only reads the first column, which provides the 2D probability distribution on the sky." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NSIDE = 2048\n", "ORDERING = NESTED in fits file\n", "INDXSCHM = IMPLICIT\n", "Ordering converted to RING\n" ] } ], "source": [ "prob = hp.read_map(filename)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Manipulating HEALPix Coordinates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get a quick look at a HEALPix data set, you can use the `hp.mollview` function:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "hp.mollview(prob)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What actually is stored in `prob`?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([2.70726059e-66, 1.27374324e-66, 2.62611513e-67, ...,\n", " 2.04700874e-40, 1.05781210e-35, 4.44174764e-31])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prob" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's a one-dimensional array! Yet it represents in 2D image. How does that work? HEALPix is a way to *index* equal-area regions on the unit sphere using integers.\n", "\n", "To decode HEALPix indices, you need to know the resolution of the map, which is described by a parameter called `nside`. `nside` is the number of subdivisions of 12 base HEALPix tiles, so the relation between the length of a HEALPix array, `npix`, and its resolution, `nside`, is\n", "\n", "$$\n", " \\mathsf{npix} = 12 \\cdot \\mathsf{nside}^2.\n", "$$\n", "\n", "The functions `hp.npix2nside` and `hp.nside2npix` convert between length and resolution." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "50331648" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "npix = len(prob)\n", "npix" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2048" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nside = hp.npix2nside(npix)\n", "nside" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `hp.pix2ang` allow us to convert from (ra, dec) and HEALPix pixel index.\n", "\n", "*Note*: by default, these functions return 'physics' spherical coordinates $(\\theta, \\phi)$ in radians, but you can switch to 'astronomy' spherical coordinates in degrees by passing the keyword argument `lonlat=True`.\n", "\n", "Let's look up the right asce3nsion and declination of pixel 123." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(129.375, 89.81725848475484)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipix = 123\n", "ra, dec = hp.pix2ang(nside, ipix, lonlat=True)\n", "ra, dec" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function `hp.ang2pix` does the opposite. Let's find the pixel that contains the point RA=194.95, Dec=27.98." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "13361492" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ra = 194.95\n", "dec = 27.98\n", "hp.ang2pix(nside, ra, dec, lonlat=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is the most probable sky location? Just find the pixel with the maximum value, and then find its right ascension and declination." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "32883013" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipix_max = np.argmax(prob)\n", "ipix_max" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(194.30419921875, -17.856895095545454)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hp.pix2ang(nside, ipix_max, lonlat=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Probability distributions with scipy.stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finding the most probable sky location within a HEALPix map involves knowing which pixels correspond to a certain probability contour (say, 90%). We can gain insight into how these probability contours are calculated using scipy.stats. Scipy provides a \"t\" distribution class that we can use to get values from the \"t\" statistic probability density function (PDF). As a start, we plot the PDF for a \"t\" statistic with 3 degrees of freedom:" ] }, { "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": [ "t_dist = scipy.stats.t(3)\n", "t_values = np.linspace(-4, 4, 1000)\n", "plt.plot(t_values, t_dist.pdf(t_values))\n", "plt.xlabel('t value')\n", "plt.ylabel('probability for t value')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The t distribution object t_dist can also give us the cumulative distribution function (CDF). The CDF gives the area under the curve of the PDF at and to the left of the given t value:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(t_values, t_dist.cdf(t_values))\n", "plt.xlabel('t value')\n", "plt.ylabel('probability for t value <= t')\n", "plt.title('CDF for t distribution')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Say I have a t value x drawn from a t distribution. The PDF gives the probability for given values of x. Because it is a probability density, the sum of the probabilities of all possible values for x: ∞" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "example_values = (-1.5, 0, 1.5)\n", "pdf_values = t_dist.pdf(t_values)\n", "cdf_values = t_dist.cdf(t_values)\n", "fill_color = (0, 0, 0, 0.1) # Light gray in RGBA format.\n", "line_color = (0, 0, 0, 0.5) # Medium gray in RGBA format.\n", "fig, axes = plt.subplots(2, len(example_values), figsize=(10, 6))\n", "for i, x in enumerate(example_values):\n", " cdf_ax, pdf_ax = axes[:, i]\n", " cdf_ax.plot(t_values, cdf_values)\n", " pdf_ax.plot(t_values, pdf_values)\n", " # Fill area at and to the left of x.\n", " pdf_ax.fill_between(t_values, pdf_values,\n", " where=t_values <= x,\n", " color=fill_color)\n", " pd = t_dist.pdf(x) # Probability density at this value.\n", " # Line showing position of x on x-axis of PDF plot.\n", " pdf_ax.plot([x, x],\n", " [0, pd], color=line_color)\n", " cd = t_dist.cdf(x) # Cumulative distribution value for this x.\n", " # Lines showing x and CDF value on CDF plot.\n", " x_ax_min = cdf_ax.axis()[0] # x position of y axis on plot.\n", " cdf_ax.plot([x, x, x_ax_min],\n", " [0, cd, cd], color=line_color)\n", " cdf_ax.set_title('x = {:.1f}, area = {:.2f}'.format(x, cd))\n", " # Hide top and right axis lines and ticks to reduce clutter.\n", " for ax in (cdf_ax, pdf_ax):\n", " ax.spines['right'].set_visible(False)\n", " ax.spines['top'].set_visible(False)\n", " ax.yaxis.set_ticks_position('left')\n", " ax.xaxis.set_ticks_position('bottom')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, say I have drawn a t value x at random from a t distribution. The probability that x<=1.5 is (i.e., >0.9253):" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8847080673775886" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t_dist.cdf(1.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The total area under the PDF is 1, and the maximum value for the CDF is 1. Therefore the area of the PDF to the right of 1.5 must be (i.e., >0.0746):" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.11529193262241144" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 - t_dist.cdf(1.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the probability that our t value x will be >1.5. In general, when we sample a value x at random from a t distribution, the probability that x>q is given by:\n", "\n", "ℙ(x>q)=1−CDF(q), where CDF is the cumulative distribution function for a t value. We can apply the same methodology to HEALpix pixel probabilities in LIGO/VIRGO localization maps. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Working with LIGO/Virgo 3D localizations and Cross-Matching to Galaxy Catalogs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's get our galaxy catalog that we will later match to the 3D localization of GW170817.\n", "\n", "For this Section we will use a galaxy catalog from the CLU project (Census of the Local Universe; paper: https://ui.adsabs.harvard.edu/abs/2017arXiv171005016C/abstract). However, we will only use those galaxies that are publically availble and in NED (NASA/IPAC Extragalactic Database: https://ned.ipac.caltech.edu/). This catalog has already been prepared for you." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "load CLU catalog into astropy table." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "clu=Table.read('data/CLU_NEDonly.fits')\n", "nclu=np.size(clu)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add probability columns to the galaxy catalog: probability density and p-value per volume and per area." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "probdencol=Column(np.zeros(nclu,dtype='f4'),name='dP_dV')\n", "probcol=Column(np.zeros(nclu,dtype='f4'),name='P')\n", "probdenAcol=Column(np.zeros(nclu,dtype='f4'),name='dP_dA')\n", "probAcol=Column(np.zeros(nclu,dtype='f4'),name='P_A')\n", "clu.add_columns([probdencol,probcol,probdenAcol,probAcol])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Familiarize yourself with the catalog\n", "\n", "print the columns in the catalog that will be used in the cross-match." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=225709\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
NEDnameRADECTYPE_NEDDISTMPCZZERRMODELMAG_RK_M_K20FEK_MSIG_K20FEW1MPROW1SIGMPRO
bytes30float64float64bytes3float32float64float64float32float64float64float64float64
2dFGRS S805Z4170.00162-56.14106G43.256860.0103816464543342590.000297nan1e+201e+2015.9830.046
2MASS J00000158-39304630.0068-39.51309G46.0278660.0110466880723834040.000119nan1e+201e+201e+201e+20
KUG 2357+1560.0090515.88188G85.729950.0205751881003379823.3e-0514.91755712.310.06712.1780.023
2dFGRS S199Z1780.00996-27.74194G114.326590.027438381686806680.000297nan1e+201e+2015.2680.04
GALEXASC J000003.23-333033.40.01362-33.50967G98.5057140.0236413720995187760.000297nan1e+201e+2016.6510.083
GALEXASC J000005.52-011255.70.02304-1.2155UvS130.274670.0312659218907356261e+2017.1578351e+201e+2015.2920.04
USGC U0010.0233326.19028GTr106.4290.0255429614335298541e+2022.1105941e+201e+2017.7190.213
DUKST 349-0640.02492-35.65822G121.633140.029191952198743820.000213nan1e+201e+2014.6990.046
UGC 128900.029318.27918G165.746570.0397791750729084-999.0nan10.7790.05911.5210.023
MCG -01-01-0160.036-6.374G93.529040.0224469695240259172.7e-0514.14183211.240.05911.9460.023
....................................
GALEXASC J234305.34-552311.9355.77191-55.38668Vis85.657140.020557714626193047-999.0nan1e+201e+2016.1630.048
GALEXASC J234344.33-545403.7355.93484-54.90119Vis42.828570.010278857313096523-999.0nan1e+201e+2015.0470.032
SDSS J234403.01+003122.6356.012550.52295G98.1116940.023546807467937471e+2021.516471e+201e+201e+201e+20
GALEXASC J234414.08-364635.4356.05836-36.77655G26.485190.0063564451411366461.3e-05nan1e+201e+2015.0550.036
2MASX J23454008+0144274356.417041.74092G119.547390.0286913737654685971e+2015.65992514.0840.16814.0730.03
AGC 331333356.7534927.2631G128.074550.0307378936558961870.00032nan1e+201e+201e+201e+20
GALEXASC J235033.20-363303.2357.63789-36.551G30.9736230.007433669641613967e-06nan1e+201e+2015.1040.034
2dFGRS S274Z118357.82371-29.26367Vis2.14142850.00051394279580563310.000213nan1e+201e+2013.5020.025
SNF 20080706-004 HOST358.782387.68939G169.344180.040642604231834415e-05nan1e+201e+2015.1670.038
SDSS-II SN 03674359.791620.16298Vis149.90.035976000130176544-999.022.537331e+201e+201e+201e+20
" ], "text/plain": [ "\n", " NEDname RA DEC ... W1MPRO W1SIGMPRO\n", " bytes30 float64 float64 ... float64 float64 \n", "---------------------------- --------- --------- ... ------- ---------\n", " 2dFGRS S805Z417 0.00162 -56.14106 ... 15.983 0.046\n", " 2MASS J00000158-3930463 0.0068 -39.51309 ... 1e+20 1e+20\n", " KUG 2357+156 0.00905 15.88188 ... 12.178 0.023\n", " 2dFGRS S199Z178 0.00996 -27.74194 ... 15.268 0.04\n", "GALEXASC J000003.23-333033.4 0.01362 -33.50967 ... 16.651 0.083\n", "GALEXASC J000005.52-011255.7 0.02304 -1.2155 ... 15.292 0.04\n", " USGC U001 0.02333 26.19028 ... 17.719 0.213\n", " DUKST 349-064 0.02492 -35.65822 ... 14.699 0.046\n", " UGC 12890 0.02931 8.27918 ... 11.521 0.023\n", " MCG -01-01-016 0.036 -6.374 ... 11.946 0.023\n", " ... ... ... ... ... ...\n", "GALEXASC J234305.34-552311.9 355.77191 -55.38668 ... 16.163 0.048\n", "GALEXASC J234344.33-545403.7 355.93484 -54.90119 ... 15.047 0.032\n", " SDSS J234403.01+003122.6 356.01255 0.52295 ... 1e+20 1e+20\n", "GALEXASC J234414.08-364635.4 356.05836 -36.77655 ... 15.055 0.036\n", " 2MASX J23454008+0144274 356.41704 1.74092 ... 14.073 0.03\n", " AGC 331333 356.75349 27.2631 ... 1e+20 1e+20\n", "GALEXASC J235033.20-363303.2 357.63789 -36.551 ... 15.104 0.034\n", " 2dFGRS S274Z118 357.82371 -29.26367 ... 13.502 0.025\n", " SNF 20080706-004 HOST 358.78238 7.68939 ... 15.167 0.038\n", " SDSS-II SN 03674 359.79162 0.16298 ... 1e+20 1e+20" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clu['NEDname','RA','DEC','TYPE_NED','DISTMPC','Z','ZERR','MODELMAG_R','K_M_K20FE','K_MSIG_K20FE','W1MPRO','W1SIGMPRO']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "'RA'=Right Ascension in degrees
\n", "'Dec'=Declination in degrees
\n", "'MODELMAG_R'=SDSS r-band magnitude
\n", "'MODELMAGERR_R'=SDSS r-band magnitude Error
\n", "'K_M_K20FE'=2MASS K-band magnitude
\n", "'K_MSIG_K20FE'=2MASS K-band magnitude Error
\n", "'W1MPRO'=WISE W1 magnitude (3.6 micron)
\n", "'W1SIGMPRO'=WISE W1 magnitude Error
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Student Exercise\n", "Use the astropy.coordinates package and the SkyCoord function to store all of the galaxy catalog's locations. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The astropy coordinates package provides classes for representing a variety of celestial/spatial coordinates and their velocity components, as well as tools for converting between common coordinate systems in a uniform way. In addition, the astropy coordinates package facilitates fast manipulation and cross-matching. See here for examples: https://docs.astropy.org/en/stable/coordinates/\n", "\n", "Create a coordinate object for the entire CLU catalog (hint: use SkyCoord)." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "clucoord=SkyCoord(ra=clu['RA']*u.deg,dec=clu['DEC']*u.deg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GW170817 3D Localization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's read in the LIGO/VIRGO HEALpix map for GW170817.\n", "\n", "LIGO/Virgo localization files for compact binary mergers include directional estimates of distance. The distance information is stored in three additional columns. To get the distance estimates, we need to ask for all four columns: `PROB`, `DISTMU`, `DISTSIGMA`, and `DISTNORM`." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NSIDE = 1024\n", "ORDERING = NESTED in fits file\n", "INDXSCHM = IMPLICIT\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n" ] } ], "source": [ "url = 'https://dcc.ligo.org/public/0146/G1701985/001/preliminary-LALInference.fits.gz'\n", "filename = astropy.utils.data.download_file(url)\n", "\n", "prob, distmu, distsigma, distnorm = hp.read_map(filename, field=[0, 1, 2, 3])\n", "\n", "npix = len(prob)\n", "nside = hp.npix2nside(npix)\n", "pixarea = hp.nside2pixarea(nside)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Student Exercise\n", "\n", "Find the coordinates of the highest probability pixel and put the coordinates into an astropy coordinate object called 'center'" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Coordinates (RA,Dec) = \n" ] } ], "source": [ "ipix_max = np.argmax(prob)\n", "ra_max, dec_max = hp.pix2ang(nside, ipix_max, lonlat=True)\n", "center = SkyCoord(ra=ra_max*u.deg,dec=dec_max*u.deg)\n", "print('Coordinates (RA,Dec) = %s' %(center))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Other plotting packages for LIGO/VIRGO HEALPix maps.\n", "\n", "There are many visualization packages for plotting HEALPix maps. Luckily, LIGO has taken the time to provide its own user-friendly wrapper for plotting LIGO/VIRGO localizations.\n", "\n", "Let's plot the sky localization using an 'astroglobe' projection centered on the highest highest probability pixel and overplot this location using the ligo.skymap package. (see here: https://lscsoft.docs.ligo.org/ligo.skymap/ligo/skymap/plot/allsky.html)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.axes(\n", " [0.05, 0.05, 0.9, 0.9],\n", " projection='astro globe',\n", " center=center)\n", "\n", "ax.grid()\n", "ax.imshow_hpx(filename, cmap='cylon')\n", "ax.plot(\n", " center.ra.deg, center.dec.deg,\n", " transform=ax.get_transform('world'),\n", " marker=ligo.skymap.plot.reticle(inner=0,outer=1),\n", " markersize=10,\n", " markeredgewidth=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Student Exercises\n", "1. Back to the galaxy catalog. Calculate the HEALPix index for each galaxy." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "theta=0.5 * np.pi - clucoord.dec.to('rad').value\n", "phi=clucoord.ra.to('rad').value\n", "ipix=hp.ang2pix(nside,theta,phi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Compute the probabilities of each galaxy: per area, per radial distance, and per volume." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "#probability density per area on the sky for each galaxy\n", "dp_dA=prob[ipix]/pixarea\n", "clu['dP_dA']=dp_dA\n", "\n", "#probability along radial distance\n", "dp_dr=clu['DISTMPC']**2 * distnorm[ipix] * norm(distmu[ipix],distsigma[ipix]).pdf(clu['DISTMPC'])\n", "\n", "#probability density per volume\n", "dp_dV=prob[ipix] * distnorm[ipix] * norm(distmu[ipix],distsigma[ipix]).pdf(clu['DISTMPC'])/pixarea \n", "clu['dP_dV']=dp_dV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Use a normalized cumulative dist function to calculate P-value per area for each galaxy (hint: use np.cumsum)." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# of galaxies in 90% Area = 850\n", " NEDname dP_dA P_A \n", "---------------------------- ------------------ --------------------\n", " 2MASX J13085466-2526013 328.4708057481784 0.007695115776384712\n", " 2MASX J13105449-2605323 313.15080651412734 0.015031328521702097\n", " 2MASX J13113020-2619386 300.98559528753657 0.022082545744755145\n", "GALEXASC J131215.12-264630.4 282.127096965202 0.02869196319315675\n", "GALEXASC J131108.75-255359.1 276.5933656229848 0.0351717414084558\n", " ESO 508- G 003 260.04855554117916 0.04126392283630887\n", " 2MASX J13123929-2642121 257.9949138461368 0.04730799341129461\n", " 2MASX J13121969-2633515 257.30556126262 0.053335914459905154\n", " 2MASX J13124243-2721202 249.64494387777017 0.059184369520478404\n", " 2MASS J13122568-2628206 247.63513389002884 0.06498574057762256\n", " 2MASX J13132823-2713540 245.78170307672855 0.07074369114063976\n", " 2MASX J13111030-2655596 239.4362886006441 0.07635298709512517\n", " 2MASX J13060489-2351582 237.55153732271935 0.08191812880807826\n", " UGCA 325 233.4818867376859 0.0873879304424818\n", "ABELL 1664_06:[PSE2006] 0908 232.85121160651062 0.09284295719258284\n", "ABELL 1664_12:[PSE2006] 2233 228.22178389917568 0.09818952991400635\n", " 2MASX J13130235-2636422 223.73585028023865 0.10343101025595866\n", " 2MASX J13130430-2742012 222.10294178363256 0.10863423630037909\n", " AM 1302-232 NED01 221.5527942299063 0.1138245739874602\n", " 2MASX J13054598-2412025 218.38838045315967 0.11894077866195595\n" ] } ], "source": [ "clu.sort('dP_dA')\n", "clu.reverse()\n", "cum_sort=np.cumsum(clu['dP_dA'])\n", "cumnorm_sort=cum_sort/np.max(cum_sort)\n", "clu['P_A']=cumnorm_sort\n", "\n", "#ID galaxies inside the 90% prob by volume\n", "icutarea90=np.where(clu['P_A'] <= 0.9)\n", "clucutarea90=clu[icutarea90]\n", "\n", "#generate astropy coordinate object for this sample\n", "clucutarea90coord=SkyCoord(ra=clucutarea90['RA']*u.deg,dec=clucutarea90['DEC']*u.deg)\n", "\n", "print('# of galaxies in 90%% Area = %i' %(np.size(icutarea90)))\n", "\n", "#sort the galaxies by P-value and print out top 20\n", "clucutarea90['NEDname','dP_dA','P_A'][0:20].pprint(max_lines=22)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot the top 20 highest probability galaxies and add a zoomed-in inset." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = plt.axes(\n", " [0.05, 0.05, 0.9, 0.9],\n", " projection='astro globe',\n", " center=center)\n", "\n", "#Zoomed-in inset window to better view the locations of the galaxies.\n", "ax_inset = plt.axes(\n", " [0.59, 0.3, 0.4, 0.4],\n", " projection='astro zoom',\n", " center=center,\n", " radius=15*u.deg)\n", "for key in ['ra', 'dec']:\n", " ax_inset.coords[key].set_ticklabel_visible(False)\n", " ax_inset.coords[key].set_ticks_visible(False)\n", "ax.grid()\n", "ax.mark_inset_axes(ax_inset)\n", "ax.connect_inset_axes(ax_inset, 'upper left')\n", "ax.connect_inset_axes(ax_inset, 'lower left')\n", "ax_inset.scalebar((0.1, 0.1), 5 * u.deg).label()\n", "ax_inset.compass(0.9, 0.1, 0.2)\n", "\n", "ax.imshow_hpx('data/GW170817_prelim.fits.gz', cmap='cylon')\n", "ax_inset.imshow_hpx('data/GW170817_prelim.fits.gz', cmap='cylon')\n", "\n", "for coord in clucutarea90coord:\n", " ax_inset.plot(\n", " coord.ra.deg, coord.dec.deg,\n", " transform=ax_inset.get_transform('world'),\n", " marker=ligo.skymap.plot.reticle(inner=0,outer=1),\n", " markersize=10,\n", " markeredgewidth=1)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise for students - Put it all Together...\n", "\n", "Following the examples above, find galaxies in 90% __VOLUME__ probability contour for GW170817, sort by Wise W1 luminosity, and overplot the top 20 sorted galaxies.\n", "\n", "Information on WISE zeropoints and flux transformations\n", "http://wise2.ipac.caltech.edu/docs/release/allsky/expsup/sec4_4h.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part I - Find the galaxies in the 90% volumne probability" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NSIDE = 1024\n", "ORDERING = NESTED in fits file\n", "INDXSCHM = IMPLICIT\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "Ordering converted to RING\n", "\n", "# of galaxies in 90% volume = 42\n" ] } ], "source": [ "#load in CLU catalog\n", "clu=Table.read('data/CLU_NEDonly.fits')\n", "clucoord=SkyCoord(ra=clu['RA']*u.deg,dec=clu['DEC']*u.deg)\n", "nclu=np.size(clu)\n", "\n", "#make astropy coordinate object of CLU galaxies\n", "clucoord=SkyCoord(ra=clu['RA']*u.deg,dec=clu['DEC']*u.deg)\n", "\n", "#sky localization colmns to the galaxy catalog: probability density and p-value per volume and per area.\n", "probdencol=Column(np.zeros(nclu,dtype='f4'),name='dP_dV')\n", "probcol=Column(np.zeros(nclu,dtype='f4'),name='P')\n", "probdenAcol=Column(np.zeros(nclu,dtype='f4'),name='dP_dA')\n", "probAcol=Column(np.zeros(nclu,dtype='f4'),name='P_A')\n", "clu.add_columns([probdencol,probcol,probdenAcol,probAcol])\n", "\n", "#load in healpix map\n", "prob,distmu,distsigma,distnorm=hp.read_map('data/GW170817_prelim.fits.gz',field=[0,1,2,3],dtype=('f8','f8','f8','f8'))\n", "npix=len(prob)\n", "nside=hp.npix2nside(npix)\n", "pixarea=hp.nside2pixarea(nside)\n", "\n", "#get coord of max prob density for plotting purposes\n", "ipix_max = np.argmax(prob)\n", "theta_max, phi_max = hp.pix2ang(nside, ipix_max)\n", "ra_max = np.rad2deg(phi_max)\n", "dec_max = np.rad2deg(0.5 * np.pi - theta_max)\n", "center = SkyCoord(ra=ra_max*u.deg,dec=dec_max*u.deg)\n", "print(center)\n", "\n", "#calc hp index for each galaxy and populate CLU Table with the values\n", "theta=0.5 * np.pi - clucoord.dec.to('rad').value\n", "phi=clucoord.ra.to('rad').value\n", "ipix=hp.ang2pix(nside,theta,phi)\n", "#calc probability density per volume for each galaxy\n", "dp_dV=prob[ipix] * distnorm[ipix] * norm(distmu[ipix],distsigma[ipix]).pdf(clu['DISTMPC'])/pixarea \n", "clu['dP_dV']=dp_dV\n", "\n", "#use normalized cumulative dist function to calculate Volume P-value for each galaxy\n", "clu.sort('dP_dV')\n", "clu.reverse()\n", "cum_sort=np.cumsum(clu['dP_dV'])\n", "cumnorm_sort=cum_sort/np.max(cum_sort)\n", "clu['P']=cumnorm_sort\n", "\n", "#ID galaxies inside the 90% prob by volume\n", "icut90=np.where(clu['P'] <= 0.9)\n", "clucut90=clu[icut90]\n", "\n", "#generate an astropy coordinate object for this subset\n", "clucut90coord=SkyCoord(ra=clucut90['RA']*u.deg,dec=clucut90['DEC']*u.deg)\n", "\n", "print('# of galaxies in 90%% volume = %i' %(np.size(clucut90)))\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Q: Why are there so fewer galaxies in the volumne probability?\n", "A: Taking into account distance puts tighter constraints on the sample." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Part II - Sort by WISE W1 Luminosity" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " NEDname LumW1 ... P \n", "----------------------- ------------------------- ... -------------------\n", " NGC 4970 1.0884088954320000597e+42 ... 0.6995353723555456\n", " NGC 4993 7.5032646027206775e+41 ... 0.7965022626584416\n", " NGC 4968 7.367336809737711801e+41 ... 0.3905416510700604\n", " IC 4197 7.159408041749106282e+41 ... 0.636392013632011\n", " IC 4180 6.191420321536100089e+41 ... 0.20082875617890292\n", " ESO 508- G 033 3.728938562939855379e+41 ... 0.7710150928931331\n", " IC 0874 2.957639646390979745e+41 ... 0.8792942624546624\n", " ESO 508- G 010 1.3404951718770816046e+41 ... 0.6805763434781986\n", "2MASX J13161781-2926415 1.0298766866197851405e+41 ... 0.8733888921183204\n", " ESO 575- G 053 8.7703046690865904305e+40 ... 0.45294243100812964\n", " IC 0879 7.7850962931557685694e+40 ... 0.890283449648996\n", " UGCA 331 6.182574842412703268e+40 ... 0.808623779107441\n", " ESO 575- G 044 NED01 5.705652214096152376e+40 ... 0.895230316115733\n", " ESO 575- G 055 4.918953488412471152e+40 ... 0.8672853532554123\n", " ESO 508- G 003 4.8158691124006157543e+40 ... 0.0654119434763518\n", " ESO 508- G 019 3.995895285635972178e+40 ... 0.5098985022830953\n", "2MASX J13073768-2356181 3.4884431466584360636e+40 ... 0.8532464568147246\n", " 2MFGC 10461 3.3076261973941396845e+40 ... 0.5885153130290641\n", "2MASX J13061939-2258491 2.7938869474082211623e+40 ... 0.6592093486395489\n", " UGCA 327 2.653563605837436326e+40 ... 0.7574665230057527\n" ] } ], "source": [ "#Add a WISE W1 luminosity column to the CLU table\n", "W1lumcol=Column(np.zeros(nclu,dtype='f8'),name='LumW1')\n", "clu.add_column(W1lumcol)\n", "\n", "#constansts needed\n", "F0=309.540\n", "clight=2.99792458e18 #Angstoms/sec\n", "lamW1=33526. #Angtroms\n", "\n", "fluxJyW1=F0*10**(-0.4*clucut90['W1MPRO']) #in Jy\n", "fluxdenW1=fluxJyW1*1e-23 #erg/s/cm^2/Hz\n", "freqW1=clight/lamW1\n", "\n", "#distcm=4*np.pi*(np.float128(clucut90['DISTMPC'])*1.086e24)**2)\n", "clucut90['LumW1']=fluxdenW1 * freqW1 * 4*np.pi*(np.float128(clucut90['DISTMPC'])*1.086e24)**2\n", "\n", "#sort by WISE 1 Luminosity (proportional to galaxy stellar mass)\n", "clucut90.sort('LumW1')\n", "clucut90.reverse()\n", "\n", "#then print list of prioritized galaxies\n", "clucut90['NEDname','LumW1','dP_dV','P'][0:20].pprint(max_lines=22)\n", "\n", "\n", "#Q: Is NGC4993 in your list?\n", "#A: It should be #2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part III - Plot up the sky localization and overplot the top 20 sorted galaxies on it." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n", "/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/astropy/visualization/wcsaxes/grid_paths.py:73: RuntimeWarning: invalid value encountered in greater\n", " discontinuous = step[1:] > DISCONT_FACTOR * step[:-1]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#plot up the sky localization and overplot the galaxies\n", "ax = plt.axes(\n", " [0.05, 0.05, 0.9, 0.9],\n", " projection='astro globe',\n", " center=center)\n", "\n", "ax_inset = plt.axes(\n", " [0.59, 0.3, 0.4, 0.4],\n", " projection='astro zoom',\n", " center=center,\n", " radius=10*u.deg)\n", "\n", "for key in ['ra', 'dec']:\n", " ax_inset.coords[key].set_ticklabel_visible(False)\n", " ax_inset.coords[key].set_ticks_visible(False)\n", "ax.grid()\n", "ax.mark_inset_axes(ax_inset)\n", "ax.connect_inset_axes(ax_inset, 'upper left')\n", "ax.connect_inset_axes(ax_inset, 'lower left')\n", "ax_inset.scalebar((0.1, 0.1), 5 * u.deg).label()\n", "ax_inset.compass(0.9, 0.1, 0.2)\n", "\n", "ax.imshow_hpx('data/GW170817_prelim.fits.gz', cmap='cylon')\n", "ax_inset.imshow_hpx('data/GW170817_prelim.fits.gz', cmap='cylon')\n", "for coord in clucut90coord:\n", " ax_inset.plot(\n", " coord.ra.deg, coord.dec.deg,\n", " transform=ax_inset.get_transform('world'),\n", " marker=ligo.skymap.plot.reticle(inner=0,outer=1),\n", " markersize=10,\n", " markeredgewidth=1)\n", "\n", "#where is NGC4993? hint: use ax_inset.text()\n", "c4993=SkyCoord.from_name('NGC 4993')\n", "ax_inset.text(c4993.ra.deg+10.5, c4993.dec.deg,'NGC 4993',transform=ax_inset.get_transform('world'),fontdict={'size':10,'color':'black','weight':'normal'})\n", "\n", "plt.show()" ] }, { "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }