{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# XMM-LSS master catalogue\n", "\n", "This notebook presents the merge of the various pristine catalogues to produce the HELP master catalogue on XMM-LSS." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This notebook was run with herschelhelp_internal version: \n", "0246c5d (Thu Jan 25 17:01:47 2018 +0000) [with local modifications]\n" ] } ], "source": [ "from herschelhelp_internal import git_version\n", "print(\"This notebook was run with herschelhelp_internal version: \\n{}\".format(git_version()))" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "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\n", "import numpy as np\n", "from pymoc import MOC\n", "\n", "from herschelhelp_internal.masterlist import merge_catalogues, nb_merge_dist_plot, specz_merge\n", "from herschelhelp_internal.utils import coords_to_hpidx, ebv, gen_help_id, inMoc" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "TMP_DIR = os.environ.get('TMP_DIR', \"./data_tmp\")\n", "OUT_DIR = os.environ.get('OUT_DIR', \"./data\")\n", "SUFFIX = os.environ.get('SUFFIX', time.strftime(\"_%Y%m%d\"))\n", "\n", "try:\n", " os.makedirs(OUT_DIR)\n", "except FileExistsError:\n", " pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## I - Reading the prepared pristine catalogues" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#candels = Table.read(\"{}/CANDELS.fits\".format(TMP_DIR)) # 1.1\n", "#cfht_wirds = Table.read(\"{}/CFHT-WIRDS.fits\".format(TMP_DIR)) # 1.3\n", "#cfhtls_wide = Table.read(\"{}/CFHTLS-WIDE.fits\".format(TMP_DIR)) # 1.4a\n", "#cfhtls_deep = Table.read(\"{}/CFHTLS-DEEP.fits\".format(TMP_DIR)) # 1.4b\n", "#We no longer use CFHTLenS as it is the same raw data set as CFHTLS-WIDE\n", "# cfhtlens = Table.read(\"{}/CFHTLENS.fits\".format(TMP_DIR)) # 1.5\n", "#decals = Table.read(\"{}/DECaLS.fits\".format(TMP_DIR)) # 1.6\n", "#servs = Table.read(\"{}/SERVS.fits\".format(TMP_DIR)) # 1.8\n", "#swire = Table.read(\"{}/SWIRE.fits\".format(TMP_DIR)) # 1.7\n", "#hsc_wide = Table.read(\"{}/HSC-WIDE.fits\".format(TMP_DIR)) # 1.9a\n", "#hsc_deep = Table.read(\"{}/HSC-DEEP.fits\".format(TMP_DIR)) # 1.9b\n", "#hsc_udeep = Table.read(\"{}/HSC-UDEEP.fits\".format(TMP_DIR)) # 1.9c\n", "#ps1 = Table.read(\"{}/PS1.fits\".format(TMP_DIR)) # 1.10\n", "#sxds = Table.read(\"{}/SXDS.fits\".format(TMP_DIR)) # 1.11\n", "#sparcs = Table.read(\"{}/SpARCS.fits\".format(TMP_DIR)) # 1.12\n", "#dxs = Table.read(\"{}/UKIDSS-DXS.fits\".format(TMP_DIR)) # 1.13\n", "#uds = Table.read(\"{}/UKIDSS-UDS.fits\".format(TMP_DIR)) # 1.14\n", "#vipers = Table.read(\"{}/VIPERS.fits\".format(TMP_DIR)) # 1.15\n", "vhs = Table.read(\"{}/VISTA-VHS.fits\".format(TMP_DIR)) # 1.16\n", "video = Table.read(\"{}/VISTA-VIDEO.fits\".format(TMP_DIR)) # 1.17\n", "viking = Table.read(\"{}/VISTA-VIKING.fits\".format(TMP_DIR)) # 1.18" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## II - Merging tables\n", "\n", "We first merge the optical catalogues and then add the infrared ones. We start with PanSTARRS because it coevrs the whole field.\n", "\n", "At every step, we look at the distribution of the distances separating the sources from one catalogue to the other (within a maximum radius) to determine the best cross-matching radius." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Start with VHS" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "master_catalogue = vhs\n", "master_catalogue['vhs_ra'].name = 'ra'\n", "master_catalogue['vhs_dec'].name = 'dec'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Add VIDEO" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nb_merge_dist_plot(\n", " SkyCoord(master_catalogue['ra'], master_catalogue['dec']),\n", " SkyCoord(video['video_ra'], video['video_dec'])\n", ")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Given the graph above, we use 0.8 arc-second radius\n", "master_catalogue = merge_catalogues(master_catalogue, video, \"video_ra\", \"video_dec\", radius=0.8*u.arcsec)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Add VIKING" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nb1+jX7/cpj/70fP60a2XzPqVZ4LVSWza06GOgRG987zZ17T+Wv7irav1xJ4OfeZHz+unn3iDastm\nZ99ZMUmOZFagUitPu472aefRPjV3vRKgIqGAltWVaX1Dtc4eqVB9eVT1FTFVlzK6AJjtasui+rvr\n1+pPv/es/u6RHfrCO2f3FQ2C1Uk89FyLymMhXb6SlZmMWDior9xwnq6/4wn94Tef0D99YD1LvwWi\na2BkcmBm5vOu1v5jAlTQTInyiOZUxLRqboXmVEQ1pzymmrII+94BeE3Xrp2nD13WqH/+7T69fkm1\n3nnu7F2QIFi9hqHRcT36whG9fd187nQ4ztnzK/X9/3qhbv2XZ3X97Zv0D+89T29h+m5eGB2f0MHO\n5OQdeHta05/bBtQ5MDJ5XChgSpRFVV8R1aq5mRWo1PgCVqAAnI7PXbtKzx/s1uce2KrVc8u1Ypb+\n0k2weg2/2NGqgZFxXcdlwBM6f0mN/v22y/SRf3lGH/nuM/rElSv0iStXMEA0BzLDM/e2DWhf+4D2\npUcYPN/crc6Bkcm976TUHXiJ8qiWJuK6sDGz/11MVaVhVqAAeCocDOj2m1+vt33tN7r1X57RQ7dd\nprJZuM/m7PsTz9CPnjmo+vKoLlxa63cpeWtuZUw/2HiR/vLHL+irv9ilFw/36n+/51xVltDof6ac\nc+pKjmpf+4Ca2gf0k62H1N4/oo7+YbX3j2hkfGLy2Mzq09yKmM6ZX5kaXZC+A68kwmorgNyZUxHT\n1298vW6+e7M++8BWfePG1826u4AJVifwo6cP6rGdbfqzt6zkssg0YuGgvvzudTp7foX+9j926LIv\n/lI3bFikWy5t1PyqEr/Ly2tj4xM62jesAx1JHegc0P6OpA50pj6a2gfUO/TK5HGTVB2PKFEWUUMi\nrtqyqBJlESXKoqosYfUJQP64eFmt/uwtq/Sln72k1y+u1ocua/S7pJwiWB1n19G+1MaSS2t165uW\n+V1OXphu1tVNFy7WLZc26oKGGv3j43t1z6YmfWtTk962bp7+6xuW6pwFlTmqNH8459Q7OKbDvYM6\n3DOkoz1DOtQzpJauQbV0J9XclXp8fMp1u4BJVaUR1cYjWj2vQomyqGrLIqqNR1UdDysUmN23MAMo\nHLe+aamePdClv/2PFxUJmt5/cYPfJeUMwWqKwZFxffS+Z1UaCeqrN5zHatUpOmdBpb5+4+v02WtW\n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\nrHsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nb_merge_dist_plot(\n", " SkyCoord(master_catalogue['ra'], master_catalogue['dec']),\n", " SkyCoord(viking['viking_ra'], viking['viking_dec'])\n", ")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Given the graph above, we use 0.8 arc-second radius\n", "master_catalogue = merge_catalogues(master_catalogue, viking, \"viking_ra\", \"viking_dec\", radius=0.8*u.arcsec)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cleaning\n", "\n", "When we merge the catalogues, astropy masks the non-existent values (e.g. when a row comes only from a catalogue and has no counterparts in the other, the columns from the latest are masked for that row). We indicate to use NaN for masked values for floats columns, False for flag columns and -1 for ID columns." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "for col in master_catalogue.colnames:\n", " if \"m_\" in col or \"merr_\" in col or \"f_\" in col or \"ferr_\" in col or \"stellarity\" in col:\n", " master_catalogue[col] = master_catalogue[col].astype(float)\n", " master_catalogue[col].fill_value = np.nan\n", " elif \"flag\" in col:\n", " master_catalogue[col].fill_value = 0\n", " elif \"id\" in col:\n", " master_catalogue[col].fill_value = -1\n", " \n", "master_catalogue = master_catalogue.filled()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#Since this is not the final merged catalogue. We rename column names to make them unique\n", "master_catalogue['ra'].name = 'vircam_ra'\n", "master_catalogue['dec'].name = 'vircam_dec'\n", "master_catalogue['flag_merged'].name = 'vircam_flag_merged'" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Table length=10\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
idxvhs_idvircam_ravircam_decvhs_stellaritym_vhs_ymerr_vhs_ym_ap_vhs_ymerr_ap_vhs_ym_vhs_jmerr_vhs_jm_ap_vhs_jmerr_ap_vhs_jm_vhs_hmerr_vhs_hm_ap_vhs_hmerr_ap_vhs_hm_vhs_kmerr_vhs_km_ap_vhs_kmerr_ap_vhs_kf_vhs_yferr_vhs_yflag_vhs_yf_ap_vhs_yferr_ap_vhs_yf_vhs_jferr_vhs_jflag_vhs_jf_ap_vhs_jferr_ap_vhs_jf_vhs_hferr_vhs_hflag_vhs_hf_ap_vhs_hferr_ap_vhs_hf_vhs_kferr_vhs_kflag_vhs_kf_ap_vhs_kferr_ap_vhs_kvhs_flag_cleanedvhs_flag_gaiavircam_flag_mergedvideo_idvideo_stellaritym_ap_video_zmerr_ap_video_zm_video_zmerr_video_zf_ap_video_zferr_ap_video_zf_video_zferr_video_zm_ap_video_ymerr_ap_video_ym_video_ymerr_video_yf_ap_video_yferr_ap_video_yf_video_yferr_video_ym_ap_video_jmerr_ap_video_jm_video_jmerr_video_jf_ap_video_jferr_ap_video_jf_video_jferr_video_jm_ap_video_hmerr_ap_video_hm_video_hmerr_video_hf_ap_video_hferr_ap_video_hf_video_hferr_video_hm_ap_video_kmerr_ap_video_km_video_kmerr_video_kf_ap_video_kferr_ap_video_kf_video_kferr_video_kflag_video_zflag_video_yflag_video_jflag_video_hflag_video_kvideo_flag_cleanedvideo_flag_gaiaviking_idviking_stellaritym_viking_zmerr_viking_zm_ap_viking_zmerr_ap_viking_zm_viking_ymerr_viking_ym_ap_viking_ymerr_ap_viking_ym_viking_jmerr_viking_jm_ap_viking_jmerr_ap_viking_jm_viking_hmerr_viking_hm_ap_viking_hmerr_ap_viking_hm_viking_kmerr_viking_km_ap_viking_kmerr_ap_viking_kf_viking_zferr_viking_zflag_viking_zf_ap_viking_zferr_ap_viking_zf_viking_yferr_viking_yflag_viking_yf_ap_viking_yferr_ap_viking_yf_viking_jferr_viking_jflag_viking_jf_ap_viking_jferr_ap_viking_jf_viking_hferr_viking_hflag_viking_hf_ap_viking_hferr_ap_viking_hf_viking_kferr_viking_kflag_viking_kf_ap_viking_kferr_ap_viking_kviking_flag_cleanedviking_flag_gaia
degdeg
047253495208936.7715587778-6.098445605610.899999976158nannannannannannannannan13.0553169250.0006753503694212.13373088840.000497119268402nannannannannannanFalsenannannannanFalsenannan21770.73437513.541847229False50875.355468823.2939815521nannanFalsenannanFalse0False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
147253495208836.770223846-6.097845612640.899999976158nannannannannannannannan12.33530521390.00066085148137112.16408824920.000499423593283nannannannannannanFalsenannannannanFalsenannan42254.964843825.7191886902False49472.57812522.7567005157nannanFalsenannanFalse0False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
247253495208236.7711863016-6.097476040520.899999976158nannannannannannannannan11.46442413330.00036091901711212.24527931210.000518270011526nannannannannannanFalsenannannannanFalsenannan94238.89062531.3267707825False45907.972656221.9139118195nannanFalsenannanFalse0False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
347248951554833.8144008647-2.694515247860.999657213688nannannannan11.51794910430.00041460056672811.55717277530.00042490466148611.23937511440.00041062166565111.9020509720.0005269957473511.22947788240.00045102546573611.57230186460.000520516885445nannanFalsenannan89705.73437534.2551422119False86522.82812533.8608474731115944.4062543.849773407False62976.636718830.5676651001117006.1562548.6055030823False85325.562540.90625False3False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
447251075624937.745157523-4.065483500480.999657213688nannannannan11.88066101070.0004914563032812.06611824040.00049053697148311.9803047180.00061580847250312.15260887150.00055507780052712.18374443050.00082006631419112.25067520140.000673640635796nannanFalsenannan64229.628906229.0734138489False54144.277343824.462451934858597.3437533.2352752686False49998.417968825.56146621748584.988281236.6966781616False45680.382812528.3422088623False3False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
547251178794135.3642536142-3.190827449540.999657213688nannannannan11.1921586990.0003066510835212.001827240.00047759138396911.63223934170.00046132528223112.24300384520.00056713767116911.98527622220.00067273172317112.25882911680.00063463090919nannanFalsenannan121097.83593834.2024002075False57447.2187525.269762039280742.85937534.3073425293False46004.285156224.030479431258329.6562536.1415710449False45338.605468826.5011711121False3False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
647251181692734.9198005174-4.345033513740.899999976158nannannannannannannannan11.18175983430.00034065009094812.27315139770.000578326231334nannannannannannanFalsenannannannanFalsenannan122263.23437538.3601341248False44744.460937523.8335018158nannanFalsenannanFalse0False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
747251178644735.3832229428-3.130799850820.999657213688nannannannan11.76159381870.00043602695222912.05508327480.00048958102706811.94220924380.00056805624626612.2883596420.00057961052516512.23976707460.00078279670560712.39907264710.000678762036841nannanFalsenannan71674.10937528.7840118408False54697.382812524.664186477760689.855468831.7528800964False44122.07812523.554176330646141.64062533.2673072815False39844.7187524.9094409943False3False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
847251389326334.1855764044-5.674678034440.999657213688nannannannan11.02254390720.00024731361190812.27341365810.00048581906594311.5123453140.0003800217527912.77249050140.00058279081713412.19929885860.00082104967441412.80851840970.000705696584191nannanFalsenannan141573.5937532.2482376099False44733.660156220.016340255790169.92187531.5606403351False28249.039062515.163241386447893.910156236.2180786133False27327.0312517.7617664337False3False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
947251351803737.0872165057-5.570589889560.999657213688nannannannan12.15825939180.00047674035886312.29614162450.00051573029486512.54447269440.00063493417110312.78420352940.00058604596415512.69569492340.00094876863295212.78512954710.000702392018866nannanFalsenannan49738.882812521.840051651False43806.960937520.808532714834850.644531220.3805198669False27945.919921915.08432102230319.490234426.4946327209False27922.095703118.0635566711False3False-1nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannanFalseFalseFalseFalseFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannanFalse0
\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "master_catalogue[:10].show_in_notebook()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "\n", "master_catalogue.add_column(Column(data=(np.char.array(master_catalogue['vhs_id'].astype(str)) \n", " + np.char.array(master_catalogue['video_id'].astype(str) )\n", " + np.char.array(master_catalogue['viking_id'].astype(str))), \n", " name=\"vircam_intid\"))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['vhs_id', 'video_id', 'viking_id', 'vircam_intid']\n" ] } ], "source": [ "id_names = []\n", "for col in master_catalogue.colnames:\n", " if '_id' in col:\n", " id_names += [col]\n", " if '_intid' in col:\n", " id_names += [col]\n", " \n", "print(id_names)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## VII - Choosing between multiple values for the same filter\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### VII.c VISTA VIDEO, VHS, and VIKING: VISTA fluxes\n", "\n", "According to Mattia Vacari VIDEO is deeper than VIKING which is deeper than VHS" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "vista_origin = Table()\n", "vista_origin.add_column(master_catalogue['vircam_intid'])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/anaconda3/envs/herschelhelp_internal/lib/python3.6/site-packages/numpy/core/numeric.py:301: FutureWarning: in the future, full(5, 0) will return an array of dtype('int64')\n", " format(shape, fill_value, array(fill_value).dtype), FutureWarning)\n" ] } ], "source": [ "vista_stats = Table()\n", "vista_stats.add_column(Column(data=['y','j','h','k','z'], name=\"Band\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"VIDEO\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"VIKING\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"VHS\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"use VIDEO\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"use VIKING\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"use VHS\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"VIDEO ap\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"VIKING ap\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"VHS ap\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"use VIDEO ap\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"use VIKING ap\"))\n", "vista_stats.add_column(Column(data=np.full(5, 0), name=\"use VHS ap\"))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "\n", "vista_bands = ['y','j','h','k','z'] # Lowercase naming convention (k is Ks)\n", "for band in vista_bands:\n", " #print('For VISTA band ' + band + ':')\n", " # VISTA total flux \n", " has_video = ~np.isnan(master_catalogue['f_video_' + band])\n", " has_viking = ~np.isnan(master_catalogue['f_viking_' + band])\n", " if band == 'z':\n", " has_vhs = np.full(len(master_catalogue), False, dtype=bool)\n", " else:\n", " has_vhs = ~np.isnan(master_catalogue['f_vhs_' + band])\n", " \n", "\n", " #print(\"{} sources with VIDEO flux\".format(np.sum(has_video)))\n", " #print(\"{} sources with VIKING flux\".format(np.sum(has_viking)))\n", " #print(\"{} sources with VHS flux\".format(np.sum(has_vhs)))\n", " #print(\"{} sources with VIDEO, VIKING, and VHS flux\".format(np.sum(has_video & has_viking & has_vhs)))\n", "\n", "\n", " use_video = has_video \n", " use_viking = has_viking & ~has_video\n", " use_vhs = has_vhs & ~has_video & ~has_viking\n", "\n", " #print(\"{} sources for which we use VIDEO\".format(np.sum(use_video)))\n", " #print(\"{} sources for which we use VIKING\".format(np.sum(use_viking)))\n", " #print(\"{} sources for which we use VHS\".format(np.sum(use_vhs)))\n", "\n", " f_vista = np.full(len(master_catalogue), np.nan)\n", " f_vista[use_video] = master_catalogue['f_video_' + band][use_video]\n", " f_vista[use_viking] = master_catalogue['f_viking_' + band][use_viking]\n", " if not (band == 'z'):\n", " f_vista[use_vhs] = master_catalogue['f_vhs_' + band][use_vhs]\n", "\n", " ferr_vista = np.full(len(master_catalogue), np.nan)\n", " ferr_vista[use_video] = master_catalogue['ferr_video_' + band][use_video]\n", " ferr_vista[use_viking] = master_catalogue['ferr_viking_' + band][use_viking]\n", " if not (band == 'z'):\n", " ferr_vista[use_vhs] = master_catalogue['ferr_vhs_' + band][use_vhs]\n", " \n", " m_vista = np.full(len(master_catalogue), np.nan)\n", " m_vista[use_video] = master_catalogue['m_video_' + band][use_video]\n", " m_vista[use_viking] = master_catalogue['m_viking_' + band][use_viking]\n", " if not (band == 'z'):\n", " m_vista[use_vhs] = master_catalogue['m_vhs_' + band][use_vhs]\n", "\n", " merr_vista = np.full(len(master_catalogue), np.nan)\n", " merr_vista[use_video] = master_catalogue['merr_video_' + band][use_video]\n", " merr_vista[use_viking] = master_catalogue['merr_viking_' + band][use_viking]\n", " if not (band == 'z'):\n", " merr_vista[use_vhs] = master_catalogue['merr_vhs_' + band][use_vhs]\n", "\n", " flag_vista = np.full(len(master_catalogue), False, dtype=bool)\n", " flag_vista[use_video] = master_catalogue['flag_video_' + band][use_video]\n", " flag_vista[use_viking] = master_catalogue['flag_viking_' + band][use_viking]\n", " if not (band == 'z'):\n", " flag_vista[use_vhs] = master_catalogue['flag_vhs_' + band][use_vhs]\n", "\n", " master_catalogue.add_column(Column(data=f_vista, name=\"f_vista_\" + band))\n", " master_catalogue.add_column(Column(data=ferr_vista, name=\"ferr_vista_\" + band))\n", " master_catalogue.add_column(Column(data=m_vista, name=\"m_vista_\" + band))\n", " master_catalogue.add_column(Column(data=merr_vista, name=\"merr_vista_\" + band))\n", " master_catalogue.add_column(Column(data=flag_vista, name=\"flag_vista_\" + band))\n", "\n", " old_video_and_viking_columns = ['f_video_' + band, \n", " 'f_viking_' + band, \n", " 'ferr_video_' + band,\n", " 'ferr_viking_' + band, \n", " 'm_video_' + band, \n", " 'm_viking_' + band, \n", " 'merr_video_' + band,\n", " 'merr_viking_' + band,\n", " 'flag_video_' + band, \n", " 'flag_viking_' + band]\n", " old_vhs_columns = ['f_vhs_' + band, \n", " 'ferr_vhs_' + band, \n", " 'm_vhs_' + band, \n", " 'merr_vhs_' + band,\n", " 'flag_vhs_' + band]\n", " \n", " if not (band == 'z'):\n", " old_columns = old_video_and_viking_columns + old_vhs_columns\n", " else:\n", " old_columns = old_video_and_viking_columns\n", " master_catalogue.remove_columns(old_columns)\n", "\n", " origin = np.full(len(master_catalogue), ' ', dtype='Table length=5\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
idxBandVIDEOVIKINGVHSuse VIDEOuse VIKINGuse VHSVIDEO apVIKING apVHS apuse VIDEO apuse VIKING apuse VHS ap
0y1234544.077022.00.01234544.048468.00.01230237.077019.00.01230237.048463.00.0
1j1219903.0153769.0337073.01219903.0100902.0252234.01212213.0153757.0334311.01212213.0100893.0249478.0
2h1205566.0169428.0223512.01205566.0105720.0141189.01190468.0169398.0223305.01190468.0105709.0141006.0
3k1184328.0199414.0208775.01184328.0115481.0126276.01164308.0199397.0208683.01164308.0115472.0126199.0
4z986489.0163505.00.0986489.0122842.00.0986692.0163501.00.0986692.0122819.00.0
\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vista_stats.show_in_notebook()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "vista_origin.write(\"{}/xmm-lss_vista_fluxes_origins{}.fits\".format(OUT_DIR, SUFFIX), overwrite=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## XI - Saving the catalogue" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "columns = [\"help_id\", \"field\", \"ra\", \"dec\", \"hp_idx\"]\n", "\n", "bands = [column[5:] for column in master_catalogue.colnames if 'f_ap' in column]\n", "for band in bands:\n", " columns += [\"f_ap_{}\".format(band), \"ferr_ap_{}\".format(band),\n", " \"m_ap_{}\".format(band), \"merr_ap_{}\".format(band),\n", " \"f_{}\".format(band), \"ferr_{}\".format(band),\n", " \"m_{}\".format(band), \"merr_{}\".format(band),\n", " \"flag_{}\".format(band)] \n", " \n", "columns += [\"stellarity\", \"stellarity_origin\", \"flag_cleaned\", \"flag_merged\", \"flag_gaia\", \"flag_optnir_obs\", \"flag_optnir_det\", \n", " \"zspec\", \"zspec_qual\", \"zspec_association_flag\", \"ebv\"]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Missing columns: {'video_id', 'viking_stellarity', 'vhs_stellarity', 'vhs_id', 'video_flag_cleaned', 'vhs_flag_gaia', 'vircam_dec', 'vircam_intid', 'video_flag_gaia', 'vircam_ra', 'video_stellarity', 'viking_flag_gaia', 'vhs_flag_cleaned', 'viking_id', 'vircam_flag_merged', 'viking_flag_cleaned'}\n" ] } ], "source": [ "# We check for columns in the master catalogue that we will not save to disk.\n", "print(\"Missing columns: {}\".format(set(master_catalogue.colnames) - set(columns)))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "master_catalogue.write(\"{}/vista_merged_catalogue_xmm-lss.fits\".format(TMP_DIR), overwrite=True)" ] } ], "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.1" } }, "nbformat": 4, "nbformat_minor": 2 }