{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# SPIRE-NEP Selection Functions\n", "## Depth maps and selection functions\n", "\n", "The simplest selection function available is the field MOC which specifies the area for which there is Herschel data. Each pristine catalogue also has a MOC defining the area for which that data is available.\n", "\n", "The next stage is to provide mean flux standard deviations which act as a proxy for the catalogue's 5$\\sigma$ depth" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This notebook was run with herschelhelp_internal version: \n", "017bb1e (Mon Jun 18 14:58:59 2018 +0100)\n", "This notebook was executed on: \n", "2018-06-26 11:39:26.404448\n" ] } ], "source": [ "from herschelhelp_internal import git_version\n", "print(\"This notebook was run with herschelhelp_internal version: \\n{}\".format(git_version()))\n", "import datetime\n", "print(\"This notebook was executed on: \\n{}\".format(datetime.datetime.now()))" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "%matplotlib inline\n", "#%config InlineBackend.figure_format = 'svg'\n", "\n", "import matplotlib.pyplot as plt\n", "plt.rc('figure', figsize=(10, 6))\n", "\n", "import os\n", "import time\n", "\n", "from astropy import units as u\n", "from astropy.coordinates import SkyCoord\n", "from astropy.table import Column, Table, join\n", "import numpy as np\n", "from pymoc import MOC\n", "import healpy as hp\n", "#import pandas as pd #Astropy has group_by function so apandas isn't required.\n", "import seaborn as sns\n", "\n", "import warnings\n", "#We ignore warnings - this is a little dangerous but a huge number of warnings are generated by empty cells later\n", "warnings.filterwarnings('ignore')\n", "\n", "from herschelhelp_internal.utils import inMoc, coords_to_hpidx, flux_to_mag\n", "from herschelhelp_internal.masterlist import find_last_ml_suffix, nb_ccplots\n", "\n", "from astropy.io.votable import parse_single_table" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "FIELD = 'SPIRE-NEP'\n", "#FILTERS_DIR = \"/Users/rs548/GitHub/herschelhelp_python/database_builder/filters/\"\n", "FILTERS_DIR = \"/opt/herschelhelp_python/database_builder/filters/\"" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Depth maps produced using: master_catalogue_spire-nep_20180220.fits\n" ] } ], "source": [ "TMP_DIR = os.environ.get('TMP_DIR', \"./data_tmp\")\n", "OUT_DIR = os.environ.get('OUT_DIR', \"./data\")\n", "SUFFIX = find_last_ml_suffix()\n", "#SUFFIX = \"20171016\"\n", "\n", "master_catalogue_filename = \"master_catalogue_{}_{}.fits\".format(FIELD.lower(), SUFFIX)\n", "master_catalogue = Table.read(\"{}/{}\".format(OUT_DIR, master_catalogue_filename))\n", "\n", "print(\"Depth maps produced using: {}\".format(master_catalogue_filename))\n", "\n", "ORDER = 10\n", "#TODO write code to decide on appropriate order\n", "\n", "field_moc = MOC(filename=\"../../dmu2/dmu2_field_coverages/{}_MOC.fits\".format(FIELD))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Remove sources whose signal to noise ratio is less than five as these will have been selected using forced \n", "# photometry and so the errors will not refelct the RMS of the map \n", "for n,col in enumerate(master_catalogue.colnames):\n", " if col.startswith(\"f_\"):\n", " err_col = \"ferr{}\".format(col[1:])\n", " errs = master_catalogue[err_col]\n", " fluxes = master_catalogue[col]\n", " mask = fluxes/errs < 5.0\n", " master_catalogue[col][mask] = np.nan\n", " master_catalogue[err_col][mask] = np.nan" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## I - Group masterlist objects by healpix cell and calculate depths\n", "We add a column to the masterlist catalogue for the target order healpix cell per object." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "#Add a column to the catalogue with the order=ORDER hp_idx\n", "master_catalogue.add_column(Column(data=coords_to_hpidx(master_catalogue['ra'],\n", " master_catalogue['dec'],\n", " ORDER), \n", " name=\"hp_idx_O_{}\".format(str(ORDER))\n", " )\n", " )" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "# Convert catalogue to pandas and group by the order=ORDER pixel\n", "\n", "group = master_catalogue.group_by([\"hp_idx_O_{}\".format(str(ORDER))])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "#Downgrade the groups from order=ORDER to order=13 and then fill out the appropriate cells\n", "#hp.pixelfunc.ud_grade([2599293, 2599294], nside_out=hp.order2nside(13))" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## II Create a table of all Order=13 healpix cells in the field and populate it\n", "We create a table with every order=13 healpix cell in the field MOC. We then calculate the healpix cell at lower order that the order=13 cell is in. We then fill in the depth at every order=13 cell as calculated for the lower order cell that that the order=13 cell is inside." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "depths = Table()\n", "depths['hp_idx_O_13'] = list(field_moc.flattened(13))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "Table length=10\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
idxhp_idx_O_13
0190654398
1190678020
2190678021
3190678022
4190678023
5190678028
6190678029
7190678030
8190678031
9190678032
\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "depths[:10].show_in_notebook()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "depths.add_column(Column(data=hp.pixelfunc.ang2pix(2**ORDER,\n", " hp.pixelfunc.pix2ang(2**13, depths['hp_idx_O_13'], nest=True)[0],\n", " hp.pixelfunc.pix2ang(2**13, depths['hp_idx_O_13'], nest=True)[1],\n", " nest = True),\n", " name=\"hp_idx_O_{}\".format(str(ORDER))\n", " )\n", " )" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "deletable": true, "editable": true, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "Table length=10\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
idxhp_idx_O_13hp_idx_O_10
01906543982978974
11906780202979344
21906780212979344
31906780222979344
41906780232979344
51906780282979344
61906780292979344
71906780302979344
81906780312979344
91906780322979344
\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "depths[:10].show_in_notebook()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "Table length=10\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
idxhp_idx_O_13hp_idx_O_10ferr_ap_gpc1_g_meanf_ap_gpc1_g_p90ferr_gpc1_g_meanf_gpc1_g_p90ferr_ap_gpc1_r_meanf_ap_gpc1_r_p90ferr_gpc1_r_meanf_gpc1_r_p90ferr_ap_gpc1_i_meanf_ap_gpc1_i_p90ferr_gpc1_i_meanf_gpc1_i_p90ferr_ap_gpc1_z_meanf_ap_gpc1_z_p90ferr_gpc1_z_meanf_gpc1_z_p90ferr_ap_gpc1_y_meanf_ap_gpc1_y_p90ferr_gpc1_y_meanf_gpc1_y_p90
019065439829789740.85087929473192825.9879727552508060.87250406220722725.8097883160650191.223432127080615230.2991900073622771.24865095846842428.144465457896321.18104512444354160.9899064750013051.26024030182558155.963014078946333.808621686611502484.582896444341132.935193836615614574.569506162198896.336414850332582104.771019056312347.79978629718561391.98493050835323
119065439629789740.85087929473192825.9879727552508060.87250406220722725.8097883160650191.223432127080615230.2991900073622771.24865095846842428.144465457896321.18104512444354160.9899064750013051.26024030182558155.963014078946333.808621686611502484.582896444341132.935193836615614574.569506162198896.336414850332582104.771019056312347.79978629718561391.98493050835323
219065439929789740.85087929473192825.9879727552508060.87250406220722725.8097883160650191.223432127080615230.2991900073622771.24865095846842428.144465457896321.18104512444354160.9899064750013051.26024030182558155.963014078946333.808621686611502484.582896444341132.935193836615614574.569506162198896.336414850332582104.771019056312347.79978629718561391.98493050835323
319065439729789740.85087929473192825.9879727552508060.87250406220722725.8097883160650191.223432127080615230.2991900073622771.24865095846842428.144465457896321.18104512444354160.9899064750013051.26024030182558155.963014078946333.808621686611502484.582896444341132.935193836615614574.569506162198896.336414850332582104.771019056312347.79978629718561391.98493050835323
419065442929789753.7878850055096756232.24568785115444.426276266109323219.4438823425877652.249254726880224263.848696272681739.83238424600856444.560292366111246.440277562451329290.750320837628355.1880766752061005340.9732718367767515.119204809341662330.9479123366716667.50130814821412471.8443930103042136.021489702234281359.215446869019151.297317018152485548.739115285172
519065445629789753.7878850055096756232.24568785115444.426276266109323219.4438823425877652.249254726880224263.848696272681739.83238424600856444.560292366111246.440277562451329290.750320837628355.1880766752061005340.9732718367767515.119204809341662330.9479123366716667.50130814821412471.8443930103042136.021489702234281359.215446869019151.297317018152485548.739115285172
619065442429789753.7878850055096756232.24568785115444.426276266109323219.4438823425877652.249254726880224263.848696272681739.83238424600856444.560292366111246.440277562451329290.750320837628355.1880766752061005340.9732718367767515.119204809341662330.9479123366716667.50130814821412471.8443930103042136.021489702234281359.215446869019151.297317018152485548.739115285172
719065442529789753.7878850055096756232.24568785115444.426276266109323219.4438823425877652.249254726880224263.848696272681739.83238424600856444.560292366111246.440277562451329290.750320837628355.1880766752061005340.9732718367767515.119204809341662330.9479123366716667.50130814821412471.8443930103042136.021489702234281359.215446869019151.297317018152485548.739115285172
819065443129789753.7878850055096756232.24568785115444.426276266109323219.4438823425877652.249254726880224263.848696272681739.83238424600856444.560292366111246.440277562451329290.750320837628355.1880766752061005340.9732718367767515.119204809341662330.9479123366716667.50130814821412471.8443930103042136.021489702234281359.215446869019151.297317018152485548.739115285172
919065441529789753.7878850055096756232.24568785115444.426276266109323219.4438823425877652.249254726880224263.848696272681739.83238424600856444.560292366111246.440277562451329290.750320837628355.1880766752061005340.9732718367767515.119204809341662330.9479123366716667.50130814821412471.8443930103042136.021489702234281359.215446869019151.297317018152485548.739115285172
\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for col in master_catalogue.colnames:\n", " if col.startswith(\"f_\"):\n", " errcol = \"ferr{}\".format(col[1:])\n", " depths = join(depths, \n", " group[\"hp_idx_O_{}\".format(str(ORDER)), errcol].groups.aggregate(np.nanmean),\n", " join_type='left')\n", " depths[errcol].name = errcol + \"_mean\"\n", " depths = join(depths, \n", " group[\"hp_idx_O_{}\".format(str(ORDER)), col].groups.aggregate(lambda x: np.nanpercentile(x, 90.)),\n", " join_type='left')\n", " depths[col].name = col + \"_p90\"\n", "\n", "depths[:10].show_in_notebook()" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## III - Save the depth map table" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "depths.write(\"{}/depths_{}_{}.fits\".format(OUT_DIR, FIELD.lower(), SUFFIX), overwrite=True)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## IV - Overview plots\n", "\n", "### IV.a - Filters\n", "First we simply plot all the filters available on this field to give an overview of coverage." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "{'gpc1_g', 'gpc1_i', 'gpc1_r', 'gpc1_y', 'gpc1_z'}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tot_bands = [column[2:] for column in master_catalogue.colnames \n", " if (column.startswith('f_') & ~column.startswith('f_ap_'))]\n", "ap_bands = [column[5:] for column in master_catalogue.colnames \n", " if column.startswith('f_ap_') ]\n", "bands = set(tot_bands) | set(ap_bands)\n", "bands" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Passbands on SPIRE-NEP')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for b in bands:\n", " plt.plot(Table(data = parse_single_table(FILTERS_DIR + b + '.xml').array.data)['Wavelength']\n", " ,Table(data = parse_single_table(FILTERS_DIR + b + '.xml').array.data)['Transmission']\n", " , label=b)\n", "plt.xlabel('Wavelength ($\\AA$)')\n", "plt.ylabel('Transmission')\n", "plt.xscale('log')\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n", "plt.title('Passbands on {}'.format(FIELD))" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "### IV.a - Depth overview\n", "Then we plot the mean depths available across the area a given band is available" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "gpc1_g: mean flux error: 8.010168924778235, 3sigma in AB mag (Aperture): 20.448092675884915\n", "gpc1_r: mean flux error: 8.685284950218165, 3sigma in AB mag (Aperture): 20.360236684401578\n", "gpc1_i: mean flux error: 8.62719361046711, 3sigma in AB mag (Aperture): 20.36752300186817\n", "gpc1_z: mean flux error: 33.421224501133366, 3sigma in AB mag (Aperture): 18.897140968910712\n", "gpc1_y: mean flux error: 39.71267202347856, 3sigma in AB mag (Aperture): 18.70987409051647\n", "gpc1_g: mean flux error: 7.715165791888239, 3sigma in AB mag (Total): 20.48883370546975\n", "gpc1_r: mean flux error: 10.3703401166686, 3sigma in AB mag (Total): 20.167714362688677\n", "gpc1_i: mean flux error: 6.177025432365751, 3sigma in AB mag (Total): 20.73024838959865\n", "gpc1_z: mean flux error: 13.343630063584328, 3sigma in AB mag (Total): 19.89401188030599\n", "gpc1_y: mean flux error: 48.299453845795625, 3sigma in AB mag (Total): 18.49734131339755\n" ] } ], "source": [ "average_depths = []\n", "for b in ap_bands:\n", " \n", " mean_err = np.nanmean(depths['ferr_ap_{}_mean'.format(b)])\n", " print(\"{}: mean flux error: {}, 3sigma in AB mag (Aperture): {}\".format(b, mean_err, flux_to_mag(3.0*mean_err*1.e-6)[0]))\n", " average_depths += [('ap_' + b, flux_to_mag(1.0*mean_err*1.e-6)[0], \n", " flux_to_mag(3.0*mean_err*1.e-6)[0], \n", " flux_to_mag(5.0*mean_err*1.e-6)[0])]\n", " \n", "for b in tot_bands:\n", " \n", " mean_err = np.nanmean(depths['ferr_{}_mean'.format(b)])\n", " print(\"{}: mean flux error: {}, 3sigma in AB mag (Total): {}\".format(b, mean_err, flux_to_mag(3.0*mean_err*1.e-6)[0]))\n", " average_depths += [(b, flux_to_mag(1.0*mean_err*1.e-6)[0], \n", " flux_to_mag(3.0*mean_err*1.e-6)[0], \n", " flux_to_mag(5.0*mean_err*1.e-6)[0])]\n", " \n", "average_depths = np.array(average_depths, dtype=[('band', \"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for dat in data:\n", " wav_deets = FWHM(np.array(dat[1]['Wavelength']), np.array(dat[1]['Transmission']))\n", " depth = average_depths['5s'][average_depths['band'] == dat[0]]\n", " #print(depth)\n", " plt.plot([wav_deets[0],wav_deets[1]], [depth,depth], label=dat[0])\n", " \n", "plt.xlabel('Wavelength ($\\AA$)')\n", "plt.ylabel('Depth')\n", "plt.xscale('log')\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n", "plt.title('Depths on {}'.format(FIELD))" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "### IV.c - Depth vs coverage comparison\n", "\n", "How best to do this? Colour/intensity plot over area? Percentage coverage vs mean depth?" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Depths (5 $\\\\sigma$) vs coverage on SPIRE-NEP')" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for dat in data:\n", " wav_deets = FWHM(np.array(dat[1]['Wavelength']), np.array(dat[1]['Transmission']))\n", " depth = average_depths['5s'][average_depths['band'] == dat[0]]\n", " #print(depth)\n", " coverage = np.sum(~np.isnan(depths['ferr_{}_mean'.format(dat[0])]))/len(depths)\n", " plt.plot(coverage, depth, 'x', label=dat[0])\n", " \n", "plt.xlabel('Coverage')\n", "plt.ylabel('Depth')\n", "#plt.xscale('log')\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n", "plt.title('Depths (5 $\\sigma$) vs coverage on {}'.format(FIELD))" ] } ], "metadata": { "kernelspec": { "display_name": "Python (herschelhelp_internal)", "language": "python", "name": "helpint" }, "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }