{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Comparing photometric fluxes and model spectra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this tutorial, we will compare the photometric fluxes of the brown dwarf companion PZ Tel B with a synthetic spectrum from the ATMO grid." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Initiating *species*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start by importing *species*." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import species" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And initiating the workflow with the [SpeciesInit](https://species.readthedocs.io/en/latest/species.core.html#species.core.init.SpeciesInit) class. This will create the configuration file and the HDF5 database." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Initiating species v0.5.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": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "species.SpeciesInit()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding model spectra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We create now a [Database](https://species.readthedocs.io/en/latest/species.data.html#species.data.database.Database) object which is used for importing various data into the database." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "database = species.Database()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The spectra of ATMO are downloaded and added to the database with the [add_model](https://species.readthedocs.io/en/latest/species.data.html#species.data.database.Database.add_model) method of [Database](https://species.readthedocs.io/en/latest/species.data.html#species.data.database.Database). This requires sufficient disk storage in the *data_folder* that is set in the configuration file. The full ATMO grid is downloaded but the `teff_range` parameter can be used to only import a certain $T_\\mathrm{eff}$ range into the database." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading ATMO model spectra (425 MB)... [DONE]\n", "Unpacking ATMO model spectra (425 MB)... [DONE]\n", "Please cite Phillips et al. (2020) when using ATMO in a publication\n", "Reference URL: https://ui.adsabs.harvard.edu/abs/2020A%26A...637A..38P/abstract\n", "Wavelength range (um) = 0.4 - 6000\n", "Spectral resolution = 10000\n", "Teff range (K) = 2500.0 - 3000.0\n", "Adding ATMO model spectra... [DONE] \n", "Grid points stored in the database:\n", " - Teff = [2500. 2600. 2700. 2800. 2900. 3000.]\n", " - log(g) = [2.5 3. 3.5 4. 4.5 5. 5.5]\n" ] } ], "source": [ "database.add_model('atmo', teff_range=(2500., 3000.))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding companion data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we add the parallax and magnitudes of PZ Tel B to the database with the `add_companion`` method. This will automatically download the required filter profiles and a flux-calibrated spectrum of Vega. These are used to convert the magnitudes into fluxes." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading Vega spectrum (270 kB)... [DONE]\n", "Adding Vega spectrum... [DONE]\n", "Adding object: PZ Tel B [DONE]\n" ] } ], "source": [ "database.add_companion('PZ Tel B', verbose=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, the [add_object](https://species.readthedocs.io/en/latest/species.data.html#species.data.database.Database.add_object) method of [Database](https://species.readthedocs.io/en/latest/species.data.html#species.data.database.Database) can be used for manually adding magnitudes and spectra of an individual object. Before continuing, 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: \n", "\t- Gemini: \n", "\t\t- NICI.ED286: \n", "\t\t\t- det_type: energy\n", "\t\t- NIRI.H2S1v2-1-G0220: \n", "\t\t\t- det_type: energy\n", "\t- Paranal: \n", "\t\t- NACO.H: \n", "\t\t\t- det_type: energy\n", "\t\t- NACO.J: \n", "\t\t\t- det_type: energy\n", "\t\t- NACO.Ks: \n", "\t\t\t- det_type: energy\n", "\t\t- NACO.Lp: \n", "\t\t\t- det_type: energy\n", "\t\t- NACO.Mp: \n", "\t\t\t- det_type: energy\n", "\t\t- NACO.NB405: \n", "\t\t\t- det_type: energy\n", "\t\t- SPHERE.IRDIS_D_H23_2: \n", "\t\t\t- det_type: energy\n", "\t\t- SPHERE.IRDIS_D_H23_3: \n", "\t\t\t- det_type: energy\n", "\t\t- SPHERE.IRDIS_D_K12_1: \n", "\t\t\t- det_type: energy\n", "\t\t- SPHERE.IRDIS_D_K12_2: \n", "\t\t\t- det_type: energy\n", "\t\t- SPHERE.ZIMPOL_I_PRIM: \n", "\t\t\t- det_type: energy\n", "\t\t- SPHERE.ZIMPOL_R_PRIM: \n", "\t\t\t- det_type: energy\n", "- models: \n", "\t- atmo: \n", "\t\t- flux: \n", "\t\t- logg: \n", "\t\t- teff: \n", "\t\t- wavelength: \n", "- objects: \n", "\t- PZ Tel B: \n", "\t\t- Gemini: \n", "\t\t\t- NICI.ED286: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- NIRI.H2S1v2-1-G0220: \n", "\t\t\t\t- n_phot: 1\n", "\t\t- Paranal: \n", "\t\t\t- NACO.H: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- NACO.J: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- NACO.Ks: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- NACO.Lp: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- NACO.Mp: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- NACO.NB405: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- SPHERE.IRDIS_D_H23_2: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- SPHERE.IRDIS_D_H23_3: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- SPHERE.IRDIS_D_K12_1: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- SPHERE.IRDIS_D_K12_2: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- SPHERE.ZIMPOL_I_PRIM: \n", "\t\t\t\t- n_phot: 1\n", "\t\t\t- SPHERE.ZIMPOL_R_PRIM: \n", "\t\t\t\t- n_phot: 1\n", "\t\t- parallax: \n", "- spectra: \n", "\t- calibration: \n", "\t\t- vega: \n" ] } ], "source": [ "database.list_content()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see the various groups, subgroups, datasets, and attributes that are stored in the HDF5 database." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading model spectra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Model spectra are read from the database by first creating an instance of [ReadModel](https://species.readthedocs.io/en/latest/species.read.html#species.read.read_model.ReadModel). The model name and optionally a wavelength range are provided as arguments." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "readmodel = species.ReadModel('atmo', wavel_range=(0.5, 10.))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before extracting a spectrum, let's check which parameters are required for the ATMO model spectra." ] }, { "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 parameter boundaries of the grid that is stored in the database." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'teff': (2500.0, 3000.0), 'logg': (2.5, 5.5)}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "readmodel.get_bounds()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parameters are provided in a dictionary for which we have to make sure that chose values are within the grid boundaries. The radius ($R_\\mathrm{J}$) and distance (pc) will scale the emitted spectrum to the observer. Without these values, the spectrum fluxes are provided at the surface 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": [ "We now use the [get_model](https://species.readthedocs.io/en/latest/species.read.html#species.read.read_model.ReadModel.get_model) method of [ReadModel](https://species.readthedocs.io/en/latest/species.read.html#species.read.read_model.ReadModel) to linearly interpolate the grid of spectra and store the extracted spectrum in a `ModelBox`. The spectrum is smoothed to a spectral resolution of $R = 100$." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "modelbox = readmodel.get_model(model_param, spec_res=100., smooth=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading companion data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The photometric data of PZ Tel B are also read from the database and stored in an [ObjectBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.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 extracted ATMO spectrum for all filters of PZ Tel B. The synthetic fluxes are stored in a [SynphotBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.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='atmo',\n", " filters=objectbox.filters,\n", " parameters=model_param)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating flux residuals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [get_residuals](https://species.readthedocs.io/en/latest/species.util.html#species.util.phot_util.get_residuals) function is now used to calculate the difference between the observed fluxes and the synthetic fluxes from the model spectrum. The residuals are stored in a [ResidualsBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.ResidualsBox)." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Calculating synthetic photometry... [DONE]\n", "Calculating residuals... [DONE]\n", "Residuals (sigma):\n", " - Gemini/NICI.ED286: 1.35\n", " - Gemini/NIRI.H2S1v2-1-G0220: -0.02\n", " - Paranal/NACO.H: -0.54\n", " - Paranal/NACO.J: -0.19\n", " - Paranal/NACO.Ks: 0.85\n", " - Paranal/NACO.Lp: 0.02\n", " - Paranal/NACO.Mp: 5.45\n", " - Paranal/NACO.NB405: 0.31\n", " - Paranal/SPHERE.IRDIS_D_H23_2: 0.54\n", " - Paranal/SPHERE.IRDIS_D_H23_3: 0.00\n", " - Paranal/SPHERE.IRDIS_D_K12_1: 1.00\n", " - Paranal/SPHERE.IRDIS_D_K12_2: 1.00\n", " - Paranal/SPHERE.ZIMPOL_I_PRIM: -7.73\n", " - Paranal/SPHERE.ZIMPOL_R_PRIM: -3.96\n", "Reduced chi2 = 10.05\n", "Number of degrees of freedom = 11\n" ] } ], "source": [ "res_box = species.get_residuals(datatype='model',\n", " spectrum='atmo',\n", " parameters=model_param,\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](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.Box.open_box) method can be used to view the content of any [Box](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.Box) object. For example, the [ModelBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.ModelBox) contains several attributes, including the wavelengths and fluxes." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening ModelBox...\n", "model = atmo\n", "type = None\n", "wavelength = [ 0.49998877 0.50003831 0.50008785 ... 9.99834109 9.99933175\n", " 10.0003225 ]\n", "flux = [1.99712687e-15 2.00092575e-15 2.00491964e-15 ... 5.56173692e-17\n", " 5.56061304e-17 5.55950840e-17]\n", "parameters = {'teff': 2900.0, 'logg': 4.5, 'radius': 2.2, 'distance': 47.13, 'luminosity': 0.003114426265448587, 'mass': 59.04988128500266}\n", "quantity = flux\n", "contribution = None\n", "bol_flux = None\n" ] } ], "source": [ "modelbox.open_box()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, an [ObjectBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.ObjectBox) contains a dictionary with the magnitudes and a dictionary with the fluxes." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening ObjectBox...\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", "mean_wavel = {'Gemini/NICI.ED286': 1.5841803431418238, 'Gemini/NIRI.H2S1v2-1-G0220': 2.2447142746110718, 'Paranal/NACO.H': 1.6588090664617747, 'Paranal/NACO.J': 1.265099894847529, 'Paranal/NACO.Ks': 2.144954491491888, 'Paranal/NACO.Lp': 3.8050282724280526, 'Paranal/NACO.Mp': 4.780970919324577, 'Paranal/NACO.NB405': 4.055862923806052, 'Paranal/SPHERE.IRDIS_D_H23_2': 1.5863509078883227, 'Paranal/SPHERE.IRDIS_D_H23_3': 1.6661442175885708, 'Paranal/SPHERE.IRDIS_D_K12_1': 2.1038552712775034, 'Paranal/SPHERE.IRDIS_D_K12_2': 2.255172356268582, 'Paranal/SPHERE.ZIMPOL_I_PRIM': 0.7843997176190827, 'Paranal/SPHERE.ZIMPOL_R_PRIM': 0.6278112553204571}\n", "magnitude = {'Gemini/NICI.ED286': array([11.68, 0.14]), 'Gemini/NIRI.H2S1v2-1-G0220': array([11.39, 0.14]), 'Paranal/NACO.H': array([11.93, 0.14]), 'Paranal/NACO.J': array([12.47, 0.2 ]), 'Paranal/NACO.Ks': array([11.53, 0.07]), 'Paranal/NACO.Lp': array([11.04, 0.22]), 'Paranal/NACO.Mp': array([10.93, 0.03]), 'Paranal/NACO.NB405': array([10.94, 0.07]), 'Paranal/SPHERE.IRDIS_D_H23_2': array([11.78, 0.19]), 'Paranal/SPHERE.IRDIS_D_H23_3': array([11.65, 0.19]), 'Paranal/SPHERE.IRDIS_D_K12_1': array([11.56, 0.09]), 'Paranal/SPHERE.IRDIS_D_K12_2': array([11.29, 0.1 ]), 'Paranal/SPHERE.ZIMPOL_I_PRIM': array([15.16, 0.12]), 'Paranal/SPHERE.ZIMPOL_R_PRIM': array([17.84, 0.31])}\n", "flux = {'Gemini/NICI.ED286': array([2.78256313e-14, 3.59792047e-15]), 'Gemini/NIRI.H2S1v2-1-G0220': array([1.05904381e-14, 1.36936891e-15]), 'Paranal/NACO.H': array([1.96875866e-14, 2.54565189e-15]), 'Paranal/NACO.J': array([3.11068448e-14, 5.76255332e-15]), 'Paranal/NACO.Ks': array([1.12416273e-14, 7.25276710e-16]), 'Paranal/NACO.Lp': array([2.02006237e-15, 4.12126891e-16]), 'Paranal/NACO.Mp': array([9.18778530e-16, 2.53900194e-17]), 'Paranal/NACO.NB405': array([1.67046283e-15, 1.07773346e-16]), 'Paranal/SPHERE.IRDIS_D_H23_2': array([2.54130005e-14, 4.46991835e-15]), 'Paranal/SPHERE.IRDIS_D_H23_3': array([2.42699565e-14, 4.26886718e-15]), 'Paranal/SPHERE.IRDIS_D_K12_1': array([1.15478090e-14, 9.58329872e-16]), 'Paranal/SPHERE.IRDIS_D_K12_2': array([1.14281211e-14, 1.05405764e-15]), 'Paranal/SPHERE.ZIMPOL_I_PRIM': array([1.08628801e-14, 1.20305572e-15]), 'Paranal/SPHERE.ZIMPOL_R_PRIM': array([1.82633135e-15, 5.28569079e-16])}\n", "spectrum = None\n", "parallax = [21.1621 0.0223]\n", "distance = None\n" ] } ], "source": [ "objectbox.open_box()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The attributes in a [Box](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.Box) object can be extracted for further analysis or creating plots. For example, to extract the array with wavelengths from the [ModelBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.ModelBox):" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.49998877, 0.50003831, 0.50008785, ..., 9.99834109,\n", " 9.99933175, 10.0003225 ])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "modelbox.wavelength" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting model spectrum and photometric fluxes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we will combine the model spectrum and the photometric fluxes in a plot with [plot_spectrum](https://species.readthedocs.io/en/latest/species.plot.html#species.plot.plot_spectrum.plot_spectrum). A list with [Box](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.Box) objects is provided as an argument of `boxes`. These are interpreted accordingly by the [plot_spectrum](https://species.readthedocs.io/en/latest/species.plot.html#species.plot.plot_spectrum.plot_spectrum) function. Also a list with filter names can be provided as argument of `filters` to show the filter profiles. The [ResidualsBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.ResidualsBox) is provided as arguments of `residuals`. Finally, the optional argument of `plot_kwargs` contains a list with optional dictionaries to tune the visualization of the plotted data. The number of items in the list of `plot_kwargs` should be equal to the number of items in the list of `boxes`. For the [SynphotBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.SynphotBox), we can set the item in `plot_kwargs` to `None` such that the marker design is based on the data from [ObjectBox](https://species.readthedocs.io/en/latest/species.core.html#species.core.box.ObjectBox).\n", "\n", "The blue squares are the photometric fluxes 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": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Plotting spectrum... [DONE]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "species.plot_spectrum(boxes=[modelbox, objectbox, synphotbox],\n", " filters=objectbox.filters,\n", " residuals=res_box,\n", " plot_kwargs=[{'ls': '-', 'lw': 1., 'color': 'black'},\n", " {'Gemini/NICI.ED286': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Gemini/NIRI.H2S1v2-1-G0220': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/NACO.H': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/NACO.J': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/NACO.Ks': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/NACO.Lp': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/NACO.Mp': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/NACO.NB405': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/SPHERE.IRDIS_D_H23_2': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/SPHERE.IRDIS_D_H23_3': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/SPHERE.IRDIS_D_K12_1': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/SPHERE.IRDIS_D_K12_2': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/SPHERE.ZIMPOL_I_PRIM': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'},\n", " 'Paranal/SPHERE.ZIMPOL_R_PRIM': {'marker': 's', 'ms': 4., 'color': 'tab:blue', 'ls': 'none'}},\n", " None],\n", " xlim=(0.5, 5.5),\n", " ylim=(-5e-15, 5.5e-14),\n", " ylim_res=(-8, 8),\n", " scale=('linear', 'linear'),\n", " offset=(-0.45, -0.04),\n", " legend={'loc': 'upper right', 'fontsize': 11.},\n", " figsize=(7., 3.),\n", " quantity='flux',\n", " output=None)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.0" } }, "nbformat": 4, "nbformat_minor": 2 }