{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ELAIS-N2 master catalogue\n",
    "\n",
    "This notebook presents the merge of the various pristine catalogues to produce HELP mater catalogue on ELAIS-N2."
   ]
  },
  {
   "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",
      "This notebook was executed on: \n",
      "2018-02-18 00:53:05.376795\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
   },
   "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": [
    "wfc = Table.read(\"{}/INT-WFC.fits\".format(TMP_DIR))\n",
    "rcs = Table.read(\"{}/RCSLenS.fits\".format(TMP_DIR))\n",
    "ps1 = Table.read(\"{}/PS1.fits\".format(TMP_DIR))\n",
    "sparcs = Table.read(\"{}/SpARCS.fits\".format(TMP_DIR))\n",
    "swire= Table.read(\"{}/SWIRE.fits\".format(TMP_DIR))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## II - Merging tables\n",
    "\n",
    "We first merge the optical catalogues and then add the infrared ones: WFC, DXS, SpARCS, HSC, PS1, SERVS, SWIRE.\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": [
    "### WFC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue = wfc\n",
    "master_catalogue['wfc_ra'].name = 'ra'\n",
    "master_catalogue['wfc_dec'].name = 'dec'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add RCSLenS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nADxCsAIAAPAIwQrAvMxsJj/L6kkze9TMPmpmgfxzu8zs02d57QYzu7l81b7gvafye/FVBDN7m5kd\nNDPmVQFLEMEKwEJMOecudc7tUG46+A2S/lKSnHN7nXN/fJbXbpDkS7DKey6/F9+CmVmwVMU45/63\npPeX6ucD8BfBCsA5cc71SbpF0ocs5xWF7ouZXVs0qf3XZlYv6W8kvTz/2EfyXaQHzexX+a+X5l/7\nCjP7qZl908yeMbOv5rfWkZm9yMweynfLHjGzejMLmtknzWyPmT1mZh9YSP1m9m9mti/ffbul6PGE\nmf2dmT0q6SVneM8d+du/yb/nlvxrf7/o8c8XgpmZXZ//Mz5qZj/y8D8DgAoV8rsAANXHOXcoHx5W\nzHnqzyR90Dn3CzOrk5SU9AlJf+ace6MkmVlc0mucc8l8MPmapF35118maYekE5J+IelqM3tE0v+W\n9Dbn3B4za5A0Jel9kkadcy8ysxpJvzCz+51zh+cp/w+cc0P5vfn2mNndzrlBSbWSdjvnPprf7/OZ\n07znrZL+wTn31fwxQTO7SNLbJF3tnJs2s89KeqeZfU/SP0m6xjl32MxazvmDBlB1CFYAvPQLSX9v\nZl+VdI9zrivfdCoWlvSPZnappBlJFxY994hzrkuS8uuiNkgaldTtnNsjSc65sfzzr5W008xuyr+2\nUdIWSfMFqz82szfnb6/Lv2YwX8vd+ce3nuE9fynpP5lZR/7Pd8DMrpN0hXIhTZJikvokvVjSA4Wg\n55wbmqcuAEsAwQrAOTOzTcoFkT5JFxUed879jZl9V9Lrlesgve40L/+IpF5Jlyi3HCFZ9Fyq6PaM\nzv53lEn6sHPuvnOo+xWSXi3pJc65STP7qaRo/umkc27mbK93zt1pZrslvUHSvfnTjybpX5xzfz7n\nvX57oXUBWDpYYwXgnJhZu6TbJP2jm7OLu5ltds497pz7W0l7JG2TNC6pvuiwRuW6QVlJ75I030Lx\nZyWtNrMX5d+j3sxCku6T9EdmFs4/fqGZ1c7zsxolDedD1TblukoLfs98oDzknPu0pG9J2inpR5Ju\nMrMV+WNbzGy9pIclXWNmGwuPz1MbgCWAjhWAhYjlT82FJWUkfVnS35/muP9gZq+UlJX0pKTv5W/P\n5BeFf0nSZyXdbWbvlvR9SRNne2PnXNrM3ibpf+XXRU0p13X6gnKnCn+VX+TeL+l35vlzfF/SrWb2\ntHLh6eFzfM/fk/QuM5uW1CPpr/Prtf6zpPstN4JiWrl1Zg/nF8ffk3+8T7krKgEsYTbnH5wAsGSY\n2QZJ33HO/ZbPpZwif0pydkE/gKWDU4EAlrIZSY1WYQNClevaDftdCwDv0bECAADwCB0rAAAAjxCs\nAAAAPEKwAgAA8AjBCgAAwCMEKwAAAI/8/yFy2O0xDoCQAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f575769d668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nb_merge_dist_plot(\n",
    "    SkyCoord(master_catalogue['ra'], master_catalogue['dec']),\n",
    "    SkyCoord(rcs['rcs_ra'], rcs['rcs_dec'])\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Given the graph above, we use 0.8 arc-second radius\n",
    "master_catalogue = merge_catalogues(master_catalogue, rcs, \"rcs_ra\", \"rcs_dec\", radius=0.8*u.arcsec)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add PanSTARRS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n2WpJ75T0fb9rwdJCsCqv4y31A9QUM+uTdL6kh/2tpL7kL1U9LumgpF855/h8vfNVSf9eUtbvQrC0\nEKwAnJCZNUv6iaTPOufiftdTT5xzGefcecqtVnGhmZ3ld031wMzeJemgc87n1cywFBGsyqukpX6A\namVmYeVC1c3Oudv9rqdeOecOS/qtmDPolUskvcfMXlBuCsYfmdn/9LckLBUEq/IqZTkgoCqZmUn6\n75J2OOe+4nc99cbMesysPf88Kultknb6W1V9cM79jXNutXOuT7mfu79xzv2pz2VhiSBYlZFzLi2p\nsBzQDkm3Oee2+1tV/TCzWyQ9KGmDme0zs2v9rqnOXCLpw8r9tv94/vEOv4uqIysk/dbMnlTul7Bf\nOedoCwDUODqvAwAAeIQRKwAAAI8QrAAAADxCsAIAAPAIwQoAAMAjBCsAAACPEKwAAAA8QrACMC8z\ny+T7WG03syfM7C/NLJDft8nMvn6C7+0zs2sqV+2rzj2TX4+vKpjZB8xst5nRswqoQwQrAKWYcc6d\n55w7U7kO4VdI+oIkOee2Oec+fYLv7ZPkS7DKez6/Hl/JzCxYrmKccz+WdF253h+AvwhWAE6Kc+6g\npC2SPmk5mwujL2b2pqIu7X8wsxZJX5R0WX7bv82PIt1rZo/lH2/If+9mM/udmf2jme00s5vzy+rI\nzC4wswfyo2WPmFmLmQXN7Mtm9qiZPWlmHy+lfjP7qZn9Pj/6tqVo+6SZ/Tcze0LS649zzjPzzx/P\nn/O0/Pf+adH27xaCmZldnv8zPmFmd3v4nwFAlQr5XQCA2uOcG8iHh2VH7forSZ9wzt1vZs2SEpI+\nJ+mvnHPvkiQzi0l6m3MukQ8mt0jalP/+8yWdKWm/pPslXWJmj0j6saQPOOceNbNWSTOSrpU07py7\nwMwaJN1vZr90zu2Zp/w/c86N5dfne9TMfuKcG5XUJOlh59xf5tf23HmMc14v6WvOuZvzxwTN7AxJ\nH5B0iXMuZWbflvQhM7tT0vckvdE5t8fMOk/6gwZQcwhWALx0v6SvmNnNkm53zu3LDzoVC0v6ppmd\nJykjaX3Rvkecc/skKT8vqk/SuKRB59yjkuSci+f3/7Gkc8zsvfnvbZN0mqT5gtWnzeyq/PM1+e8Z\nzdfyk/z2Dcc554OS/oOZrc7/+XaZ2VskvU65kCZJUUkHJV0s6Z5C0HPOjc1TF4A6QLACcNLMbJ1y\nQeSgpDMK251zXzSzf5H0DuVGkN5+jG//t5IOSDpXuekIiaJ9s0XPMzrxzyiT9Cnn3F0nUfdmSW+V\n9Hrn3LSZ/U5SY353wjmXOdH3O+d+ZGYPS3qnpDvylx9N0j845/7mqHO9u9S6ANQP5lgBOClm1iPp\nBknfdEet4m5mpzrnnnLOfUnSo5JOlzQhqaXosDblRoOykj4sab6J4s9KWmFmF+TP0WJmIUl3Sfpz\nMwvnt683s6Z53qtN0qF8qDpduVGlks+ZD5QDzrmvS/onSedIulvSe81sWf7YTjM7RdJDkt5oZv2F\n7fPUBqAOMGIFoBTR/KW5sKS0pB9K+soxjvusmb1ZUlbSdkl35p9n8pPCb5L0bUk/MbOPSPqFpKkT\nndg5lzSzD0j6Rn5e1Ixyo07fV+5S4WP5Se7Dkv5knj/HLyRdb2Y7lAtPD53kOd8v6cNmlpI0JOnv\n8/O1/qOkX1quBUVKuXlmD+Unx9+e335QuTsqAdQxO+oXTgCoG2bWJ+nnzrmzfC7lCPlLknMT+gHU\nDy4FAqhnGUltVmUNQpUbtTvkdy0AvMeIFQAAgEcYsQIAAPAIwQoAAMAjBCsAAACPEKwAAAA8QrAC\nAADwyP8PCgQdwMtjGZ8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f57528f6550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nb_merge_dist_plot(\n",
    "    SkyCoord(master_catalogue['ra'], master_catalogue['dec']),\n",
    "    SkyCoord(ps1['ps1_ra'], ps1['ps1_dec'])\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Given the graph above, we use 0.8 arc-second radius\n",
    "master_catalogue = merge_catalogues(master_catalogue, ps1, \"ps1_ra\", \"ps1_dec\", radius=0.8*u.arcsec)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add SpARCS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f57575f62e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nb_merge_dist_plot(\n",
    "    SkyCoord(master_catalogue['ra'], master_catalogue['dec']),\n",
    "    SkyCoord(sparcs['sparcs_ra'], sparcs['sparcs_dec'])\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Given the graph above, we use 0.8 arc-second radius\n",
    "master_catalogue = merge_catalogues(master_catalogue, sparcs, \"sparcs_ra\", \"sparcs_dec\", radius=0.8*u.arcsec)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add SWIRE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f574cc5ac88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nb_merge_dist_plot(\n",
    "    SkyCoord(master_catalogue['ra'], master_catalogue['dec']),\n",
    "    SkyCoord(swire['swire_ra'], swire['swire_dec'])\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Given the graph above, we use 1 arc-second radius\n",
    "master_catalogue = merge_catalogues(master_catalogue, swire, \"swire_ra\", \"swire_dec\", radius=1.*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": 14,
   "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].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": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "&lt;Table length=10&gt;\n",
       "<table id=\"table140013104198712-835358\" class=\"table-striped table-bordered table-condensed\">\n",
       "<thead><tr><th>idx</th><th>wfc_id</th><th>ra</th><th>dec</th><th>wfc_stellarity</th><th>m_ap_wfc_u</th><th>merr_ap_wfc_u</th><th>m_wfc_u</th><th>merr_wfc_u</th><th>m_ap_wfc_g</th><th>merr_ap_wfc_g</th><th>m_wfc_g</th><th>merr_wfc_g</th><th>m_ap_wfc_r</th><th>merr_ap_wfc_r</th><th>m_wfc_r</th><th>merr_wfc_r</th><th>m_ap_wfc_i</th><th>merr_ap_wfc_i</th><th>m_wfc_i</th><th>merr_wfc_i</th><th>m_ap_wfc_z</th><th>merr_ap_wfc_z</th><th>m_wfc_z</th><th>merr_wfc_z</th><th>f_ap_wfc_u</th><th>ferr_ap_wfc_u</th><th>f_wfc_u</th><th>ferr_wfc_u</th><th>flag_wfc_u</th><th>f_ap_wfc_g</th><th>ferr_ap_wfc_g</th><th>f_wfc_g</th><th>ferr_wfc_g</th><th>flag_wfc_g</th><th>f_ap_wfc_r</th><th>ferr_ap_wfc_r</th><th>f_wfc_r</th><th>ferr_wfc_r</th><th>flag_wfc_r</th><th>f_ap_wfc_i</th><th>ferr_ap_wfc_i</th><th>f_wfc_i</th><th>ferr_wfc_i</th><th>flag_wfc_i</th><th>f_ap_wfc_z</th><th>ferr_ap_wfc_z</th><th>f_wfc_z</th><th>ferr_wfc_z</th><th>flag_wfc_z</th><th>wfc_flag_cleaned</th><th>wfc_flag_gaia</th><th>flag_merged</th><th>rcs_id</th><th>rcs_stellarity</th><th>m_rcs_g</th><th>merr_rcs_g</th><th>m_rcs_r</th><th>merr_rcs_r</th><th>m_rcs_i</th><th>merr_rcs_i</th><th>m_rcs_z</th><th>merr_rcs_z</th><th>m_rcs_y</th><th>merr_rcs_y</th><th>f_rcs_g</th><th>ferr_rcs_g</th><th>flag_rcs_g</th><th>f_rcs_r</th><th>ferr_rcs_r</th><th>flag_rcs_r</th><th>f_rcs_i</th><th>ferr_rcs_i</th><th>flag_rcs_i</th><th>f_rcs_z</th><th>ferr_rcs_z</th><th>flag_rcs_z</th><th>f_rcs_y</th><th>ferr_rcs_y</th><th>flag_rcs_y</th><th>rcs_flag_cleaned</th><th>rcs_flag_gaia</th><th>ps1_id</th><th>m_ap_gpc1_g</th><th>merr_ap_gpc1_g</th><th>m_gpc1_g</th><th>merr_gpc1_g</th><th>m_ap_gpc1_r</th><th>merr_ap_gpc1_r</th><th>m_gpc1_r</th><th>merr_gpc1_r</th><th>m_ap_gpc1_i</th><th>merr_ap_gpc1_i</th><th>m_gpc1_i</th><th>merr_gpc1_i</th><th>m_ap_gpc1_z</th><th>merr_ap_gpc1_z</th><th>m_gpc1_z</th><th>merr_gpc1_z</th><th>m_ap_gpc1_y</th><th>merr_ap_gpc1_y</th><th>m_gpc1_y</th><th>merr_gpc1_y</th><th>f_ap_gpc1_g</th><th>ferr_ap_gpc1_g</th><th>f_gpc1_g</th><th>ferr_gpc1_g</th><th>flag_gpc1_g</th><th>f_ap_gpc1_r</th><th>ferr_ap_gpc1_r</th><th>f_gpc1_r</th><th>ferr_gpc1_r</th><th>flag_gpc1_r</th><th>f_ap_gpc1_i</th><th>ferr_ap_gpc1_i</th><th>f_gpc1_i</th><th>ferr_gpc1_i</th><th>flag_gpc1_i</th><th>f_ap_gpc1_z</th><th>ferr_ap_gpc1_z</th><th>f_gpc1_z</th><th>ferr_gpc1_z</th><th>flag_gpc1_z</th><th>f_ap_gpc1_y</th><th>ferr_ap_gpc1_y</th><th>f_gpc1_y</th><th>ferr_gpc1_y</th><th>flag_gpc1_y</th><th>ps1_flag_cleaned</th><th>ps1_flag_gaia</th><th>sparcs_intid</th><th>sparcs_stellarity</th><th>m_ap_cfht_megacam_u</th><th>merr_ap_cfht_megacam_u</th><th>f_ap_cfht_megacam_u</th><th>ferr_ap_cfht_megacam_u</th><th>m_cfht_megacam_u</th><th>merr_cfht_megacam_u</th><th>f_cfht_megacam_u</th><th>ferr_cfht_megacam_u</th><th>flag_cfht_megacam_u</th><th>m_ap_cfht_megacam_g</th><th>merr_ap_cfht_megacam_g</th><th>f_ap_cfht_megacam_g</th><th>ferr_ap_cfht_megacam_g</th><th>m_cfht_megacam_g</th><th>merr_cfht_megacam_g</th><th>f_cfht_megacam_g</th><th>ferr_cfht_megacam_g</th><th>flag_cfht_megacam_g</th><th>m_ap_cfht_megacam_r</th><th>merr_ap_cfht_megacam_r</th><th>f_ap_cfht_megacam_r</th><th>ferr_ap_cfht_megacam_r</th><th>m_cfht_megacam_r</th><th>merr_cfht_megacam_r</th><th>f_cfht_megacam_r</th><th>ferr_cfht_megacam_r</th><th>flag_cfht_megacam_r</th><th>m_ap_cfht_megacam_z</th><th>merr_ap_cfht_megacam_z</th><th>f_ap_cfht_megacam_z</th><th>ferr_ap_cfht_megacam_z</th><th>m_cfht_megacam_z</th><th>merr_cfht_megacam_z</th><th>f_cfht_megacam_z</th><th>ferr_cfht_megacam_z</th><th>flag_cfht_megacam_z</th><th>sparcs_flag_cleaned</th><th>sparcs_flag_gaia</th><th>swire_intid</th><th>f_ap_irac_i1</th><th>ferr_ap_irac_i1</th><th>f_irac_i1</th><th>ferr_irac_i1</th><th>swire_stellarity</th><th>f_ap_irac_i2</th><th>ferr_ap_irac_i2</th><th>f_irac_i2</th><th>ferr_irac_i2</th><th>f_ap_irac_i3</th><th>ferr_ap_irac_i3</th><th>f_irac_i3</th><th>ferr_irac_i3</th><th>f_ap_irac_i4</th><th>ferr_ap_irac_i4</th><th>f_irac_i4</th><th>ferr_irac_i4</th><th>m_ap_irac_i1</th><th>merr_ap_irac_i1</th><th>m_irac_i1</th><th>merr_irac_i1</th><th>flag_irac_i1</th><th>m_ap_irac_i2</th><th>merr_ap_irac_i2</th><th>m_irac_i2</th><th>merr_irac_i2</th><th>flag_irac_i2</th><th>m_ap_irac_i3</th><th>merr_ap_irac_i3</th><th>m_irac_i3</th><th>merr_irac_i3</th><th>flag_irac_i3</th><th>m_ap_irac_i4</th><th>merr_ap_irac_i4</th><th>m_irac_i4</th><th>merr_irac_i4</th><th>flag_irac_i4</th><th>swire_flag_cleaned</th><th>swire_flag_gaia</th></tr></thead>\n",
       "<thead><tr><th></th><th></th><th>deg</th><th>deg</th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th>mag</th><th>mag</th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th>mag</th><th>mag</th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th>mag</th><th>mag</th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th>mag</th><th>mag</th><th></th><th></th><th></th><th></th><th></th><th></th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th></th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th>uJy</th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr></thead>\n",
       "<tr><td>0</td><td>220090301969</td><td>250.828437444</td><td>40.7459849103</td><td>0.0</td><td>15.605</td><td>0.023</td><td>15.595</td><td>0.023</td><td>14.973</td><td>0.022</td><td>14.074</td><td>0.022</td><td>14.883</td><td>0.016</td><td>13.485</td><td>0.016</td><td>14.402</td><td>0.019</td><td>13.19</td><td>0.019</td><td>13.211</td><td>0.034</td><td>12.891</td><td>0.034</td><td>2079.7</td><td>44.0559</td><td>2098.94</td><td>44.4635</td><td>False</td><td>3722.2</td><td>75.4221</td><td>8519.22</td><td>172.622749582</td><td>False</td><td>4043.89</td><td>59.593</td><td>14655.5</td><td>215.971112251</td><td>False</td><td>6297.96</td><td>110.212</td><td>19230.9</td><td>336.534278467</td><td>False</td><td>18862.5</td><td>590.682737529</td><td>25327.9</td><td>793.149</td><td>False</td><td>False</td><td>2</td><td>True</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>1</td><td>220090302902</td><td>250.685316091</td><td>40.8871084553</td><td>0.0</td><td>13.879</td><td>0.023</td><td>13.831</td><td>0.023</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>14.739</td><td>0.016</td><td>13.24</td><td>0.016</td><td>14.377</td><td>0.022</td><td>13.156</td><td>0.022</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>10195.3</td><td>215.975</td><td>10656.1</td><td>225.737</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>4617.42</td><td>68.0449</td><td>18365.4</td><td>270.642250776</td><td>False</td><td>6444.66</td><td>130.586</td><td>19842.7</td><td>402.066722512</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>2</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>2</td><td>220090301149</td><td>250.951571929</td><td>40.8251276913</td><td>0.0</td><td>14.651</td><td>0.023</td><td>14.651</td><td>0.023</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>14.954</td><td>0.016</td><td>13.691</td><td>0.016</td><td>14.781</td><td>0.022</td><td>13.521</td><td>0.022</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>5007.26</td><td>106.073</td><td>5007.26</td><td>106.073</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>3787.91</td><td>55.8207</td><td>12122.7</td><td>178.64690721</td><td>False</td><td>4442.22</td><td>90.0115</td><td>14177.5</td><td>287.275288254</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>2</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>3</td><td>314999200495</td><td>247.282214559</td><td>41.6317024113</td><td>0.0</td><td>15.297</td><td>0.026</td><td>15.296</td><td>0.026</td><td>15.013</td><td>0.02</td><td>14.224</td><td>0.02</td><td>14.674</td><td>0.016</td><td>13.738</td><td>0.016</td><td>14.801</td><td>0.024</td><td>13.643</td><td>0.024</td><td>13.786</td><td>0.044</td><td>13.601</td><td>0.044</td><td>2761.85</td><td>66.1377</td><td>2764.4</td><td>66.1986</td><td>False</td><td>3587.57</td><td>66.0854</td><td>7419.93</td><td>136.680211872</td><td>False</td><td>4902.3</td><td>72.243</td><td>11609.1</td><td>171.078547835</td><td>False</td><td>4361.14</td><td>96.4022</td><td>12670.7</td><td>280.08312732</td><td>False</td><td>11107.1</td><td>450.119759887</td><td>13170.4</td><td>533.738</td><td>False</td><td>False</td><td>2</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>4</td><td>314999102182</td><td>247.447694343</td><td>41.3590941923</td><td>0.0</td><td>13.828</td><td>0.026</td><td>13.807</td><td>0.026</td><td>14.83</td><td>0.02</td><td>13.12</td><td>0.02</td><td>14.542</td><td>0.016</td><td>12.895</td><td>0.016</td><td>14.347</td><td>0.024</td><td>13.002</td><td>0.024</td><td>12.984</td><td>0.044</td><td>12.89</td><td>0.044</td><td>10685.6</td><td>255.887</td><td>10894.3</td><td>260.885</td><td>False</td><td>4246.19</td><td>78.2178</td><td>20511.6</td><td>377.837978303</td><td>False</td><td>5536.05</td><td>81.5822</td><td>25234.8</td><td>371.873617172</td><td>False</td><td>6625.21</td><td>146.449</td><td>22866.5</td><td>505.460008979</td><td>False</td><td>23248.8</td><td>942.167505622</td><td>25351.3</td><td>1027.37</td><td>False</td><td>False</td><td>2</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>5</td><td>314988102790</td><td>247.344975178</td><td>41.6964178103</td><td>0.0</td><td>14.229</td><td>0.027</td><td>14.166</td><td>0.027</td><td>14.904</td><td>0.029</td><td>12.258</td><td>0.029</td><td>14.622</td><td>0.016</td><td>11.542</td><td>0.016</td><td>14.175</td><td>0.022</td><td>11.404</td><td>0.022</td><td>12.632</td><td>0.06</td><td>11.122</td><td>0.06</td><td>7385.84</td><td>183.67</td><td>7827.08</td><td>194.643</td><td>False</td><td>3966.43</td><td>105.943</td><td>45373.2</td><td>1211.91835031</td><td>False</td><td>5142.8</td><td>75.7872</td><td>87740.5</td><td>1292.99104214</td><td>False</td><td>7762.47</td><td>157.289</td><td>99632.2</td><td>2018.82232726</td><td>False</td><td>32151.4</td><td>1776.75213665</td><td>129181.0</td><td>7138.83</td><td>False</td><td>False</td><td>3</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>6</td><td>314988402536</td><td>247.738832916</td><td>41.8810887473</td><td>0.0</td><td>15.967</td><td>0.027</td><td>15.235</td><td>0.027</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>18.787</td><td>0.016</td><td>18.996</td><td>0.018</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>1490.05</td><td>37.0544</td><td>2924.15</td><td>72.7176</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>110.968</td><td>1.63529</td><td>91.5377</td><td>1.51756753621</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>7</td><td>314988101417</td><td>247.55659839</td><td>41.7953059363</td><td>0.0</td><td>19.827</td><td>0.028</td><td>19.869</td><td>0.028</td><td>17.025</td><td>0.029</td><td>17.027</td><td>0.029</td><td>15.874</td><td>0.016</td><td>15.873</td><td>0.016</td><td>14.78</td><td>0.022</td><td>14.706</td><td>0.022</td><td>13.841</td><td>0.06</td><td>14.847</td><td>0.06</td><td>42.5794</td><td>1.09808</td><td>40.9638</td><td>1.05641</td><td>False</td><td>562.341</td><td>15.0201</td><td>561.306</td><td>14.9924727157</td><td>False</td><td>1623.3</td><td>23.9219</td><td>1624.8</td><td>23.9439252764</td><td>False</td><td>4446.31</td><td>90.0945</td><td>4759.92</td><td>96.4490724728</td><td>False</td><td>10558.4</td><td>583.481211215</td><td>4180.23</td><td>231.008</td><td>False</td><td>False</td><td>2</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>8</td><td>314999101430</td><td>247.571898413</td><td>41.4603143533</td><td>0.0</td><td>20.575</td><td>0.029</td><td>20.664</td><td>0.03</td><td>17.455</td><td>0.02</td><td>17.475</td><td>0.02</td><td>16.118</td><td>0.016</td><td>16.12</td><td>0.016</td><td>15.003</td><td>0.024</td><td>14.901</td><td>0.024</td><td>14.007</td><td>0.044</td><td>13.959</td><td>0.044</td><td>21.3796</td><td>0.571049</td><td>19.697</td><td>0.544248</td><td>False</td><td>378.442</td><td>6.97117</td><td>371.535</td><td>6.84392696712</td><td>False</td><td>1296.58</td><td>19.1071</td><td>1294.19</td><td>19.0719533712</td><td>False</td><td>3620.76</td><td>80.0362</td><td>3977.41</td><td>87.9198163748</td><td>False</td><td>9061.49</td><td>367.221530527</td><td>9471.09</td><td>383.821</td><td>False</td><td>False</td><td>2</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "<tr><td>9</td><td>219995402361</td><td>248.890816425</td><td>40.3497587333</td><td>0.0</td><td>14.271</td><td>0.029</td><td>14.21</td><td>0.029</td><td>14.978</td><td>0.021</td><td>13.039</td><td>0.021</td><td>14.823</td><td>0.016</td><td>12.938</td><td>0.016</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>13.166</td><td>0.036</td><td>12.021</td><td>0.036</td><td>7105.59</td><td>189.79</td><td>7516.23</td><td>200.758</td><td>False</td><td>3705.1</td><td>71.663</td><td>22100.4</td><td>427.459560335</td><td>False</td><td>4273.66</td><td>62.979</td><td>24254.9</td><td>357.433795929</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>19660.7</td><td>651.895344257</td><td>56441.7</td><td>1871.45</td><td>False</td><td>False</td><td>2</td><td>False</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td><td>-1</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>nan</td><td>nan</td><td>nan</td><td>nan</td><td>False</td><td>False</td><td>0</td></tr>\n",
       "</table><style>table.dataTable {clear: both; width: auto !important; margin: 0 !important;}\n",
       ".dataTables_info, .dataTables_length, .dataTables_filter, .dataTables_paginate{\n",
       "display: inline-block; margin-right: 1em; }\n",
       ".paginate_button { margin-right: 5px; }\n",
       "</style>\n",
       "<script>\n",
       "require.config({paths: {\n",
       "    datatables: 'https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min'\n",
       "}});\n",
       "require([\"datatables\"], function(){\n",
       "    console.log(\"$('#table140013104198712-835358').dataTable()\");\n",
       "    $('#table140013104198712-835358').dataTable({\n",
       "        \"order\": [],\n",
       "        \"iDisplayLength\": 50,\n",
       "        \"aLengthMenu\": [[10, 25, 50, 100, 500, 1000, -1], [10, 25, 50, 100, 500, 1000, 'All']],\n",
       "        \"pagingType\": \"full_numbers\"\n",
       "    });\n",
       "});\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "master_catalogue[:10].show_in_notebook()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## III - Merging flags and stellarity\n",
    "\n",
    "Each pristine catalogue contains a flag indicating if the source was associated to a another nearby source that was removed during the cleaning process.  We merge these flags in a single one."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "flag_cleaned_columns = [column for column in master_catalogue.colnames\n",
    "                        if 'flag_cleaned' in column]\n",
    "\n",
    "flag_column = np.zeros(len(master_catalogue), dtype=bool)\n",
    "for column in flag_cleaned_columns:\n",
    "    flag_column |= master_catalogue[column]\n",
    "    \n",
    "master_catalogue.add_column(Column(data=flag_column, name=\"flag_cleaned\"))\n",
    "master_catalogue.remove_columns(flag_cleaned_columns)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Each pristine catalogue contains a flag indicating the probability of a source being a Gaia object (0: not a Gaia object, 1: possibly, 2: probably, 3: definitely).  We merge these flags taking the highest value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "flag_gaia_columns = [column for column in master_catalogue.colnames\n",
    "                     if 'flag_gaia' in column]\n",
    "\n",
    "master_catalogue.add_column(Column(\n",
    "    data=np.max([master_catalogue[column] for column in flag_gaia_columns], axis=0),\n",
    "    name=\"flag_gaia\"\n",
    "))\n",
    "master_catalogue.remove_columns(flag_gaia_columns)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Each prisitine catalogue may contain one or several stellarity columns indicating the probability (0 to 1) of each source being a star.  We merge these columns taking the highest value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wfc_stellarity, rcs_stellarity, sparcs_stellarity, swire_stellarity\n"
     ]
    }
   ],
   "source": [
    "stellarity_columns = [column for column in master_catalogue.colnames\n",
    "                      if 'stellarity' in column]\n",
    "\n",
    "print(\", \".join(stellarity_columns))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# We create an masked array with all the stellarities and get the maximum value, as well as its\n",
    "# origin.  Some sources may not have an associated stellarity.\n",
    "stellarity_array = np.array([master_catalogue[column] for column in stellarity_columns])\n",
    "stellarity_array = np.ma.masked_array(stellarity_array, np.isnan(stellarity_array))\n",
    "\n",
    "max_stellarity = np.max(stellarity_array, axis=0)\n",
    "max_stellarity.fill_value = np.nan\n",
    "\n",
    "no_stellarity_mask = max_stellarity.mask\n",
    "\n",
    "master_catalogue.add_column(Column(data=max_stellarity.filled(), name=\"stellarity\"))\n",
    "\n",
    "stellarity_origin = np.full(len(master_catalogue), \"NO_INFORMATION\", dtype=\"S20\")\n",
    "stellarity_origin[~no_stellarity_mask] = np.array(stellarity_columns)[np.argmax(stellarity_array, axis=0)[~no_stellarity_mask]]\n",
    "\n",
    "master_catalogue.add_column(Column(data=stellarity_origin, name=\"stellarity_origin\"))\n",
    "\n",
    "master_catalogue.remove_columns(stellarity_columns)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## IV - Adding E(B-V) column"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue.add_column(\n",
    "    ebv(master_catalogue['ra'], master_catalogue['dec'])\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## V.a - Adding HELP unique identifiers and field columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue.add_column(Column(gen_help_id(master_catalogue['ra'], master_catalogue['dec']),\n",
    "                                   name=\"help_id\"))\n",
    "master_catalogue.add_column(Column(np.full(len(master_catalogue), \"ELAIS-N2\", dtype='<U18'),\n",
    "                                   name=\"field\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OK!\n"
     ]
    }
   ],
   "source": [
    "# Check that the HELP Ids are unique\n",
    "if len(master_catalogue) != len(np.unique(master_catalogue['help_id'])):\n",
    "    print(\"The HELP IDs are not unique!!!\")\n",
    "else:\n",
    "    print(\"OK!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## V.b - Adding Spec-z"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "specz =  Table.read(\"../../dmu23/dmu23_ELAIS-N2/data/ELAIS-N2-specz-v2.1.fits\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nJeaYmb509WzdcO9G/fjFw/r0pdP9LglRpLt/SNtr27Wt5rheOdKmbTVtaurslzQynbdgckg3XVih\nC6bkanFQPG5yAAAWEklEQVR5rqYWZOj+l2p8rhp4s2DAdPOFFbr7mWr9+MXD+tzlM2kGGwMIVj56\ncHONphZk6MJp+X6XEpMunJavS6oK9e1n9+vmlRXKZHPmhBQOO+1v6tK2mj/e7kWSphVm6uKZhVpS\nkasLpuRqTkmIq0kRMzJTk3TLqqm659n9emBzjT7B0oeox28inxxq7tamg6368rrZTDechy9eNUsf\nuPsF/fCFQ/rc5TP9LgcToLGzT68cadOrtSNTettr2tU5aruXxVNydfX8Ei2ZMhKk8tjNADGuNCdd\n772gTA+/XKsnd9br1tVcDR3NCFY++dnLNQqY9MGl5X6XEtOWVuTp8tlFum/9Ad26eqpCDJPHjZ9u\nOqLegWHVtfWq9niPao+PXKnX3jsoaaRPVEkoTXMnhzQlL0NT8tNVmJV6cnH5SGuEej+/BcAzSyvy\nVNPao+f2Nes3rx3TtQu5UjBaEax8MDQc1sMv12rtrCKV5KT5XU7M+9LVs/WeO5/X3/1yh/7zhsWM\nAMaotp4BvV7XodePjmw8/OL+FrV0D5x8PD8zRVMLMlSem64p+RkqzUlnSg8J5bqFpTra1qu/+Nmr\nqpqUrZnFbHsTjQhWPli/r0kNHf36P++Z4ncpcWFBWY7+/IpZ+n9P7dXq6QW6YQXvazQLh50Ot/Zo\n17GOUbfON+2bV56XrpKcNC2dmqfy3HSV5aUrI4UfV0hsScGAbl45Vd997oBu//HL+sXn1iiLtaVR\nh38RHzy0uVYFmSl6xxyagnrljnfM1KaDLfrbx17XBRW5mjUp2++SEt5w2OloW6/2NY5sOLy3oVN7\nGzpV3dh1ss1BMGCaXpipZVPzdOvqqVowOUcLykLKzUg5qy1mgESRk56sb920RLd8b5O+8vB23Xnz\nEkbpowzBaoI1d/XrqV0N+viaSqYxPBQMmL5+4wV65zee12d/slWP3bGGEQ4PvVXICTunzr4htXYP\nqLW7X81dA2ru6ldTZ79auwc0dOLSPI0sLC8OpWlZRZ4mhdJUmpOu4lCqkkdt+3KktUdHWnvG/fsB\nYtlFMwv15XVz9C+/3a0Lnsul3UyU4TfPBPv51joNhZ1uWM50ldeKs9P0jRsv0C3f26S//eUO/fuH\n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\ndQ+8sdBuakGGllXm6xPlOVo7q0hVk7L9KhcAgJhXnpehW1ZN1S2rpqpvcFiv17Vrx9EO7Tg68vH7\nGw5qcPiNKwqTAqaSnDRNzk1XfkaK8jKTlZOeotyMZOWmJysjNUkZyUGlpwSVlhxURkpQycGAUoIB\nJQVNycGAkoOmtOSRx6PBWIJVmaSaUV/X6o9Ho053TJkk34JVZ9+gvvmHfSrKSlVpTppmFmXpkqpC\nleakaU5JSIvKc5SbkeJXeQAAxLW05KCWV+ZreWX+yfsGhsI63NKt2rZe1R3vVV1br4629epYW5/2\nN3Wp7cig2noG3hS+xuIjKyv0j+9f6PW3cE4mdPG6md0m6bbIl11mtme8z3lovE8QewolNftdRAzg\nfRob3qex4X0aG96nMfiI3wVEoX+K3MbZ1LEcNJZgVSdpdDfM8sh9Z3uMnHP3SbpvLIVhfJjZFufc\ncr/riHa8T2PD+zQ2vE9jw/uEeDCWBqGbJVWZ2TQzS5F0o6THTjnmMUkftRGrJLX7ub4KAADAD2cc\nsXLODZnZHZKe0Ei7he8753aY2e2Rx++R9LhGWi1Ua6TdwsfHr2QAAIDoNKY1Vs65xzUSnkbfd8+o\nz52kz3lbGsYJU7Fjw/s0NrxPY8P7NDa8T4h5xkaKAAAA3mATZgAAAI8QrBKEmV1jZnvMrNrMvup3\nPdHKzL5vZo1m9rrftUQzM5tiZk+b2U4z22Fmf+53TdHIzNLM7CUzezXyPv0fv2uKZmYWNLNtZvYr\nv2sBzhXBKgGM2pboWknzJN1kZvP8rSpq/VDSNX4XEQOGJH3JOTdP0ipJn+O/qdPql/QO59xiSRdI\nuiZy5TRO788l7fK7COB8EKwSw8ltiZxzA5JObEuEUzjn1ktq9buOaOecO3Zio3XnXKdGfhmW+VtV\n9HEjuiJfJkduLGw9DTMrl3SdpO/6XQtwPghWieGtthwCzpuZVUpaImmTv5VEp8j01iuSGiX9zjnH\n+3R6X5f0l5LCfhcCnA+CFYBzZmZZkh6R9AXnXIff9UQj59ywc+4CjexIcaGZLfC7pmhjZu+S1Oic\ne9nvWoDzRbBKDGPacgg4G2aWrJFQ9RPn3KN+1xPtnHNtkp4Wa/hOZ42k95jZIY0sVXiHmf3Y35KA\nc0OwSgxj2ZYIGDMzM0nfk7TLOfefftcTrcysyMxyI5+nS7pK0m5/q4o+zrm/cs6VO+cqNfLz6Q/O\nuVt8Lgs4JwSrBOCcG5J0YluiXZIecs7t8Leq6GRm90vaKGm2mdWa2Sf9rilKrZF0q0ZGFl6J3N7p\nd1FRqFTS02a2XSN/4PzOOUcrASCO0XkdAADAI4xYAQAAeIRgBQAA4BGCFQAAgEcIVgAAAB4hWAEA\nAHiEYAUAAOARghWAMzKz4Uivqh1m9qqZfcnMApHHlpvZN9/muZVmdvPEVftH5+6N7NUXFczsw2ZW\nbWb0swLiEMEKwFj0OucucM7N10j38Gsl/Z0kOee2OOf+7G2eWynJl2AVsT+yV9+YmVlwvIpxzj0o\n6VPj9foA/EWwAnBWnHONkm6TdIeNuOzE6IuZrR3ViX2bmWVL+pqkSyL3fTEyivScmW2N3C6KPPcy\nM3vGzB42s91m9pPI1jkysxVm9kJktOwlM8s2s6CZ/ZuZbTaz7Wb2p2Op38x+YWYvR0bfbht1f5eZ\n/YeZvSpp9Vucc37k81ci56yKPPeWUfffeyKYmdk1ke/xVTP7vYf/DACiVJLfBQCIPc65A5HwUHzK\nQ38h6XPOuQ1mliWpT9JXJf2Fc+5dkmRmGZKucs71RYLJ/ZKWR56/RNJ8SUclbZC0xsxekvSgpA87\n5zabWUhSr6RPSmp3zq0ws1RJG8zsSefcwTOU/wnnXGtk777NZvaIc65FUqakTc65L0X21Nx9mnPe\nLukbzrmfRI4JmtlcSR+WtMY5N2hmd0v6iJn9RtJ3JF3qnDtoZvln/UYDiDkEKwBe2iDpP83sJ5Ie\ndc7VRgadRkuWdKeZXSBpWNKsUY+95JyrlaTIuqhKSe2SjjnnNkuSc64j8vjVkhaZ2fWR5+ZIqpJ0\npmD1Z2b2/sjnUyLPaYnU8kjk/tlvcc6Nkv7azMoj398+M7tC0jKNhDRJSpfUKGmVpPUngp5zrvUM\ndQGIAwQrAGfNzKZrJIg0Spp74n7n3NfM7NeS3qmREaR1p3n6FyU1SFqskeUIfaMe6x/1+bDe/meU\nSfq8c+6Js6j7MklXSlrtnOsxs2ckpUUe7nPODb/d851zPzWzTZKuk/R4ZPrRJP2Xc+6vTjnXu8da\nF4D4wRorAGfFzIok3SPpTnfKLu5mNsM595pz7l8kbZY0R1KnpOxRh+VoZDQoLOlWSWdaKL5HUqmZ\nrYicI9vMkiQ9IekzZpYcuX+WmWWe4bVyJB2PhKo5GhlVGvM5I4HygHPum5J+KWmRpN9Lut7MiiPH\n5pvZVEkvSrrUzKaduP8MtQGIA4xYARiL9MjUXLKkIUk/kvSfpznuC2Z2uaSwpB2SfhP5fDiyKPyH\nku6W9IiZfVTSbyV1v92JnXMDZvZhSd+KrIvq1cio03c1MlW4NbLIvUnS+87wffxW0u1mtksj4enF\nszznDZJuNbNBSfWS/imyXut/S3rSRlpQDGpkndmLkcXxj0bub9TIFZUA4pid8gcnAMQNM6uU9Cvn\n3AKfS3mTyJTkyQX9AOIHU4EA4tmwpByLsgahGhm1O+53LQC8x4gVAACARxixAgAA8AjBCgAAwCME\nKwAAAI8QrAAAADxCsAIAAPDI/w9ClVeruKarZwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f575281bcc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nb_merge_dist_plot(\n",
    "    SkyCoord(master_catalogue['ra'], master_catalogue['dec']),\n",
    "    SkyCoord(specz['ra'] * u.deg, specz['dec'] * u.deg)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue = specz_merge(master_catalogue, specz, radius=1. * u.arcsec)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## VI - Choosing between multiple values for the same filter\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### CFHT Megacam SpARCS vs RCSLenS\n",
    "SpARCS apears to be significantly deeper and contains both total and aperture magnitudes so we take SpARCS over RCSLenS if both are available\n",
    "\n",
    "| Survey  | Bands     |\n",
    "|---------|-----------|\n",
    "| SpARCS  | ugrz      |\n",
    "| RCSLenS | grizy     |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "megacam_origin = Table()\n",
    "megacam_origin.add_column(master_catalogue['help_id'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "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(6, 0) will return an array of dtype('int64')\n",
      "  format(shape, fill_value, array(fill_value).dtype), FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "megacam_stats = Table()\n",
    "megacam_stats.add_column(Column(data=['u','g','r','i','z','y'], name=\"Band\"))\n",
    "for col in [ \"SpARCS\", \"RCSLenS\"]:\n",
    "    megacam_stats.add_column(Column(data=np.full(6, 0), name=\"{}\".format(col)))\n",
    "    megacam_stats.add_column(Column(data=np.full(6, 0), name=\"use {}\".format(col)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "megacam_bands = ['u','g','r','i','z','y'] # Lowercase naming convention (k is Ks)\n",
    "for band in ['g', 'r', 'z']: #the bands in both catalogues\n",
    "\n",
    "    # Megacam total flux \n",
    "    has_sparcs = ~np.isnan(master_catalogue['f_cfht_megacam_' + band])\n",
    "    has_rcs = ~np.isnan(master_catalogue['f_rcs_' + band])   \n",
    "\n",
    "    use_sparcs = has_sparcs \n",
    "    use_rcs = has_rcs & ~has_sparcs\n",
    "\n",
    "    f_megacam = np.full(len(master_catalogue), np.nan)\n",
    "    f_megacam[use_sparcs] = master_catalogue['f_cfht_megacam_' + band][use_sparcs]\n",
    "    f_megacam[use_rcs] = master_catalogue['f_rcs_' + band][use_rcs]\n",
    "\n",
    "    ferr_megacam = np.full(len(master_catalogue), np.nan)\n",
    "    ferr_megacam[use_sparcs] = master_catalogue['ferr_cfht_megacam_' + band][use_sparcs]\n",
    "    ferr_megacam[use_rcs] = master_catalogue['ferr_rcs_' + band][use_rcs]\n",
    "\n",
    "    m_megacam = np.full(len(master_catalogue), np.nan)\n",
    "    m_megacam[use_sparcs] = master_catalogue['m_cfht_megacam_' + band][use_sparcs]\n",
    "    m_megacam[use_rcs] = master_catalogue['m_rcs_' + band][use_rcs]\n",
    "    \n",
    "    merr_megacam = np.full(len(master_catalogue), np.nan)\n",
    "    merr_megacam[use_sparcs] = master_catalogue['merr_cfht_megacam_' + band][use_sparcs]\n",
    "    merr_megacam[use_rcs] = master_catalogue['merr_rcs_' + band][use_rcs]\n",
    "    \n",
    "    flag_megacam = np.full(len(master_catalogue), np.nan)\n",
    "    flag_megacam[use_sparcs] = master_catalogue['flag_cfht_megacam_' + band][use_sparcs]\n",
    "    flag_megacam[use_rcs] = master_catalogue['flag_rcs_' + band][use_rcs]\n",
    "\n",
    "\n",
    "    master_catalogue.add_column(Column(data=f_megacam, name=\"f_megacam_\" + band))\n",
    "    master_catalogue.add_column(Column(data=ferr_megacam, name=\"ferr_megacam_\" + band))\n",
    "    master_catalogue.add_column(Column(data=m_megacam, name=\"m_megacam_\" + band))\n",
    "    master_catalogue.add_column(Column(data=merr_megacam, name=\"merr_megacam_\" + band))\n",
    "    master_catalogue.add_column(Column(data=flag_megacam, name=\"flag_megacam_\" + band))\n",
    "\n",
    "    old_columns = ['f_cfht_megacam_' + band,\n",
    "                               'ferr_cfht_megacam_' + band,\n",
    "                               'm_cfht_megacam_' + band, \n",
    "                               'merr_cfht_megacam_' + band,\n",
    "                               'flag_cfht_megacam_' + band,\n",
    "                               'f_rcs_' + band,\n",
    "                               'ferr_rcs_' + band,\n",
    "                               'm_rcs_' + band, \n",
    "                               'merr_rcs_' + band,\n",
    "                               'flag_rcs_' + band]\n",
    "    \n",
    "    master_catalogue.remove_columns(old_columns)\n",
    "\n",
    "    origin = np.full(len(master_catalogue), '     ', dtype='<U5')\n",
    "    origin[use_sparcs] = \"SpARCS\"\n",
    "    origin[use_rcs] = \"RCSLenS\"\n",
    "    \n",
    "    megacam_origin.add_column(Column(data=origin, name= 'f_megacam_' + band ))\n",
    "    \n",
    "\n",
    "    megacam_stats['RCSLenS'][megacam_stats['Band'] == band] = np.sum(has_rcs)\n",
    "    megacam_stats['SpARCS'][megacam_stats['Band'] == band] = np.sum(has_sparcs)\n",
    "    megacam_stats['use RCSLenS'][megacam_stats['Band'] == band] = np.sum(use_rcs)\n",
    "    megacam_stats['use SpARCS'][megacam_stats['Band'] == band] = np.sum(use_sparcs)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#No aperture fluxes in rcs so just rename all the sparcs columns\n",
    "for col in master_catalogue.colnames:\n",
    "    if '_cfht_megacam_' in col:\n",
    "        master_catalogue[col].name = col.replace('_cfht_megacam_','_megacam_')\n",
    "        \n",
    "    if ('_rcs_' in col) and ('_ap_rcs_' not in col):\n",
    "        master_catalogue[col].name = col.replace('_rcs_','_megacam_')\n",
    "        \n",
    "    if '_ap_rcs_' in col:\n",
    "        master_catalogue.remove_columns(col)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "&lt;Table length=6&gt;\n",
       "<table id=\"table140013023107840-895595\" class=\"table-striped table-bordered table-condensed\">\n",
       "<thead><tr><th>idx</th><th>Band</th><th>SpARCS</th><th>use SpARCS</th><th>RCSLenS</th><th>use RCSLenS</th></tr></thead>\n",
       "<tr><td>0</td><td>u</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td></tr>\n",
       "<tr><td>1</td><td>g</td><td>772195.0</td><td>772195.0</td><td>718659.0</td><td>342382.0</td></tr>\n",
       "<tr><td>2</td><td>r</td><td>782280.0</td><td>782280.0</td><td>896254.0</td><td>453907.0</td></tr>\n",
       "<tr><td>3</td><td>i</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td></tr>\n",
       "<tr><td>4</td><td>z</td><td>708094.0</td><td>708094.0</td><td>548673.0</td><td>262486.0</td></tr>\n",
       "<tr><td>5</td><td>y</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td></tr>\n",
       "</table><style>table.dataTable {clear: both; width: auto !important; margin: 0 !important;}\n",
       ".dataTables_info, .dataTables_length, .dataTables_filter, .dataTables_paginate{\n",
       "display: inline-block; margin-right: 1em; }\n",
       ".paginate_button { margin-right: 5px; }\n",
       "</style>\n",
       "<script>\n",
       "require.config({paths: {\n",
       "    datatables: 'https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min'\n",
       "}});\n",
       "require([\"datatables\"], function(){\n",
       "    console.log(\"$('#table140013023107840-895595').dataTable()\");\n",
       "    $('#table140013023107840-895595').dataTable({\n",
       "        \"order\": [],\n",
       "        \"iDisplayLength\": 50,\n",
       "        \"aLengthMenu\": [[10, 25, 50, 100, 500, 1000, -1], [10, 25, 50, 100, 500, 1000, 'All']],\n",
       "        \"pagingType\": \"full_numbers\"\n",
       "    });\n",
       "});\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "megacam_stats.show_in_notebook()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n",
    "megacam_origin.write(\"{}/elais-n2_megacam_fluxes_origins{}.fits\".format(OUT_DIR, SUFFIX), overwrite=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## VII.a Wavelength domain coverage\n",
    "\n",
    "We add a binary `flag_optnir_obs` indicating that a source was observed in a given wavelength domain:\n",
    "\n",
    "- 1 for observation in optical;\n",
    "- 2 for observation in near-infrared;\n",
    "- 4 for observation in mid-infrared (IRAC).\n",
    "\n",
    "It's an integer binary flag, so a source observed both in optical and near-infrared by not in mid-infrared would have this flag at 1 + 2 = 3.\n",
    "\n",
    "*Note 1: The observation flag is based on the creation of multi-order coverage maps from the catalogues, this may not be accurate, especially on the edges of the coverage.*\n",
    "\n",
    "*Note 2: Being on the observation coverage does not mean having fluxes in that wavelength domain. For sources observed in one domain but having no flux in it, one must take into consideration de different depths in the catalogue we are using.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "wfc_moc = MOC(filename=\"../../dmu0/dmu0_INTWFC/data/en2_intwfc_v2.1_HELP_coverage_MOC.fits\")\n",
    "sparcs_moc = MOC(filename=\"../../dmu0/dmu0_SpARCS/data/SpARCS_HELP_ELAIS-N2_MOC.fits\")\n",
    "rcs_moc = MOC(filename=\"../../dmu0/dmu0_RCSLenS/data/RCSLenS_ELAIS-N2_MOC.fits\")\n",
    "ps1_moc = MOC(filename=\"../../dmu0/dmu0_PanSTARRS1-3SS/data/PanSTARRS1-3SS_ELAIS-N2_MOC.fits\")\n",
    "swire_moc = MOC(filename=\"../../dmu0/dmu0_DataFusion-Spitzer/data/DF-SWIRE_ELAIS-N2_MOC.fits\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "was_observed_optical = inMoc(\n",
    "    master_catalogue['ra'], master_catalogue['dec'],\n",
    "    wfc_moc + sparcs_moc + ps1_moc) \n",
    "\n",
    "#There are seemingly no MIR observations in ELAIS N2\n",
    "#was_observed_nir = inMoc(\n",
    "#    master_catalogue['ra'], master_catalogue['dec'],\n",
    "#    \n",
    "#)\n",
    "\n",
    "was_observed_mir = inMoc(\n",
    "    master_catalogue['ra'], master_catalogue['dec'],\n",
    "    swire_moc\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue.add_column(\n",
    "    Column(\n",
    "        1 * was_observed_optical +  4 * was_observed_mir, #2 * was_observed_nir +\n",
    "        name=\"flag_optnir_obs\")\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## VII.b Wavelength domain detection\n",
    "\n",
    "We add a binary `flag_optnir_det` indicating that a source was detected in a given wavelength domain:\n",
    "\n",
    "- 1 for detection in optical;\n",
    "- 2 for detection in near-infrared;\n",
    "- 4 for detection in mid-infrared (IRAC).\n",
    "\n",
    "It's an integer binary flag, so a source detected both in optical and near-infrared by not in mid-infrared would have this flag at 1 + 2 = 3.\n",
    "\n",
    "*Note 1: We use the total flux columns to know if the source has flux, in some catalogues, we may have aperture flux and no total flux.*\n",
    "\n",
    "To get rid of artefacts (chip edges, star flares, etc.) we consider that a source is detected in one wavelength domain when it has a flux value in **at least two bands**. That means that good sources will be excluded from this flag when they are on the coverage of only one band."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# SpARCS is a catalogue of sources detected in r (with fluxes measured at \n",
    "# this prior position in the other bands).  Thus, we are only using the r\n",
    "# CFHT band.\n",
    "# Check to use catalogue flags from HSC and PanSTARRS.\n",
    "nb_optical_flux = (\n",
    "    1 * ~np.isnan(master_catalogue['f_wfc_u']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_wfc_g']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_wfc_r']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_wfc_i']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_wfc_z']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_gpc1_g']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_gpc1_r']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_gpc1_i']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_gpc1_z']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_gpc1_y']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_megacam_u']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_megacam_g']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_megacam_r']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_megacam_i']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_megacam_z']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_megacam_y']) \n",
    ")\n",
    "\n",
    "nb_nir_flux = (\n",
    "    1 * np.zeros(len(master_catalogue), dtype=bool) \n",
    ")\n",
    "\n",
    "nb_mir_flux = (\n",
    "    1 * ~np.isnan(master_catalogue['f_irac_i1']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_irac_i2']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_irac_i3']) +\n",
    "    1 * ~np.isnan(master_catalogue['f_irac_i4'])\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "has_optical_flux = nb_optical_flux >= 2\n",
    "has_nir_flux = nb_nir_flux >= 2\n",
    "has_mir_flux = nb_mir_flux >= 2\n",
    "\n",
    "master_catalogue.add_column(\n",
    "    Column(\n",
    "        1 * has_optical_flux + 2 * has_nir_flux + 4 * has_mir_flux,\n",
    "        name=\"flag_optnir_det\")\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## VIII - Cross-identification table\n",
    "\n",
    "We are producing a table associating to each HELP identifier, the identifiers of the sources in the pristine catalogue. This can be used to easily get additional information from them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue['help_id', \n",
    "                 'wfc_id', \n",
    "                 'rcs_id', \n",
    "                 'swire_intid', \n",
    "                 'sparcs_intid',\n",
    "                 'ps1_id'].write(\n",
    "    \"{}/master_list_cross_ident_elais-n2{}.fits\".format(OUT_DIR, SUFFIX), overwrite=True)\n",
    "master_catalogue.remove_columns(['wfc_id', \n",
    "                                 'rcs_id', \n",
    "                                 'swire_intid',\n",
    "                                 'sparcs_intid', \n",
    "                                 'ps1_id'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## IX - Adding HEALPix index\n",
    "\n",
    "We are adding a column with a HEALPix index at order 13 associated with each source."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue.add_column(Column(\n",
    "    data=coords_to_hpidx(master_catalogue['ra'], master_catalogue['dec'], order=13),\n",
    "    name=\"hp_idx\"\n",
    "))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## IX - Saving the catalogue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "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",
    "    \n",
    "#columns += ['m_rcs_g', 'merr_rcs_g', 'f_rcs_g', 'ferr_rcs_g',\n",
    "#            'm_rcs_r', 'merr_rcs_r', 'f_rcs_r', 'ferr_rcs_r',\n",
    "#            'm_rcs_i', 'merr_rcs_i', 'f_rcs_i', 'ferr_rcs_i',\n",
    "#            'm_rcs_z', 'merr_rcs_z', 'f_rcs_z', 'ferr_rcs_z',\n",
    "#            'm_rcs_y', 'merr_rcs_y', 'f_rcs_y', 'ferr_rcs_y']\n",
    "\n",
    "columns += [ 'm_megacam_i', 'ferr_megacam_i', 'merr_megacam_i', 'flag_megacam_i', 'f_megacam_i',\n",
    "             'm_megacam_y', 'ferr_megacam_y', 'merr_megacam_y', 'flag_megacam_y', 'f_megacam_y']\n",
    "    \n",
    "columns += [\"stellarity\", \"stellarity_origin\", \"flag_cleaned\", \"flag_merged\", \"flag_gaia\", \"flag_optnir_obs\", \"flag_optnir_det\", \"ebv\",\n",
    "           'zspec_association_flag', 'zspec_qual', 'zspec']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Missing columns: {'flag_megacam_g', 'flag_gpc1_z', 'specz_id', 'flag_wfc_i', 'flag_megacam_u', 'flag_gpc1_y', 'flag_megacam_r', 'flag_wfc_g', 'flag_gpc1_r', 'flag_megacam_z', 'flag_gpc1_i', 'flag_wfc_z', 'flag_irac_i1', 'flag_wfc_r', 'flag_irac_i3', 'flag_irac_i2', 'flag_wfc_u', 'flag_gpc1_g', 'flag_irac_i4'}\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": 41,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "master_catalogue[columns].write(\"{}/master_catalogue_elais-n2{}.fits\".format(OUT_DIR, SUFFIX), 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
}
