{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Color-magnitude diagram: narrowband filters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this tutorial, we compute synthetic photometry for the VLT/SPHERE H2 and H3 filters from the [SpeX Prism Spectral Library](http://pono.ucsd.edu/~adam/browndwarfs/spexprism/index_old.html). Also, synthetic photometry is calculated from the AMES-Cond and AMES-Dusty isochrones and atmospheric model spectra. These are compared in a color-magnitude diagram with the photometric data of directly imaged planets."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Getting started"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import species\n",
    "import wget\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The isochrone will be extracted at an age of 20 Myr for 100 logarithmically spaced masses."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "age = 20.  # [Myr]\n",
    "masses = np.logspace(0., 4., 100)  # [Mjup]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, *species* is initiated by reading the configuration file from the working folder."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initiating species v0.1.1... [DONE]\n",
      "Creating species_config.ini... [DONE]\n",
      "Database: /Users/tomasstolker/applications/species/docs/tutorials/species_database.hdf5\n",
      "Data folder: /Users/tomasstolker/applications/species/docs/tutorials/data\n",
      "Working folder: /Users/tomasstolker/applications/species/docs/tutorials\n",
      "Creating species_database.hdf5... [DONE]\n",
      "Creating data folder... [DONE]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<species.core.setup.SpeciesInit at 0x12bdedfd0>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "species.SpeciesInit()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Adding data and models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A `Database` object is created which is used for adding data and models to the HDF5 database."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "database = species.Database()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The available [photometric data of directly imaged companions](https://github.com/tomasstolker/species/blob/master/species/data/companions.py) is added. Alternative, `add_object` can be used to manually add the properties of an object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding filter: LCO/VisAO.Ys... [DONE]\n",
      "Downloading Vega spectrum (270 kB)... [DONE]\n",
      "Adding Vega spectrum... [DONE]\n",
      "Adding filter: Paranal/NACO.J... [DONE]\n",
      "Adding filter: Gemini/NICI.ED286... [DONE]\n",
      "Adding filter: Paranal/NACO.H... [DONE]\n",
      "Adding filter: Paranal/NACO.Ks... [DONE]\n",
      "Adding filter: Paranal/NACO.NB374... [DONE]\n",
      "Adding filter: Paranal/NACO.Lp... [DONE]\n",
      "Adding filter: Paranal/NACO.NB405... [DONE]\n",
      "Adding filter: Paranal/NACO.Mp... [DONE]\n",
      "Adding object: beta Pic b... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_D_H23_2... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_D_H23_3... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_D_K12_1... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_D_K12_2... [DONE]\n",
      "Adding object: HIP 65426 b... [DONE]\n",
      "Adding filter: MKO/NSFCam.J... [DONE]\n",
      "Adding filter: MKO/NSFCam.H... [DONE]\n",
      "Adding filter: MKO/NSFCam.K... [DONE]\n",
      "Adding filter: Keck/NIRC2.Lp... [DONE]\n",
      "Adding filter: Keck/NIRC2.Ms... [DONE]\n",
      "Adding object: 51 Eri b... [DONE]\n",
      "Adding filter: Subaru/CIAO.z... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_B_J... [DONE]\n",
      "Adding filter: Keck/NIRC2.H... [DONE]\n",
      "Adding filter: Keck/NIRC2.Ks... [DONE]\n",
      "Adding object: HR 8799 b... [DONE]\n",
      "Adding object: HR 8799 c... [DONE]\n",
      "Adding object: HR 8799 d... [DONE]\n",
      "Adding object: HR 8799 e... [DONE]\n",
      "Adding filter: Gemini/GPI.H... [DONE]\n",
      "Adding filter: Gemini/GPI.K1... [DONE]\n",
      "Adding object: HD 95086 b... [DONE]\n",
      "Adding object: PDS 70 b... [DONE]\n",
      "Adding object: PDS 70 c... [DONE]\n",
      "Adding filter: HST/NICMOS1.F090M... [DONE]\n",
      "Adding filter: HST/NICMOS1.F110M... [DONE]\n",
      "Adding filter: HST/NICMOS1.F145M... [DONE]\n",
      "Adding filter: HST/NICMOS1.F160W... [DONE]\n",
      "Adding object: 2M1207 b... [DONE]\n",
      "Adding object: AB Pic B... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_B_H... [DONE]\n",
      "Adding object: HD 206893 B... [DONE]\n",
      "Adding filter: HST/WFPC2.f606w... [DONE]\n",
      "Adding filter: HST/WFPC2.f814w... [DONE]\n",
      "Adding filter: HST/NICMOS2.F171M... [DONE]\n",
      "Adding filter: HST/NICMOS2.F190N... [DONE]\n",
      "Adding filter: HST/NICMOS2.F215N... [DONE]\n",
      "Adding filter: Subaru/CIAO.CH4s... [DONE]\n",
      "Adding filter: Subaru/CIAO.K... [DONE]\n",
      "Adding filter: Subaru/CIAO.Lp... [DONE]\n",
      "Adding object: GQ Lup B... [DONE]\n",
      "Adding filter: Paranal/SPHERE.ZIMPOL_R_PRIM... [DONE]\n",
      "Adding filter: Paranal/SPHERE.ZIMPOL_I_PRIM... [DONE]\n",
      "Adding filter: Gemini/NIRI.H2S1v2-1-G0220... [DONE]\n",
      "Adding object: PZ Tel B... [DONE]\n",
      "Adding filter: Subaru/CIAO.J... [DONE]\n",
      "Adding filter: Subaru/CIAO.H... [DONE]\n",
      "Adding filter: Subaru/CIAO.Ks... [DONE]\n",
      "Adding filter: LBT/LMIRCam.M_77K... [DONE]\n",
      "Adding object: kappa And b... [DONE]\n",
      "Adding filter: Keck/NIRC2.J... [DONE]\n",
      "Adding object: ROXs 42 Bb... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_D_Y23_2... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_D_Y23_3... [DONE]\n",
      "Adding filter: Paranal/SPHERE.IRDIS_D_J23_3... [DONE]\n",
      "Adding filter: Subaru/IRCS.Lp... [DONE]\n",
      "Adding object: GJ 504 b... [DONE]\n",
      "Adding filter: Gemini/GMOS-S.z... [DONE]\n",
      "Adding filter: CFHT/Wircam.Y... [DONE]\n",
      "Adding filter: CFHT/Wircam.J... [DONE]\n",
      "Adding filter: CFHT/Wircam.H... [DONE]\n",
      "Adding filter: CFHT/Wircam.Ks... [DONE]\n",
      "Adding filter: WISE/WISE.W1... [DONE]\n",
      "Adding filter: WISE/WISE.W2... [DONE]\n",
      "Adding object: GU Psc b... [DONE]\n",
      "Adding object: 2M0103 ABb... [DONE]\n",
      "Adding filter: Gemini/NIRI.J-G0202w... [DONE]\n",
      "Adding filter: Gemini/NIRI.H-G0203w... [DONE]\n",
      "Adding filter: Gemini/NIRI.K-G0204w... [DONE]\n",
      "Adding filter: Gemini/NIRI.Lprime-G0207w... [DONE]\n",
      "Adding object: 1RXS 1609 B... [DONE]\n",
      "Adding filter: MKO/NSFCam.Kp... [DONE]\n",
      "Adding filter: MKO/NSFCam.Lp... [DONE]\n",
      "Adding object: GSC 06214 B... [DONE]\n"
     ]
    }
   ],
   "source": [
    "database.add_companion(name=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The spectra from the SpeX Prism Spectral Library are downloaded and added to the database. For each spectrum, the [SIMBAD Astronomical Database](http://simbad.u-strasbg.fr/simbad/) is queried for the SIMBAD name and parallax of the object. If the parallax is not available then several VizieR cataloges with data of brown dwarfs are queried (see [get_distance](https://github.com/tomasstolker/species/blob/master/species/data/queries.py)). A NaN value is stored for the distance if the parallax is not found. Therefore, these objects are not used in the color-magnitude diagram."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading SpeX Prism Spectral Library... [DONE]                               \n",
      "Adding filter: 2MASS/2MASS.H... [DONE]\n",
      "Adding SpeX Prism Spectral Library... 2MASS J13184794+1736117                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J13184794+1736117 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J213154.43-011939.3                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J21315444-0119374 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J04070885+1514565                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J09293364+3429527 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... 2MASSW J0929336+342952                    \r",
      "Adding SpeX Prism Spectral Library... 2MASSI J1807159+501531                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J14192618+5919047 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... 2MASS J14192618+5919047                   \r",
      "Adding SpeX Prism Spectral Library... 2MASS J15412408+5425598                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J04062677-3812102 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n",
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J03280716+3022432 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J16452207+3004071                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J04574903+3015195 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J00013044+1010146                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J01414839-1601196 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J18212815+1414010                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J12425052+2357231 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... 2MASS J12425052+2357231                   \r",
      "Adding SpeX Prism Spectral Library... 2MASS J22120703+3430351                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J03422594+3148496 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J121659.17+300306.3                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J18131803+5101246 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n",
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J16382073+1327354 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... 2MASS J18131803+5101246                   \r",
      "Adding SpeX Prism Spectral Library... 2MASS J16382073+1327354                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J05460407-0003228 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J20261584-2943124                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J01151621+3130061 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J104335.08+121314.1                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J19495702+6222440 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J14283132+5923354                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/.pyenv/versions/3.6.0/envs/general3.6/lib/python3.6/site-packages/astroquery/simbad/core.py:138: UserWarning: Warning: The script line number 3 raised an error (recorded in the `errors` attribute of the result table): Identifier not found in the database : 2MASS J14162394+1348363\n",
      "  (error.line, error.msg))\n",
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J14162394+1348363 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J074201.41+205520.5                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J03023398-1028223 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J12490872+4157286                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J13452562+5216337 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... SDSS J134525.57+521634.0                  \r",
      "Adding SpeX Prism Spectral Library... 2MASS J11145133-2618235                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J11181292-0856106 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n",
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J04382218+2553503 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J102109.69-030420.1                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J00150206+2959323 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J204317.69-155103.4                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J01340281+0508125 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J13571237+1428398                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J21555848+2345307 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J12373919+6526148                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J15575011-2952431 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J011912.22+240331.6                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J01191207+2403317 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J104842.84+011158.5                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J18282794+1453337 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J23515044-2537367                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J02425693+2123204 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASSW J1146345+223053                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J03431581+3210455 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J09243114+2143536                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J10595185+3042059 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASSI J2107316-030733                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J12474944-1117551 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J13313310+3407583                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J02055138-0759253 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASSW J0820299+450031                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J21513979+3402444 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J12373441+3028596                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J12373441+3028596 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J15561873+1300527                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J19163888-3700026 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... DENIS-P J1228.2-1547                      "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J01472702+4731142 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J05103520-4208140                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J13023811+5650212 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASSW J1728114+394859                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J17451618-2903156 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... LHS 217                                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J00025097+2454141 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... SDSS J000250.98+245413.8                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J21210987+6557255 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J075840.33+324723.4                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J11582077+0435014 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J18244344+2937133                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J20342948+6727398 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n",
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J19415458+6826021 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J21512543-2441000                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J05363776+1000232 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J05341594-0631397                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J05341594-0631397 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASSI J1047538+212423                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J14343616+2202463 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J003609.26+241343.3                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J00360925+2413434 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J17220990-1158127AB                 "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J23512200+3010540 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J15461461+4932114                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J15461461+4932114 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J10461875+4441149                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J03001631+2130205 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... SDSS J121951.45+312849.4                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J04190126+2802487 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... HN Peg B                                  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J10315064+3349595 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... 2MASS J02271036-1624479                   "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J01481478+1202447 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... DENIS-P J225210.73-173013.4               "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J04394748+2601407 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... DENIS J124514.1-442907                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J04480182-0557254 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\r",
      "Adding SpeX Prism Spectral Library... 2MASSI J1553022+153236                    "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/data/queries.py:209: UserWarning: No parallax was found for 2MASS J22274034+1753215 so storing a NaN value.\n",
      "  warnings.warn(f'No parallax was found for {target} so storing a NaN value.')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding SpeX Prism Spectral Library... [DONE]                                    \n"
     ]
    }
   ],
   "source": [
    "database.add_spectrum('spex')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The AMES-Cond en AMES-Dusty model spectra are also downloaded and included."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading AMES-Cond model spectra (823 MB)... [DONE]\n",
      "Unpacking AMES-Cond model spectra (823 MB)... [DONE]\n",
      "Adding AMES-Cond model spectra... [DONE]                                        \n"
     ]
    }
   ],
   "source": [
    "database.add_model(model='ames-cond',\n",
    "                   wavel_range=(0.5, 10.),\n",
    "                   teff_range=(100., 4000.),\n",
    "                   spec_res=1000.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading AMES-Dusty model spectra [Fe/H]=0.0 (106 MB)... [DONE]\n",
      "Unpacking AMES-Dusty model spectra [Fe/H]=0.0 (106 MB)... [DONE]\n",
      "Adding AMES-Dusty model spectra... [DONE]                                       \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tomasstolker/applications/species/species/util/data_util.py:268: UserWarning: Interpolation is not possible at the edge of the parameter grid. A NaN value is stored for Teff = 4000.0 K.\n",
      "  warnings.warn(f'Interpolation is not possible at the edge of the '\n"
     ]
    }
   ],
   "source": [
    "database.add_model(model='ames-dusty',\n",
    "                   wavel_range=(0.5, 10.),\n",
    "                   teff_range=(100., 4000.),\n",
    "                   spec_res=1000.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The AMES-Cond and AMES-Dusty isochones are downloaded."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'data/model.AMES-dusty.M-0.0.NaCo.Vega'"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wget.download('https://phoenix.ens-lyon.fr/Grids/AMES-Cond/ISOCHRONES/model.AMES-Cond-2000.M-0.0.NaCo.Vega',\n",
    "              out='data/model.AMES-Cond-2000.M-0.0.NaCo.Vega')\n",
    "wget.download('https://phoenix.ens-lyon.fr/Grids/AMES-Dusty/ISOCHRONES/model.AMES-dusty.M-0.0.NaCo.Vega',\n",
    "              out='data/model.AMES-dusty.M-0.0.NaCo.Vega')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And added to the database."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding isochrones: iso_ames-cond... [DONE]\n"
     ]
    }
   ],
   "source": [
    "database.add_isochrones(filename='data/model.AMES-Cond-2000.M-0.0.NaCo.Vega',\n",
    "                        isochrone_tag='iso_ames-cond')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding isochrones: iso_ames-dusty... [DONE]\n"
     ]
    }
   ],
   "source": [
    "database.add_isochrones(filename='data/model.AMES-dusty.M-0.0.NaCo.Vega',\n",
    "                        isochrone_tag='iso_ames-dusty')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Synthetic colors and magnitudes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For the narrowband filters of SPHERE, the synthetic colors and magnitudes are computed from the SpeX spectra. An object of `ReadColorMagnitude` is initiated."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "read_color = species.ReadColorMagnitude(library='spex',\n",
    "                                        filters_color=('Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3'),\n",
    "                                        filter_mag='Paranal/SPHERE.IRDIS_D_H23_2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All spectra are used and the colors and magnitudes are stored in a `ColorMagObject`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "colorbox = read_color.get_color_magnitude(object_type=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, the isochrone data is selected with the functionalities of `ReadIsochrone`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "read_iso_cond = species.ReadIsochrone(isochrone_tag='iso_ames-cond')\n",
    "read_iso_dusty = species.ReadIsochrone(isochrone_tag='iso_ames-dusty')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The atmospheric model for each of the isochrones is chosen together with an age and masses. The `get_color_magnitude` function will return a `ColorMagBox` object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "modelcolor1 = read_iso_cond.get_color_magnitude(age=age,\n",
    "                                                masses=masses,\n",
    "                                                model='ames-cond',\n",
    "                                                filters_color=('Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3'),\n",
    "                                                filter_mag='Paranal/SPHERE.IRDIS_D_H23_2')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "modelcolor2 = read_iso_dusty.get_color_magnitude(age=age,\n",
    "                                                 masses=masses,\n",
    "                                                 model='ames-dusty',\n",
    "                                                 filters_color=('Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3'),\n",
    "                                                 filter_mag='Paranal/SPHERE.IRDIS_D_H23_2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Selecting directly imaged planets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The directly imaged planets and brown dwarfs are selected by their database tag. The filters for the colors and magnitudes have to be present in the database."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "objects = [('HIP 65426 b', 'Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3', 'Paranal/SPHERE.IRDIS_D_H23_2'),\n",
    "           ('HR 8799 b', 'Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3', 'Paranal/SPHERE.IRDIS_D_H23_2'),\n",
    "           ('HR 8799 d', 'Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3', 'Paranal/SPHERE.IRDIS_D_H23_2'),\n",
    "           ('PZ Tel B', 'Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3', 'Paranal/SPHERE.IRDIS_D_H23_2')]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plotting a color-magnitude diagram"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The color-magnitude diagram is now created by providing the `ColorMagBox` objects, which will be interpreted by `plot_color_magnitude`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Plotting color-magnitude diagram: color_mag.png... [DONE]\n"
     ]
    }
   ],
   "source": [
    "species.plot_color_magnitude(boxes=[colorbox, modelcolor1, modelcolor2],\n",
    "                             objects=objects,\n",
    "                             mass_labels=[3., 5., 10., 20., 50., 100., 200., 500.],\n",
    "                             companion_labels=True,\n",
    "                             field_range=('late M', 'late T'),\n",
    "                             label_x='H2 - H3 [mag]',\n",
    "                             label_y='M$_\\mathregular{H2}$ [mag]',\n",
    "                             xlim=(-2.7, 1.8),\n",
    "                             ylim=(17.3, 4),\n",
    "                             offset=(-0.07, -0.1),\n",
    "                             legend=(0.07, 0.82),\n",
    "                             output='color_mag.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's have a look at the plot. As expected, towards later type objects, the colors becomes blue due to CH<sub>4</sub> absorption across the H3 filter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image('color_mag.png') "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
