{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Comparison of data and model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this tutorial, the photometric fluxes of the brown dwarf companion PZ Tel B is compared with a spectrum from the AMES-Cond atmospheric model."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Initiating *species*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import species"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initiating species v0.1.0... [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 0x12556b5f8>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "species.SpeciesInit()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Adding model spectra"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A `Database` object is now created which can be used for importing of data into the database."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "database = species.Database()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The spectra of the AMES-Cond model are downloaded and added to the database. This requires sufficient disk storage in the *data_folder* that is set in the configuration file.\n",
    "\n",
    "While the full AMES-Cond grid is downloaded, a restiction on the wavelength and T<sub>eff</sub> range can be used when the data is imported. Also the spectral resolution can be set to downsample the high-resolution of the original spectra spectra."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "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.1, 6.),\n",
    "                   teff_range=(2800., 3000.),\n",
    "                   spec_res=1000.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Adding companion data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The distance and magnitudes of PZ Tel B are added to the database. This will automatically download the filter transmission profiles and a flux calibrated spectrum of Vega, which are used for the flux calibration."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding filter: Paranal/SPHERE.ZIMPOL_R_PRIM... [DONE]\n",
      "Downloading Vega spectrum (270 kB)... [DONE]\n",
      "Adding Vega spectrum... [DONE]\n",
      "Adding filter: Paranal/SPHERE.ZIMPOL_I_PRIM... [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 filter: Paranal/NACO.J... [DONE]\n",
      "Adding filter: Paranal/NACO.H... [DONE]\n",
      "Adding filter: Paranal/NACO.Ks... [DONE]\n",
      "Adding filter: Paranal/NACO.Lp... [DONE]\n",
      "Adding filter: Paranal/NACO.NB405... [DONE]\n",
      "Adding filter: Paranal/NACO.Mp... [DONE]\n",
      "Adding filter: Gemini/NICI.ED286... [DONE]\n",
      "Adding filter: Gemini/NIRI.H2S1v2-1-G0220... [DONE]\n",
      "Adding object: PZ Tel B... [DONE]\n"
     ]
    }
   ],
   "source": [
    "database.add_companion(name='PZ Tel B')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Alternatively, the `add_object` method of `Database` can be used for manually adding magnitudes and spectra of an individual object. Before coninuing, let's check the content of the database."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Database content:\n",
      "- filters: <HDF5 group \"/filters\" (2 members)>\n",
      "\t- Gemini: <HDF5 group \"/filters/Gemini\" (2 members)>\n",
      "\t\t- NICI.ED286: <HDF5 dataset \"NICI.ED286\": shape (2, 387), type \"<f4\">\n",
      "\t\t- NIRI.H2S1v2-1-G0220: <HDF5 dataset \"NIRI.H2S1v2-1-G0220\": shape (2, 129), type \"<f4\">\n",
      "\t- Paranal: <HDF5 group \"/filters/Paranal\" (12 members)>\n",
      "\t\t- NACO.H: <HDF5 dataset \"NACO.H\": shape (2, 23), type \"<f4\">\n",
      "\t\t- NACO.J: <HDF5 dataset \"NACO.J\": shape (2, 20), type \"<f4\">\n",
      "\t\t- NACO.Ks: <HDF5 dataset \"NACO.Ks\": shape (2, 27), type \"<f4\">\n",
      "\t\t- NACO.Lp: <HDF5 dataset \"NACO.Lp\": shape (2, 31), type \"<f4\">\n",
      "\t\t- NACO.Mp: <HDF5 dataset \"NACO.Mp\": shape (2, 18), type \"<f4\">\n",
      "\t\t- NACO.NB405: <HDF5 dataset \"NACO.NB405\": shape (2, 67), type \"<f4\">\n",
      "\t\t- SPHERE.IRDIS_D_H23_2: <HDF5 dataset \"SPHERE.IRDIS_D_H23_2\": shape (2, 113), type \"<f4\">\n",
      "\t\t- SPHERE.IRDIS_D_H23_3: <HDF5 dataset \"SPHERE.IRDIS_D_H23_3\": shape (2, 180), type \"<f4\">\n",
      "\t\t- SPHERE.IRDIS_D_K12_1: <HDF5 dataset \"SPHERE.IRDIS_D_K12_1\": shape (2, 175), type \"<f4\">\n",
      "\t\t- SPHERE.IRDIS_D_K12_2: <HDF5 dataset \"SPHERE.IRDIS_D_K12_2\": shape (2, 191), type \"<f4\">\n",
      "\t\t- SPHERE.ZIMPOL_I_PRIM: <HDF5 dataset \"SPHERE.ZIMPOL_I_PRIM\": shape (2, 189), type \"<f4\">\n",
      "\t\t- SPHERE.ZIMPOL_R_PRIM: <HDF5 dataset \"SPHERE.ZIMPOL_R_PRIM\": shape (2, 169), type \"<f4\">\n",
      "- models: <HDF5 group \"/models\" (1 members)>\n",
      "\t- ames-cond: <HDF5 group \"/models/ames-cond\" (4 members)>\n",
      "\t\t- flux: <HDF5 dataset \"flux\": shape (3, 13, 4097), type \"<f4\">\n",
      "\t\t- logg: <HDF5 dataset \"logg\": shape (13,), type \"<f4\">\n",
      "\t\t- teff: <HDF5 dataset \"teff\": shape (3,), type \"<f4\">\n",
      "\t\t- wavelength: <HDF5 dataset \"wavelength\": shape (4097,), type \"<f4\">\n",
      "- objects: <HDF5 group \"/objects\" (1 members)>\n",
      "\t- PZ Tel B: <HDF5 group \"/objects/PZ Tel B\" (3 members)>\n",
      "\t\t- Gemini: <HDF5 group \"/objects/PZ Tel B/Gemini\" (2 members)>\n",
      "\t\t\t- NICI.ED286: <HDF5 dataset \"NICI.ED286\": shape (4,), type \"<f4\">\n",
      "\t\t\t- NIRI.H2S1v2-1-G0220: <HDF5 dataset \"NIRI.H2S1v2-1-G0220\": shape (4,), type \"<f4\">\n",
      "\t\t- Paranal: <HDF5 group \"/objects/PZ Tel B/Paranal\" (12 members)>\n",
      "\t\t\t- NACO.H: <HDF5 dataset \"NACO.H\": shape (4,), type \"<f4\">\n",
      "\t\t\t- NACO.J: <HDF5 dataset \"NACO.J\": shape (4,), type \"<f4\">\n",
      "\t\t\t- NACO.Ks: <HDF5 dataset \"NACO.Ks\": shape (4,), type \"<f4\">\n",
      "\t\t\t- NACO.Lp: <HDF5 dataset \"NACO.Lp\": shape (4,), type \"<f4\">\n",
      "\t\t\t- NACO.Mp: <HDF5 dataset \"NACO.Mp\": shape (4,), type \"<f4\">\n",
      "\t\t\t- NACO.NB405: <HDF5 dataset \"NACO.NB405\": shape (4,), type \"<f4\">\n",
      "\t\t\t- SPHERE.IRDIS_D_H23_2: <HDF5 dataset \"SPHERE.IRDIS_D_H23_2\": shape (4,), type \"<f4\">\n",
      "\t\t\t- SPHERE.IRDIS_D_H23_3: <HDF5 dataset \"SPHERE.IRDIS_D_H23_3\": shape (4,), type \"<f4\">\n",
      "\t\t\t- SPHERE.IRDIS_D_K12_1: <HDF5 dataset \"SPHERE.IRDIS_D_K12_1\": shape (4,), type \"<f4\">\n",
      "\t\t\t- SPHERE.IRDIS_D_K12_2: <HDF5 dataset \"SPHERE.IRDIS_D_K12_2\": shape (4,), type \"<f4\">\n",
      "\t\t\t- SPHERE.ZIMPOL_I_PRIM: <HDF5 dataset \"SPHERE.ZIMPOL_I_PRIM\": shape (4,), type \"<f4\">\n",
      "\t\t\t- SPHERE.ZIMPOL_R_PRIM: <HDF5 dataset \"SPHERE.ZIMPOL_R_PRIM\": shape (4,), type \"<f4\">\n",
      "\t\t- distance: <HDF5 dataset \"distance\": shape (2,), type \"<f4\">\n",
      "- spectra: <HDF5 group \"/spectra\" (1 members)>\n",
      "\t- calibration: <HDF5 group \"/spectra/calibration\" (1 members)>\n",
      "\t\t- vega: <HDF5 dataset \"vega\": shape (3, 8827), type \"<f4\">\n"
     ]
    }
   ],
   "source": [
    "database.list_content()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reading model spectra"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Model spectra are read from the database by creating an object of `ReadModel`. The model name and optionally a wavelength range should be provided. The wavelength range should fit within the range that was specified in `add_model`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "readmodel = species.ReadModel(model='ames-cond',\n",
    "                              wavel_range=(0.1, 6.))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Before extracting a spectrum, let's check which parameters are required for the AMES-Cond models."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['teff', 'logg']"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "readmodel.get_parameters()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And also the grid boundaries that are stored in the database."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'teff': (2800.0, 3000.0), 'logg': (0.0, 6.0)}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "readmodel.get_bounds()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The parameters are provided in a dictionary. Make sure to chose values within the grid boundaries. The radius (R<sub>Jup</sub>) and distance (pc) will scale the emitted spectrum to the observer. Without these values, the spectrum is provided at the outermost layer of the atmosphere."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_param = {'teff': 2900., 'logg': 4.5, 'radius': 2.2, 'distance': 47.13}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The grid of spectra is linearly interpolated at a spectral resolution of 100 and stored in a `ModelBox`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "modelbox = readmodel.get_model(model_param=model_param,\n",
    "                               spec_res=100.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reading companion data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The photometry data of PZ Tel B are also read from the database and stored in an `ObjectBox`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Getting object: PZ Tel B... [DONE]\n"
     ]
    }
   ],
   "source": [
    "objectbox = database.get_object(object_name='PZ Tel B')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Synthetic photometry for all filters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For comparison, we create synthetic photometry from the model spectrum for all filters of PZ Tel B, which are stored in a `SynphotBox`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating synthetic photometry... [DONE]\n"
     ]
    }
   ],
   "source": [
    "synphotbox = species.multi_photometry(datatype='model',\n",
    "                                      spectrum='ames-cond',\n",
    "                                      filters=objectbox.filters,\n",
    "                                      parameters=model_param)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Creating flux residuals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `get_residuals` function is used to calculate the difference between the observed fluxes and the synthetic photometry of the model spectrum. The residuals are stored in a `ResidualsBox`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating synthetic photometry... [DONE]\n",
      "Calculating residuals... [DONE]\n"
     ]
    }
   ],
   "source": [
    "residualsbox = species.get_residuals(datatype='model',\n",
    "                                     spectrum='ames-cond',\n",
    "                                     parameters=model_param,\n",
    "                                     filters=objectbox.filters,\n",
    "                                     objectbox=objectbox,\n",
    "                                     inc_phot=True,\n",
    "                                     inc_spec=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Opening Box objects"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `open_box` function can be used to view the content of a `Box` object. For example, the `ModelBox` contains several attributes, including the wavelength points and flux densities."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Opening ModelBox...\n",
      "\n",
      "model = ames-cond\n",
      "type = None\n",
      "wavelength = [0.1       0.1001    0.1002001 ... 5.739604  5.7453437 5.751089 ]\n",
      "flux = [7.69244319e-10 6.23827156e-09 1.04784443e-05 ... 3.85241479e-16\n",
      " 3.84432439e-16 3.83581166e-16]\n",
      "parameters = {'teff': 2900.0, 'logg': 4.5, 'radius': 2.2, 'distance': 47.13, 'mass': 61.7508434070773}\n",
      "quantity = flux\n"
     ]
    }
   ],
   "source": [
    "modelbox.open_box()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Similarly, an `ObjectBox` contains a dictionary with the apparent magnitudes and a dictionary with the flux densities."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Opening ObjectBox...\n",
      "\n",
      "name = PZ Tel B\n",
      "filters = ['Gemini/NICI.ED286', 'Gemini/NIRI.H2S1v2-1-G0220', 'Paranal/NACO.H', 'Paranal/NACO.J', 'Paranal/NACO.Ks', 'Paranal/NACO.Lp', 'Paranal/NACO.Mp', 'Paranal/NACO.NB405', 'Paranal/SPHERE.IRDIS_D_H23_2', 'Paranal/SPHERE.IRDIS_D_H23_3', 'Paranal/SPHERE.IRDIS_D_K12_1', 'Paranal/SPHERE.IRDIS_D_K12_2', 'Paranal/SPHERE.ZIMPOL_I_PRIM', 'Paranal/SPHERE.ZIMPOL_R_PRIM']\n",
      "magnitude = {'Gemini/NICI.ED286': array([11.68,  0.14], dtype=float32), 'Gemini/NIRI.H2S1v2-1-G0220': array([11.39,  0.14], dtype=float32), 'Paranal/NACO.H': array([11.93,  0.14], dtype=float32), 'Paranal/NACO.J': array([12.47,  0.2 ], dtype=float32), 'Paranal/NACO.Ks': array([11.53,  0.07], dtype=float32), 'Paranal/NACO.Lp': array([11.04,  0.22], dtype=float32), 'Paranal/NACO.Mp': array([10.93,  0.03], dtype=float32), 'Paranal/NACO.NB405': array([10.94,  0.07], dtype=float32), 'Paranal/SPHERE.IRDIS_D_H23_2': array([11.78,  0.19], dtype=float32), 'Paranal/SPHERE.IRDIS_D_H23_3': array([11.65,  0.19], dtype=float32), 'Paranal/SPHERE.IRDIS_D_K12_1': array([11.56,  0.09], dtype=float32), 'Paranal/SPHERE.IRDIS_D_K12_2': array([11.29,  0.1 ], dtype=float32), 'Paranal/SPHERE.ZIMPOL_I_PRIM': array([15.16,  0.12], dtype=float32), 'Paranal/SPHERE.ZIMPOL_R_PRIM': array([17.84,  0.31], dtype=float32)}\n",
      "flux = {'Gemini/NICI.ED286': array([2.7825625e-14, 3.5979198e-15], dtype=float32), 'Gemini/NIRI.H2S1v2-1-G0220': array([1.0590437e-14, 1.3693687e-15], dtype=float32), 'Paranal/NACO.H': array([1.9687588e-14, 2.5456521e-15], dtype=float32), 'Paranal/NACO.J': array([3.1106848e-14, 5.7625536e-15], dtype=float32), 'Paranal/NACO.Ks': array([1.1241627e-14, 7.2527667e-16], dtype=float32), 'Paranal/NACO.Lp': array([2.0200626e-15, 4.1212692e-16], dtype=float32), 'Paranal/NACO.Mp': array([9.1877844e-16, 2.5390018e-17], dtype=float32), 'Paranal/NACO.NB405': array([1.6704631e-15, 1.0777336e-16], dtype=float32), 'Paranal/SPHERE.IRDIS_D_H23_2': array([2.5412999e-14, 4.4699182e-15], dtype=float32), 'Paranal/SPHERE.IRDIS_D_H23_3': array([2.4269955e-14, 4.2688669e-15], dtype=float32), 'Paranal/SPHERE.IRDIS_D_K12_1': array([1.1547812e-14, 9.5833011e-16], dtype=float32), 'Paranal/SPHERE.IRDIS_D_K12_2': array([1.1428121e-14, 1.0540576e-15], dtype=float32), 'Paranal/SPHERE.ZIMPOL_I_PRIM': array([1.0862880e-14, 1.2030557e-15], dtype=float32), 'Paranal/SPHERE.ZIMPOL_R_PRIM': array([1.8263311e-15, 5.2856905e-16], dtype=float32)}\n",
      "distance = 47.130001068115234\n",
      "spectrum = None\n"
     ]
    }
   ],
   "source": [
    "objectbox.open_box()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The attributes in the `Box` objects can be extracted for further analyis or manual plots, for example:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.1      , 0.1001   , 0.1002001, ..., 5.739604 , 5.7453437,\n",
       "       5.751089 ], dtype=float32)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "modelbox.wavelength"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plotting spectra, fluxes and filters"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `Box` objects can provided as list to `plot_spectrum`, which will be interpreted accordingly. Optionally, the filter names can be included for plotting the transmission profiles and the `ResidualsBox` can be included for showing the residuals. The `ObjectBox` requires a color for the photometry data and a spectrum with the latter set to `None` in this case."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Plotting spectrum: spectrum.png... [DONE]\n"
     ]
    }
   ],
   "source": [
    "species.plot_spectrum(boxes=[modelbox, objectbox, synphotbox],\n",
    "                      filters=objectbox.filters,\n",
    "                      residuals=residualsbox,\n",
    "                      colors=('darkblue', ('black', None), 'black'),\n",
    "                      offset=(-0.08, -0.06),\n",
    "                      xlim=(0.2, 5.5),\n",
    "                      ylim=(-3e-15, 4.8e-14),\n",
    "                      legend='upper right',\n",
    "                      output='spectrum.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's have a look at the result. The plot is stored in the working folder. The black squares are the photometry data of PZ Tel B and the open squares are the synthetic photometry computed from the model spectrum. The residuals are shown relative to the uncertainties on the fluxes."
   ]
  },
  {
   "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('spectrum.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
}
