{ "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.4... [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": [ "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 Teff 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", " spec_res=1000.,\n", " teff_range=(2800., 3000.))" ] }, { "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: \n", "\t- Gemini: \n", "\t\t- NICI.ED286: \n", "\t\t- NIRI.H2S1v2-1-G0220: \n", "\t- Paranal: \n", "\t\t- NACO.H: \n", "\t\t- NACO.J: \n", "\t\t- NACO.Ks: \n", "\t\t- NACO.Lp: \n", "\t\t- NACO.Mp: \n", "\t\t- NACO.NB405: \n", "\t\t- SPHERE.IRDIS_D_H23_2: \n", "\t\t- SPHERE.IRDIS_D_H23_3: \n", "\t\t- SPHERE.IRDIS_D_K12_1: \n", "\t\t- SPHERE.IRDIS_D_K12_2: \n", "\t\t- SPHERE.ZIMPOL_I_PRIM: \n", "\t\t- SPHERE.ZIMPOL_R_PRIM: \n", "- models: \n", "\t- ames-cond: \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- NIRI.H2S1v2-1-G0220: \n", "\t\t- Paranal: \n", "\t\t\t- NACO.H: \n", "\t\t\t- NACO.J: \n", "\t\t\t- NACO.Ks: \n", "\t\t\t- NACO.Lp: \n", "\t\t\t- NACO.Mp: \n", "\t\t\t- NACO.NB405: \n", "\t\t\t- SPHERE.IRDIS_D_H23_2: \n", "\t\t\t- SPHERE.IRDIS_D_H23_3: \n", "\t\t\t- SPHERE.IRDIS_D_K12_1: \n", "\t\t\t- SPHERE.IRDIS_D_K12_2: \n", "\t\t\t- SPHERE.ZIMPOL_I_PRIM: \n", "\t\t\t- SPHERE.ZIMPOL_R_PRIM: \n", "\t\t- distance: \n", "- spectra: \n", "\t- calibration: \n", "\t\t- vega: \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 (RJup) 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", "Residuals [sigma]:\n", " - Gemini/NICI.ED286: 1.55\n", " - Gemini/NIRI.H2S1v2-1-G0220: 0.03\n", " - Paranal/NACO.H: -0.07\n", " - Paranal/NACO.J: -0.52\n", " - Paranal/NACO.Ks: 1.54\n", " - Paranal/NACO.Lp: 0.11\n", " - Paranal/NACO.Mp: 6.60\n", " - Paranal/NACO.NB405: 0.86\n", " - Paranal/SPHERE.IRDIS_D_H23_2: 0.74\n", " - Paranal/SPHERE.IRDIS_D_H23_3: 0.21\n", " - Paranal/SPHERE.IRDIS_D_K12_1: 1.56\n", " - Paranal/SPHERE.IRDIS_D_K12_2: 1.10\n", " - Paranal/SPHERE.ZIMPOL_I_PRIM: -12.56\n", " - Paranal/SPHERE.ZIMPOL_R_PRIM: -7.94\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", "model = ames-cond\n", "type = None\n", "wavelength = [0.10201 0.1030301 0.1040604 0.10510101 0.10615202 0.10721354\n", " 0.10828567 0.10936853 0.11046221 0.11156683 0.1126825 0.11380933\n", " 0.11494742 0.1160969 0.11725786 0.11843044 0.11961475 0.1208109\n", " 0.122019 0.12323919 0.12447159 0.1257163 0.12697346 0.1282432\n", " 0.12952563 0.13082089 0.1321291 0.13345039 0.13478489 0.13613274\n", " 0.13749407 0.13886901 0.1402577 0.14166028 0.14307688 0.14450765\n", " 0.14595272 0.14741225 0.14888637 0.15037524 0.15187899 0.15339778\n", " 0.15493176 0.15648107 0.15804589 0.15962634 0.16122261 0.16283483\n", " 0.16446318 0.16610781 0.16776889 0.16944658 0.17114105 0.17285246\n", " 0.17458098 0.17632679 0.17809006 0.17987096 0.18166967 0.18348637\n", " 0.18532123 0.18717444 0.18904619 0.19093665 0.19284602 0.19477448\n", " 0.19672222 0.19868944 0.20067634 0.2026831 0.20470993 0.20675703\n", " 0.2088246 0.21091285 0.21302198 0.2151522 0.21730372 0.21947675\n", " 0.22167152 0.22388824 0.22612712 0.22838839 0.23067227 0.232979\n", " 0.23530879 0.23766187 0.24003849 0.24243888 0.24486327 0.2473119\n", " 0.24978502 0.25228287 0.2548057 0.25735376 0.25992729 0.26252657\n", " 0.26515183 0.26780335 0.27048138 0.2731862 0.27591806 0.27867724\n", " 0.28146401 0.28427865 0.28712144 0.28999265 0.29289258 0.29582151\n", " 0.29877972 0.30176752 0.30478519 0.30783304 0.31091137 0.31402049\n", " 0.31716069 0.3203323 0.32353562 0.32677098 0.33003869 0.33333908\n", " 0.33667247 0.34003919 0.34343958 0.34687398 0.35034272 0.35384615\n", " 0.35738461 0.36095845 0.36456804 0.36821372 0.37189586 0.37561481\n", " 0.37937096 0.38316467 0.38699632 0.39086628 0.39477495 0.39872269\n", " 0.40270992 0.40673702 0.41080439 0.41491244 0.41906156 0.42325217\n", " 0.4274847 0.43175954 0.43607714 0.44043791 0.44484229 0.44929071\n", " 0.45378362 0.45832146 0.46290467 0.46753372 0.47220905 0.47693114\n", " 0.48170046 0.48651746 0.49138264 0.49629646 0.50125943 0.50627202\n", " 0.51133474 0.51644809 0.52161257 0.52682869 0.53209698 0.53741795\n", " 0.54279213 0.54822005 0.55370225 0.55923928 0.56483167 0.57047998\n", " 0.57618478 0.58194663 0.5877661 0.59364376 0.5995802 0.605576\n", " 0.61163176 0.61774808 0.62392556 0.63016481 0.63646646 0.64283113\n", " 0.64925944 0.65575203 0.66230955 0.66893265 0.67562197 0.68237819\n", " 0.68920198 0.696094 0.70305494 0.71008548 0.71718634 0.7243582\n", " 0.73160179 0.7389178 0.74630698 0.75377005 0.76130775 0.76892083\n", " 0.77661004 0.78437614 0.7922199 0.8001421 0.80814352 0.81622495\n", " 0.8243872 0.83263108 0.84095739 0.84936696 0.85786063 0.86643924\n", " 0.87510363 0.88385466 0.89269321 0.90162014 0.91063635 0.91974271\n", " 0.92894014 0.93822954 0.94761183 0.95708795 0.96665883 0.97632542\n", " 0.98608867 0.99594956 1.00590905 1.01596815 1.02612783 1.03638911\n", " 1.046753 1.05722053 1.06779273 1.07847066 1.08925537 1.10014792\n", " 1.1111494 1.12226089 1.1334835 1.14481834 1.15626652 1.16782918\n", " 1.17950748 1.19130255 1.20321558 1.21524773 1.22740021 1.23967421\n", " 1.25207095 1.26459166 1.27723758 1.29000996 1.30291006 1.31593916\n", " 1.32909855 1.34238953 1.35581343 1.36937156 1.38306528 1.39689593\n", " 1.41086489 1.42497354 1.43922327 1.45361551 1.46815166 1.48283318\n", " 1.49766151 1.51263813 1.52776451 1.54304215 1.55847257 1.5740573\n", " 1.58979787 1.60569585 1.62175281 1.63797034 1.65435004 1.67089354\n", " 1.68760248 1.7044785 1.72152329 1.73873852 1.75612591 1.77368716\n", " 1.79142404 1.80933828 1.82743166 1.84570598 1.86416304 1.88280467\n", " 1.90163271 1.92064904 1.93985553 1.95925409 1.97884663 1.99863509\n", " 2.01862144 2.03880766 2.05919573 2.07978769 2.10058557 2.12159142\n", " 2.14280734 2.16423541 2.18587777 2.20773654 2.22981391 2.25211205\n", " 2.27463317 2.2973795 2.3203533 2.34355683 2.3669924 2.39066232\n", " 2.41456894 2.43871463 2.46310178 2.4877328 2.51261013 2.53773623\n", " 2.56311359 2.58874472 2.61463217 2.64077849 2.66718628 2.69385814\n", " 2.72079672 2.74800469 2.77548474 2.80323958 2.83127198 2.8595847\n", " 2.88818055 2.91706235 2.94623298 2.97569531 3.00545226 3.03550678\n", " 3.06586185 3.09652047 3.12748567 3.15876053 3.19034813 3.22225162\n", " 3.25447413 3.28701887 3.31988906 3.35308795 3.38661883 3.42048502\n", " 3.45468987 3.48923677 3.52412914 3.55937043 3.59496413 3.63091377\n", " 3.66722291 3.70389514 3.74093409 3.77834343 3.81612687 3.85428814\n", " 3.89283102 3.93175933 3.97107692 4.01078769 4.05089557 4.09140452\n", " 4.13231857 4.17364175 4.21537817 4.25753195 4.30010727 4.34310835\n", " 4.38653943 4.43040482 4.47470887 4.51945596 4.56465052 4.61029702\n", " 4.6564 4.702964 4.74999363 4.79749357 4.84546851 4.89392319\n", " 4.94286242 4.99229105 5.04221396 5.0926361 5.14356246 5.19499808\n", " 5.24694806 5.29941755 5.35241172 5.40593584 5.4599952 5.51459515\n", " 5.5697411 5.62543851 5.6816929 5.73850982 5.79589492 5.85385387\n", " 5.91239241]\n", "flux = [7.09673588e-05 2.11601318e-05 5.87271986e-06 2.86640705e-06\n", " 1.15608214e-06 4.04827004e-07 1.71081208e-07 4.30233634e-08\n", " 3.11527363e-08 8.06211200e-09 5.88817870e-10 2.64102520e-10\n", " 4.09799777e-10 6.55161886e-11 2.80720501e-11 1.21560648e-11\n", " 6.72024033e-12 4.60799734e-14 9.10402289e-13 6.00403269e-14\n", " 3.97723037e-19 1.04348482e-19 1.61972942e-16 2.15398100e-15\n", " 9.53305386e-15 2.66485979e-17 2.32474853e-17 5.18961551e-20\n", " 1.16259410e-20 7.47487980e-20 1.29706420e-16 2.81377619e-20\n", " 8.61317856e-21 5.32566164e-20 9.94287730e-18 4.58996127e-22\n", " 4.21361720e-23 1.49861717e-18 1.08242142e-23 6.96236018e-23\n", " 2.69982236e-24 4.03566692e-20 1.03037821e-23 7.05753437e-24\n", " 8.95449031e-24 1.56843108e-23 2.43544857e-22 2.63164650e-22\n", " 1.04809159e-22 2.79666242e-22 6.33742450e-23 2.48468930e-22\n", " 2.35894653e-22 3.84267099e-22 5.67404678e-23 1.84085447e-24\n", " 9.50194255e-24 1.47314710e-24 1.52997593e-24 5.14311531e-25\n", " 4.98782879e-25 1.82709185e-24 2.18527641e-25 2.13657960e-26\n", " 1.63342090e-26 4.42066436e-25 2.06815416e-26 3.05346806e-26\n", " 4.21992484e-26 5.50969282e-26 4.70224373e-26 1.15675678e-25\n", " 1.24523152e-24 1.83302494e-24 2.76257180e-24 2.10553262e-24\n", " 2.45519198e-23 8.08118856e-24 3.04654672e-24 9.42498387e-23\n", " 5.15058763e-24 2.15326064e-22 1.16827505e-22 5.88072075e-22\n", " 1.19060834e-22 3.13886555e-23 3.87945191e-21 1.19668998e-20\n", " 1.64651630e-20 4.56189318e-21 3.02019899e-21 1.51719418e-20\n", " 2.70952263e-20 1.39014187e-20 3.19438529e-19 1.62089074e-19\n", " 1.34600729e-19 5.20571621e-19 4.76633602e-19 3.10418608e-19\n", " 7.10317864e-19 3.88314433e-19 3.88004762e-19 2.29049034e-19\n", " 9.39887623e-19 2.98506463e-18 5.04251502e-18 3.29828069e-18\n", " 2.58007876e-18 2.63579296e-18 5.18935247e-18 5.73196151e-18\n", " 1.34414691e-17 3.48015033e-17 6.87714202e-17 5.95703984e-17\n", " 5.80816977e-17 1.54757961e-16 2.22000423e-16 3.08600639e-16\n", " 1.24119341e-16 1.73682200e-16 9.19332694e-17 9.74570974e-17\n", " 1.39767472e-16 2.96865206e-16 1.05215049e-16 1.44403290e-16\n", " 3.87703313e-16 4.67507704e-16 1.32576358e-16 2.23922826e-16\n", " 6.88855918e-16 2.95943335e-16 2.37459206e-16 3.45754334e-16\n", " 2.26599578e-16 1.25817919e-15 1.22915736e-15 1.75573081e-15\n", " 1.67672188e-15 1.55354076e-15 8.69235639e-16 1.89571686e-16\n", " 6.86336916e-16 1.38545801e-15 2.11523622e-15 1.92567722e-15\n", " 1.78099724e-15 2.53460318e-15 2.26408744e-15 2.19096659e-15\n", " 2.14954766e-15 2.14533928e-15 2.32826552e-15 2.00451765e-15\n", " 1.36463241e-15 2.84591207e-15 4.03490676e-15 2.79669131e-15\n", " 1.85964768e-15 2.37211657e-15 3.60201496e-15 2.15720311e-15\n", " 3.10141478e-15 4.10203686e-15 5.15033057e-15 6.32218545e-15\n", " 5.69890855e-15 3.81756335e-15 5.42224257e-15 4.14279714e-15\n", " 3.54838792e-15 5.77089942e-15 6.48069974e-15 6.66402240e-15\n", " 2.37830137e-15 2.88645888e-15 4.90157836e-15 8.02552299e-15\n", " 8.61546100e-15 3.87458103e-15 2.54487609e-15 4.70615014e-15\n", " 5.28813498e-15 7.59228370e-15 7.93253018e-15 9.16105313e-15\n", " 9.09717415e-15 5.45400681e-15 4.37099425e-15 5.53895340e-15\n", " 6.10966888e-15 8.80621413e-15 1.51347273e-14 5.90126067e-15\n", " 4.84432711e-15 1.03994166e-14 1.99640233e-14 3.02585772e-14\n", " 3.56660397e-14 3.84009102e-14 2.37910051e-14 1.33098520e-14\n", " 1.67848583e-14 2.15286074e-14 2.58968441e-14 3.24667138e-14\n", " 3.65195762e-14 3.78054482e-14 3.70406780e-14 3.31027509e-14\n", " 3.23185522e-14 2.56010865e-14 3.17153281e-14 3.41702709e-14\n", " 3.84174169e-14 3.72411925e-14 3.12442125e-14 3.49616647e-14\n", " 3.97078883e-14 4.07413824e-14 3.79988744e-14 3.89454096e-14\n", " 4.06915072e-14 4.17946761e-14 3.86242393e-14 4.03580052e-14\n", " 3.93516681e-14 3.27590662e-14 3.52126816e-14 3.57750684e-14\n", " 3.61814557e-14 3.76914709e-14 3.92248372e-14 4.08522810e-14\n", " 4.23976031e-14 4.22195441e-14 4.30785998e-14 4.11142771e-14\n", " 3.86205163e-14 3.88023652e-14 3.80900457e-14 3.82567775e-14\n", " 3.88571566e-14 3.90133809e-14 3.76476062e-14 3.72113099e-14\n", " 3.68934653e-14 3.75981033e-14 3.76243879e-14 3.68432193e-14\n", " 3.70026972e-14 3.66304597e-14 3.65871460e-14 3.68713537e-14\n", " 3.68780401e-14 3.51875563e-14 3.20649061e-14 2.54655507e-14\n", " 2.43009584e-14 2.45902027e-14 2.56165693e-14 2.22758723e-14\n", " 2.21916127e-14 2.07283947e-14 2.11443918e-14 2.05167105e-14\n", " 2.01078790e-14 1.98257810e-14 2.03176855e-14 2.07752104e-14\n", " 2.15683300e-14 2.12538761e-14 2.12231633e-14 2.20262100e-14\n", " 2.22338864e-14 2.24209898e-14 2.24054261e-14 2.32298745e-14\n", " 2.33208857e-14 2.35247676e-14 2.32656536e-14 2.16820716e-14\n", " 1.96997418e-14 1.81108446e-14 1.64163678e-14 1.51658079e-14\n", " 1.43217745e-14 1.33376995e-14 1.26563337e-14 1.15388387e-14\n", " 1.07703240e-14 1.13953328e-14 1.13677181e-14 1.15447871e-14\n", " 1.08757613e-14 1.09329253e-14 1.02993728e-14 1.01634336e-14\n", " 9.99591643e-15 9.85534123e-15 9.72288366e-15 9.98177661e-15\n", " 9.98843719e-15 1.01486579e-14 1.02888265e-14 1.04086309e-14\n", " 1.05638290e-14 1.04566920e-14 1.05503612e-14 1.05554935e-14\n", " 1.04432359e-14 9.46703385e-15 8.92949725e-15 8.38651574e-15\n", " 7.94890105e-15 7.20166848e-15 6.62671038e-15 6.01654055e-15\n", " 5.44638498e-15 5.00633899e-15 4.49063656e-15 4.38679075e-15\n", " 4.32951017e-15 4.07118466e-15 4.27309549e-15 4.30490655e-15\n", " 4.32272269e-15 3.93354755e-15 3.68513519e-15 3.49481662e-15\n", " 3.38282809e-15 3.25357603e-15 3.12735415e-15 3.09997362e-15\n", " 3.03775536e-15 2.82826553e-15 2.79460405e-15 2.77639393e-15\n", " 2.78651408e-15 2.60534023e-15 2.67175720e-15 2.54431241e-15\n", " 2.51886801e-15 2.50217639e-15 2.48097517e-15 2.53649057e-15\n", " 2.51999459e-15 2.43866546e-15 2.43096328e-15 2.44331100e-15\n", " 2.37045791e-15 2.36176413e-15 2.32356779e-15 2.32004058e-15\n", " 2.28666503e-15 2.25565477e-15 2.24030330e-15 2.18633033e-15\n", " 2.13729708e-15 2.11061359e-15 2.06558681e-15 2.04505330e-15\n", " 2.02301200e-15 1.98799027e-15 1.94505201e-15 1.87489362e-15\n", " 1.79711153e-15 1.68520562e-15 1.59683676e-15 1.47438916e-15\n", " 1.45657084e-15 1.38222129e-15 1.33144177e-15 1.26830784e-15\n", " 1.19402599e-15 1.12970760e-15 1.08068127e-15 9.88326505e-16\n", " 9.62055595e-16 8.89473222e-16 8.93521706e-16 8.33011317e-16\n", " 8.27360556e-16 7.84761921e-16 7.67175860e-16 7.12841091e-16\n", " 7.18639709e-16 6.88544560e-16 6.63956247e-16 6.38052721e-16\n", " 6.02536905e-16 5.80234520e-16 5.61572002e-16 5.43263485e-16\n", " 5.22440366e-16 5.06407847e-16 4.92004627e-16 4.69802444e-16\n", " 4.57975498e-16 4.41489612e-16 4.18257183e-16 4.13089640e-16\n", " 3.95458960e-16 3.87001415e-16 3.74223946e-16 3.62624292e-16\n", " 3.58030101e-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", "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]), '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", "distance = [47.13 0.13]\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.10201 , 0.1030301 , 0.1040604 , 0.10510101, 0.10615202,\n", " 0.10721354, 0.10828567, 0.10936853, 0.11046221, 0.11156683,\n", " 0.1126825 , 0.11380933, 0.11494742, 0.1160969 , 0.11725786,\n", " 0.11843044, 0.11961475, 0.1208109 , 0.122019 , 0.12323919,\n", " 0.12447159, 0.1257163 , 0.12697346, 0.1282432 , 0.12952563,\n", " 0.13082089, 0.1321291 , 0.13345039, 0.13478489, 0.13613274,\n", " 0.13749407, 0.13886901, 0.1402577 , 0.14166028, 0.14307688,\n", " 0.14450765, 0.14595272, 0.14741225, 0.14888637, 0.15037524,\n", " 0.15187899, 0.15339778, 0.15493176, 0.15648107, 0.15804589,\n", " 0.15962634, 0.16122261, 0.16283483, 0.16446318, 0.16610781,\n", " 0.16776889, 0.16944658, 0.17114105, 0.17285246, 0.17458098,\n", " 0.17632679, 0.17809006, 0.17987096, 0.18166967, 0.18348637,\n", " 0.18532123, 0.18717444, 0.18904619, 0.19093665, 0.19284602,\n", " 0.19477448, 0.19672222, 0.19868944, 0.20067634, 0.2026831 ,\n", " 0.20470993, 0.20675703, 0.2088246 , 0.21091285, 0.21302198,\n", " 0.2151522 , 0.21730372, 0.21947675, 0.22167152, 0.22388824,\n", " 0.22612712, 0.22838839, 0.23067227, 0.232979 , 0.23530879,\n", " 0.23766187, 0.24003849, 0.24243888, 0.24486327, 0.2473119 ,\n", " 0.24978502, 0.25228287, 0.2548057 , 0.25735376, 0.25992729,\n", " 0.26252657, 0.26515183, 0.26780335, 0.27048138, 0.2731862 ,\n", " 0.27591806, 0.27867724, 0.28146401, 0.28427865, 0.28712144,\n", " 0.28999265, 0.29289258, 0.29582151, 0.29877972, 0.30176752,\n", " 0.30478519, 0.30783304, 0.31091137, 0.31402049, 0.31716069,\n", " 0.3203323 , 0.32353562, 0.32677098, 0.33003869, 0.33333908,\n", " 0.33667247, 0.34003919, 0.34343958, 0.34687398, 0.35034272,\n", " 0.35384615, 0.35738461, 0.36095845, 0.36456804, 0.36821372,\n", " 0.37189586, 0.37561481, 0.37937096, 0.38316467, 0.38699632,\n", " 0.39086628, 0.39477495, 0.39872269, 0.40270992, 0.40673702,\n", " 0.41080439, 0.41491244, 0.41906156, 0.42325217, 0.4274847 ,\n", " 0.43175954, 0.43607714, 0.44043791, 0.44484229, 0.44929071,\n", " 0.45378362, 0.45832146, 0.46290467, 0.46753372, 0.47220905,\n", " 0.47693114, 0.48170046, 0.48651746, 0.49138264, 0.49629646,\n", " 0.50125943, 0.50627202, 0.51133474, 0.51644809, 0.52161257,\n", " 0.52682869, 0.53209698, 0.53741795, 0.54279213, 0.54822005,\n", " 0.55370225, 0.55923928, 0.56483167, 0.57047998, 0.57618478,\n", " 0.58194663, 0.5877661 , 0.59364376, 0.5995802 , 0.605576 ,\n", " 0.61163176, 0.61774808, 0.62392556, 0.63016481, 0.63646646,\n", " 0.64283113, 0.64925944, 0.65575203, 0.66230955, 0.66893265,\n", " 0.67562197, 0.68237819, 0.68920198, 0.696094 , 0.70305494,\n", " 0.71008548, 0.71718634, 0.7243582 , 0.73160179, 0.7389178 ,\n", " 0.74630698, 0.75377005, 0.76130775, 0.76892083, 0.77661004,\n", " 0.78437614, 0.7922199 , 0.8001421 , 0.80814352, 0.81622495,\n", " 0.8243872 , 0.83263108, 0.84095739, 0.84936696, 0.85786063,\n", " 0.86643924, 0.87510363, 0.88385466, 0.89269321, 0.90162014,\n", " 0.91063635, 0.91974271, 0.92894014, 0.93822954, 0.94761183,\n", " 0.95708795, 0.96665883, 0.97632542, 0.98608867, 0.99594956,\n", " 1.00590905, 1.01596815, 1.02612783, 1.03638911, 1.046753 ,\n", " 1.05722053, 1.06779273, 1.07847066, 1.08925537, 1.10014792,\n", " 1.1111494 , 1.12226089, 1.1334835 , 1.14481834, 1.15626652,\n", " 1.16782918, 1.17950748, 1.19130255, 1.20321558, 1.21524773,\n", " 1.22740021, 1.23967421, 1.25207095, 1.26459166, 1.27723758,\n", " 1.29000996, 1.30291006, 1.31593916, 1.32909855, 1.34238953,\n", " 1.35581343, 1.36937156, 1.38306528, 1.39689593, 1.41086489,\n", " 1.42497354, 1.43922327, 1.45361551, 1.46815166, 1.48283318,\n", " 1.49766151, 1.51263813, 1.52776451, 1.54304215, 1.55847257,\n", " 1.5740573 , 1.58979787, 1.60569585, 1.62175281, 1.63797034,\n", " 1.65435004, 1.67089354, 1.68760248, 1.7044785 , 1.72152329,\n", " 1.73873852, 1.75612591, 1.77368716, 1.79142404, 1.80933828,\n", " 1.82743166, 1.84570598, 1.86416304, 1.88280467, 1.90163271,\n", " 1.92064904, 1.93985553, 1.95925409, 1.97884663, 1.99863509,\n", " 2.01862144, 2.03880766, 2.05919573, 2.07978769, 2.10058557,\n", " 2.12159142, 2.14280734, 2.16423541, 2.18587777, 2.20773654,\n", " 2.22981391, 2.25211205, 2.27463317, 2.2973795 , 2.3203533 ,\n", " 2.34355683, 2.3669924 , 2.39066232, 2.41456894, 2.43871463,\n", " 2.46310178, 2.4877328 , 2.51261013, 2.53773623, 2.56311359,\n", " 2.58874472, 2.61463217, 2.64077849, 2.66718628, 2.69385814,\n", " 2.72079672, 2.74800469, 2.77548474, 2.80323958, 2.83127198,\n", " 2.8595847 , 2.88818055, 2.91706235, 2.94623298, 2.97569531,\n", " 3.00545226, 3.03550678, 3.06586185, 3.09652047, 3.12748567,\n", " 3.15876053, 3.19034813, 3.22225162, 3.25447413, 3.28701887,\n", " 3.31988906, 3.35308795, 3.38661883, 3.42048502, 3.45468987,\n", " 3.48923677, 3.52412914, 3.55937043, 3.59496413, 3.63091377,\n", " 3.66722291, 3.70389514, 3.74093409, 3.77834343, 3.81612687,\n", " 3.85428814, 3.89283102, 3.93175933, 3.97107692, 4.01078769,\n", " 4.05089557, 4.09140452, 4.13231857, 4.17364175, 4.21537817,\n", " 4.25753195, 4.30010727, 4.34310835, 4.38653943, 4.43040482,\n", " 4.47470887, 4.51945596, 4.56465052, 4.61029702, 4.6564 ,\n", " 4.702964 , 4.74999363, 4.79749357, 4.84546851, 4.89392319,\n", " 4.94286242, 4.99229105, 5.04221396, 5.0926361 , 5.14356246,\n", " 5.19499808, 5.24694806, 5.29941755, 5.35241172, 5.40593584,\n", " 5.4599952 , 5.51459515, 5.5697411 , 5.62543851, 5.6816929 ,\n", " 5.73850982, 5.79589492, 5.85385387, 5.91239241])" ] }, "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", " ylim_res=(-2.5, 2.5),\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": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGQCAYAAACj0hroAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdeVxU1fsH8M/MsA0MOyqCCqgo7poiuAGpuWtmuWWmYilWWKaVaSWapYnbt13TtE0tzdAszX3f0DRFQVEEXBDZ94Fh5v7+4DfXGWafO8MsPu/Xi1dx586dM9dh7nOf85xzeAzDMCCEEEIIsSN8SzeAEEIIIcTUKMAhhBBCiN2hAIcQQgghdocCHEIIIYTYHQpwCCGEEGJ3KMAhhBBCiN2hAIcQQgghdocCHEIIIYTYHbMFOFlZWeY6NCGEEEKIVg6mOAjDMHj06BGqq6vZbRMnTsTp06dNcXhCCCGEEINwDnB++uknxMfHo6ysDIqrPvB4PK6HJoQQQggxCucuqk8++QR//fUXKisrIZPJ2J+oqChTtI8QQgghxGA8rottDho0CPv371fZLpFI4OjoyOXQJkGZJEIIIcR+aQpjOGdwRo4ciX/++Udl+7hx47gemhBCCCHEKJwzOCEhIcjJyYGrqyu8vLwA1EVTubm5qKysNEkjuZBncDi+zScKj8ej82UhdO4th8695dC5txxbPve6ru+ci4y9vLywefNmpW0Mw2DOnDlGHzM5ORkTJ07EBx98gKlTp2rc75dffsHq1avB4/EQHR2NlStXUpcUIYQQQrgHOImJiYiOjlbZ/s033xh1vD/++APbt2+Hp6en1v1SUlIwd+5cpKSkwMfHBwMGDMDXX3+N119/3ajXJYQQQoj94FyDM3DgQIjFYmzfvh2rVq3Cjh07UFVVhcjISKOOFx4eji1btsDd3V3rfhs3bsSwYcPg5+cHPp+P2NhYfPvtt0a9JiGEEELsC+cMTnp6OgYOHIj8/Hz4+fmx/z1w4ADatGlj8PGaNWum137JyckYNWoU+3v79u1x7do1VFVVQSgUGvy65LFFixZZuglPLDr3lkPn3nLo3FuOPZ97zkXGI0aMwJgxYzB16lTw+XzIZDJs2rQJv//+O/7++2+jjxsTE4OpU6dqrMEJDQ3FvHnzMHPmTADA7du30bp1a2RnZ6N58+bsfvZQZFxaWorq6mqIRCIIhUIUFhbqVcDN5/PRtGlTqksihBBid8xeZFxeXo7Y2Fj2dz6fj+nTp+Onn37iemid1F24Nb3R+vsuWrQICQkJ5miWyU2aNAl+fn54+PAh+Hw+nJyc4O/vr/N5Z86cwfbt2xEaGtoArSSEEELMJyEhAYsXL9Z7f84BTk1NjUq3UHl5OcRiMddDa9W4cWMUFxezvxcXF4PH46FRo0Zq97e2DM6RI0dw7do1uLm5ITAwEIMGDcLq1avRqFEjTJ48WWX/TZs2AQDy8vI0vsf65s+fb/Z/B0IIIaQhJCQkKCUmdPVOcA5wxowZg8jISEyaNAmNGzdGbm4ufv75Z7z88stcD61VeHg4bty4wf5+/fp1dOjQwSbqbxiGwYoVKyAUClFZWQmRSITu3bvjwIED6NChA/Lz8zUOs9c3uAEAR0dH1NbWmqrZhBA7JJPJkJqaitOnTyMnJwcA0LJlS/Tp0wfBwcEm7+IuKyvDuXPncOXKFbRr1w69evVi51AjxJQ4Bzjz5s2Dk5MTvv32W2RlZaFFixaIi4vD7NmzTdE+Vn5+Pp577jns2rULPj4+eOWVV/DMM8+goKAA3t7e2Lx5M+Li4kz6mubyww8/ICoqCm+99RakUimmTZuGl156CQsWLEDfvn0xbdo0fPfdd3jllVc4fbk4ODhAIpGYsOXE0iorK7Fnzx788MMPeP755xEbG4sZM2bgk08+MSj4JU8mhmGwceNG/Pbbb3B2dgYASKVShIWFoU+fPujatSsYhsHNmzexYsUKZGZmwsFB+2VCKpWidevW6NOnD9q2bavynSWTyZCWloZTp07h1q1bEIlEiIiIQOfOnZGamorNmzejuLgYwcHB6NOnDwYOHIiAgACznQPy5OBcZKxJQUEBfH19DX7exYsXMXfuXFy+fBn+/v5o3749du7cibt37+Kpp57CpUuX2JFW8on++Hw+oqKi1E70Z21FxpmZmYiLi8OePXvYL47Lly8DALp27Qqg7gtj5cqVuHz5MrZu3YqRI0fizz//NPi1Pv30U8TExKB3796mewM2jmEYfPLJJzh48CCOHj2q9FhqaioOHDiAli1bYsSIEZZpoA4vvvgievXqhcmTJ+OFF17A33//DWdnZxw+fBhPP/20yv4Mw1CR+ROsvLwcX3zxBUpLSwEA165dQ9++fTF37lwIBAKTvIY8IDp9+jRu376tdh95ANS6dWuNtZNZWVk4ffo0fv75Z4wePRqvvvoqfXaJVmYvMtZk7NixOHz4sMHP6969u8qFBwCaN2+OvLw8pW2TJk3CpEmTjG1ig2MYBvHx8fjyyy+V7orkgY2cQCDAe++9h9GjR0MqlRr9eo6OjpTBUVBZWYklS5bA3d0dQqFQ6eJ/4sQJLFu2DGPGjMHSpUvh4OCAIUOGWLjFyiQSCUpLSxEfHw8AGDJkCFatWoXAwEA8ePBAZX+pVAoHBweIxWLU1tbCwcEBzs7OuH//Pry8vODm5tbQb4E0oNOnT2PhwoWYM2cOWrZsCQDw8fExeXaEx+Ohbdu2aNu2LadjBAcHIzg4GOPHj8fatWvx/PPP46uvvkLTpk1N2Fr7wzAMcnJykJ2drfJYmzZt4OPjY4FWWQejApznnnsOP/74I9zd3cHn81WibLprVO/cuXMICwtD69at9drf1dWV03peDg4OVIOj4JNPPkHLli3xyiuvYMKECaiqqoKrqysA4LvvvsOmTZvQpEkTDBs2DPHx8VYX4Fy+fBndunVjf3/xxRcRGBiIuLg4lJeXq+wvD3oOHTqExMREAMA777yDpUuXIjAwED///DN+//13vPjiiw3zBkiDKSwsxIcffoikpCSds8JbG4FAgLlz58Lb2xvPP/881qxZg4iICEs3y+KqqqqQkZGB27dv4/bt20hPT0dWVhYYhkFAQACCgoLA5z+eu5dhGCxfvhw+Pj6Ii4tDeHj4E3ddNirAmTBhAkQiEQAgIiIC27ZtU3qcYRhMnDiRe+vszHfffYf33ntP7/25BjiUwXmsqqoKycnJWLp0KXg8Hjw9PVFcXMwGOAUFBWjSpAkAICAgANXV1ZZsrlonT55E37592d8DAgJw/PhxiMViXLlyRWX/goICjB07Fs8++yy+/vprRERE4IsvvsBff/2FJUuWYPbs2Vi/fj3GjRuns86C2JZly5Zh4cKFNhfcyEmlUnz88ce4f/8+duzYYXMBTmxsLMRiMcaNG4chQ4bAxcVFr+cxDIPCwkLcvn0bqampSElJwc2bNyGRSCAUCtGqVSu0atUKnTp1wnPPPYcWLVooBTXqpKenY926dfjggw8wfvx4jB492qjyEVtk1Lfa+PHj2f9fs2YNgoKCVPZZs2aN8a2yU9nZ2QbN7uzq6oqKigqjX48yOI9dvHgR0dHR7B2Mm5ubUvCoqXbLmpw5cwbTp09X2tavXz8kJyer/Zzk5+ejV69ebEE+j8fDd999B6BuHqi4uDhMnDgRDx8+1HsGcWL9srKycOvWLfTv39/STTHasWPH0KVLF/Tu3RtXr161dHMMkpWVhZqaGnbpojFjxsDT01Pr8kMlJSUoKysDAPj6+qJVq1Zo164dpk6ditDQUDg5ORndntDQUKxcuRJVVVXYvn07Xn/9dRQXFyM8PByDBw9GREQEHB0djT6+NeN82xYSEoLjx4+jb9++kEgkSExMRG1tLd555x1TtM9uyGQyg4ew178IG4oyOI9lZWUhJCSE/Z1r8NjQGIZBWVkZPDw8VB5zc3NT20UlL/QfNGiQymNeXl7Ytm0bPvroI+Tm5lKAY0cMnQzNGt28eRPTp0/H1atXsXv3bks3xyAbNmzAq6++iqZNmyI+Ph7x8fEoLCzUmhUWiUQ611/kSigU4uWXX8bLL78MqVSKCxcu4J9//sGCBQtw7Ngxq7yp48okw8R9fHzQu3dvLF26FNu2bUNgYCBu377dILMZ2wqJRGJwFE41OKaTn5+Pdu3aoaKiAkKhEEKh0Cq7odSRSCTYuXMn2rdvr/ZxkUikNsCpqKiAt7e31mN7eHiwd47E9l2+fBk8Hg+dO3e2dFM4SUtLQ0xMDMRiMQQCAR49eoTGjRtbulk6SSQSnDp1CkuWLFHabm2FvgKBABEREYiIiEBxcTFSUlLQqVMnSzfL5DgHOA8ePGADmc2bN+PQoUNo06YNwsPDOTfOntTU1BicBqQaHNMpLS2Fp6cn+vfvj/Hjx8PFxYWd5bm2tlZlyKy1TCsAAAcPHsScOXM0jkp0c3NTm40Si8U6+/49PDzYIcTE9n3xxRf44IMPLN0Mzq5fv442bdpALBZDKBTiypUrGDhwoKWbpdOff/6JUaNG2VQ2ZNiwYfj777/tMsDRXp2kB3mG4MSJE2jevDlbY6LrzvFJU1NTY1QGh0s3CgU4j5WXl0MkEiErKwulpaVwdnZmA5yKigq2aN4aZWZmYv369QgLC1P7uIuLi9psVFVVlc4Ax93dnTI4diQnJ4cdEm6rHjx4gICAAPD5fDbrqq6I3hr9+OOPZp/F39T69euHEydOWLoZZsE5wPH29sasWbPw2muvsQWQFy9epK6ReozpotJ0Z64vW+yiys/Px8GDB02eQamoqICbmxukUin4fD6cnZ1RU1MDoG5+HPloKjk+nw+ZTGbSNhgrPz9f6yzFTk5OagMcfTI4FODYD5lMpnNEjS24e/cuG6Q5OzvD3d0d//33n4VbpVtGRga8vLysrjtKF2dnZwiFQhQVFVm6KSbHuYvq+++/R2JiIiZPnozp06fj4cOH+PLLL/Huu++aon12w9guqtLSUqNnHLX2DI5UKmXfW2ZmJt577z0wDINWrVrhq6++wldffWWyScnkC8JKJBIcPXoUhYWFcHBwwN69exEdHQ2grhvL3d0dPB6PPXfy6ewtKS8vD35+fhof1xTIytP72ri7u1MXlZ24c+eOUiG9rSosLFQaxuzk5KQyyas1Wr9+PWbMmGHpZhhl0KBBOHDgAMaNG2fpppgU5wDHx8cHy5YtY3/39/dnV74mjxnbRXXv3j2jh/BZawYnOTkZa9euRX5+PmQyGTp27IjU1FR8+eWX7CSI165dw+TJk3HgwAHOd6V37tzBxYsXMWHCBFRXVyMkJASxsbEQCATo1q0bvv76a5w4cQIzZ85EXl4ewsPDkZ2dje+++w6DBw9GaGioKd620YqKirR2+Wrq79cng+Pq6korztuJlJQUdOzY0dLN4KygoEAlCyK/4bDW4cw1NTW4cOGC0rXQlgwbNgwLFy6kAKe+vXv3Yvv27fj6669x584djBgxAlKpFFu3bkWvXr1M0Ua7YGyAU15ebvQcCNaYwTl16hQ+/fRTrF+/HoGBgaitrcW///6Lp556SmmyuQ4dOmDIkCFISkrCmDFjjHqtR48eYfr06WjUqBFEIhH27NmD0NBQBAYGwsXFBeXl5QgLC8OsWbPg7OyMxMREMAyD5ORknDt3Dm5ubkhMTERWVhacnJwgEAgwcOBADB8+HEKhECKRqEFqd/TJxGh6nq4Ax8XFBVVVVcY2jViRlJQUxMTEWLoZnBUWFqrUm7Vt2xY3btyw2gAuKSkJo0ePtqniYkWBgYHIycmxm25OOc4Bzpo1a/DZZ5/BxcUFH374IZ555hlERERg7ty5OH36tCnaaBeMrcEpLy+3iwxOdXU1du/ejY0bN2L79u3snA8ODg7o2bOn2ufExcVhzJgxeO655wz+4igoKMDEiRPx+eefo0OHDhg5ciRcXV3h6OiI2tpaODk5scGf4p0hj8dDz549ERISgmHDhmHatGnsMauqqrB3716sWLECEokE+fn5EAgEmDdvnlmD+erqar1nQlWkT5Gx4mgyYttSUlLw+uuvW7oZnNVfqNnZ2Rnt27fHf//9Z7UBzk8//YSff/7Z0s3gpEePHrh48aJdjYDmHKoxDINu3bqhrKwMR48exZo1azBt2jSrTSVairE1OFwCHGvJ4OzYsQPDhw9HTk4OfvvtN70ntHJ3d0dUVBT27t1r0OvJZDJMnjwZq1atQocOHQA8Xh9NMdUtLzJWl11TfFxOKBRizJgx+Oabb7BhwwYkJSVh/fr1+Oijj8w6rNyQtd0YhkFJSQkA5QzO7du3cezYMbz22mtKAQ0FOPajuLgYXl5elm4GZ4WFhUpdVJ6enggODrbakVQ3b95EkyZNbHZZDLlhw4bhr7/+snQzTIpzBqekpAQ1NTX45ZdfMHjwYDaVbmxhrL3i0kVl7KrP1pDBycjIwIYNG7B3716jArXY2Fh89NFHGDZsmN7P2bRpE4YOHaqySjug3JevLoMjp5jh0cbX1xfdu3fH6dOn0adPH73baKzc3Fzs2rULBQUFSttv3bqFd955B//++y88PT1RU1ODBw8eoKKiAl5eXvj++++xceNG5ObmYv78+WjRogUACnDshTXXpxiqfgbH09MTjRs3RlpamgVbpdmePXvsonYlIiICH3/8saWbYVKcA5yxY8eiSZMmqKmpwYkTJ1BaWoqFCxciMDDQFO2zG8YEOPJh4sbelVk6g1NTU4NZs2Zh3bp1Rn/5+vj4GDTKp6SkBFu2bME///yj8lh1dTVcXV21dlHJGXLuZs6ciY8++sjkAU5ZWRl2796NCxcuYMSIEZDJZPD09MSYMWNUUvV//fUXJk+ejBUrVoDH46GiogJRUVF48803UVlZibS0NLbWRnHqAQpw7EN6erpB69xZs7KyMqUsr6enJyorK60iG61ORkaG0XWC1sTBwQG+vr7Izc1lFx62dZwDnHfeeQejRo2Cm5sbmjVrhqqqKrzwwgto166dKdpnN7gs1WCLXVRpaWmYPXs23nrrLQQHBxt9HEOLYJcvX4758+errI4t77rx8/NT6aLSlMGp30WlSUhICCorK002nfylS5fw2WefobKyEqNGjUKXLl2wZ88erc/x9vZWmp7fzc0NAQEB2LFjBwBgxowZOHToEEpLS3Hu3Dn275MCHPtgLyOoANUuWQ8PD5SUlKBRo0bIy8vTOieUJWRnZ9vNWm5Dhw7Fvn37MGXKFEs3xSRMUi7dtm1b9h9YKBQiOjoaiYmJpji03TCmBkcoFKKiosLoUVSW6qL6+++/MXfuXGzcuNGgriV1DC0u1jSlO4/HYwOc2tpapXPDNYMDAJMmTWKDCWNJpVJ88sknWL58OVatWoXdu3fjlVdeMTrAVawLKi8vZ+fS2bJlCz788ENUVFTAwcHBau+Mif5SU1Pt9qbS09MTJSUl6NSpk1WuLC6VSlVuqGzVkCFDsG/fPks3w2SM+lfZuXMnO7IlNjZW7T779u2jIEeBMV1UAoEAUqnUpjI4Bw8exPr167Fz506LTJLH4/E0BkXyAKeoqEjp3OhbZKxNUFAQ59lWly9fDqFQiG3btim9B1MUMJeXl7Nfwu+//z4KCgowfvx4+Pj4QCqVcj4+say7d++ydVX2xsvLC8XFxWjZsiUyMjLQv39/SzeJJZPJbHZouDp+fn4oLi62m5ouozI433//Pbt68ZEjRxAUFKTyY8ywVntmTIAD1F3cbGWYuFgsxuLFi7FlyxarmAFYkTyD4+vri9raWpMVGcvJv4SNdfr0aaSmpmLOnDlGfWHqCoIYhmHn7JFIJHjhhRewZ88ehIWFcWo3sQ62stq2LuoWvvX19UVBQQFCQkKQmZlpmYZp8ODBA7urN+3duzfOnDlj6WaYhFEZHMV6gClTpmDRokUq+1jTaszWwNhp/2Uymc1kcO7du4ennnpKZV0na1FZWQkPDw+9RlEZeu64BDgSiQQLFixAUlISp7tBbcPJGYbBV199hR9++EEp6O3Tpw9+/PFHo1+TWAfFZU9smbpZu319fVFYWIiQkBDcuXPHQi1T786dOza/uGl9w4cPx2+//YaoqChLN4UzzjU4CQkJarfbw92EKRlTgwPUBTi2UoNz7949NG/e3CzH1idglkgkGr/kGYaBRCJhR1Ep1p5oCnAM6aKS1wkY4+7du+jUqROnOUz0yTi1bt0aLVq0UNqvR48elMEhVqO4uFglwBGJRCgvL4eXl5fRf2PmkpGRYRfrfynq2rWrVdY6GYNzZZRMJsOuXbtw8+ZNpRWNN2/ejNdee43r4e2GJbqoGjqDc/fuXbMEOK6urqiqqtKZGSouLta4ki+Px4NEIoFQKGS7qBSLjOvPNWRoFxWXYFJb/YS8rbo4Ozujurpa6TOmLptTv6hYvsK6IZMJEutSXV1tdV3CxiopKYGHh4fSNqFQyI6ktLaegYyMDIwcOdLSzTApPp8PgUBg9DXLmnDO4EycOBEfffQRrl69ijt37rA/xg49FYvFmDp1KiIjI9GjRw/s379f7X6bN29G165dERMTw/6cPHmSy1sxK2OGiQO2VYNz9+5dswyX9PDwQFlZmc796s+AWp9isGDqImMusrOzNQY4+qwnBege1i4PXhQDOzk3NzfcunXLgBYTa/LgwQMEBARYuhkmUVJSojIjsGKAY21rp2VkZNhdFxUAdOnShfOgCWvAOYNz48YN/PfffyoLdGnqutIlISEBDMPg7NmzuHnzJiIjI5Gamqp24qG1a9fazOJyxkbDUqnUZhbbNFcXlbu7O0pLS3VOPlVYWKh11W3FOihTFxlzkZ2djaefflrtY/oGOPIMjjoMw7B3vuoCN29vb5w5c8biq6YT4zxJAU5wcDAyMzOtZki8ru8cW9WrVy+cPXvW5tel4pzBka/1U1+3bt0MPpZMJsOGDRswffp0AECbNm3QrVs3m1/EDDC+BkfbsGddGjrAefDgAZo2bWry4+qbwSkqKtKawVEMZPQpMralDE79AEcxla+4WKe6eW/kAQ6xTffv37ebkTzqAhxHR0f2s21tI6m4fD9bs4iICJw9e9bSzeCMcwbns88+wyuvvIKuXbsqFUkuX74czz77rEHHysjIQEFBAcLCwtht7du3x4ULF9Tuv27dOixatAg8Hg/jxo2z6pofYzM4Dg4ORv8B8fn8Bp3jRN96EUPJMzi6aOuikhcZOzo6st1+ujI48qkQ9MXn8yGTyVSymbrk5ORoDAz1DXBcXFyUAhzF91ReXs5Ofa+piyojI8OgNhPr8eDBA403mrampKREJQusGERY00iqyspKu50ORT5yzdZxDnASExOxZ88epKenK83m+PDhQ4OPlZubCwBKEbyXlxeuX7+usm+TJk0waNAgTJ06FXl5eYiJiYFUKkV8fLzaY9cPEhYtWmR0N5oxjK3B4fP5Rgc49nJnYUgNTtu2bVW2y4fQKgZg+sxkbGgGR95OQ1cVlslkGkd/GZLBUax7Uyw8LSsrY+fAUZfVc3Z2hkwms5vJvZ409+/fx6BBgyzdDJOovw6VnGKAc/To0QZulXqZmZl2N4JKUePGja1uXaqEhAQsXrxY7/05BzgHDhxAdna2ypdwXFyc0cesf2FWVzk/dOhQ9v8bN26M+Ph4fP755xoDHEtX3xubwTE0G2AplZWV7ErypqZvBkdTF5XisHB5Rqx+gFP/38aYGhxPT08UFxcbFOAo1seoIxaL9RohUz+DoxjglJeXswGOusJzoVAINzc35OXl2U0tx5PEniabq6ysVDtaUv43Iq/BsQb2WmAsFxkZibNnzxrcE2NOCQkJSokJXTfxnK+eYWFhau8wp02bZvCx5HPnKM7LUVxcrNecOi1atEBWVpbBr9lQuNTg2IJ79+6ZbcE5rqOoFCf2k/8bKJ5Xdf82xmRwjJnsr6SkROv8N2KxWK/AUVsGRzHAUZfBcXFxgY+Pj1FZV2J56oZW26qqqiqtn3f5AsTW4EkJcGwZ5wAnOjoasbGx2L17N44fP87+zJo1y+BjtWrVCj4+Prhx4wa77fr162oruVesWKH0e25urlXffXLJ4NhCkGPOSf641uDIMzeaumBMNYrKmABH1xpCxhYZGxrgeHt7U4Bjw2zhO0IfmgIca3x/9h7gWOvipobg3EU1f/58+Pv748iRI0rb5fU0huDz+Xj11Vfx/fffo1+/fkhPT8fly5fxyy+/IDU1FW+88Qb2798PgUCAvXv3IiIiAtHR0aisrMS6deswefJkrm/HbIytwQEs372mD3PNgQPon8FRNwIDgNLq4fIiY+DxeTXFUg2AcQGOthFUgGFdVIoZHMWAWlcXlYuLCzw9PSnAsUG28N1gCE0BjuL79PDw0Pi33pCysrLsdoFToO67gmEY9vvTFnFudZ8+fXDw4EGV7aNHjzbqeAkJCYiLi0NkZCRqa2uxdetW+Pv7IzMzE2lpaex0/HPnzsWSJUsgk8lQXl6OAQMG4P333+f6dszG2AwOj8eziS+xe/fumW2VX30zOJpGMCl2USn+ocrvCtX92+iaOE8dYwMcbZkvU2RwFOsa1AVuQqEQHh4eyMnJMajtxPKs4UJvSvrU8smHinfp0qWBWqVeTU2N3cwgrUmnTp2QkpKCrl27WropRuEc4KgLbgAgKSnJqOO5uLhg8+bNKtsjIyNx//599vcRI0ZgxIgRRr2GJXCpweES4DRUatdcyzQA+mdwNJEHOPI7kfrnRF12zZgMjqenJx48eGDQc7Kzs9GnTx+NjyvOYaNN/QxO/QBHPhJC3TBxFxcXiEQiyuDYIHsqMAY0B/TyKS8EAgE7VNySAY4t3HSagnzCP1sNcDjX4Jw/fx5LlixBTU0N7t+/j4EDByImJkapjoYYn8EBbOOPKScnB/7+/mY5tr4ZHE0U155SF2SaMoNj6GKA+nRRcc3gVFRUsBkcdRP9ubi4wNXVlQIcG3T//n2rrj00hrqbMldXVzaADw4OtvhcOI8ePbKq4dPmEhERYdOTgHIOcBYvXoxOnTrB0dERCxcuhJubG6Kjo6160j1L4DLHiEwmM3FrTE8qlZqtn1bbMgRy2oLA+hmc+jStRdUQNXA7NIUAACAASURBVDi6uhhMMUxcny4q+X7EtthbBkcToVDIfj6tYbI/ey8wlvP39zeqntZacL4i1dTU4LnnnkN1dTX27NmDW7duwcvLC3379jVF++wGl9WauQQ4DZH90TWXC1f6nDfF2Xrrkwc4lZWVSgGOvM3qug8bqgZH1+fCFBP9VVRUsKulqxsdVr97i9iO+/fvIzo62tLNMDvF4eEtWrRAdna2Rdtz584du57kT5Gvry8KCgrg6+tr6aYYjHMGRz6dfVJSEvr27cvO6WGuSd+eNOYOHkwhMzMTwcHBFm2DtmUadGVwTDWKSj7Rn76kUqnOiRz1rcHRt8hYXeBGAY7telIyOB4eHmw3tZOTk0odWUN7UjI4QF031blz5yzdDKNwDnD69u2L9u3bY8aMGZg9ezaqqqqwatUqdlgq4YZhmAZdT8oY//77r1GLqxpCV5BXVFSkcVVfxQBHcUkExcxJ/SyKMRkcZ2dng56Tk5Ojs37CkLWotBUZK2Zw6rdRKBRCLBZb1SRqRD/mWuDW2nh6eirVt1n6xu9JCnBsecI/zgFOYmIi1qxZgwMHDqB///6QSCTw8/NTmYjvSWds9xTDMFZfg3Pp0iU89dRTFm2DPhkcQ+qEGmIldl2T/AH61+DoW2SsKYNTVVVl8/3tTyJ7Gqpc/wZEkXzuG7lGjRrh0aNHDdU0Fbm5uXrNsG8PunbtisuXL1u6GUYxyUJHgwcPRs+ePQHUfRCnTJmCw4cPm+LQdsPYuw2ZTMYpg9MQw8SvXr1q9tWMdQ2XN7SLStcdoDEZHEPpmgMH4JbBkRdOK2Zw1C1BIX+uv78/jaQiFqOtjk4kEqGiooL9PTIyEqdOnWqopqlljbMrm4O8bs/aexLU4VxkLJVKsWvXLqSnpyvdQW7evBkzZ87kevgnni10UTXEXaS8+0R+oa6vqKhI47DN+gGOQCCATCbT+gUlX33cnLKzs9UuQ6LI2BqcqqoqNmujWEStLcAJCAigAMeG6FPDZUu03aS4ubkpTRUxcOBArF69GmPGjGmo5rG4TPlhq9q3b4+0tDSz38iaGue/jhdffBELFy7E5cuXcefOHfaHihaVcRlBZc0Bjj51JKaga7K/wsJCjTU48gBMHuAozgWjKYvD5e5M32ydvl1U+mZwFAMcxZFTitRdEOU1OJTBsS32NheLtgCnfn1Yq1atcOvWrYZqmpKsrCwEBQVZ5LUt5ZlnnsGvv/5q6WYYjHMGJzU1FSkpKSp9px9//DHXQxPUXWi5dJXw+XyNSxiYQkMUGAOPJ/vTNJmgti9H+R2XPMBRnPTP1Fkad3d3ral2Rffu3dM5AsaQGhzFmwpNAY46ijU4tjpa4klkb5P8lZaWalwV3c3NTamLisfjoXnz5madQV2T5ORkiy8T0dAGDx6MdevW4datW2jdurWlm6M3zle90NBQtYVhgwYN4npou2JsDY5AIOAU4KibudaUGqrAWFcG59GjR2jUqJHax+QBjjzQky846eTkpHMCQUMZMheOYiGwJpoWH6xPHqTIGRrgUAbH9tjbEHHF6Qzqc3d3V/n7HzhwIA4dOtQQTVNy6NAhDBw4sMFf15J4PB5WrlyJefPmWf20JYo4BzhRUVGYMmUKdu3ahePHj7M/s2bNMkX7nng8Ho/TRdjco4EuX76Mzp07m+34crqWa9AV4CjOcyMPcOTdOqbspjJ0LhxdGIbRK/tWPxulGODoeh+urq6oqKiw+MgUYphbt27Z1VBlbcG8j48PCgsLlbb179+/wQMchmH0Ghxgj1q1aoXu3bvjt99+s3RT9Ma5i2r+/Pnw9/fH8ePHlbbTcFNlxtZ08Pl8zhkccxXLMgyD8vLyBpnzSJ8FNzWd4+rqaqXlEOTnpH63jinom8HRdrdqLMX3b0gGx9PTE6WlpWbpsiPmk5KSgkmTJlm6GSaj7W/Cx8cHBQUFStuaNGmCR48ecZol3lC3bt1CmzZtGuS1rNG7776LoUOHYujQoRq7E60J5wxOnz59lIqL5T/URWUaXAMcc2ZwMjMzG2y6cm0ZnJKSEq01L/W7guTddvKuGU1fjsakYvVdcFOfAmNDKbZXce4bXRSXb7D2OZfIY/Y2F4u2DI5IJGJnzVfUoUMHXL9+3dxNYx06dAgDBgxosNezNs7Ozvjggw/w4YcfWropeuEc4Bw8eFDt9v/9739cD203uMy6yefzOXVRmTODc/z4cURFRZnl2PVpy+Ckp6drvatSF+DU1tayo4dM2UUVEBCg1zo5ulYR50omk2kcDq/u/cq3+fr6UjeVDZD/u9rTXCzl5eUas46a3ueAAQM0XoPM4ciRI3j66acb7PWsUf/+/VFUVIR///3X0k3RyWRDawoKCpCdnc3+TJw40VSHtnnGrrQtL4611gzO8ePH0a9fP7Mcuz5tGZz09HSEhoZqfG79odbyrhihUIjy8nKTZnAiIiL0mtbcHP346t5HWVmZQV2I4eHhSE5ONmWziBlkZWVZfP03UzNmQceoqCgcO3bMTC1SJpVKUVJSonE6iifJihUrMH/+fKuewgQwQYBz6dIlhIaGonHjxggODmZ/aLjpY4bUQygqLi6Gj48P5yJjc2Vw7t27h2bNmpnl2PUFBATg7t27ah/TJ8BRTH3LMziurq4oKioyaS2MvC5AF326qAydyE3diLni4mK9vpDlwREFOLYhJSXF5iZd00XbVA9y9W863N3dIRaLzb6sClA3oKIhpsSwBf7+/hg9ejTWrVtn6aZoxTnAmT9/Pvbv34+oqCjIZDKIxWJs377dZvroGkJOTo7G+Vu0KSoqgq+vr1UOE2/oRf5atmyJ27dvq31MV4BTVVUFFxcX9stRHuC4ubmhsLBQY/Bp6OKZcn5+fsjLy9O6jz5dVGVlZXrNpyMnLxZWVFxcDC8vL6Vtmpa9YBjGptedeZKkpKSgY8eOlm6GSenK4Ggq4O/Zs2eDBOUHDx584oaHazNz5kwkJSVZ9dQSnAMchmEQEhLCfmE6OTnh+eefx6VLlzg3zl7k5OQYFQzIAxxrzOCcOHGiwepvgLqLslAoVLvata4vRnkGTZ6lkAd9IpEIBQUFGrtwNBU26qLP6rt5eXkah7Ur7uPn56f368oXJFSsu1G3ynr9dasUt+kaOk+sw7Vr1+wug1M/01pf06ZNkZOTo7K9oebDOXXqFHr37m3217EVAoEAy5Ytw3vvvWfppmjEOcCRXzz5fD4uXrwIALh58yauXLnC9dB2g2uAw+ViY64MTkMWGMv16NEDFy5cMPh59YsX5RkcDw8PrRkcYwOc3r1748yZMxofl0qlqKmp0Vkgmp+fb1CAI5+or7S0lB0Wry6Do26uHl9fX3YYblBQkF6F0sRyioqKdHbn2JvmzZvjzp07Ktt79uypV90bF/LBCPpMuvkk6d69O7y8vCwy4aI+OAc44eHhWLVqFWbOnInIyEg0b94cHTt2xNixY03RPrvw8OFDowMcLy8vTiMlPD09VSbI4qqqqgppaWlo1aqVSY+rS+/evXH69GmlbfoUJtbv6pFntby8vJCXl2fyAKdz585aA/x9+/ahf//+Oo+jT5ZHUYsWLZCdnY27d++ytVEFBQUqF0JPT0+VoezNmjVja5yoDse61dbWqp093tbpupHTNGLKyckJQUFBZr3Inj59Gn369DHb8W3ZkiVL8Mknn5h8VnhT4BzgfPbZZ5g7dy7Gjx+Po0eP4s0338TOnTuxYsUKU7TPLnCpweFasR8aGmrwonQJCQlaH9+4cSOmTZvW4ENU1V14ddXfAGDXnapfg+Pj44Pc3FyNAZKu2ZM1kY+Y09Q1uHHjRsTGxqp9TPHcZ2VlGTTSqkWLFsjKykJmZiY7wkZdIbi6DI58XR+g7jyfP39e79e1F7o+99bC1tYD0sf777+vs9i/Xbt2SE9PV/vYihUrsHTpUp21b8ay5/lvuH7uPT09MXPmTCQmJpqmQSbEOcBp2bIlXnvtNQB1k/7NmzcPI0aM4HRMsViMqVOnIjIyEj169MD+/fs17rtq1Sp0794d3bt3t8oTDHDrovL29saQIUOMfu3Q0FCNXwqaLF68WONjNTU12LlzJyZMmGB0m4wlX3BP8U7v5s2bOgMcAEqznbq5uaG8vBxNmjRBTk6OxhWZAwMDce/ePaPa2rlzZ5XZvQEgIyMDHh4eGjMziuc+LS0N7dq10/s1w8LCcPXqVVy/fh1hYWEA6oqZ6wc48kBIUVBQEDIzMwEA7du3x/nz55+4WY21fe6tRWFhId566y27m4Zj+fLlOueX4fP5GrM8IpEIq1evRlxcnFnqx/79998GWXPPEkzxuR83bhySk5M1DgSxFM4BjoeHB77++mtTtIWVkJAAhmFw9uxZbNmyBRMmTFC79MO+ffvw3Xff4dSpUzh16hQ2btyIv/76y6RtMQV1dRD6kAc4r7/+utGv3apVK5N+6DZt2oQXX3zRqHl9TEHx/UgkEuzYsUPrF498ksWSkhJ2avFGjRqx3T8PHz7UOBtzUFCQSiCgr3nz5uHTTz9FSkoKu00qlWLVqlWIi4vT6xiGTgbYuHFj5OXl4cKFC+xwVnWj3dq1a4fU1FSlbV26dGEn7nJwcMDMmTPx6quvWv08F0+Se/fuYezYsVi2bBnCw8Mt3RyTGz58uM59RCKRxilIunXrhn79+mH58uUmC85lMhk+//xztGzZ0i67BU3FWhfj5BzgtG3bVm0R69tvv23U8WQyGTZs2IDp06cDANq0aYNu3brh559/Vtl33bp1ePHFF+Hi4gIXFxdMmjQJ3377rVGva27GdOeIxWLOXVTyUTFcSSQSfPjhhzh58iRefvllzsczVr9+/fDZZ58hNTUVU6ZMwbRp09C2bVuN+2dmZqJZs2ZKi3HKMzd8Ph+lpaUaM0BdunQxuhbFx8cHW7ZswezZs/Ho0SN89dVXGDJkCEJCQhAREaHz+TU1NZBKpQZ/qQYGBiInJweenp7IyMiAn5+fymeva9eu2Ldvn9IQeG9vbxQVFbGflYkTJyI6Ohrjxo3DsWPHaAkHCyoqKsLGjRsxefJkfPvtt3Y3F8sff/wBoO6GQpdXX30VkZGRGjOrb775JhwdHTFs2DC88cYbOHnypNGf3bt372L06NHg8/n44osvjDrGkyQ0NBRdu3bF77//bummsHgMx3Br6dKlOHDgAMaMGaN0MV6+fLlRa4TcunULoaGhSuusxMfHIz8/H1u3blXat1mzZli9ejXGjRsHAPj999/xxhtvKA0ltKepzAkhhBCiTFMYw7mfYdWqVejatSuSkpKUths7+Y+8K0px9WcvLy+1wVJubq7KfrSODiGEEEKMCnCWLFkCoC6NPXz4cLXdR/rWGWiizwKB6vbTxJr6Ba2dppluifnRubccOveWQ+fecmz53Ou6/htVg/PHH38gJiYGvr6+aoMbAEbXwsi7pRSHsRYXF7Pb6+9bfz9D5g0hhBBCiH0yKsDx8vJCVFSU1pk0DR2aLNeqVSv4+Pjgxo0b7Lbr16+rHTUQHh6u136EEEIIebIYFeDo0y00c+ZMYw4NPp+PV199Fd9//z2AukDp8uXLmDRpElJTUzFgwAB26GpcXBy2bt0KsVgMsViMLVu2cO4aI4QQQojtM6oG5+jRo2adEyAhIQFxcXGIjIxEbW0ttm7dCn9/f2RmZiItLQ0SiQQCgQBDhgzBtWvX2Cm0Y2Nj9ZpLgWi3aNEiSzfhiUXn3nLo3FsOnXvLsedzb9Qw8W7dumHt2rUaH2cYBnPmzLGKFcXl2SZbLaIihBBCiCpd13ejMjje3t6Ijo7Wus9bb71lzKEJIYQQQjjjPJOxJlOmTDHXoQkhhBBCtDIqwMnJyUH//v01rglCCCGEEGJJRgU4qampOHz4sF5r6hBCbN+6desQExODjh07olmzZoiJicGAAQPMsuL4+fPnERsbi8TEREyaNAkZGRnsY4sXL0ZCQgJmzZrFrta+ZcsWvPvuu5g1axbOnz/P7qtpuyJt+5w+fRpdu3bFuHHjkJ+fjy1btiA8PBy7d+/W2PbMzEwMHDiQy9s3qXPnzsHR0RH5+fkqj0VGRiImJgYxMTFITExkt+tz3uQ2b96MmJgYk7U3Pj4e3bp1Q9++fdGvXz8UFRUZdRxtnyFd++jz/k3VTk3HVlz2KCMjA87OzlrrXnU5f/48Pv30U3z00Ud44YUX2O1nzpxBly5dsGPHDpXnHD16FF26dGE/I02aNIFYLAag+bNj7vdhMMbOAWCegLdJSINYu3Yts2LFCrO+xq5du5i0tDSGYRhm+/btTGxsLMMwDJOcnMwMHTqUYRiGKS0tZdq1a8cUFxcz3bt3Z7c99dRTDMMwGrcr0mefKVOmMNu3b2dycnKY119/nSktLdXa9jt37jADBgww5m2bXGVlJfPGG28wQUFBTF5ensrjixYtUtmmzzmpLzo6mmtTWf369WPu3LnDMAzDTJ8+nfn555+NOo6mz5CuffR9/6Zqp6Zj9+nTh7l//z7DMAzz0ksvMREREczhw4eNOl5NTQ3z8ssvs79fvXqV/f+tW7eyn/H6bty4waSmpjIMwzBlZWXMK6+8wj6m7rNj7vehjq7rO+e1qAghT44rV66wi9saSiwWY/To0Srbhw8fjvj4ePb3UaNGsf8vk8ng6uoKoO4OsFmzZgAAd3d3FBUVISkpCe3atWO31dbWIicnB1evXlW7vWnTpuyxz507p3MfAMjOzsby5cuRmJgIoVCo13tlGAZxcXG4du0aZDIZ1q5di549e0IqlWLy5Mm4f/8+evXqhR07duDWrVvs83777TesWbMGIpEIjRo1QmxsLJsR0vf8yS1fvhzvvPMO/vzzT7VtvHLlClasWIGysjJMmzYNLVu21OucyGQyTJ8+Hb6+vmjZsqXSe543bx58fHxw7949xMXFYfv27diwYQPOnz+PSZMmYfLkyZgxY4bG83b37l0EBwejsrISKSkpKvty/QwpUrePvp8JXe3k4uHDh3jppZeQmpqKR48ewdnZGbW1tejSpYvSfvqei3PnzqG2tharV69GYWGh0t/vhAkTsG/fPrXtaNOmDfv/27Ztw4QJE9jf1X12jH0f5kQBDiFEb1euXMHSpUuNeq6Li4vGL1N1GIbBtm3b2JR29+7dsXr1ajAMgwcPHiAvLw/37t2DSCRin+Pu7o78/Hzk5+er3a54odJnH6CuW2zZsmV6BzcAsGvXLkgkEpw8eRIZGRmYMGECzp8/j127dsHDwwNbtmzBqVOnsG3bNvY5t2/fxjfffINjx44BAAICAvD555+zjxty/o4dO4bg4GC0aNFC4z4LFixAjx49kJOTgyFDhuC///7T65zs2rULjo6OWLlyJTIyMvDbb78BAP766y8UFxdj1apVyM7OxrRp03Do0CFkZWXhl19+wbhx47QGAtnZ2SguLkZUVBR7Ae3Zs6fSPlw/Q7r2OXnypM73r087jZWdnY3mzZujU6dOuH79Og4dOoS1a9di0KBBKisH6Hsu7t+/j8uXL+PHH39ERUUFIiMjcenSJTg7O+vdrsOHD+OXX35hf1f32TH2fZgTBTiE2LDNm1OQmVnC+TjBwZ6YOrWj1n1kMhkePXqkEgDI3bhxA7t370bPnj1x/vx5REZGol+/fuzjYrEYI0aMUHneyJEj8eabb6psX7RoEd5++232It2qVSssWLAAS5cuha+vL9q1a4eOHTsiLS2NfU5ZWRn8/Pzg5+eH8vJyle2K9NkHAFasWIGvvvoKjRo1wtixYzWdHpVz0bt3bwBAy5Yt2RqN9PR0djmZiIgIpVnhf/nlF7z66qtwcnICAAQGBiq1x5Dzd+DAAYhEIixfvhwlJSX4/PPPMWnSJLRt25bdp0ePHgCApk2boqamBnl5eXqdk5s3byIkJAQAEBwczG6/fv06Hjx4gOXLl4NhGPj6+gIAVq1aheDgYNy5c0frOfvvv/8wZcoUrF27Fr/88gtOnTqlsg/Xz5A6ivvo8/41tTM5ORlz587Frl27lGpPDPHff/+hc+fO6NSpExISEjB48GBUVVUpZVPk9D0XIpEIXbp0gUAggIeHBzw9PZGRkcFmqnS5evUqOnbsqPRZVffZUVwHUtv7MMV50hcFOITYMF1BiSmlp6ejdevW7O87duxAdXU1bty4gXfeeQdHjhxBbW0tUlJSUFtbi6eeekrp+S4uLjh48KBer7VixQpERUWhb9++2Lt3L4YOHQqZTIaQkBCMGjUKZWVlOHToEGJiYvDxxx8DqLsYCQQCNG3aFK6urliwYIHKdqDu7rJFixaIiIjQuI8iX19f7Nu3D/3794eHhwcGDx6ss/1t27bF7t278corryAjIwNeXl4AgNatW+PgwYOYPn06kpOTlSYoq6qqYi8iP/30E5o3b270+VPMsn377beYPXs2e6HOzs5GZWUlzp49i6lTp6K6uhqVlZXw8fHR65y0adMGe/fuBQBkZWWx2zt06IC7d+9i/vz5YBgGv//+O4C6wG3NmjWYPXs2fv31V41tvnLlCjp06AAAGDt2LD744AMwDKN0YeX6GZK/f3nAU3+f3r1763z/mtoZHh6OgIAAeHt7Y8GCBRg0aBAOHz6M2NhY7N27F3fv3kVISAhEIhEmTpyo8Rx07twZLVu2ROfOnfH+++9j//79art19D0X4eHhWLlyJYC6bFVhYSECAgI07q94fgBg06ZNmDdvHvt7Wlqa2s+Ovu/DFOdJXxTgEEL0Iv/SktuxYwemTp0Kf39/ZGdnIywsTGl/Nzc3o17njz/+wKpVq9CuXTssXboU3t7eGDp0KKRSKWbNmoVBgwahsrISa9euhaenJ95++23MnTsX5eXl+OabbwBA4/aSkhIMHjwYqampGveRO3v2LK5cuYLq6mo8/fTT+PvvvzF48GBMnToVCxcuREhIiMasxKhRo/DXX3+hb9++kEql+OKLLwAAo0ePxvbt2xEdHY3w8HClboKXX34ZY8eOxdatWyESiUyycPDKlStRUlKC1atX47333gMADB48GIcOHcLu3btx//59ZGVl4fPPP4dAINB5TuTvLSkpCW+//TYaN26MrKwsHDlyBMOHD8eJEyewePFiVFVVISYmBt988w3+/vtv/Pzzz/j000/x1ltvYe3atWrP3ZUrV9gJYp2cnBAWFobk5GSjun80fYYU//017aPr/evTTnmmLCgoCADQrl07tGzZEoMHD8akSZMwceJEjedgyJAh4PP5+Omnn9htin93hmrcuDFeeuklLFiwAOXl5fjwww/h6ekJ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\n", "text/plain": [ "" ] }, "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 }