{ "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 13:02:02.162814\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 to the nearest source in the merged catalogue to determine the best crossmatching 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": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAF3CAYAAABnvQURAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmUXGd57/vfU1NXVc+TxlZrsixZiuVJ2IDBBsxgA8GB\nmAAmcCEQ4ywgOYRcIGdIzjm5Kzc53OQQTgDjgEMCGB/APoGAwWa2wViWBHi2JVmypJZ6nqu7q6qr\n671/VFWr1JbULfWu2lXd389avbqGXV2Pyl7qn5797uc155wAAACweAG/CwAAAFgqCFYAAAAeIVgB\nAAB4hGAFAADgEYIVAACARwhWAAAAHiFYAQAAeIRgBQAA4BGCFQAAgEcIVgAAAB4J+fXGbW1tbsOG\nDX69PQAAwILt27dvwDnXPt9xvgWrDRs2aO/evX69PQAAwIKZ2ZGFHMepQAAAAI8QrAAAADxCsAIA\nAPAIwQoAAMAjBCsAAACPEKwAAAA8QrACAADwCMEKAADAIwQrAAAAjxCsAAAAPEKwAgAA8AjBCgAA\nwCMEKwAAAI+E/C5gubpz99F5j7n5qs4yVAIAALxCxwoAAMAjBCsAAACPEKwAAAA8QrACAADwCMEK\nAADAIwQrAAAAjxCsAAAAPEKwAgAA8AjBCgAAwCMEKwAAAI8QrAAAADxCsAIAAPAIwQoAAMAjBCsA\nAACPhPwuYCm6c/dRv0sAAAA+oGMFAADgEYIVAACARwhWAAAAHiFYAQAAeIRgBQAA4JF5g5WZ3WFm\nfWb2xBmef6eZPWZmj5vZQ2Z2ifdlAgAAVL6FdKy+JOn6szx/WNK1zrmLJf2VpNs9qAsAAKDqzDvH\nyjn3gJltOMvzDxXdfVhSx+LLAgAAqD5er7F6n6TvefwzAQAAqoJnk9fN7JXKBauXneWYWyTdIkmd\nnZ1evTUAAEBF8KRjZWY7JX1B0o3OucEzHeecu905t8s5t6u9vd2LtwYAAKgYiw5WZtYp6R5J73LO\n7V98SQAAANVp3lOBZvY1Sa+Q1GZmXZL+UlJYkpxzt0n6C0mtkj5rZpKUcc7tKlXBAAAAlWohVwW+\nY57n3y/p/Z5VBAAAUKWYvA4AAOARghUAAIBHCFYAAAAeIVgBAAB4hGAFAADgEYIVAACARwhWAAAA\nHiFYAQAAeIRgBQAA4BGCFQAAgEcIVgAAAB4hWAEAAHiEYAUAAOARghUAAIBHCFYAAAAeIVgBAAB4\nhGAFAADgEYIVAACARwhWAAAAHiFYAQAAeIRgBQAA4BGCFQAAgEcIVgAAAB4hWAEAAHiEYAUAAOAR\nghUAAIBHCFYAAAAeIVgBAAB4hGAFAADgEYIVAACARwhWAAAAHiFYAQAAeIRgBQAA4BGCFQAAgEcI\nVgAAAB4hWAEAAHiEYAUAAOARghUAAIBHCFYAAAAemTdYmdkdZtZnZk+c4Xkzs0+b2UEze8zMLve+\nTAAAgMq3kI7VlyRdf5bnb5C0Jf91i6TPLb4sAACA6jNvsHLOPSBp6CyH3CjpX13Ow5KazGy1VwUC\nAABUCy/WWK2VdKzoflf+MQAAgGWlrIvXzewWM9trZnv7+/vL+dYAAAAl50WwOi5pXdH9jvxjL+Cc\nu905t8s5t6u9vd2DtwYAAKgcXgSrb0t6d/7qwBdLGnXOdXvwcwEAAKpKaL4DzOxrkl4hqc3MuiT9\npaSwJDnnbpN0r6TXSzooaVLSe0tV7FKTSGX01d1H9JbLOtReX+N3OQAAYJHmDVbOuXfM87yT9EHP\nKlpGnuke05HBSf366LBeu2OV3+UAAIBFYvK6jw72JyRJz/aO+1wJAADwAsHKJ1nn9FxfQqGAqXs0\nqZHJtN8lAQCARSJY+aR3LKmJ9IyuvqBNEl0rAACWAoKVTw725U4DvnhTq5rjYT3bQ7ACAKDaEax8\n8lx/Qu11NWqMhbVtVYOe609oeibrd1kAAGARCFY+yGSzOjwwoc0r6iRJW1fVa3rG6VB+MTsAAKhO\nBCsfHBua0vSM0wXtuWC1sa1W4aDpGU4HAgBQ1QhWPjjYl5BJ2tReK0kKBwO6YEW9nu0ZV24sGAAA\nqEYEKx88159QR3NM0XBw9rFtK+s1MjWt3vGUj5UBAIDFIFiVWXJ6Rl3Dk7ogv76q4MJV9ZKkZ7vH\n/CgLAAB4gGBVZocHJpR1ml24XtAYC2tNY1TPMM8KAICqRbAqs4N9CYWDps7m+Aue27qqQUcHJzWZ\nyvhQGQAAWCyCVZkd7E9oY1utQsEXfvTbVtXLSdrfx9gFAACqEcGqjEanptU/ntLm9rrTPr+2Oaba\nSFDP9LDOCgCAakSwKqPn8gNA5y5cLwiYaeuqeh3oTWgmy9gFAACqDcGqjJ7rS6g2EtTKhugZj9m6\nqkFT0zM6OjRZxsoAAIAXCFZl4pzTwf6ENq+oU8DsjMcVprETrAAAqD4EqzLpG09pPJmZDU5nEosE\nFQsHNTyZLlNlAADAKwSrMukenZIkrWt54ZiFuVpqIxohWAEAUHUIVmUyNpWbTdUYC897bFM8rOGJ\n6VKXBAAAPEawKpPx5LQiwYBqQvN/5M3xiIYn02zIDABAlSFYlclYMqP6aEh2loXrBc3xsDJZp4EE\npwMBAKgmBKsyGU9Oqz46/2lAKdexkqSuYa4MBACgmhCsymQ837FaiKbaQrCaKmVJAADAYwSrMnDO\naSw5rYYFBqvm/AJ3ghUAANWFYFUGqUxW0zNuwacCa8JBxSNBHeNUIAAAVYVgVQZjydzohIbYwjpW\nUm6dFR0rAACqC8GqDMaTuRlWC+1YSbkrA1m8DgBAdSFYlcF4vmO10MXrUq5jdXx4illWAABUEYJV\nGRQ6Vg3n0LFqqo0olcmqP5EqVVkAAMBjBKsyGE9mFA7agqauFzTHuTIQAIBqQ7Aqg7H8cNCFTF0v\nODkklGAFAEC1IFiVwXgys+AZVgVNsx0rFrADAFAtCFZlMDa18O1sCmpCQbXURnRsiI4VAADVgmBV\nBuOphW9nU2xdc4yOFQAAVYRgVWKp6RmlM9lzuiKwoKM5ruOssQIAoGoQrErs5HDQc+9YdTTH1DUy\npWyWWVYAAFQDglWJjc0OBz2fjlVM6UxWA8yyAgCgKiwoWJnZ9Wb2rJkdNLNPnOb5RjP7dzN71Mye\nNLP3el9qdVpcxyouSTrG6UAAAKrCvMHKzIKSPiPpBknbJb3DzLbPOeyDkp5yzl0i6RWS/s7MIh7X\nWpVmN2A+z46VxMgFAACqxUI6VldKOuicO+ScS0u6S9KNc45xkuotNwGzTtKQpIynlVap8WRGoYAp\nGj73s65rZ4MVHSsAAKrBQn7br5V0rOh+V/6xYv8o6SJJJyQ9LulPnHNZTyqscmPJaTXEzm3qekE8\nElJrbYRgBQBAlfBq8frrJP1G0hpJl0r6RzNrmHuQmd1iZnvNbG9/f79Hb13ZxpMZ1dec+/qqgo6W\nOKcCAQCoEgsJVsclrSu635F/rNh7Jd3jcg5KOixp29wf5Jy73Tm3yzm3q729/XxrrirjyWnVx859\nfVVBR3OMjhUAAFViIcFqj6QtZrYxvyD97ZK+PeeYo5KukyQzWylpq6RDXhZarcaT5zd1vaCjOabj\nw8yyAgCgGsz7G985lzGzD0m6T1JQ0h3OuSfN7Nb887dJ+itJXzKzxyWZpI875wZKWHdVSGVmlDrP\nqesFHc1xpWey6k+ktLIh6mF1AADAawtqpTjn7pV075zHbiu6fULSa70trfotZoZVQfHIBYIVAACV\njcnrJbSYGVYF6xi5AABA1SBYlZAXHau1Tbnp6wQrAAAqH8GqhManFt+xikWCaquLMHIBAIAqQLAq\nocVMXS/W0RzXsSE6VgAAVDqCVQmNJadVHw2d19T1YrlZVnSsAACodASrEsrNsDr/04AFHc1xHR9h\nlhUAAJWOYFVCY8mMGhaxcL2gozmm6RmnvvGUB1UBAIBSIViV0Hhy2qOO1clZVgAAoHIRrEokncnm\np6570bFi5AIAANWAYFUi4/nhoHSsAABYPghWJTJWGA4aW3zHKhrOzbI6PkLHCgCASkawKhEvO1aS\ntLoxpu7RpCc/CwAAlAbBqkQK29k01Cy+YyVJqxqj6h4hWAEAUMkIViUylpxWMGCKRYKe/Lw1jVGd\nGOVUIAAAlYxgVSK54aCLn7pesKoxpvFkRolUxpOfBwAAvEewKpGx5PSiNl+ea01TVJLUQ9cKAICK\nRbAqkULHyiurG3MjF1jADgBA5SJYlYhXU9cLVjfmOlYsYAcAoHIRrEognckqOe3N1PWClQ35YEXH\nCgCAikWwKgGvZ1hJUiQUUFtdjbpZYwUAQMUiWJVAYYaVl2uspNwCdjpWAABULoJVCYzlO1ZeXhUo\nSasaonSsAACoYASrEihdxyrG4nUAACoYwaoEJlIZBUyeTV0vWNUY1XgqM7uGCwAAVBaCVQlMpDOK\nRUIKeDR1vaAwcqGHdVYAAFQkglUJTKRmVOtxt0rKnQqUGLkAAEClIliVwEQqo9oab9dXSbnF65JY\nwA4AQIUiWJXARLo0wWplQ1RmdKwAAKhUBKsSKNWpwNkhoVwZCABARSJYeWx6Jqup6ZmSdKwkaU1j\nVN1jBCsAACoRwcpjw5NpSSpZsFrVGFX3CGusAACoRAQrjw1N5IJVXYmC1erGGGusAACoUAQrjw0l\n8h2rEqyxknKzrBIMCQUAoCKVpq2yjA1OeHcq8M7dR1/w2KGBCUnSFx48rJUNUd18Veei3wcAAHiD\njpXHhjwMVqfTFMtt7Dw6RccKAIBKQ7Dy2OBEWiYpXqJTgQ0EKwAAKhbBymNDEynFIkHP9wksaIiG\nZSJYAQBQiQhWHhuaSKs2Urqla8GAqS4aIlgBAFCBCFYeG0ykVVtTmtOABY2xMMEKAIAKtKBgZWbX\nm9mzZnbQzD5xhmNeYWa/MbMnzexn3pZZPQYn0iVbuF5AsAIAoDLNG6zMLCjpM5JukLRd0jvMbPuc\nY5okfVbSm5xzOyS9tQS1VoVSnwqUTgYr51xJ3wcAAJybhXSsrpR00Dl3yDmXlnSXpBvnHHOzpHuc\nc0clyTnX522Z1WEm6zQ8WZ5TgelMVqlMtqTvAwAAzs1CgtVaSceK7nflHyt2oaRmM/upme0zs3d7\nVWA1GZlMy7nSzbAqaMyPXBjhdCAAABXFqwQQknSFpOskxST90sweds7tLz7IzG6RdIskdXYuvYnh\ns8NBy3AqUJLGCFYAAFSUhXSsjktaV3S/I/9YsS5J9znnJpxzA5IekHTJ3B/knLvdObfLObervb39\nfGuuWF5uZ3M2hWA1OkmwAgCgkiwkWO2RtMXMNppZRNLbJX17zjHfkvQyMwuZWVzSVZKe9rbUyndy\nO5vSrrGqLwwJZSNmAAAqyrytFedcxsw+JOk+SUFJdzjnnjSzW/PP3+ace9rMvi/pMUlZSV9wzj1R\nysIr0WCZTgUGA6b6aIiOFQAAFWZBCcA5d6+ke+c8dtuc+5+U9EnvSqs+Q4lcsIqXuGMlMcsKAIBK\nxOR1Dw1NpFQfDSkUKP3H2kCwAgCg4hCsPDQ4kVZrbaQs79XEkFAAACoOwcpDQxNptZQpWDXGwkrP\nZDWWzJTl/QAAwPwIVh4amkirta6mLO/VkB+50D06VZb3AwAA8yNYeajcpwIlqXs0WZb3AwAA8yNY\necQ5p+Eyngqc7ViNEKwAAKgUBCuPjE1llMm6sgWrwpBQTgUCAFA5CFYeGZxISZJa68oTrApDQk/Q\nsQIAoGIQrDxS2M6mpbY8i9clqSke0YkROlYAAFQKgpVHCtvZlGvxuiS11EZ0dGiybO8HAADOjmDl\nkZMdq/IFq+Z4RN2jU0pnsmV7TwAAcGYEK4/4EaxaaiPKOnE6EACACkGw8shgIq3aSFDRcOk3YC4o\nhLhjw5wOBACgEhCsPDI0kVJLma4ILCgEK9ZZAQBQGQhWHhmcSJf1ikBJqo+GFAkGCFYAAFQIgpVH\nhsq4nU1BwEwdzTEdI1gBAFARCFYeGSrjdjbF1rXEdWyIxesAAFQCgpUHnHNl3YC5WGdLnFOBAABU\nCIKVBybSM0pnsj51rGIanZrW6OR02d8bAACcimDlgaFE+WdYFXS2xCUxcgEAgEpAsPJAuTdgLrau\nEKw4HQgAgO8IVh4YTJR/A+aCQrBinRUAAP4jWHlgyIcNmAsaomE1xcMEKwAAKgDBygODhWDlw6lA\niSsDAQCoFAQrDwxNpBQNBxSPhHx5/3UtcXUNM8sKAAC/Eaw8kJthVf71VQXrmuPqGp7UTNb5VgMA\nACBYecKvqesFnS1xTc849YwlfasBAAAQrDxRCcFKko4Oss4KAAA/Eaw8MJjwZzubAoaEAgBQGQhW\nHvC7Y7W6KaqAMSQUAAC/EawWaSo9o6npGbX4NGpBksLBgNY0xRi5AACAzwhWizS7nY2PHSuJWVYA\nAFQCgtUiFaau+7GdTbHOlriODTHLCgAAPxGsFmlwNlj527Fa1xLXQCKlyXTG1zoAAFjOCFaLNJTw\nb5/AYoXNmOlaAQDgH4LVIs2eCvRx8bpUNMuKdVYAAPiGYLVIgxNphYOm+hp/9gksmJ1lRbACAMA3\nBKtFGkik1FZXIzPztY7meFi1kSAdKwAAfESwWqTesaRWNET9LkNmpnUtcTpWAAD4aEHBysyuN7Nn\nzeygmX3iLMe9yMwyZnaTdyVWtr6xlFbW+ztqoYBZVgAA+GveYGVmQUmfkXSDpO2S3mFm289w3N9K\nut/rIitZ73hSKyugYyXlrgw8Njwp55zfpQAAsCwtpGN1paSDzrlDzrm0pLsk3Xia4z4s6W5JfR7W\nV9GS0zMamZzWyobK6Vglp7PqT6T8LgUAgGVpIcFqraRjRfe78o/NMrO1kt4s6XPelVb5+sdzAWZF\nfWV0rLgyEAAAf3m1eP1Tkj7unMue7SAzu8XM9prZ3v7+fo/e2j9940lJ0ooK6VitY5YVAAC+Wsjw\npeOS1hXd78g/VmyXpLvyIwfaJL3ezDLOuX8rPsg5d7uk2yVp165dVb8QqHcs17GqlDVWHc0xSUxf\nBwDALwsJVnskbTGzjcoFqrdLurn4AOfcxsJtM/uSpO/MDVVLUe9YrmNVKcEqGg5qZUMNHSsAAHwy\nb7ByzmXM7EOS7pMUlHSHc+5JM7s1//xtJa6xYvWNpxQOmprjYb9LmdXZEtfRQYIVAAB+WNA+LM65\neyXdO+ex0wYq59x7Fl9WdegdS2pFfdT3qevFNrfX6b4ne+Scq6i6AABYDpi8vgh9Y6mKWbhesG1V\nvYYnp2fXfwEAgPIhWC1C71hSKytk1ELBRasbJElPd4/5XAkAAMsPwWoReseSFTMctGBbIVj1EKwA\nACg3gtV5Sk7PaCyZqYgNmIs1xsJa2xTT093jfpcCAMCyQ7A6T31jhanrldWxkqSLVtdzKhAAAB8Q\nrM5T73hlzbAqdtHqBh3qTyg5PeN3KQAALCsEq/NUacNBi21b1aCskw70JvwuBQCAZYVgdZ4q/VSg\nxJWBAACUG8HqPPWOJxUJBtRUQVPXC9a31ioWDnJlIAAAZUawOk+F4aCVON08GDBduIoF7AAAlBvB\n6jzlZlhV3vqqgu2r6/V097icc36XAgDAskGwOk+5fQIrb31VwUWrGzQ6Na2e/CJ7AABQegSr89Q3\nnqrojtW2VWxtAwBAuRGszsNkOqPxZKbiNmAutm32ykAmsAMAUC4Eq/NQGLVQaRswF2uIhtXRHKNj\nBQBAGRGszkMlDwcttm1VA8EKAIAyIlidh77x/HDQCj4VKOWuDDw8MMHWNgAAlEnI7wKq0WzHqgJO\nBd65++gZnxtIpJV10v7ece3saCpjVQAALE90rM5D33hKNaGAGmKVnUtXN+aCH6cDAQAoD4LVeSgM\nB63EqevFmmsjigQDXBkIAECZEKzOQ99YqqKHgxYEzLSyoYaOFQAAZUKwOg+945W9nU2x1Y25kQts\nbQMAQOkRrM5DYQPmarCqMaqxZEYnRtnaBgCAUiNYnaNEKqNEKlNFHatcnc9wOhAAgJIjWJ2jvvyo\nhWpYYyWdHGLKOisAAEqPYHWOCsNBq6VjFQ0Hta4lxpWBAACUAcHqHJ3czqY6OlaSdBFb2wAAUBYE\nq3NU2IB5RZV0rCTp0s4mHRqYUN84C9gBACglgtU56h1LKhoOqL6msqeuF7tmS7sk6ecHBnyuBACA\npY1gdY76xlNVMXW92PbVDWqtjeiB/f1+lwIAwJJGsDpHvWPJith8+VwEAqaXbWnTzw8OKJtlUCgA\nAKVCsDpHfePVMxy02Mu3tGsgkdbTPSxiBwCgVAhW58A5N7sBc7W5ZkubJOmB/ayzAgCgVAhW5yCR\nymgyPVM1w0GLrWiIatuqej14gHVWAACUSvVc2lYBqm046FzXXNiuL/3ieU2mM4pH+E8PADg3d+4+\nOu8xN1/VWYZKKhe/Xc9BYThoNa6xkqSXb2nT7Q8c0u5DQ3rlthV+lwMAqCALCU2YH8HqHBSGg1Zr\nx+pFG1pUEwrogQP9BCsAWEKyWaeBiZT6xlLqT6TUP57SQCKlgfG0hifTOtiX0EzWKetyX85JbXU1\nWtsc09qmmNrraxSoojFClYxgdQ56q2wD5rmi4aCu2tTKPCsAqBLOOU2kZ9Q3llTPWFJ9Yyn15m/3\njiXVM5rUof4JjSWndbppOjWhgOKRoELBgIJmClhuBI9z0t4jQ/rlodyLIsGAVjdF9ZJNrdrZ0VTm\nP+XSsqBgZWbXS/oHSUFJX3DO/c2c598p6eOSTNK4pD9yzj3qca2+6xtPKR4Jqq6Kpq7Pdc2WNv0/\n331ax0emtLYp5nc5ALDsZLNOw5NpDU6kNZBIaTCR1tBEWoOJlAYm0hrId5sKnafkdPYFPyMeCWpV\nQ1SrGqPa2Farhlg49xUNqb4mpLpoWHU1IUVCZ75GLeuc+sdTOj4ypeMjU3quL6G79hzTE8dH9aZL\n11b17zo/zfupmVlQ0mckvUZSl6Q9ZvZt59xTRYcdlnStc27YzG6QdLukq0pRsJ96xpJaUV9TVVPX\n57rmwnbpu0/rwf39evuVy3uBIQB4qXA67sRIUt/ce0xjyYzGktMan8p9T6QySiQzmkhnTttdMpNa\n4hG11kXUXl+jyzubNZhIq64mpLpoSA3RsBpiue/RcHDR9QbMtLIhqpUNUV3e2ayZrNODB/r1o2f6\ndOiH+3XjpWt18drGRb/PcrOQOHqlpIPOuUOSZGZ3SbpR0mywcs49VHT8w5I6vCyyUhzun1Bna63f\nZSzKlhV1WtUQ1YMHBghWAHAOktMzue7OcK7DcyJ/+8TolE6MJNU9OqXpmVMTU8CkupqQGmJhNcbC\nWtsUmw1KtTWh3O2a3O14JOjrOqdgwPSKrSu0bXWD7t7Xpa89clRPrG3UjZesUZzu1YIt5JNaK+lY\n0f0unb0b9T5J31tMUZVoJuv0XH9CV1/Q6ncpi2JmevmWNt3/VK9msk7BQPV23wDAKzPZ3GmxE6NT\n6s6HpEJ4OjGS1ImRKQ1OpE95jUlqiIXVFAurKR7Whta4GuMRNRWdlqutCVXdovBVDVHdeu3mXPfq\n6T6NTKZ1yzWb+X2xQJ5GUDN7pXLB6mVneP4WSbdIUmdndXVLjg5NKpXJasvKer9LWbSXX9iub+zr\n0mNdI7qss9nvcgCgpDIzWQ0k0uoZS6pndErdo8mTXyO5+71jSWXmnJ+LhAKzoWlTe50uX18IURE1\nxcNqiIaXbNgodK9aaiO6a88x/fDpXr1uxyq/y6oKCwlWxyWtK7rfkX/sFGa2U9IXJN3gnBs83Q9y\nzt2u3Por7dq1q6p2A362Z1ySdOESCFYvu6BNZtKDBwYIVgCqUjqT1chkWkOTaQ1PTOdGC+S/BhO5\nReG9+SvoBhKpF6xpCgVs9vRce32NLlhRp6Z47n5jLKymWETRcKCq19R6YWdHk57rT+hn+/u1qb1W\nW1ZU/+/AUltIsNojaYuZbVQuUL1d0s3FB5hZp6R7JL3LObff8yorwIHeXLDasqLO50oWr6U2oovX\nNuqB/f364+u2+F0OACiVmdFgIj07f6nwfWhiWsOTuavmhifzXxO5heCnEzCpNpJbw1QfDamzJa4d\naxpnF30XwlRtJLjsQ9NCveHiNToyOKlv7O3Sh191geqjYb9LqmjzBivnXMbMPiTpPuXGLdzhnHvS\nzG7NP3+bpL+Q1Crps/n/UTPOuV2lK7v89vcl1NEcU+0SWcD38i1tuu1nh9Q/nlJ7lc7lAlAdMjNZ\ndY8mZxd+d+dPx/WMJvVU95hGp6Y1mZ457WsjoYBqI0HFIyHV1gTVWlujzua4Yvn78UhodgxOXU1I\nMZ8XgC9FkVBAb7+yU5/9yUF9c1+X/q+XbuAzPosFpQTn3L2S7p3z2G1Ft98v6f3ellZZDvSOL4nT\ngAVvubxDn/nJc7pz91H9yavpWgE4f8npmdwVckVXzHUNT+nXR4c1PDmtsalpzV37EY8E1RjLrVNa\n1xxXQyyk+pqw6qK5gFSfX/gdDp55DhPKZ1VDVG/YuVrf+s0J/fzAQG50D05rabRfSmx6Jqvn+hO6\nduvS+R9pc3udrr2wXV/ZfUR/9IrNZx0iB2D5cs5pZHJax/OLvE/kr5TrKgpR/fkN6guCAdOqhqjC\nwYA2tdWqKX5ywXdzLKLGeJjAVIWu3NCi5/oSuv+pHm1oq1VnS9zvkioSwWoBjgxOaHrGaesS6lhJ\n0nuv3qD3/PMe3ft4t37nsrV+lwPAB5PpzOwMpu6RpE6MTunBAwManZrWyOS0RqfSL5jNFAqYGmNh\nNccjWt8S1yUdjSeDUzyypK+WW87MTG++rENdIwf0f37dpQ+/agunBE+DYLUA+3sTkpbGFYHFrtnS\nrk1ttfrnh54nWAFLUGYmq56x5OwcpsKMptzt3PfRqelTXmP5gZaNsbBWNtRo68o6NcUjuSvl8p0n\nFn4vX7FIUK/dvkpf33tMT54YYzL7aRCsFuDZnnGZ5U6fLSWBgOk9V2/QX3zrSf3q6LAuZ/QCUFUK\ni8KPDU+qa3hKXUP57/lTdD1jSc3MmTMQCwdnRwpsW1U/G5gaY7nw1BALKRTgNB3ObGdHo378TJ9+\n8kyfdqzMjb9ZAAAVpUlEQVRpoGs1B8FqAQ70jauzJa5YZPF7M/nhzt1Hz/jczIxTTSigL/3ieYIV\nUIHGk9M6OjSpY0OTOjI4qaNDua8jg5M6MTJ1ylBLk2aDUnt9jbasrFNTLHeKrikWVmM8rJpQdf49\nhsoRMNOrtrXr63u79NSJMf0WXatTEKwWYH9vYsmdBiyoCQe1a32z7n28W//x9RdpVWPU75KAZWUq\nPZO/im5y9mq6Y/kgdXRoUsOTp56qi4WDaq2LqDke0ca2WrXEI2qujag5f5qOtU0oh50dTfrxM336\n8TN92k7X6hQEq3mkMjN6fmBCr9ux0u9SSuYlm9v00KFBfXX3EX30tVv9LgdYMsaT07PTv3tGk/kt\nVZKnzHGau/9cwKSmeEQttRFtWVGvltpccGqpjaglHqnazjmWloCZXrl1hb6xj67VXASreRwemFAm\n65Zsx0rKTWK/bttK3bn7qD74ygsUDfMXN3A22azTwEQqv1lvbp+5wvee/PfesaQmTjP0sniN06b2\nOl2xPjx7NV1TPKL6aPVt2ovlaWdHk37yLF2ruQhW8yhcEbjU90f6g6s36Oane/Xvj57QW3etm/8F\nwBKWnJ5R1/DUKUMvC7dPjE6pdzSl9Ez2lNcETLNbpjREQ7pkXdMp9wu3mRmHpSIYoGt1OgSreRzo\nHVcwYNrUXut3KSX1ks2t2rqyXv/8i+d10xUdXEqNJa0QnGavphsuuppueFIDiReenmuI5hZ/N8cj\n2tham+86nbySrraGThOWn0LX6ifP0rUqIFjN49meca1vjS/502NmpvdevUGfuOdxfffxbr1x5xq/\nSwLO20zW6cRIfhH48KSODU3lrqzL3x5IvHBSeFN+4OWG1lpduq55djF4UzzMwEvgDIq7Vk93j2nH\nGrpWBKt5HOhLLLmJ62dy0xUd+tqeY/rP//aErtzQohUNXCGIypXOZHVseFLPD0zo+cFJHRmc0JHB\nST1xfFQjk9OacSfHEAQsN4aguTaiDa1xXdbZpOZ896k5HlEd65qA83bKFYKrG/wux3cEq7NITs/o\nyOCEfnvnar9LKYtQMKC//71L9Pp/eFAfv/sx3fGeF3FKEL7KzGR1fGRKhwcmTvl6fnBCx4enVDz7\nsj4a0vrWuFY3xbRjTaNaayNqyY8laIzRcQJKJRgwXXthu+759XE91z/hdzm+I1idxXP9CWWddOGq\n5dGxknLT5f/8hm36r//+lO7ac0zvuLLT75KwxDnn1DuW0qGBhJ4fmNThgcRsgDo6NHnKPnU1oYDa\n6mrUWhfRBe31aquLqLWuRq21EcXZZgXwzSXrmnT/U736+cF+v0vxHcHqLPb3jktaensEzufdL9mg\nHzzdq7/6zlO6enObOlvZwRyL45zTQCKt5wcn8qfuCt2n3Km8qemTYwlCAZsNTy/d3JYLT7U1aquv\nYY86oEKFgwG9ZHOrfvBUr57tGdfWZdSQmItgdRb7exMKBUwbWpf2FYFzBQKmT950iV73qQf00W/8\nRnfd8hJOo2Be2axT91hSRwYndHRwUkeGJnV0cFLPD07oYF9CqczJ8QQBk5rjEbXV1ejyzqZc16ku\nova6GjXEwqx3AqrQVRta9NNn+/RPDx7S//fWS/wuxzcEq7M40DuuTe21y3LuzJqmmP7bm3boT7/+\nqL7w4CF94NrNfpeECjA6OZ0fUXDySrvCPnZdw1OnzHYKB00dzXGtb42rIRZWa22+81QXYesVYAmK\n14R0xfoWfes3x/V/v26rVi7TC6AIVmexvzehizuW76Wjb75sre5/sld/d/9+XdbZrCs3tvhdEkos\nkcrMhqau4Un98KleDU9Oa3gyreHJtJLTpw7FjIYDs1utXLWpRS358NRaG1FjnM4TsNxcvblVjxwe\n1L889Lw+dv02v8vxBcHqDCbTGR0dmtTvXt7hdyllcefuo6d9/PL1zdp7ZEg3/9PDuu33r9Crty/d\nPROXg9GpaR0fnprd9Dc3EHNKXSO52yNzNvwNB212JMH61vjs7Wb2rQNwGq11Nbr+t1bpKw8f0Qdf\neYFqa5ZfzFh+f+IFOtiX28rmwpV1Plfir7qakG65ZrP+5aHn9YGv7NPf/u5O3XTF8gib1SabdRpI\npHJbsMzZhqUrH6bGk5lTXhMOmpriETXHw9q6sn72diE8sVgcwLn6w5dv0r2P9+jre4/pvVdv9Luc\nsiNYnUFhj8DlNGrhTOpqQnr/yzbqR8/06c++8aiGJlK65RrWXJWTc05jyYy6R6fUPZLUiaLvJ0am\ndGIkqe7RqVNGE0i5U3VNsdz08B1rGmeniRe+E5wAeO2yzmbtWt+sL/78sN714vUKBZfXOmWC1Rns\n7x1XJBjQ+hZGDUhSTTioL75nl/7064/qr+99RoOJtD5xwzZ+KXvAOafxVEY9o0l1jybVM3oyKHXn\nH+semdJEeuaU1wVMqo+G1RQPqzke1sa23P51TbGTW7Es9a2YAFSmP7xmkz7w5X36/pM9y26LNILV\nGezPXxG43JL22dSEgvr02y9TSzyizz9wSL8+OqL/8sbty3qB/3wm0xn1j6dmv3rHkuoZS6lvLKne\n8aR6RnNfc0OTKdcpbIyH1RgLa+e6JjXFwrPBqTEeUT3bsACoUK++aKU2ttXq9gcO6Q0Xr15W/wgn\nWJ3GVHpGe58f1hsuXh5b2ZyLYMD032/coR1rGvTJ+57Vmz7zc73lsg597PrlcWntTNZpeDKtwURa\ng4mUBiZy3wcTaQ0Wbk+kNZBIaWA89YLAJElBM9XHQmqIhlUfDemSdU1qjIXVEAurMZoLT/WxkEIB\nQj2A6hQMmD5wzSZ94p7Hdf9TvXrdjlV+l1Q2BKvT+P6T3UqkMnrz5Wv9LqUimZnefmWnXr9ztT7z\nk4P6558/r3sf79at127W+16+UXVVeBVIIpXJdZHGUuobT6pvLKX+RK7L9HjXqBKpjMaT05pMz8id\n5vUmqbYmpLqakGprgmqMhdXRFFN9NKy6mpDqornnGmJhxSNBOk0AlrybrujQPz14SP/j+8/oum0r\nls0ZoOr7DVgG39jbpXUtMV25gblNxU43kmF9S63++Lot+v4T3fqfP9yvz/70oF61bYXeuHONXrVt\nhe+X4zvnNDSRnl2r1JNft9QzllTvWFL7exIaTU4rncm+4LWhgKk+H4haaiPqbImrLho6GaAiQdXW\n5O4TlgDgVKFgQB+7fps+8OV9+vreLt181fLYe5ZgNcexoUk99NygPvLqCxVgMvSCtNRGdPNV63Vs\naFKT6Yy++3iPvvdEj2LhoK67aIWuubBd21c36IIVdZ4ups5mnQYn0rl1S6OnLvY+MTKlnrHc7bmh\nKRgwrayv0crGqFY01OiClXVqzJ+Wa4iFVZ/vLNWEAstqXQAAeO2121fqivXN+p8/3K/fuWyN4pGl\nHzuW/p/wHN39qy6ZSb97BacBz9W6lrhuvqpTf/HbO7T70KD+/bFuff+Jbn3nsW5JuavYNrbVatvq\nBq1vyW1zUh/NrTUqBJnpmaymZ7JKZ5ymZ7Kamp7R8ERaQ5Pp3PeJaQ1OpNSb7zpl55yXC5hOrlWK\nh9XZEs+tX8pfPdcQDauORd8AUBZmpv/4+m363c/9Ul988LA+fN0Wv0sqOYJVkWzW6e5fdemlm1vV\n0cyYhfNRfLrw4rWN2rGmQUOJtLrzXaWesaQePTai7z/Ro5m5qegsIsHc1inNtRG11Ib14k2tGpxI\nqyHfZWrIL/omNAFAZblifYteu32lPv/AId18Vada62r8LqmkCFZFdh8e0rGhKX30NVv9LmXJCJip\nrb5GbfU1unjtybEMzjlNzzhNTc8omf+annEKBUzBgCkUNAXNFA4GFK8JKhLktBwAVKuPXb9Nr/vU\nA/pfPz6o//qmHX6XU1IEqyLf2HdM9TWhZXVZqF/MTJGQKRIKqDEW9rscAEAJXbCiTr+3a52+uvuI\n3nv1Bq1vrfW7pJJZHtc+LkAildH3Hu/RGy9Z4/uVbAAALDUfefUWhQIBffK+Z/0upaQIVnnffeyE\npqZn2GAYAIASWNEQ1R++fKO+81i3vv3oCb/LKRmCVd4393VpU3utLu9s8rsUAACWpA++6gJduaFF\nf/aNR7XvyJDf5ZQEwUrS4YEJ7Xl+WG+9Yh0LpAEAKJGaUFCff9cVWtMY1R/+6z4dHZz0uyTPEawk\nfXPfMQVMegtb2AAAUFLNtRHd8Z4XKeuc3vOlRzQ6Oe13SZ5a9sHqYF9Cdz1yTNde2L4sNhEGAMBv\nm9rr9Pnfv0LHhiZ161f2nXZbsWq1rIPVviNDuum2h2QmffyGbX6XAwDAsnHVplb9j5t26peHBvWf\n/s/jyp7D0OhKtmznWP3gqV596M5faXVjVP/6B1eps5VJ6wAAlNObL+vQ4YFJffpHB/R0z5j+yxu2\n66pNrX6XtSgL6liZ2fVm9qyZHTSzT5zmeTOzT+eff8zMLve+VO987ZGj+sCX92rbqnrd/UcvJVQB\nAOCTj7x6iz71tks1mEjrbbc/rFu/vE/PD0z4XdZ5m7djZWZBSZ+R9BpJXZL2mNm3nXNPFR12g6Qt\n+a+rJH0u/71iOOf0XP+EvrHvmD7/s0N65dZ2feadly+LnbYBAKhUZqbfuWytXrdjlb7w4CF97mfP\n6UfP9OrdL9mgN+xcre2rGxQNV8/g7oWkiislHXTOHZIkM7tL0o2SioPVjZL+1TnnJD1sZk1mtto5\n1+15xQuUyszo8a5R7Xl+WPuODGnfkWEN5688eOsVHfrrt1yscHBZLzEDAKBixCJBffi6LXrbi9bp\n7+7frzt+cVhf/PlhhQKmravqtbOjSZd0NGplY1QN0ZDqo2HV57/XRoIVMy5pIcFqraRjRfe79MJu\n1OmOWSvJt2D11Ikx3XTbLyVJm9pq9eqLVmrXhmbt2tCize11fpUFAADOYkVDVH9700796Wsv1K+P\njujRrhE91jWi7zx2Ql975OhpX/OOKzv1/77l4jJXenplPQ9mZrdIuiV/N2FmZdkw6Iikn5TjjU5q\nkzRQ3rdclvicS4/PuDz4nMuDz7kM3unDe/5N/qvE1i/koIUEq+OS1hXd78g/dq7HyDl3u6TbF1JY\nNTOzvc65XX7XsdTxOZcen3F58DmXB58zymEhi4z2SNpiZhvNLCLp7ZK+PeeYb0t6d/7qwBdLGvVz\nfRUAAIAf5u1YOecyZvYhSfdJCkq6wzn3pJndmn/+Nkn3Snq9pIOSJiW9t3QlAwAAVKYFrbFyzt2r\nXHgqfuy2ottO0ge9La2qLfnTnRWCz7n0+IzLg8+5PPicUXKWy0QAAABYLAY5AQAAeIRg5aH5tv7B\n4pnZHWbWZ2ZP+F3LUmZm68zsJ2b2lJk9aWZ/4ndNS5GZRc3sETN7NP85/ze/a1qqzCxoZr82s+/4\nXQuWNoKVR4q2/rlB0nZJ7zCz7f5WtSR9SdL1fhexDGQkfdQ5t13SiyV9kP+fSyIl6VXOuUskXSrp\n+vyV1fDen0h62u8isPQRrLwzu/WPcy4tqbD1DzzknHtA0pDfdSx1zrlu59yv8rfHlfuFtNbfqpYe\nl5PI3w3nv1j46jEz65D0Bklf8LsWLH0EK++caVsfoKqZ2QZJl0na7W8lS1P+FNVvJPVJ+oFzjs/Z\ne5+S9DFJWb8LwdJHsAJwRmZWJ+luSf/BOTfmdz1LkXNuxjl3qXI7VlxpZr/ld01LiZm9UVKfc26f\n37VgeSBYeWdB2/oA1cLMwsqFqq865+7xu56lzjk3oty2pqwh9NbVkt5kZs8rt0TjVWb2FX9LwlJG\nsPLOQrb+AaqCmZmkL0p62jn3937Xs1SZWbuZNeVvxyS9RtIz/la1tDjn/tw51+Gc26Dc38s/ds79\nvs9lYQkjWHnEOZeRVNj652lJX3fOPelvVUuPmX1N0i8lbTWzLjN7n981LVFXS3qXcv+6/03+6/V+\nF7UErZb0EzN7TLl/nP3AOcc4AKCKMXkdAADAI3SsAAAAPEKwAgAA8AjBCgAAwCMEKwAAAI8QrAAA\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": [ "" ] }, "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": [ "" ] }, "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": [ "" ] }, "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": [ "" ] }, "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": [ "<Table length=10>\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
idxwfc_idradecwfc_stellaritym_ap_wfc_umerr_ap_wfc_um_wfc_umerr_wfc_um_ap_wfc_gmerr_ap_wfc_gm_wfc_gmerr_wfc_gm_ap_wfc_rmerr_ap_wfc_rm_wfc_rmerr_wfc_rm_ap_wfc_imerr_ap_wfc_im_wfc_imerr_wfc_im_ap_wfc_zmerr_ap_wfc_zm_wfc_zmerr_wfc_zf_ap_wfc_uferr_ap_wfc_uf_wfc_uferr_wfc_uflag_wfc_uf_ap_wfc_gferr_ap_wfc_gf_wfc_gferr_wfc_gflag_wfc_gf_ap_wfc_rferr_ap_wfc_rf_wfc_rferr_wfc_rflag_wfc_rf_ap_wfc_iferr_ap_wfc_if_wfc_iferr_wfc_iflag_wfc_if_ap_wfc_zferr_ap_wfc_zf_wfc_zferr_wfc_zflag_wfc_zwfc_flag_cleanedwfc_flag_gaiaflag_mergedrcs_idrcs_stellaritym_rcs_gmerr_rcs_gm_rcs_rmerr_rcs_rm_rcs_imerr_rcs_im_rcs_zmerr_rcs_zm_rcs_ymerr_rcs_yf_rcs_gferr_rcs_gflag_rcs_gf_rcs_rferr_rcs_rflag_rcs_rf_rcs_iferr_rcs_iflag_rcs_if_rcs_zferr_rcs_zflag_rcs_zf_rcs_yferr_rcs_yflag_rcs_yrcs_flag_cleanedrcs_flag_gaiaps1_idm_ap_gpc1_gmerr_ap_gpc1_gm_gpc1_gmerr_gpc1_gm_ap_gpc1_rmerr_ap_gpc1_rm_gpc1_rmerr_gpc1_rm_ap_gpc1_imerr_ap_gpc1_im_gpc1_imerr_gpc1_im_ap_gpc1_zmerr_ap_gpc1_zm_gpc1_zmerr_gpc1_zm_ap_gpc1_ymerr_ap_gpc1_ym_gpc1_ymerr_gpc1_yf_ap_gpc1_gferr_ap_gpc1_gf_gpc1_gferr_gpc1_gflag_gpc1_gf_ap_gpc1_rferr_ap_gpc1_rf_gpc1_rferr_gpc1_rflag_gpc1_rf_ap_gpc1_iferr_ap_gpc1_if_gpc1_iferr_gpc1_iflag_gpc1_if_ap_gpc1_zferr_ap_gpc1_zf_gpc1_zferr_gpc1_zflag_gpc1_zf_ap_gpc1_yferr_ap_gpc1_yf_gpc1_yferr_gpc1_yflag_gpc1_yps1_flag_cleanedps1_flag_gaiasparcs_intidsparcs_stellaritym_ap_cfht_megacam_umerr_ap_cfht_megacam_uf_ap_cfht_megacam_uferr_ap_cfht_megacam_um_cfht_megacam_umerr_cfht_megacam_uf_cfht_megacam_uferr_cfht_megacam_uflag_cfht_megacam_um_ap_cfht_megacam_gmerr_ap_cfht_megacam_gf_ap_cfht_megacam_gferr_ap_cfht_megacam_gm_cfht_megacam_gmerr_cfht_megacam_gf_cfht_megacam_gferr_cfht_megacam_gflag_cfht_megacam_gm_ap_cfht_megacam_rmerr_ap_cfht_megacam_rf_ap_cfht_megacam_rferr_ap_cfht_megacam_rm_cfht_megacam_rmerr_cfht_megacam_rf_cfht_megacam_rferr_cfht_megacam_rflag_cfht_megacam_rm_ap_cfht_megacam_zmerr_ap_cfht_megacam_zf_ap_cfht_megacam_zferr_ap_cfht_megacam_zm_cfht_megacam_zmerr_cfht_megacam_zf_cfht_megacam_zferr_cfht_megacam_zflag_cfht_megacam_zsparcs_flag_cleanedsparcs_flag_gaiaswire_intidf_ap_irac_i1ferr_ap_irac_i1f_irac_i1ferr_irac_i1swire_stellarityf_ap_irac_i2ferr_ap_irac_i2f_irac_i2ferr_irac_i2f_ap_irac_i3ferr_ap_irac_i3f_irac_i3ferr_irac_i3f_ap_irac_i4ferr_ap_irac_i4f_irac_i4ferr_irac_i4m_ap_irac_i1merr_ap_irac_i1m_irac_i1merr_irac_i1flag_irac_i1m_ap_irac_i2merr_ap_irac_i2m_irac_i2merr_irac_i2flag_irac_i2m_ap_irac_i3merr_ap_irac_i3m_irac_i3merr_irac_i3flag_irac_i3m_ap_irac_i4merr_ap_irac_i4m_irac_i4merr_irac_i4flag_irac_i4swire_flag_cleanedswire_flag_gaia
degdegmagmagmagmagmagmagmagmaguJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJy
0220090301969250.82843744440.74598491030.015.6050.02315.5950.02314.9730.02214.0740.02214.8830.01613.4850.01614.4020.01913.190.01913.2110.03412.8910.0342079.744.05592098.9444.4635False3722.275.42218519.22172.622749582False4043.8959.59314655.5215.971112251False6297.96110.21219230.9336.534278467False18862.5590.68273752925327.9793.149FalseFalse2True-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
1220090302902250.68531609140.88710845530.013.8790.02313.8310.023nannannannan14.7390.01613.240.01614.3770.02213.1560.022nannannannan10195.3215.97510656.1225.737FalsenannannannanFalse4617.4268.044918365.4270.642250776False6444.66130.58619842.7402.066722512FalsenannannannanFalseFalse2False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
2220090301149250.95157192940.82512769130.014.6510.02314.6510.023nannannannan14.9540.01613.6910.01614.7810.02213.5210.022nannannannan5007.26106.0735007.26106.073FalsenannannannanFalse3787.9155.820712122.7178.64690721False4442.2290.011514177.5287.275288254FalsenannannannanFalseFalse2False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
3314999200495247.28221455941.63170241130.015.2970.02615.2960.02615.0130.0214.2240.0214.6740.01613.7380.01614.8010.02413.6430.02413.7860.04413.6010.0442761.8566.13772764.466.1986False3587.5766.08547419.93136.680211872False4902.372.24311609.1171.078547835False4361.1496.402212670.7280.08312732False11107.1450.11975988713170.4533.738FalseFalse2False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
4314999102182247.44769434341.35909419230.013.8280.02613.8070.02614.830.0213.120.0214.5420.01612.8950.01614.3470.02413.0020.02412.9840.04412.890.04410685.6255.88710894.3260.885False4246.1978.217820511.6377.837978303False5536.0581.582225234.8371.873617172False6625.21146.44922866.5505.460008979False23248.8942.16750562225351.31027.37FalseFalse2False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
5314988102790247.34497517841.69641781030.014.2290.02714.1660.02714.9040.02912.2580.02914.6220.01611.5420.01614.1750.02211.4040.02212.6320.0611.1220.067385.84183.677827.08194.643False3966.43105.94345373.21211.91835031False5142.875.787287740.51292.99104214False7762.47157.28999632.22018.82232726False32151.41776.75213665129181.07138.83FalseFalse3False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
6314988402536247.73883291641.88108874730.015.9670.02715.2350.027nannannannan18.7870.01618.9960.018nannannannannannannannan1490.0537.05442924.1572.7176FalsenannannannanFalse110.9681.6352991.53771.51756753621FalsenannannannanFalsenannannannanFalseFalse0False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
7314988101417247.5565983941.79530593630.019.8270.02819.8690.02817.0250.02917.0270.02915.8740.01615.8730.01614.780.02214.7060.02213.8410.0614.8470.0642.57941.0980840.96381.05641False562.34115.0201561.30614.9924727157False1623.323.92191624.823.9439252764False4446.3190.09454759.9296.4490724728False10558.4583.4812112154180.23231.008FalseFalse2False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
8314999101430247.57189841341.46031435330.020.5750.02920.6640.0317.4550.0217.4750.0216.1180.01616.120.01615.0030.02414.9010.02414.0070.04413.9590.04421.37960.57104919.6970.544248False378.4426.97117371.5356.84392696712False1296.5819.10711294.1919.0719533712False3620.7680.03623977.4187.9198163748False9061.49367.2215305279471.09383.821FalseFalse2False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
9219995402361248.89081642540.34975873330.014.2710.02914.210.02914.9780.02113.0390.02114.8230.01612.9380.016nannannannan13.1660.03612.0210.0367105.59189.797516.23200.758False3705.171.66322100.4427.459560335False4273.6662.97924254.9357.433795929FalsenannannannanFalse19660.7651.89534425756441.71871.45FalseFalse2False-1nannannannannannannannannannannannannanFalsenannanFalsenannanFalsenannanFalsenannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0-1nannannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalsenannannannannannannannanFalseFalse0-1nannannannannannannannannannannannannannannannannannannannannanFalsenannannannanFalsenannannannanFalsenannannannanFalseFalse0
\n", "\n" ], "text/plain": [ "" ] }, "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='" ] }, "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='\n", "idxBandSpARCSuse SpARCSRCSLenSuse RCSLenS\n", "0u0.00.00.00.0\n", "1g772195.0772195.0718659.0342382.0\n", "2r782280.0782280.0896254.0453907.0\n", "3i0.00.00.00.0\n", "4z708094.0708094.0548673.0262486.0\n", "5y0.00.00.00.0\n", "\n", "\n" ], "text/plain": [ "" ] }, "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(\"{}/lockman-swire_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_wfc_i', 'flag_irac_i3', 'flag_wfc_g', 'flag_gpc1_r', 'specz_id', 'flag_irac_i1', 'flag_megacam_g', 'flag_wfc_u', 'flag_gpc1_i', 'flag_megacam_r', 'flag_wfc_z', 'flag_gpc1_g', 'flag_irac_i2', 'flag_gpc1_y', 'flag_irac_i4', 'flag_megacam_z', 'flag_wfc_r', 'flag_megacam_u', 'flag_gpc1_z'}\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 }