{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Synthetic photometry" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this tutorial, we will obtain synthetic photometry in the [F115W filter](http://svo2.cab.inta-csic.es/svo/theory/fps3/index.php?id=JWST/NIRCam.F115W&&mode=browse&gname=JWST&gname2=NIRCam#filter) of [JWST/NIRCam](https://www.jwst.nasa.gov/content/observatory/instruments/nircam.html) from an [IRTF spectrum of Jupiter](http://irtfweb.ifa.hawaii.edu/~spex/IRTF_Spectral_Library/References_files/Planets.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting started" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start by importing the required Python packages." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import urllib.request\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import species" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The *species* database that is specified in *species_config.ini* is initiated with the `SpeciesInit` class." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Initiating species v0.2.2... [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" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "species.SpeciesInit()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jupiter spectrum" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The spectrum of Jupiter that is used as an example is now downloaded from the [IRTF website](http://irtfweb.ifa.hawaii.edu/~spex/IRTF_Spectral_Library/References_files/Planets.html)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('data/plnt_Jupiter.txt', )" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "urllib.request.urlretrieve('http://irtfweb.ifa.hawaii.edu/~spex/IRTF_Spectral_Library/Data/plnt_Jupiter.txt',\n", " 'data/plnt_Jupiter.txt')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It contains the wavelength in $\\mu$m, and the flux and uncertainty in W m$^{-2}$ $\\mu$m$^-1$, which are also the units that *species* requires. We can read the data with `loadtxt` from `numpy`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "wavelength, flux, error = np.loadtxt('data/plnt_Jupiter.txt', unpack=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a `SpectrumBox` with the data." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "spec_box = species.create_box('spectrum',\n", " spectrum='irtf',\n", " wavelength=wavelength,\n", " flux=flux,\n", " error=error,\n", " name='jupiter')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And pass the `Box` to the `plot_spectrum` function together with the filter name." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Plotting spectrum: spectrum.png... [DONE]\n" ] } ], "source": [ "species.plot_spectrum(boxes=[spec_box, ],\n", " filters=['JWST/NIRCam.F115W'],\n", " xlim=(0.75, 2.),\n", " ylim=(0., 1.7e-8),\n", " offset=(-0.09, -0.06),\n", " output='spectrum.png')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image('spectrum.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Synthetic flux and magnitude" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use the `SyntheticPhotometry` class to calculate the flux and magnitude for the `JWST/NIRCam.F115W` filter." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "synphot = species.SyntheticPhotometry('JWST/NIRCam.F115W')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The average flux in the JWST filter is calculated with the `spectrum_to_flux` function. The error on the synthetic flux is estimated with Monte Carlo sampling of the input spectrum." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Flux [W m-2 micron-1] = 2.64e-09 +/- 9.89e-14\n" ] } ], "source": [ "jwst_flux = synphot.spectrum_to_flux(wavelength, flux, error=error)\n", "print(f'Flux [W m-2 micron-1] = {jwst_flux[0]:.2e} +/- {jwst_flux[1]:.2e}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, we can calculate the synthetic magnitude. Also the absolute magnitude can be calculated by providing the distance and uncertainty (set to `None` in the example). In *species*, the magnitude is defined relative to Vega, which is set to 0.03 mag. In this filter, Jupiter has a magnitude of 0.49 so the planet is similar in brightness to Vega." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Apparent magnitude [mag] = 0.49 +/- 4.10e-05\n" ] } ], "source": [ "jwst_mag, _ = synphot.spectrum_to_magnitude(wavelength, flux, error=error, distance=None)\n", "print(f'Apparent magnitude [mag] = {jwst_mag[0]:.2f} +/- {jwst_mag[1]:.2e}')" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 2 }