{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "FORCAST Grism Spectra: Basic Line Analysis\n", "=========================\n", "* **Aim**: Basic line fluxes and line fitting of grism data.
\n", "* **Data**: Level 3 grism data of the Saturn Nebula (G111)
\n", "* **Tools**: astropy, specutils
\n", "* **Instrument**: FORCAST
\n", "* **Documentation**: [FORCAST user's manual](https://irsa.ipac.caltech.edu/data/SOFIA/docs/sites/default/files/2022-12/forcast_users_revM.pdf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Goals\n", "----------\n", "* Load and clean grism data\n", "* Fit the continuum\n", "* Measure the line fluxes\n", "* Fit a spectral lines with a 1D Guassian\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "This recipe provides an overview and sample code (in Python) for some simple line analysis tasks using FORCAST grism observations. We recommend that the user reviews the first FORCAST Grism Recipe ([FORCAST Grism Recipe: Basic Inspection and Assessment](FORCAST-Grism_Inspection.ipynb)) before proceeding with this slightly more advanced tutorial. \n", "\n", "Raw FORCAST data suffers from several instrumental artifacts. Nearly all of the artifacts are removed or corrected by the FORCAST pipeline, including: bad pixels; the Droop effect; non-linear pixel response; and the “jailbar” effect. In addition, the grism pipeline extracts the one-dimensional spectra, applies both wavelength and flux calibration, and corrects for telluric absorption. For point sources, an \"optimal extraction\" algorithm is used, while for extended (non-pointlike) sources, a standard summation over a manually defined aperture is used. See the [FORCAST user's manual](https://irsa.ipac.caltech.edu/data/SOFIA/docs/sites/default/files/2022-12/forcast_users_revM.pdf) for details regarding the artifacts, pipeline algorithms, and the flux-calibration process. \n", "\n", "In this recipe we show the user how to do some minor \"cleaning\" of the LEVEL_3 data and then some basic emission line analysis including continuum fitting and subtraction, line flux measurement, and simple line fitting. \n", "\n", "\n", "There are a handful of relatively mature spectral line analysis in python, including linetools and pyspeckit. For this recipe/example, we are using specutils since this seems to be the most general package. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:23.816738Z", "iopub.status.busy": "2023-09-21T00:15:23.816532Z", "iopub.status.idle": "2023-09-21T00:15:25.842948Z", "shell.execute_reply": "2023-09-21T00:15:25.841960Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/rpvander/anaconda3/envs/recipes/lib/python3.8/site-packages/specutils/io/registers.py:91: UserWarning: 'load_forcast_grism' data loader provided for Spectrum1D without explicit identifier or list of compatible extensions\n", " warnings.warn(f\"'{label}' data loader provided for {dtype.__name__} without \"\n" ] } ], "source": [ "import numpy as np\n", "import numpy.ma as ma\n", "import matplotlib.pyplot as plt\n", "from astropy.io import fits\n", "from astropy.modeling import models\n", "from astropy.table import Table,QTable,Column\n", "from astropy import constants as const\n", "from astropy import units as u\n", "from astropy.visualization import quantity_support\n", "from specutils import Spectrum1D, SpectralRegion\n", "from specutils.fitting import fit_generic_continuum\n", "import warnings\n", "warnings.simplefilter('ignore')\n", "%matplotlib inline\n", "quantity_support() ;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ingredients\n", "\n", "1. Level 3 (flux calibrated) FORCAST grism data (either CAL or CMB files) from the Infrared Science Archive ([IRSA](https://irsa.ipac.caltech.edu/Missions/sofia.html)).\n", "2. Sample Data (if desired): In this example we will be using observations of the PN NGC 7009. \n", " - Level 3 data can be obtained from the IRSA using the following search criteria:\n", " - Coordinates or Object Name = NGC 7009\n", " - Radius = 100 arcseconds\n", " - Mission ID = \"2017-08-07_FO_F428\"\n", " - AOR ID = 05_0063_7\n", " - Instrument = FORCAST\n", " - Processing State = Level 3\n", " - Download all data and save to local desktop. \n", " - For this example we will be using the following files: \n", " - F0428_FO_GRI_0500637_FORG111_CAL_0177-0196.fits\n", " - F0428_FO_GRI_0500638_FORG227_CMB_0197-0215.fits\n", " - For convenience, we recommend saving both files in a folder called \"forcast-sample-data\" in the same directory as this Python Notebook.\n", " \n", " \n", "#### You can download the example data directly [here](https://zenodo.org/record/6574619/files/FORCAST-Grism_Inspection-example-data.zip?download=1).\n", "\n", "3. [FORCAST user's manual](https://irsa.ipac.caltech.edu/data/SOFIA/docs/sites/default/files/2022-12/forcast_users_revM.pdf) for reference (latest version can be found on the [SOFIA Data Analysis](https://irsa.ipac.caltech.edu/data/SOFIA/docs/data/data-analysis/index.html))\n", "4. Download and install specutils from the [AstroPy Affiliated Packages](http://www.astropy.org/affiliated/index.html) page. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cleaning the Data\n", "\n", "First we'll load the calibrated data for a single grism observation (G111 in this example) and take a look at the spectrum." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:25.846149Z", "iopub.status.busy": "2023-09-21T00:15:25.845934Z", "iopub.status.idle": "2023-09-21T00:15:26.348259Z", "shell.execute_reply": "2023-09-21T00:15:26.347676Z" } }, "outputs": [ { "data": { "image/png": "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jz22a7rq2uvsspNO6pped8337PLTTuuaXvutb9sVX/lK1/Sab1xuV55/ftf06q9fbFd/7aKu6VVfvcCuueyyrumVZ59j11x5Zdf0ijPOtOuuvrprevnUk23VD3/YNb3suONt9czru6Y//39ftutvvrlreulhh9sNP/tZ13TlgQfZjb+6rWvau+9+dtOdd3ZNL5lUYTffdbe1tn3fWDKpwm75/e+ttdYGGhrskkkVtuahP1prrfXX1tolkyrs1kcfs9Za27Zpk10yqcJue/zx9umqKrtkUoWtffoZa621ratW2SWTKmzdCy9Ya61tXrrULplUYbe/8kr79Gef2SWevbv25aZPPrHeffezO/77trXW2sYPP7TeAybbhvfb9/2G+fNt5YEH2aaFC6211u7479t26WGH2+bPPmuffustu/RLX7Ity5ZZa62tf/11+/mxx9rWNWustdZuf/VVu+zEk2xbdXX79Cuv2OWnnWZ9W7a0T7/8sl15zrnWX1fXNb366xfbQENDx/L/tGuv+pYNtLZ2TVf98Ic2GAi0T8+bZ9ff/JOu77b+X/+yG2+/44vp19+wW+6/v2u64Z137LYnn+yabvrkE1v/5ptd0y0rVtimRYu7pts2bbJtGzZ0TQeam22wIxagr1qyZInTIWStSN+NpFZJC0L+XWnD8qYlkyrGLplUsTh8fsdrLy6ZVPGlkOnXl0yqODjSsj39R5tOAEgx29amQEOD8gYPlg0EtOq881R6wgka9p3vyLjd2vyb32jot65SyWGHyrjdaq1cKv+RR0qSAo2Nqrn7HrkHDFTxfvvJX1unqquv0chbb9Wgr06Xf9MmrZh6snb71a9UdvZX1LauSitPPVWj7rxTA08/TW0rV2rVtK+o/O67NOCkk9S2apXWXvYNjf79/So99li1ravShpt/ot0fekj5I4bLt2mTtv35L+p/zDEqGF0u29Yq37qqrtIxV//+KtxzT5n89stFwYQJGvLNK+QeUCpJ6nfQgdrt/34hd1mZJKnkiMNV/tvfyD1ggCS1b3f30XJ1dCE/4JSTVbzvPnIVFUmSBp5xuvoddKBMfr4kqeycs1XS8V1I0qDp56v02GO6pgd/7UINOOXkrukhl12qgdOmfTH9zW9q0Fend00P/e53NPjir3dND7v6uwp0lARK0rDvf0/B5i/a3Az74Q9kW78YAHz4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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Define a function for loading fits data into table structure,\n", "#keeping the FITS data for later use if needed.\n", "def loadFORCASTGrismData(filename):\n", " #Now open fits file for the sample data...\n", " data_fits = fits.open(filename)\n", "\n", " #... read the data portion of the file into a separate array:\n", " data_tmp = data_fits[0].data\n", "\n", " #... load into table for convenience\n", " data_table = Table([data_tmp[0],data_tmp[1],data_tmp[2],data_tmp[3],data_tmp[4]], \n", " names=('wavelength', 'flux', 'error', 'telluric', 'response'), masked = True,\n", " meta={'name': 'Data Table'})\n", "\n", " #and assign units.\n", " data_table['wavelength'].unit = 'micron'\n", " data_table['flux'].unit = 'Jy'\n", " data_table['error'].unit = 'Jy'\n", " data_table['response'].unit = 'Jy/s'\n", " \n", " #...and mask out NaNs in flux.\n", " data_table['flux'].mask = np.isnan(data_table['flux'])\n", " \n", " return data_fits,data_table\n", "\n", "\n", "#Calibrated data file on local disk:\n", "calfile = 'example_data/FORCAST/F0428_FO_GRI_0500637_FORG111_CAL_0177-0196.fits'\n", "\n", "#Load fits data and tabular data...\n", "g111_fits, g111_tab=loadFORCASTGrismData(calfile)\n", "\n", "#And plot flux and telluric spectra\n", "fig, ax1 = plt.subplots(figsize=(15,10))\n", "\n", "ax1.set_xlabel('Wavelength ($\\mu$m)')\n", "ax1.set_ylabel('F$_v$ (Jy)')\n", "ax1.errorbar(g111_tab['wavelength'],g111_tab['flux'],yerr=g111_tab['error'],fmt='o',label=\"Flux\")\n", "ax1.legend(loc=\"lower left\")\n", "\n", "color = 'tab:red'\n", "ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis\n", "ax2.set_ylabel('Transmission', color=color)\n", "ax2.plot(g111_tab['wavelength'],g111_tab['telluric'], color=color, linestyle=':',label=\"Telluric\")\n", "ax2.tick_params(axis='y', labelcolor=color)\n", "ax2.set_ylim(bottom=0.0)\n", "ax2.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This G111 spectrum appears to contain two strong emission lines: one at ~9.0$\\mu$m (ArIII) and a very strong one at ~10.5$\\mu$m (SIV). A nice table of line wavelengths and strengths can be found on the [MPE website](http://www.mpe.mpg.de/ir/ISO/linelists/). There are two main issues we need to \"clean\" before proceeding with line analysis: NaN values and noisy data due to deep telluric features. We'll define a function for this that creates a mask and then uses it to create a new \"clean\"-ed table of wavelength, flux, and error (leaving the telluric and response sprectra behind). We already masked the NaNs when we read the FITS file and created the data tables, so we just need to add the telluric regions to the mask. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:26.351671Z", "iopub.status.busy": "2023-09-21T00:15:26.351396Z", "iopub.status.idle": "2023-09-21T00:15:26.515590Z", "shell.execute_reply": "2023-09-21T00:15:26.514702Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Define a \"clean\"-ing function, that takes a FORCAST data table and telluric threshold as inputs:\n", "\n", "def cleanFORCASTGrismData(in_table,tell_thresh):\n", " #Now define mask (= True) for telluric transmission and add to the exisitng mask.\n", " in_table['flux'].mask = in_table['flux'].mask | (in_table['telluric'] < tell_thresh)\n", "\n", " #and apply NOT(Mask) to the wavelength, flux, and error arrays,\n", " #to pull out new \"clean\" arrays\n", " fc = in_table['flux'][~in_table['flux'].mask]\n", " wc = in_table['wavelength'][~in_table['flux'].mask]\n", " fc_err = in_table['error'][~in_table['flux'].mask]\n", "\n", " #and return a new table with cleaned arrays\n", " #Need to use QTable here to support specutils later.\n", " return QTable([wc,fc,fc_err], \n", " names=('wavelength', 'flux', 'error'), masked = True,\n", " meta={'name': 'Cleaned Spectrum'})\n", "\n", "\n", "#and now execute on our data for G111 with a telluric threshold of 0.75\n", "g111_clean = cleanFORCASTGrismData(g111_tab,0.75)\n", "\n", "#And plot flux and errors\n", "plt.figure(figsize=(15,10))\n", "plt.errorbar(g111_clean['wavelength'].value,g111_clean['flux'].value,yerr=g111_clean['error'].value,fmt='o',label=\"Flux\")\n", "#plt.legend(loc=\"lower left\")\n", "plt.xlabel('Wavelength ($\\mu$m)')\n", "plt.ylabel('F$_v$ (Jy)');\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that the spectrum is cleaned, we are ready to begin some simple line analysis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fitting the Continuum Across the Grism\n", "\n", "Our first analysis task is to fit the continuum across the grism. In this step, the hard part is identifying all the sections of \"line-free\" continuum. There are many ways to do this automatically, but in this example we will simply estimate the continuum regions by eye. The easiest way to bookkeep this is to identify all the regions with lines first, then logically invert those regions to extract the continuum. In the G111 case above, we have two lines: one at ~9.0 $\\mu$m and another stronger one at ~10.5 $\\mu$m. So lets define our line regions as:\n", "- 8.88 -- 9.15 $\\mu$m\n", "- 10.25 -- 10.75 $\\mu$m" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:26.519515Z", "iopub.status.busy": "2023-09-21T00:15:26.519309Z", "iopub.status.idle": "2023-09-21T00:15:26.523688Z", "shell.execute_reply": "2023-09-21T00:15:26.523045Z" } }, "outputs": [], "source": [ "#As usual, lets define a function that takes a list of line regions and extracts everything external to \n", "#those regions as continuum:\n", "def createContinuumSpectrum(in_table,line_regions):\n", " wave = in_table['wavelength']\n", " flux = in_table['flux']\n", " err = in_table['error']\n", " \n", " #initialize the continuum mask, where T corresponds to \"is Continuum\".\n", " cont_mask = 1.0*u.um < wave #initialize to FALSE\n", " \n", " #for each line region...\n", " for x in line_regions:\n", " #...update mask value to TRUE for all points *outside* of that region\n", " cont_mask = cont_mask & ~((x[0]wave))\n", "\n", " return QTable([wave[cont_mask],flux[cont_mask],err[cont_mask]], \n", " names=('wavelength', 'flux', 'error'), masked = True,\n", " meta={'name': 'Continuum Spectrum'})\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:26.526645Z", "iopub.status.busy": "2023-09-21T00:15:26.526399Z", "iopub.status.idle": "2023-09-21T00:15:26.812102Z", "shell.execute_reply": "2023-09-21T00:15:26.811523Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAJRCAYAAAD4eH46AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABBN0lEQVR4nO3de5SkZ30f+O8zF41oLpKRZBk0nhkhy1xkATYKtoM3Gi5xMEuCL6xj0/EqsZaJhR2bTawAGa/jvczGmBNHSU7Q7sjY6OQ0Dg4XQxI7C2g1Yo0jQLKxQYCRwRoxAsRIIAloaTQaPftHVc9UV9e1L1Vdb38+58yZrrerqp/ueuut9/s+z/N7Sq01AAAANMO2aTcAAACA9SPkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADTIjmk3YDXOP//8um/fvmk3AwAAYCpuv/32+2qtF/T63kyGvH379uW2226bdjMAAACmopRytN/3DNcEAABoECEPAACgQYQ8AACABpnJOXkAAMB0nTx5MseOHcsjjzwy7aY02tlnn53du3dn586dIz9GyAMAAMZ27NixPPnJT86+fftSSpl2cxqp1pr7778/x44dy8UXXzzy4wzXBAAAxvbII4/kvPPOE/A2UCkl55133ti9pUIeAACwKgLexlvN31jIAwAAJmL/2/dn/9v3r+tzfuUrX8lP/dRP5ZJLLskLXvCCvOIVr8jnPve5sZ/nuuuuy+Li4unbr3jFK/LAAw+sY0snR8gDAABmUq01P/ZjP5b9+/fn85//fG6//fb8i3/xL3LvvfeO/VzdIe8P/uAPcu65565jaydHyAMAADbcwicXcuuxW3PL0Vuy77p9Wfjkwpqf8+abb87OnTvzcz/3c6e3Pe95z8sP/dAP5dprr833fM/35PLLL8873/nOJMmRI0eyf//+vPrVr86znvWszM/Pp9aaf/Nv/k2+9KUv5cUvfnFe/OIXJ0n27duX++67L3fddVee/exn57WvfW0uu+yy/PAP/3AefvjhJMn+/ftz2223JUnuu+++7Nu3L0ny9re/Pb/wC79wuk2vfOUrc+TIkSTJk570pFx77bW57LLL8rKXvSwf+9jHsn///jzjGc/I+9///jX/TRIhDwAA2GALn1zIgf90ICdOnUiSHH3waA78pwNrDnqf+tSn8oIXvGDF9ve85z35xCc+kT/7sz/Lhz70oVx77bX58pe/nCT50z/901x33XX59Kc/nS984Qv5yEc+kl/8xV/M05/+9Nx88825+eabVzzfnXfemZ//+Z/PHXfckXPPPTfvfve7V93mb33rW3nJS16SO+64I09+8pPzK7/yK/ngBz+Y9773vfnVX/3VVT9vJyEPAADYUAdvOpjFk4vLti2eXMzBmw5uyM/7oz/6o/z0T/90tm/fngsvvDBXXnllPv7xjydJXvjCF2b37t3Ztm1bnv/85+euu+4a+nwXX3xxnv/85ydJXvCCF4z0mH7OOuusvPzlL0+SXH755bnyyiuzc+fOXH755Wt63k5CHgAAsKHufvDusbaP6rLLLsvtt98+1mN27dp1+uvt27fnscceW/VjduzYkccffzxJli1z0Lm9+3s7d+48XTFz27Ztp59727ZtI7VlFEIeAACwofacs2es7aN6yUtekhMnTuTw4cOnt/35n/95zj333Lzzne/MqVOncvz48Xz4wx/OC1/4woHP9eQnPznf+MY3xvr5+/btOx0y3/Wudy3b/olPfCKPP/54vvjFL+ZjH/vYWM+7VkIeAACwoQ699FDmds4t2za3cy6HXnpoTc9bSsl73/vefOhDH8oll1ySyy67LG9605vymte8Js997nPzvOc9Ly95yUvyG7/xG/mO7/iOgc914MCBvPzlLz9deGUUv/zLv5zrr78+3/u935v77rvv9PYXvehFufjii/Oc5zwnv/iLv5jv+77vW/XvuBql1jrRH7gerrjiirpUxQYAAJi8z3zmM3n2s5898v0XPrmQq993dU6cOpG95+zNoZceyvzl8xvYwubo9bcupdxea72i1/13TKRVAEzE/v2t/9tVmgFg05i/fD433H5DkuTI3z8y3cY0nJAHAABMhHA3GebkAQAANIiQBwAArMos1veYNav5Gwt5AA2xsJDcemtyyy3Jvn2t2wCwUc4+++zcf//9gt4GqrXm/vvvz9lnnz3W48zJA2iAhYXkwIHkxInW7aNHW7eTZF7hMgA2wO7du3Ps2LEcP3582k1ptLPPPju7d+8e6zETXUKhlHJXkm8kOZXksVrrFaWUpyZ5Z5J9Se5K8pO11q8Peh5LKAAst29fK9h127s3ueuuSbcGANhog5ZQmMZwzRfXWp/f0aA3Jrmp1nppkpvatwEYw913j7cdAGiuzTAn71VJbmx/fWOSH51eUwBmy/79rX979vT+fr/tAEBzTTrk1SQfKKXcXkppzxbJhbXWL7e//kqSCyfcJoCZd+hQMje3fNvcXGs7ALC1TLrwyg/VWu8ppXx7kg+WUj7b+c1aay2l9Jwk2A6FB5Jkj0vTAMssFVe5+upW8ZW9e1sBT9EVANh6Jhryaq33tP//ainlvUlemOTeUsrTaq1fLqU8LclX+zz2cJLDSavwyqTaDDAr5ueTG25ofX3kyFSbAgBM0cSGa5ZSnlhKefLS10l+OMmnkrw/yVXtu12V5H2TahPALLMuHgDQyyR78i5M8t5SytLPfUet9b+WUj6e5PdKKVcnOZrkJyfYJoCZ1G9dvD17kgvNbAaALW1iIa/W+oUkz+ux/f4kL51UOwCa4ODBZHFx+bbFxeThhw3VBICtbjMsoQDAmKyLBwD0I+QBzCDr4gEA/Qh5ADPIungAQD9CHsAMmp9PDh9Odu1q3d67t3XbungAwKQXQwdgnVgXDwDoRU8eAABAg+jJA5hhevAAgG568gAaav/+1j8AYGsR8gAAABpEyAMAAGgQIQ8AAKBBhDyABlpYSG69NbnllmTfvtZtAGBrEPIAGmZhITlwIDlxonX76NHWbUEPALYGIQ+gYQ4eTBYXl29bXGxtBwCaT8gDaJi77x5vOwDQLEIeQMPs2TPedgCgWYQ8gIY5dCiZm1u+bW6utR0AaD4hD6Bh5ueTw4eTXbtat/fubd2en59uuwCAydgx7QYAsP7m55Mbbmh9feTIVJsCAEyYnjwAAIAGEfIAAAAaxHBNgIYyTBMAtiY9eQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AFvA/v2tfwBA8wl5AAAADSLkAQAANIiQBwAA0CBCHkDDLSwkt96a3HJLsm9f6zYA0FxCHkCDLSwkBw4kJ060bh892rot6AFAcwl5AA128GCyuLh82+JiazsA0ExCHkCD3X33eNsBgNkn5AE02J49420HAGafkAfQYIcOJXNzy7fNzbW2AwDNJOQBNNj8fHL4cLJrV+v23r2t2/Pz020XALBxdky7AQBsrPn55IYbWl8fOTLVpgAAE6AnDwAAoEGEPAAAgAYxXBNgCzBMEwC2Dj15AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADTIxENeKWV7KeVPSyn/uX374lLKR0spf1lKeWcp5axJtwkAAKApptGT90tJPtNx+81J/lWt9buSfD3J1VNoEwAAQCNMNOSVUnYn+e+T/Fb7dknykiTvat/lxiQ/Osk2AQAANMmke/KuS/JPkzzevn1ekgdqrY+1bx9LctGE2wQAANAYEwt5pZRXJvlqrfX2VT7+QCnltlLKbcePH1/n1gEAADTDJHvyXpTk75RS7kryH9Iapvmvk5xbStnRvs/uJPf0enCt9XCt9Ypa6xUXXHDBJNoLAAAwcyYW8mqtb6q17q617kvyU0n+31rrfJKbk7y6fberkrxvUm0CAABoms2wTt4bkvzjUspfpjVH721Tbg8AAMDM2jH8Luuv1nokyZH2119I8sJptAMAAKBpNkNPHgAAAOtEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDmDH797f+AQD0IuQBAAA0iJAHAADQIEIewAxZWEhuvTW55ZZk377WbQCATkIewIxYWEgOHEhOnGjdPnq0dVvQAwA6CXkAM+LgwWRxcfm2xcXWdgCAJUIewIy4++7xtgMAW5OQBzAj9uwZbzsAsDUJeQAz4tChZG5u+ba5udZ2AIAlQh7AjJifTw4fTnbtat3eu7d1e35+uu0CADaXHdNuAACjm59Pbrih9fWRI1NtCgCwSenJAwAAaBAhDwAAoEEM1wSYMYZpAgCD6MkDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpkYiGvlHJ2KeVjpZQ/K6XcUUr5X9vbLy6lfLSU8pellHeWUs6aVJsAAACaZpI9eSeSvKTW+rwkz0/y8lLKDyR5c5J/VWv9riRfT3L1BNsEAADQKBMLebXlm+2bO9v/apKXJHlXe/uNSX50Um0CAABomonOySulbC+lfCLJV5N8MMnnkzxQa32sfZdjSS6aZJsAAACaZKIhr9Z6qtb6/CS7k7wwybNGfWwp5UAp5bZSym3Hjx/fqCYCAADMtKlU16y1PpDk5iQ/mOTcUsqO9rd2J7mnz2MO11qvqLVeccEFF0ymoQAAADNmktU1LyilnNv++glJ/maSz6QV9l7dvttVSd43qTYBAAA0zY7hd1k3T0tyYylle1rh8vdqrf+5lPLpJP+hlPJ/JPnTJG+bYJsAAAAaZWIhr9b650m+t8f2L6Q1Pw8AAIA1msqcPAAAADaGkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANMjYIa+U8sRSyvaNaAwAAABrMzTklVK2lVJeU0r5L6WUryb5bJIvl1I+XUp5Synluza+mQAAAIxilJ68m5NckuRNSb6j1vqdtdZvT/JDSW5N8uZSyt/bwDYCAAAwoh0j3OdltdaT3RtrrV9L8u4k7y6l7Fz3lgEAADC2oT15SwGvlPKPSinfNug+AAAATNc4hVcuTPLxUsrvlVJeXkopG9UoAAAAVmfkkFdr/ZUklyZ5W5K/n+TOUsr/WUq5ZIPaBgAAwJjGWkKh1lqTfKX977Ek35bkXaWU39iAtgEAADCmUQqvJElKKb+U5H9Mcl+S30pyba31ZCllW5I7k/zTjWkiAAAAoxo55CV5apIfr7Ue7dxYa328lPLK9W0WAAAAqzFyyKu1/vMB3/vM+jQHAACAtRga8kop30hS+3z7RJLPJzlYa71pPRsGAADA+IaGvFrrk/t9r5SyPcn3JFlo/w8AAMAUDa2uOWg9vFrrqVrrnyV567q2CgAAgFUZZQmFm0sp/6iUsqdzYynlrFLKS0opNyZZ3JjmAQAAMI5RCq+8PMnPJvndUsrFSR5IcnaS7Uk+kOS6WuufblgLAQAAGNkoc/IeSWs45ltLKTuTnJ/k4VrrAxvcNgAAAMY0zjp5qbWeTPLlDWoLAAAAazTKnDwAAABmhJAHAADQIKsKeaWUufVuCAAAAGu32p68f1tK+YelFD2BAAAAm8iqQlqt9eokn07yW6WUV61vkwAAAFit1Q7XvDLJ5Wktgv6/rWuLAAAAWLWhSyiUUvbUWu/u2vzsJH+WZKHW+uCGtAwAAICxjdKT9/tLX5RS3p0ktdb/q9b6EQEPAABgcxkl5JWOr5+xUQ0BAABg7UYJebXP1wAAAGwyQ+fkJXleKeWhtHr0ntD+Ou3btdb6lA1rHQAAAGMZGvJqrdsn0RAAAADWzmLmAAAADSLkAQAANIiQB7AF7d/f+gcANI+QBwAA0CBCHgAAQIMIeQAAAA0i5AFsMQsLya23Jrfckuzb17oNADSHkAewhSwsJAcOJCdOtG4fPdq6LegBQHMIeQBbyMGDyeLi8m2Li63tAEAzCHkAW8jdd4+3HQCYPUIewBayZ8942wGA2SPkAWwhhw4lc3PLt83NtbYDAM0g5AFsIfPzyeHDya5drdt797Zuz89Pt10AwPrZMe0GADBZ8/PJDTe0vj5yZKpNAQA2gJ48AACABtGTB7AF6cEDgObSkwcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANMjEQl4p5TtLKTeXUj5dSrmjlPJL7e1PLaV8sJRyZ/v/b5tUmwAAAJpmkj15jyX5J7XW5yT5gSQ/X0p5TpI3Jrmp1nppkpvatwEAAFiFiYW8WuuXa61/0v76G0k+k+SiJK9KcmP7bjcm+dFJtQkAAKBppjInr5SyL8n3JvlokgtrrV9uf+srSS6cRpsAAACaYOIhr5TypCTvTvL6WutDnd+rtdYktc/jDpRSbiul3Hb8+PEJtBQAAGD2TDTklVJ2phXwFmqt72lvvreU8rT295+W5Ku9HltrPVxrvaLWesUFF1wwmQYDAADMmElW1yxJ3pbkM7XW3+z41vuTXNX++qok75tUmwAAAJpmxwR/1ouS/EyST5ZSPtHe9s+S/HqS3yulXJ3kaJKfnGCbAAAAGmViIa/W+kdJSp9vv3RS7QAAAGiyqVTXBAAAYGMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AHMgP37W/8AAIYR8gAAABpEyAMAAGgQIQ9gk1tYSG69NbnllmTfvtZtAIB+hDyATWxhITlwIDlxonX76NHWbUEPAOhHyAPYxA4eTBYXl29bXGxtBwDoRcgD2MTuvnu87QAAQh7AJrZnz3jbAQCEPIBN7NChZG5u+ba5udZ2AIBehDyATWx+Pjl8ONm1q3V7797W7fn56bYLANi8dky7AQAMNj+f3HBD6+sjR6baFABgBujJAwAAaBAhDwAAoEEM1wSYAYZpAgCj0pMHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAABAgwh5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANMrGQV0r57VLKV0spn+rY9tRSygdLKXe2//+2SbUHAACgiSbZk/f2JC/v2vbGJDfVWi9NclP7NgAAAKs0sZBXa/1wkq91bX5VkhvbX9+Y5Ecn1R4AAIAmmvacvAtrrV9uf/2VJBdOszEAAACzbtoh77Raa01S+32/lHKglHJbKeW248ePT7BlAAAAs2PaIe/eUsrTkqT9/1f73bHWerjWekWt9YoLLrhgYg0EAACYJdMOee9PclX766uSvG+KbQEAAJh5k1xC4XeT/LckzyylHCulXJ3k15P8zVLKnUle1r4NAADAKu2Y1A+qtf50n2+9dFJtAAAAaLppD9cEAABgHQl5AAAADSLkAQAANIiQBwAA0CBCHgAAQIMIeQAAAA0i5AEAADSIkAcAANAgQh7AJrR/f+sfAMC4hDwAAIAGEfIAAAAaRMgDAABoECEPYJNZWEhuvTW55ZZk377WbQCAUQl5AJvIwkJy4EBy4kTr9tGjrduCHgAwKiEPYBM5eDBZXFy+bXGxtR0AYBRCHsAmcvfd420HAOgm5AFsInv2jLcdAKCbkAewiRw6lMzNLd82N9faDgAwCiEPYBOZn08OH0527Wrd3ru3dXt+frrtAgBmx45pNwCA5ebnkxtuaH195MhUmwIAzCA9eQAAAA2iJw9gE9KDBwCslp48AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAtrj9+1v/AIBmEPIANglhCwBYD0IeAABAgwh5AAAADSLkAWxhCwvJrbcmt9yS7NvXug0AzDYhD2ATmEbYWlhIDhxITpxo3T56tHVb0AOA2SbkAUzZtMLWwYPJ4uLybYuLre0AwOwS8gCmbFph6+67x9sOAMwGIQ9gyqYVtvbsGW87ADAbhDyAKZtW2Dp0KJmbW75tbq61HQC2onNfvz/nvn7/tJuxZkIewJRNK2zNzyeHDye7drVu793buj0/v7E/FwDYWDum3QCArW4pVF19dav4yt69rYA3ibA1P5/ccEPr6yNHNv7nAQAbT8gj+/e3/neCB9MjbAEA68VwzS3OQsjAkSOCJQA0iZC3hVkIGQAAmkfI28L6rc119dVnhnACk6NHDQBYD0LeFtZvDa4TJ3oP39y/X/gDAKBZlpZNeN31C3lw2+fz4Lkfzo5r9+V118/u8DaFV7awPXtaQzT7WRq+ueTWW1sBcN++yVX+A6ZLYSYAtoLF4+fn+icdSM5pDXM79aSjuf6eA8n1yVuvmb2TXj15W1ivtbm6LS4mv/RL5u4BW1NTFsUFYLCTF3402dk1j2nnYg5/4eB0GrRGQt4W1r0Qcj/339977t7B2dznYdMwBBo2lpAOjOwp9/TcfOqJfeY3bXJC3hY3P5/8wA8kV17ZWoB5HP3m9AEAwEx56KKem7d/a8+EG7I+hDxOV/TrNXxz27ZkR5+Zm3tmc58HRmQdTYDJ0fM8XTvv/f7kZNeJ8Mm5HHjGoek0aI2EPE7rHr553nmtkPfYY0kpy+87N9cKhU3goMo0bPYAZR3NNKrK2lbk9QNGsXSsOHnpe5KTT0gWn5rUku3f3JtrLjqcd/zFDTN5nijksczS8M1nPSt5+OFWwEuSWs/cZ+/eVhhUXRNG0z33brMHqP37W+tlbuW5uK+7fqFVVe2cY0mpp6usCQqzwetHE3RehHZBemN0Hysyd3+y45HsvPPH89hb7prJqppLhLwtalDBhyNHWgGv+wQvafXy3XWXgAdrcfDg5g9QSwG021aZi3v4CwcbVWVtq/H6sZmMEtD0PE9Hz2PFWYutSpszTsijp34nco8+Otl2wCwaVjWz3/trMwWoflV3zzqr9/bu33nWK4f2q6Y2q1XWZtGgE+NhJ81ev8nQ09TfOPtvv57nxePnT6xNTbXaY0W/SpuzRMjbgkaZC9SvqIpiK3DGKEGm1/ttM7+/ltp74sTKubjbtiUXXzyddk1a32pqD1205U6SZlG/12+zV8kbFJpm+QRdGOzv3Nfvz/V3vrFnz/PJS34/D5774ZQ3nJ8Hd31SL98GGHSsn3VC3hYz6lygXpU2m1RsBdZbr8DX7/32ildszvdXd3u75+J+93cnF144nbZN2oFnHOpZZW3nvd8/nQY11Ead8Pd8/R6dy7YvXbHhP5utqd/+NNIwzH69RttPnZknNve1qc0vbfJ7pd+xognHeiFvixl1LlB3pU3FVmD8D7p+77ff/u3N+f7q1d6k1c5Dh5K/+qvRqoFu9sqho3jrNfO55qLDyYO7l1VZm7vgvtP3mdaJz0b/3M1wQjfoxLj7e2fNv3pFe3u9fjvv+pFlrx9r0/k69OppWut+tBH74Xr0KI43v+6WXH/vzywfhvmlf7Dsb7V4/Pzxe41WMb90WNgc9e+xGY4P3dbSpp7H+t2H8+jCu9a3kVPQZwU0mmqcuUDz88kNN7S+PnJkw5o0VUsHvTzlnuy4dl8OPOPQTFdSYnI6hzXu25c84QmtXq7O7f2cOLE531/9jg8nTvTukUxav0fn73z++ck3vnFm/m73fWfJW6+Zzztef0PywCV54LojSdK6zYY6Mz+pdcVhqeci17e+3/29U/uOZ/GuH1nxPN2v3zRPTJd+9tJ+1Evn51F5w/nJrpo84evZce2+PHPbKzbVZ1X3a5S5+09/b+n12nl8Zaie9GfuKH/39X6OFX+b1OV32HEy2fG1JO3999K7W/eppdVrN6JR55ee+/r9WTx+fk5e/IfL31PHDuS35t+7pjCzHn/fzfCzex3rl8zyeaKevC1m3LlASwul9zLrhRWU2J5d076S2GsY5mc/2+q5+pmfGRzwkv5FTaat33Fg+/bePZJXX508+9nL/xb337+yQNNmqxw6zKjDrta7KMJqjVrgYdrvm279ehb6Vca8/s43Dq2EN+prd9kbXje1Soa92tizjHvH8LxPP+H6TfVZ1fN16LTzzGsysFdrxj9zl17Lzv3r+i9fNfhv063UpLT/r6WVCU9tH/qwceaXnrzwo6uuILlZj3ujWGvv5ayfJwp5W8RSIFuvuXZNGI6lxPZ0bLYTzdXoN6wxWT6PrZfNXLyk3/Hh1Kne9z9xojWEs9/fotNmqBy6ln2v14f9yX1/ePqEpwn7ddL7pGgjfrdBJ0+Dqt31/96xniegD1x3JK955mtX/KyZC01dRZCm9Vm1tC+M1Iv0lGNdwS4re6rG+D3WOpxwWFhZzTIHi8fPz+Lx85cH9O19DpijKDV5aHeuedqNK+eJdTo515pLNqp+c/7a2/uFoWHHvc1sPQLarJ8nCnlbQGcgO3gwueqqtc0F2mwLOfc7MCux3Ryb4QS680Pw6I/tSy4ff4c/77xWyPvsZ1sXR1772s0zVDPpPxd3797e99+1a3iv5ZJpVA5dj/3mgeuO5IHrjvTvQbr03RO9ur1e82r6Pfckyrgng0+eBlW76/u9kr4noD1/1gRD06BwMVZo6tLvMaN+Jq5lXxmpF6mkd7DrcuqJd/fs2VzPntaeYeXS9+TBc28Z+X3UL/Cc3H3zeD13wzzlnhXzxLJ4XrL41GXzg0cZMnh6qGH3kNHTasobzs/1X/rZnmFo0HFvEhU/RxmJMO6IgHHe57N+nijkNdj+/SuHUh09mtx4Y/K2t7V6HFazsPksLOQ8zLmv3993ovNmL7G91U1jwdgVQ6nOPZr87QMjB71du5JnPSt5+OHkscda26Z9caSf+fnkB34gufLKM8eHXj18O3f27+Hrthkqh65V3w/1AeGin9WeXK8lhI0SDvuWcd+ARYEHnTxt+9IVK3sxakmeciyntn0zeazPYo3JsuC99DuOekK2ESduw8LF0mu3qs+d9mfYOOux9TPuPtmzIuFqdX0Wr9fFhqFDKNvDJAc9/9DnOGsxecLXhjdmaRjm4nmD99/k9N/jrdfM55zHL8k5D/yN1Dffl3NOXJ5zHvgbeewtdw0MeJ1DSM/8HfvcuaQ1NHhH1xj79vDoQce99ar4uZrj4ShDgMcNaEsX9DrN6lIsS4S8DbAZeh2W9BpKtdZANgsLOY9i573f37NE+lhDINgwo15J7fxg2aj3Xr+rmXnp8DfS3FxreOZGvBcnpbuH77zzWmvoLQXWbjt3JjvaZb02S+XQQSGnc7/pd7+hH+ojzm9Zi35XppfW0uruJRp4InTsQM6af/Xy5+o7pOvYul5UGXSRLQ9dlLkL7uvoxciZghRLJ5ap7V6NPj+g48T9ddcvjH5CtsZ1sXodf3r3ItYVFweGhqbu33WCJd57zTs7/IWDec7Jq3r2NPV9XXrpsSzJKPt5v/2w3z4/dAhlj/fRyMMw+wWoU9vPVHa988dzzgNXpr75vlzz9N9evm93/T2uufTXB7c1o33W9R0CPOrr85R7xgszExrGuCK89hkCvB4Brd9SOrNynijkNdSwCn9rCWSbaSHnfqW0R5lXsvxEYrwhEKyPcUPZoIIMG6nv1cxzWtu7Fw1fshRwLrxwY96Lk9TZw/ekJ60srrJk797kd34nedGLlvcGLpnGRbBR52YMut9IPRfteWEb1bvcdz9sr6XV2Uu0fAhWVp4I9Qql/UJO+/HjXK0f9jr3u8i2dMK/1IuRh3avbPuOk63HPrR7cCPaJ3s9X7sJhaahvYPtnsdBoWn7N/fmOQ9fs/x7j52dk5e+Z0CwXx76hxWeGTY/rTvwnHrS0Xx6543Zee/3r+hp2v6tPuO7l7SDYK9lSQb+zTr28+Hv34xVqbL7+dc8DPPkXHZ+/kdP97x1/o5neuiuzDUX/vuB5yCdvUu9epqW9Hq/rbln+qGLxu6x7TX0dr0Nnb/absewgDbKqKB+S+nMynmikLfOpjGUrFOvIZq9rCWQTXuh9N5DEc4cmB+8/+yRh3p0DocYNgSCtVtNla7Ox5x64tHed+rXA7FO+s8R2pMrr0z+/b9fPo/tWc9aHnCOHOk/r20aF0eGGVRVNxkcTMcdAr7aObXDDB1m1eOq86A5HMs/7Pv80K4epPU22jyojh6v7iFY3bqKLuQpx1b2LHRbp6v1vS6yPefkVTl54UeXHx8GFIzoGRS7nHri3T1P1DpD00asobe0/446d21QaHrsLXfljje/Nec8fkl23vnjyc6Hlw2T6x3sl3+vuye3u/DMoPlpSZ/qjH2G8vYO1WeC3VKv1mNvuStJVlyoHalHddT372qNOgyzW5/w2i+gbeQ5SN997/HhlTuXLnqMdNzr1Oe1W8/jed/zgA7bv7VnYEAbpyjLLJ8nCnnr5NzX789Z86/eFKVWh1W7W2sg26iF0telV+esxeTiD01sXgmjW02VrhXDZfqdfz500ZousAzb9/pdEXzaHa03Uvc8tgsvXPkc0744sh6Wwl+/YNq5NERnUNy/f+3LrYxzfFgxh7LPMKvuK93D5nAsfdjvvPMnBoeLrhPQUYaDDnPu6/f3nqu2Jt1FF7K8jHufk7q19BB0D/lbCjUHnnEon9554/Ljw8V/mPLIU3s+z/Zv7cmjC+8aegK6dKLbfaK2FJqWfnZnuOxeXH21VReTMeeuDfmceuC6I3n86bf1Hf7ZM9h3ludftj0979d9UXTZBYBennLPivDScyH6jmC3FH76fSbk+GUj/c0698ORi9ec2t57mGQvA4dh9vneQ7tPB4FBPW+DvjfMoGPIsjDUa/7qybk858SBlX/fx3aeGW7b1VOcZLTjXo+ht/30GgLc/3fpGno77KXr6K3rF9BmvWrmqIS8ddTvStf1d75xIsOTRlmEeb0CWfdJ7Q03TH7NvL4H9G19xs33KRU8C6WAm2DY+lbJygP/yUvfPfzKbLsgw3qtv9SrAt07/uKGnlcEv/tE7zdSr56wjbo4Mg39Auvb3jad9nS/ZqNe0d/+rT3Ljgd5vPdHYvcV8RVzxnrodXxaa0nv7t6vUdbSGmhQMHhod99hd8N6p1ZTjr3fSVetGTjkamDwHmHuTK9hiIMuPo1TdXHx+Pkre0KGhYuO0NQrCEykqt/p+Wldyx/00LkvdLa3++S6V69W3wu1F9wx2n7e3Ws0rAfw9BDK5cMkx3oftZ+j5/62yiG/4wS+nseQL/2DdpXLrjC0bP7qmc+tO9781pWfZ0//nZxz4vKePcVLoX/F8ad7SHFXT/yw41qv997S8XDsobedPcV/9SN5x1/cMPDus141c1RC3joY5UrXRute1qCXXbtWV02zn2FDupZ0XsXvvqI/ytWcTqOckPW9yvP4tp7DVmZlzZdZN2jtq07LD/x9nmypl6GzIMMa1l8aRa8rgqO+B5b0qlw5i1YbWCc1nH2kD+qTc3nmtles7PHrPpfoExSWzRnr5aGLRivCMeZ+2rkfDl1Lq9s4RTGeck/vXqhH51o9ij30HdHSLvLS76T+8aff1v81e8LXRpoTM8oc6+6T6b49Y2MW0Rm2vEaSHnOwej/XsAA9sap+208NP7keowDFWIH1KceW9fL23M97BKqew3f7zP8b+33U9Rw997fdh/PowruG/SnWpOe+tuNkO5Sl7/zV7p6sfj1cw4bl9qv42asnftgFrH4/6/AXDo52oa59DtCvp3iQWa+aOSohb41GKlH7+LY1n9QMGy4yaHHmZGOvsq91YfRBV3M69RyCNeoJS03/D60JVMVj0MGzLntv9Dzwd3tod++CDF1GmQS+Xj274wa+WTdqYD19fPjaQq4/1u8K9Moen0FFIgYdRwdWbuyodnfNRYfzF4//Qe/107ruNygoDCsgsuzHj3n1eNhxf2gvUccQrKUToeFjndoeuqj3sLshc9d6vn/bx9hBv/+gk65hc2KWXpPVzJ0Ztrj6sAIlA5+jx/DHtfY8rtvSBWPWJOl+7CgFKIb1UI265uGo+2Gv4NV58t+vrSPNO+sYhtn5uEnP1VpVT9OIHQ0PXHdk4BzYQa/loAtYfS/u9flZp55492i/50O7e/YUD7J0TJ31qpmjEvLWaOjVhtPhYmXZ6lHnmPSrINlpUCGEjRwWNmxh9M4AeP75yUc+ciYMvuwfDxiS12NOS881nE6fkPVpYG1/f9h5zQR6W7e6vicn3SdCw16LpRPoUV6zjpP9kYdZdRQg6D7Be80zX7vqeRRb0bLjw0sPtoZidTp9BfrMxZ3L3vC6lVX8uopEDLtC3Dd4dVS7e+s18wOGfD8+0onbA9cd6ZoXVlb0GKxmOGi37s+Azv1wYKW+9hCsZSdCoxS16CjjPmjYXU8DThIHBblpnXQNCxrDCpQMvKiwZGert7Lz2LHa6s6jB/se3+vo1TpTeKbH/YbpEXhWY2hgbffyJsv3w+45lJ3H6c4ewF77a79qlQPDd1ev4Vrm063Vanqatn9rT8/2rnZduF5/w/4XcI72HV7a98TtoYtGG3o74tDYXr/nrFfNHJWQt0Z9TxL6hYv2EI7yhvN7XsFeMqyC5NJVwaX7DSqEsJHDwgYtjN4dAO+/v2Mh6Kcs5KYnDO4BXfG37XfysO3xAUOmdre+P0TTuug3o6FXS9vzQPoe+DuuHj+68K7hr9kIHwLD1rAaN1yMYiv1+C07PpwzwpXZnYv59K7DvS/mdN1v6SJQr57YfifQnSd8w9ZqG0e/K/o919kaMBy014WIUUc6DGpHp54BuKvHr9/JzihFEgaduA0KcsNOukY9sR73BHxo0BihQMmoVT6727janqDRgv3K73X2ap0pPDPm/LR1XGpilB607vOAnks5dAfxjnOkcfeHaQ3DHNXYPbljXihZ7cWWgZU8Bw0v7dHenfd+/1hDb1drlqtmjkrIW6P+pdUHhIulye5dV7B79dANG+u/dCCbViGEfj2IR48mV189YAhpr6v63UadVP3QRb0PCO0Po1HCQNO66Der0/OY+s7iP9X7W4/OZeedP7HsQDysTHfPcuxdhg4JGRAuGHOphQdHvJDSr3BSl1NPvHtowYtVBZ52L9ZartQPLBzUNRy0X5GAgc/RtR+OWsWvb89jV49fr+GQr3nma0cvktCtXRypey247iA3jZOusUvEd2rPVRqlEM9GXUgc9DcbtRd26Py0zpPrdQ48w+a2dvcg9a4u2vWgjh7AtbRp1N78SfbqdV8MaVXC7Kqg2RWGxnkfrbaHq184HPV4Psqcx0FDb5deh42a9z3N3tu1EPLWqN+Ofc2lvz7eQb1jYutI64EsjVlvDx256hP78oP/cGHilfsGrfE1qAjM0Kv6HVcLB67h1P5b9zxxaX8YDQsDTeyi3/RG7SlZqpbVY/7FoDLdPcux91gHajUnXk2rvrWRlh0fbjqUPDrCFehR1nBKkocuGvki2JLuD+rVDpkbZKR52h3DQXudeI/yHGvZD1cTpgbNuek7baGrOFL3WnCb5er50CI6gzzl2LJhguPOtVvtyeNqyvP3Kjwz7vIHG/V69bvg0v13G3W/X837Y1ZO5LuLn1zz9N9e19drNceHfuGwX4XelcrYFym6X6+1Vi9uoh3TbkCSlFJenuRfJ9me5Ldqrb8+5SaN7K3XzCfXpzVfrD3nYGnoSa5Pa4cbdXHOpxzLgzmW6+/9cHLOiJcU24UnTj3paG46eSBPuzL57hPzExsOduhQa0jmoKIvPT24Jzm3R4CtSR4+L0nNyUvfk/KG85OzvpGc8+iZO9SSpGb7t/ae+Vun9Vq84/U3JA9csuyN3+s12valKzJ3wX0zcUBvop33fn9Ozn1thPdGOb1gbi/dr/lST/jhLxxMntRjGGbODLPK9a2LNGO9R2No7ziWHR8+2f7wfuk/S875YvLwU1vv7c7y/bW0rvwuBYPT27M87LQvAp289D29f3A7UJy6+Hhec9HhFd8+c+Honhz+wl3Zee/3Z+7xtR0Plh6749p9K/e9bkMucvTcf7v02w836pi26pLjParenrzwo8njl/S8+zSPyT2PS937XrfSutOpJx3NqX3Hs/OuH8k1Fx3ufU6wQQb9zVbz9+x3XN0oS2183fULQ/9u27+1J6ee1Ofid9f91qNNs2DSr9eo7Ugy+nlw+5jYeWzece2+bDt+xcjDMnseN9sXot6a+RXPvRVGcE29J6+Usj3Jv0vyI0mek+SnSynPmW6rxvPWa+ZTf/OLqb/2+IoStWMNAylL/1ZZ9mrnYr763IMTne/TXUp9+4gX4Xte1X90Lvn831q2RsugNZxWN4dhvEpMrL9eQ8ZGXgdphOceNAn8tPb6lcvXv0uPQgVdjzO0dywrllp4aD5P+Mz/1OMKdFYuh9GzSMTyynpDT+R6DK8dNs95rYbue32Gg440gqPjOdZ7P1x1JcSHLhr/hHpIpb5p6DeUdawCJe1hgrM412ejFu4exyh/t94jc7rutAWO0xv9eq3Hc/RaY7bn8NL2Rbu1HpsHXYjq18vX9GJqUw95SV6Y5C9rrV+otT6a5D8kedWU27RuBlZsGsfSumBDTGMo2fx88sgjSa3J4wNqnJx3XrKj3Xe896H5vPThlSWRc8Edo/Wq9CnCMivDLRhhHkhHhb9BxqkQtkx7HxpUxKA7XBjaO77upRbOetZNp7+3bJhc98Wtjos5Z4pELK+sd2rbN1eeMHTpPiYOWqttPfTd93oMDz8T7LoWMR6wPuR67YfrUqCkfXLWb9pCeeS8ns+1mXvDu4NG3wIlQwqFzPpn0WZtf69hgY7Tm/f1SoYPL12aWjPs2LzaC1Hbv7VnXdYonUWbIeRdlOSLHbePtbc1Rs+ei8XzTlczG6mX76HdIwXFaX94Dqryed99yYtedOZk70O/ufzD9NGFd428lMG0f0/W13qXMx6pAlnH+pXda1itPMGbnSvym13PD+oBZfc7rahWOXd/knqmZHwP3ceKVQ87HFHfMNRVOGjFvLthIzh6PMck9S74cHZOXvqevgVVfm7vv27UWlSdx4d+c418Nq3NKGHFcXrzWs3rt/R6rfXYPKgy6EYf9zerzRDyRlJKOVBKua2Uctvx48en3ZxV6b6asVTNbOjE1J7FRdKzCMm0PzyHVfnsrsbXfUAY6QNylb9nv/Vx2BzWc4jT0LWkutavPHnxH+Y1z3ztmtpPf4OqcD5w3ZGR1mZK+iy0veNkq+z2iAUvRv1ZqzXqws1D11hNTu+7oyxCPglnRqb8+LJh9f0KqszqWlSjFCjZKospw3oY5ZxrrcfmQcebjT7ub1abIeTdk+Q7O27vbm9bptZ6uNZ6Ra31igsuuGBijVtvvYLGONUfB66Pswk+PFfMwRmzymfPv8WIazgxezYybPd7r/Rcv3ILDNvYzEY5YX7guiMDe/xGrZQ5iZPz7gsWjy68a8V+PtIV5Id2D3yOaekZtjsqRHeaxflpg3SucTeLAbYpRgniTM+wpQw26sJJv+PNVr0oU2pdZZGP9WpAKTuSfC7JS9MKdx9P8ppa6x39HnPFFVfU225bn/kTm0V3ValZr/64f3/r/9UUgelVYWtpHalZ/XswmqWqYOv1Onc+39LXD5774d5D42pJ/bUBk0rZUKNU1ttx7b6elfW2f3Pv6Sqso+xDo/ystRrWjn6/y2kn57Lzr35kU34OlF/bNtZ7aL3f15tJk383WI3TQ9E7LwSdnBvpIsh6HJv7vScncdyfhlLK7bXWK3p+b9ohL0lKKa9Icl1aSyj8dq11YLRuYshLfFh08rdgvS3tU9/cedfQoMB0DHvfj3LyMOqxY6OPMav6XbqWh9msF7dGCdtbhc8qWG6tx4e1vqcGPb6J79dBIW9TrJNXa/2DJH8w7XZMW5N2Othslq3F1CMoNH3YRhMMXJd0kxml+MCw9Tvfms33eyV91pfcou8hn9uw3FYtcrIZbYY5ebCC8fVsFHNpZtuwOV6zdOyY1fU7vYeAfqZd5GSWPgM22qboyQOYpLdeM593vP6G5IFLfBhsIpN8Lbzua+M9BPSy1p5+x5P1I+QBMFOadBLQXSEQYJZt5mH1W+0YuykKr4yrqYVXAABg1jWxyMlmNKjwijl5AAAADWK4JgAAsG704E2fnjwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaBAhDwAAoEGEPAAAgAYR8gAAABpEyAMAAGgQIQ8AAKBBSq112m0YWynleJKj027HFnB+kvum3Qi2JPse02LfY1rse0yLfW927a21XtDrGzMZ8piMUspttdYrpt0Oth77HtNi32Na7HtMi32vmQzXBAAAaBAhDwAAoEGEPAY5PO0GsGXZ95gW+x7TYt9jWux7DWROHgAAQIPoyQMAAGgQIY8VSim/VEr5VCnljlLK66fdHpqtlPLbpZSvllI+1bHtqaWUD5ZS7mz//23TbCPN1Gff+x/ax77HSymqzbHu+ux3bymlfLaU8uellPeWUs6dYhNpqD773v/e3u8+UUr5QCnl6dNsI+tHyGOZUsr3JHltkhcmeV6SV5ZSvmu6raLh3p7k5V3b3pjkplrrpUluat+G9fb2rNz3PpXkx5N8eOKtYat4e1budx9M8j211ucm+VySN026UWwJb8/Kfe8ttdbn1lqfn+Q/J/nVSTeKjSHk0e3ZST5aa12stT6W5Ja0TnhgQ9RaP5zka12bX5XkxvbXNyb50Um2ia2h175Xa/1MrfUvptQktoA++90H2p+5SXJrkt0TbxiN12ffe6jj5hOTKNbREEIe3T6V5L8rpZxXSplL8ook3znlNrH1XFhr/XL7668kuXCajQGYoJ9N8ofTbgRbRynlUCnli0nmoyevMYQ8lqm1fibJm5N8IMl/TfKJJKem2Sa2ttoqAezKItB4pZSDSR5LsjDttrB11FoP1lq/M6397hem3R7Wh5DHCrXWt9VaX1Br/RtJvp7W/ACYpHtLKU9Lkvb/X51yewA2VCnl7yd5ZZL5an0rpmMhyU9MuxGsDyGPFUop397+f09a8/HeMd0WsQW9P8lV7a+vSvK+KbYFYEOVUl6e5J8m+Tu11sVpt4eto5RyacfNVyX57LTawvqyGDorlFL+vyTnJTmZ5B/XWm+acpNosFLK7ybZn+T8JPcm+edJfj/J7yXZk+Rokp+stXYXZ4E16bPvfS3Jv01yQZIHknyi1vq3ptREGqjPfvemJLuS3N++26211p+bSgNprD773iuSPDPJ42l93v5crfWeabWR9SPkAQAANIjhmgAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADQIEIeAJtCKeVflVJe33H7/yml/FbH7X9ZSvnH6/wzv7nOz3duKeV1Hbf3lVI+NeJjn1BKuaWUsn0d2nFWKeXDpZQda30uAGaPkAfAZvGRJH89SUop25Kcn+Syju//9SR/PIV2jePcJK8bdqc+fjbJe2qtp9baiFrro0luSvJ31/pcAMweIQ+AzeKPk/xg++vLknwqyTdKKd9WStmV5NlJ/qSU8vullNtLKXeUUg4sPbiU8uullJ/vuP1rpZRfLqX8vVLKx0opnyil/N+9esr63afdE/eZUsoN7Z/3gVLKE9rf+19KKX9RSvmjUsrvllJ+OcmvJ7mk/TxvaT/99l6P72E+yfs62nSklPKs9tfnlVI+1W7PZ0spby+lfK6UslBKeVkp5SOllDtLKS/seL7fbz8nAFuMkAfAplBr/VKSx0ope9LqtftvST6aVvC7Iskn2z1UP1trfUF72y+WUs5rP8U7k/xkx1P+ZPvxfzfJi2qtz09yKl3Bp5Ty7CH3uTTJv6u1XpbkgSQ/UUr5a0l+IsnzkvxIuy1J8sYkn6+1Pr/Wem2/x3f/7qWUs5I8o9Z6V8fm70ryufbXz03yyY7t/zLJs9r/XpPkh5L8cpJ/1vH4TyX5a90/C4DmM1YfgM3kj9MKeH89yW8muaj99YNpDedMWsHux9pff2daIer+WuufllK+vZTy9CQXJPl6WiHsBUk+XkpJkick+WrXz3zpkPv8Va31E+2vb0+yL62hpO+rtT6S5JFSyn8a8Dv1eny389MKgEmSUsreJPfUWh9vb3pukj/veL5Ptu93R5Kbaq21lPLJzueutZ4qpTxaSnlyrfUbA9oHQMMIeQBsJkvz8i5Pqyfqi0n+SZKHkvxOKWV/kpcl+cFa62Ip5UiSszse/x+TvDrJd6TVs1eS3FhrfdOAnznsPic6vj6VVggcxyiPfzjLf4/n5UyoS1oh9J09nu/xjtuPZ+Xn+q4kj4zZXgBmnOGaAGwmf5zklUm+Vms9VWv9WlrFTH6w/b1zkny9HfCeleQHuh7/ziQ/lVbQ+49pFR95dSnl25OklPLUdi9Zp1Hu0+0jSf52KeXsUsqT2m1Okm8kefK4v3St9etpzd1bCnrPTzv0lVIuTfKqnBmuOZL2MNb7aq0nx20PALNNyANgM/lkWkMXb+3a9mCt9b4k/zXJjlLKZ9IqctJ5v9Ra70grZN1Ta/1yrfXTSX4lyQdKKX+e5INJntb1mKH36VZr/XiS96fV2/aHHW28P8lH2kVS3jLoOXr4QFpz65JWT962UsqfJfnVJJ9OctWYz/fiJP9lzMcA0ACl1jrtNgDAzCmlPKnW+s1SylySDyc5UGv9kzU83/cl+Z9rrT9TSrkzyfetZS5dKeU9Sd5Ya/3c0DsD0Cjm5AHA6hwupTwnrWGVN64l4CVJrfVPSik3l1LOad1cU8A7K8nvC3gAW5OePAAAgAYxJw8AAKBBhDwAAIAGEfIAAAAaRMgDAABoECEPAACgQYQ8AACABhHyAAAAGkTIAwAAaJD/H56lb9XKyON+AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#now try it out with our G111 data\n", "#first define the line regions...\n", "g111_line_regions = [[8.88*u.um,9.15*u.um], \n", " [10.25*u.um,10.75*u.um]]\n", "\n", "g111_cont = createContinuumSpectrum(g111_clean,g111_line_regions)\n", "\n", "#And plot flux and errors with continuum in green\n", "plt.figure(figsize=(15,10))\n", "plt.errorbar(g111_clean['wavelength'].value,g111_clean['flux'].value,yerr=g111_clean['error'].value,fmt='o',color='b')\n", "plt.errorbar(g111_cont['wavelength'],g111_cont['flux'],yerr=g111_cont['error'],fmt='o',color='g',label='Continuum')\n", "plt.legend()\n", "plt.xlabel('Wavelength ($\\mu$m)')\n", "plt.ylabel('F$_v$ (Jy)');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have identified the continuum (plotted in green above), we can use specutils to fit it. specutils utilizes the models and fitters that are part of the astropy.modeling package, so we'll need to load those too. In the end we'll save the fitted continuum back in the cleaned data table. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:26.814640Z", "iopub.status.busy": "2023-09-21T00:15:26.814446Z", "iopub.status.idle": "2023-09-21T00:15:26.818380Z", "shell.execute_reply": "2023-09-21T00:15:26.817744Z" } }, "outputs": [], "source": [ "#define a function to fit the continuum; will need to take QTable object as input\n", "#to support the specutils functions. \n", "def fitContinuum(data,cont):\n", " #read the wavelength and flux arrays for convenience\n", " wave = data['wavelength']\n", " flux = data['flux']\n", " wave_c = cont['wavelength']\n", " flux_c = cont['flux']\n", " \n", " #Now load arrays into a Spectrum1D objects for further analysis:\n", " #we'll need one for both the cleaned data and our continuum data:\n", " spec=Spectrum1D(spectral_axis=wave,flux=flux)\n", " cont_spec=Spectrum1D(spectral_axis=wave_c,flux=flux_c)\n", "\n", " #use a 2nd order Chebyshev1D -- see astropy.modeling for more info on using models.\n", " cont_model=models.Chebyshev1D(2, c0=0., c1=0., c2=0.)\n", "\n", "\n", " #Now fit continuum across the grism using fit_generic_continuum\n", " #which takes a continuum Spect1D object as input with optional model (which we defined above).\n", " cont_fit=fit_generic_continuum(cont_spec, model=cont_model)\n", "\n", " #and calculate fitted flux values for *full* cleaned spectrum \n", " data['cont']=cont_fit(spec.spectral_axis)\n", " \n", " #Add the continuum fit data to the QTable object.\n", " return data" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:26.821172Z", "iopub.status.busy": "2023-09-21T00:15:26.820954Z", "iopub.status.idle": "2023-09-21T00:15:27.023091Z", "shell.execute_reply": "2023-09-21T00:15:27.022391Z" } }, "outputs": [ { "data": { "image/png": "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KU899VSdffbZ+upXv6pJkybptdde07777qvjjz9et99+u84//3z95je/0cKFC4s+zvjx4/vdIzZ58mRt375dbW1tGjdunO699169//3vlyQ1NDRo7dq1OuaYY7rn/ZXbQMrskkr25E2W9DtjTNfz3mat/W9jzOOSfmOM+aykv0s6t4JlAoBhLR5PD8uMRiVNjatxZaMSfkJhL6zmRc0EPQAYwWbMmKHLL79cJ598sjzP07x583TLLbfohhtu0Gc+8xktX75c++67b6+5brlmz54tz/M0Z84cXXDBBSX1KNXX1+ub3/ymjjnmGE2ZMkXvec97uq+77LLLdO655+qmm27Shz70oUG/znwmTZqkE044QTNnztQHPvCBETcvz1ibdwpcTVuwYIHtWpEHQ4ehI6gW6l5puo6Ll0ikRwEtvrlJN2++Qr715RlPV51ylZYtXFbtYg4r1D1UC3XPTRs3btQRRxxR7WIU1d7e7syQRpflq0vGmLWBw9JlqYVDKAAABiD3uHhqjSrsheUZT2EvrGhDtMolBAAA1VDp1TUBAGXSdVy8rp68RadGtGhqM3PyAAAY4Qh5ADBMdR0Xr2tOXvq4eBHCHQAAIxwhDwCGsUiEg54DAIBszMkDAAAAAIcQ8gBgGItvjatpdZPiW+PVLgoAAKgRhDwAGKbiW9PHxbvioSvUuLKRoAcAGBKtra267bbbus+vWbNGl1xySRVLNHDjxo3Le/ktt9yil19+uSzPsXPnTt144439vt+VV16pa6+9tixlIOQBwDAVa40p4SfkW18JP6FYa6zaRQIAOCg35C1YsEA//vGPq1ii8isW8nzf79djDTTklRMhDwCGqWgDx8UDABS3cuVKzZ49W3PmzNH5558vKR3aTj31VM2ePVtnnnmmtmzZIkm64IILdMkll+j444/XwQcfrDvvvFOStHTpUq1evVpz587Vddddp1gspjPOOENSuvfpwgsvVDQa1cEHH9wd/lpbWzVz5szuclx77bW68sorJUnRaFRr1qyRJO3YsUMNDQ2S0kHrrLPO0nvf+141NDToJz/5iX74wx9q3rx5Ou644/Taa6/1en2//e1vNXPmTM2ZM0cnnXRS9+N88Ytf7L7NGWecoVgs1n3+K1/5imbMmKHGxka9+uqruvPOO7VmzRp96lOf0ty5c/X222+roaFB3/jGNzR//nz99re/1c0336yjjz5ac+bM0TnnnKPdu3dLkrZt26azzz5bc+bM0Zw5c/TnP/9ZS5cu1ebNmzV37lwtWbJEkrR8+XIdffTRmj17tr71rW91l+W73/2uDjvsMJ144ol67rnnBvAJ50fIA4BhKjItouZFzbrqlKvUvKiZQycAgAPKOdd6w4YNuvrqq/Xggw9q/fr1+tGPfiRJ+tKXvqTFixfrySef1Lnnnps19PKVV17Rn/70J917771aunSpJOmaa67RwoUL1dLSoq985Su9nufZZ5/V/fffr8cee0zf/va31dnZOeAyP/3007rrrrv0+OOP6/LLL9fYsWP1xBNPKBKJaOXKlb1u/53vfEf333+/1q9fr3vuuafPx3/rrbe0YMECbdiwQSeffLK+/e1v62Mf+5gWLFigW2+9VS0tLRozZowkadKkSVq3bp0+8YlP6KMf/agef/xxrV+/XkcccYR+8YtfSJIuueQSnXzyyVq/fr3WrVunGTNm6JprrtEhhxyilpYWLV++XA888IA2bdqkxx57TC0tLVq7dq0eeeQRrV27VrfffrtaWlp033336fHHHx/w+5aLQygAwDAWmcZx8QDAFV1zrRN+QmEvPOgdeA8++KA+/vGPa7/99pMk7bvvvunnicd11113SZI+8YlP6Jvf/Gb3fc466yzV1dXpyCOP1LZt20p6ng996EMaNWqURo0apQMOOKDk++VzyimnaPz48Ro/frwmTpyoM888U5I0a9YsPfnkk71uf8IJJ+iCCy7Queeeq49+9KN9Pn5dXZ3OO+88SdKnP/3povfpup2UDp//8i//op07d2rXrl06/fTTJaXf467w6XmeJk6cqNdffz3rcR544AE98MADmjdvniRp165d2rRpk9rb23X22Wdr7NixkqQPf/jDfZa/VPTkAQAAADWgFuZajxo1qvt/a22/7+N5npLJpEKhkFKpVPfle/bs6f4/eF3w8tzHqqur6z5fV1enZDLZ67n/9V//VVdffbW2bt2qo446Sm1tbUWfO5cxpuB1e+21V/f/F1xwgX7yk5/oqaee0re+9a2ij5nLWqtly5appaVFLS0teuGFF/TZz3625PsPBCEPABwVj0tNTelTAEDtK/dc61NPPVW//e1v1dbWJkndc9qOP/543X777ZKk3/zmN1q4cGHRxxk/frza29v79dyTJ0/W9u3b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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#now try it out with our G111 data:\n", "fitContinuum(g111_clean,g111_cont)\n", "\n", "#and plot model and continuum subtracted flux\n", "plt.figure(figsize=(15,10))\n", "plt.plot(g111_clean['wavelength'].value,g111_clean['flux'].value,'b.',label = \"total flux\")\n", "plt.plot(g111_clean['wavelength'].value,g111_clean['cont'].value,color=\"r\",label='continuum fit')\n", "plt.plot(g111_clean['wavelength'].value,g111_clean['flux'].value-g111_clean['cont'].value,'g.',label='continuum subtracted')\n", "plt.xlabel('Wavelength ($\\mu$m)')\n", "plt.ylabel('F$_v$ (Jy)')\n", "plt.legend()\n", "plt.grid()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "USER EXERCISE: Fit the continuum to the NGC7009 G227 data (see ingredients above), which is slightly larger and more sloped than the G111 continuum." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Measuring Line Flux\n", "\n", "The specutils package comes with a number of convenient tools for basic line analysis. This recipe focuses on emission lines, but generally speaking the tools can be used with absorption lines as well. Our first task will be to measure the line flux from the line of interest, in this case, the strong SIV line at 10.5 $\\mu$m. \n", "\n", "We will first load our \"clean\"-ed continuum-subtracted flux data (along with the errors) into a specutils Spec1D structure and then isolate the line:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:27.026137Z", "iopub.status.busy": "2023-09-21T00:15:27.025854Z", "iopub.status.idle": "2023-09-21T00:15:27.439488Z", "shell.execute_reply": "2023-09-21T00:15:27.438793Z" } }, "outputs": [ { "data": { "image/png": "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ftOHkR5/vJ+nd+WV8YRRlEcc+y4dHX5efXHk12GHdf6sttZP0xk71g8svOc9vi3eLl7GjvX9tJYWH931uc/5+aN9ma22miQh5G0p6fUut9+QtG9MtfRbXZ20zz5+OftsDymPPOJB5b77/DyjH/3Ix+hPmeKBr7X13SGr3N56S7r3Xg92s2b5NM+SB6oxY3zK5K4hbsyYZMzA19DgQ/ZmzvThIg884Edx/vQn/52kDT8wRozwc7bGj/f1fsaP3/BS/NmwYR5eFy/2YPfjH/uCtgcd5ENujzqK3r0oPPWUD838xz98iNDPf+4ThyQNYR5AtTrkEB++eeyxvgbn3/7m35nA5tx7r6/H+vjjHsh22slH6xRD3MiRpa8bO2yYTwR0wAG+1McDD/gkRu99byV/AxdCz2vrJlkSQl5JzOw0SadJUi6XU3PC9rqWLNlTktTcPKfbnxdPul6zpkZz5w7XnDkj9fjjo/TDHw7T+vU1koLGj1+tCRNWacstVxW2KzVhwiqNH79adXU9t67u3nvVqlo9+eQIPfzw1jrllDa9/PJQSdLw4eu0116L9clPLtbeey/W97/vYy/22cefu2KF9+6V6/cu9/NraqRPfMK76j//+b21bl2NvvKV5zVmzFqNGbNWAwZ0bPL58+f7RZKWLt1TNTXSGWfM0XHHNeiuu5p0553j9alPDdKIEWt12GFv6fDDF2jChFX9rntjX/6yP/+SS/r2/P5YuHAvSdKsWXM22a66amtrU3Nzc9n+vf/856f1q19N1J/+NEHDhq3T1772kg499C3l8z0HqvPPV+G9+/TWVau//2blVGxHQH9krR0l6f/oppx/vumqq7bVz3++te67b5lqaqSGho6S616/Xmprq9PSpfVatqxer746WWbSz342T8OHr9OIEes0ZEh7STv95fib9acd9ef94/z3jmrf5cUXh+iKK7bTI4+MUS63Wuec87LuuGO8zKR16+b830ir3ijWPnPmHI0bN1Lf+c7O2nffen3ucy/pmGPeKDks9sb69aZ77hmnhx+erDFj1qq5+Z/vekySP48sxBxNzWx/SeeHEGYWbn9dkkIIF/X0nClTpoTHHnssogpL09cu8LY273FatsyHRLzwgndHL13a+ZjaWu9hmzTJFzCeNKnzMnGiNGOGd4d/97udPXUPPeQzFNbXd2jatBrNmOGP23PP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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from specutils.manipulation import extract_region\n", "\n", "#First read wavelength, flux, and continuum from our cleaned data table:\n", "wave = g111_clean['wavelength']\n", "flux = g111_clean['flux'] - g111_clean['cont'] #use continuum subtracted flux\n", "err = g111_clean['error']\n", "\n", "#Now load into Spect1D object:\n", "spec = Spectrum1D(spectral_axis=wave,flux=flux)\n", "err_spec = Spectrum1D(spectral_axis=wave,flux=err)\n", "\n", "#Now define sub region for the 10.5 micron line, just eye-balling from the plot above.\n", "lines_sr = SpectralRegion(9.5*u.um, 11.*u.um)\n", "\n", "#And extract those regions for separate analysis.\n", "#Extract_region takes a Spect1D and SpectralRegion objects as inputs and returns\n", "#a *list* of Spect1D objects, one per region. \n", "lines = extract_region(spec, lines_sr)\n", "line_errs = extract_region(err_spec, lines_sr)\n", "\n", "\n", "#Plot resulting region surrounding our line:\n", "plt.figure(figsize=(15,10))\n", "plt.errorbar(lines.spectral_axis,lines.flux,yerr=line_errs.flux, \n", " color='b',label='data')\n", "plt.xlabel('Wavelength ($\\mu$m)')\n", "plt.ylabel('F$_v$ (Jy)')\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now compute the line flux using the built-in function in specutils, which simply integrates under the data. For convenience, we'll convert the Spec1D objects to frequency space to make the unit conversions easier. Since line_flux is essentially just doing an integration over frequency across the *region*, we can estimate the 1-$\\sigma$ uncertainty of the line flux by simply adding the flux errors over the region in quadrature and multiplying by the wavelength step." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:27.442841Z", "iopub.status.busy": "2023-09-21T00:15:27.442569Z", "iopub.status.idle": "2023-09-21T00:15:27.455152Z", "shell.execute_reply": "2023-09-21T00:15:27.454352Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Spectrum1D (length=50)\n", "flux: [ -0.060154 Jy, ..., 0.36707 Jy ], mean=5.6485 Jy\n", "spectral axis: [ 27.274 THz, ..., 30.132 THz ], mean=28.656 THz\n", "Line Flux:\n", "16.355252712734014 Jy THz\n", "1.6355252712734015e-13 W / m2\n", "Error:\n", "0.2786296592121553 Jy THz\n", "2.7862965921215532e-15 W / m2\n", "SNR:\n", "58.69889357428647\n", "----------------------------\n" ] } ], "source": [ "#convert spec1D objects to frequency space\n", "#and reverse the arrays b/c apparently specutils expects spectral_axis to be increasing.\n", "tmp=lines.spectral_axis\n", "nu=tmp.to(u.THz,equivalencies=u.spectral())\n", "lines_nu = Spectrum1D(spectral_axis=nu[::-1],flux=lines.flux[::-1])\n", "\n", "#And now use the line_flux function to get total line fluxes for the line. \n", "#line_flux takes a *continuum subtracted* Spectrum1D object with optional spectral region, \n", "#if the user wants to integrate over a smaller region.\n", "from specutils.analysis import line_flux\n", "\n", "#print lineflux for each line region and convert to W/m^2\n", "print(lines_nu) #Print some info about the line region.\n", "print('Line Flux:')\n", "print(line_flux(lines_nu))\n", "print(line_flux(lines_nu).to(u.W * u.m**-2))\n", " \n", " \n", "#calculate the errors \n", "errs = line_errs.flux\n", "quad = np.sqrt(np.sum(errs**2))\n", " \n", "#multiply by the step size in nu, delta_nu.\n", "#Here I'm simply calculating the average delta_nu across the region: (nu_max - nu_min)/(N - 1)\n", "#Where N is the number of samples (points).\n", "nu = lines_nu.spectral_axis\n", "del_nu = (np.max(nu) - np.min(nu))/(len(nu) - 1)\n", "line_flux_err = quad * del_nu\n", "print('Error:')\n", "print(line_flux_err)\n", "print(line_flux_err.to(u.W * u.m**-2))\n", "print('SNR:')\n", "print(line_flux(lines_nu)/line_flux_err)\n", "print('----------------------------')\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "USER EXERCISE: Measure the line flux and SNR for the ArIII line at 9.0 $\\mu$m. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Line Fitting\n", "\n", "Lastly, specutils provides a nice set of tools for some basic line fitting. Any of the models available in the astropy modelling package can be used. The default fitter is a Levenberg-Marquardt algorithm for least squares (LevMarLSQFitter) although it appears other fitters could be used as well. Evaluating model parameter uncertainties is left to the user. NOTE: Since the grism resolution is R~100 or so, only sources with a significant amount of high velocity emission (>1000 km/s) will really benefit from line-fitting. \n", "\n", "First load the data into the specutils Spec1D objects and extract the line region:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:27.458133Z", "iopub.status.busy": "2023-09-21T00:15:27.457871Z", "iopub.status.idle": "2023-09-21T00:15:28.114626Z", "shell.execute_reply": "2023-09-21T00:15:28.113891Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAJRCAYAAAD4eH46AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABcW0lEQVR4nO3dd5hU1f3H8c/ZxlIWlrLsImjoioWigD2sCqixB1ssEU0kMYkajSYm+EtsMSYm1pgYjBFbxG4siRU3YouAgoooCxZEqbO7sEvdcn5/nBl2gV22zdw279fzzHOn3bnfHS4z9zPn3HOMtVYAAAAAgGjI8LsAAAAAAEDyEPIAAAAAIEIIeQAAAAAQIYQ8AAAAAIgQQh4AAAAARAghDwAAAAAiJMvvAtqiV69etn///n6XEQrr169X586d/S4DIcd+hGRgP0IysB8hGdiPkAx+70dz585dY60taOyxUIa8/v37a86cOX6XEQolJSUqLi72uwyEHPsRkoH9CMnAfoRkYD9CMvi9HxljvmjqMbprAgAAAECEEPIAAAAAIEIIeQAAAAAQIaE8Jw8AAABIZ9XV1Vq2bJk2bdrkdylpq1u3blq4cGHKt5Obm6t+/fopOzu7xesQ8gAAAICQWbZsmfLy8tS/f38ZY/wuJy1VVlYqLy8vpduw1ioWi2nZsmUaMGBAi9ejuyYAAAAQMps2bVLPnj0JeBFnjFHPnj1b3WJLyAMAAABCiICXHtry70zIAwAAAOCLzz//XP/85z+33p4zZ44uuugiHytKjenTp+snP/lJu5/TUoQ8AAAAAL7YPuSNHj1at912m48VRQMhDwAAAECr3XfffRo+fLhGjBihs88+W5ILbYcffriGDx+uI444QkuXLpUkTZ48WRdddJEOOuggDRw4UI899pgk6YorrtCsWbM0cuRI3XzzzSopKdGxxx4rSbrqqqt03nnnqbi4WAMHDtwa/j7//HPtvffeW+v44x//qKuuukqSVFxcrDlz5kiS1qxZo/79+0tyrWQnnniiJkyYoP79++vPf/6zbrrpJo0aNUoHHHCAysrKdvj7Jk+erAsuuEAHHHCABg4cqJKSEp133nkaNmyYJk+evPV5Dz30kPbZZx/tvffe+sUvfrH1/nvuuUdDhw7V2LFj9cYbb2y9f/Xq1Zo0aZLGjBmjMWPGbPNYshDyAAAAALTKggULdN1112nmzJmaP3++br31VknShRdeqHPOOUfvv/++zjzzzG26Xi5fvlyvv/66nn32WV1xxRWSpBtuuEGHHnqo5s2bp0suuWSH7Xz88cd64YUX9M477+jqq69WdXV1m2v+8MMP9cQTT2j27NmaOnWqOnXqpPfee08HHnig7rvvvkbXKS8v11tvvaWbb75Zxx9/vC655BItWLBAH3zwgd5//319/fXX+sUvfqGZM2dq3rx5mj17tp566iktX75cv/nNb/TGG2/o9ddf10cffbT1NS+++GJdcsklmj17th5//HF9//vfb/Pf1BSmUAAAAADC7Kc/lebNS+5rjhwp3XJLkw/PnDlTp5xyinr16iVJ6tGjhyTprbfe0hNPPCFJOvvss/Xzn/986zonnniiMjIytOeee2rlypUtKuOYY45Rhw4d1KFDB/Xu3bvF6zXmsMMOU15envLy8tStWzcdd9xxkqR99tlH77//fqPrHHfccTLGaJ999lFhYaH22WcfSdJee+2lpUuXas2aNSouLlZBQYEk6cwzz9Rrr70mSdvcf9ppp2nRokWSpJdffnmb0Ldu3TpVVVW1+e9qDCEPAAAAQMp16NBh63VrbavXyczMVE1NjbKyslRXV7f1/obTCzR8bPtpBxq+VkZGxtbbGRkZqqmp2en2Gz6/uXWaU1dXp7ffflu5ubltWr8lCHkAAABAmO2kxS1VDj/8cJ100km69NJL1bNnT5WVlalHjx466KCDNGPGDJ199tl68MEHdeihh+70dfLy8lRZWdmqbRcWFmrVqlWKxWLq0qWLnn32WR111FGSpP79+2vu3LkaO3bs1vP+Umns2LG66KKLtGbNGnXv3l0PPfSQLrzwQo0dO1YXX3yxYrGYunbtqkcffVQjRoyQJE2cOFG33367Lr/8cknSvHnzNHLkyKTWxTl5AAAAAFplr7320tSpUzVu3DiNGDFCl156qSTp9ttv1z333KPhw4fr/vvv33quXlOGDx+uzMxMjRgxQjfffHOLtp2dna1f//rXGjt2rCZMmKA99thj62OXXXaZ/vrXv2rUqFFas2ZN2//AFurTp49uuOEGHXbYYRoxYoT2228/nXDCCerTp4+uuuoqHXjggTr44IM1bNiwrevcdtttmjNnjoYPH64999xTd955Z9LrMi1tKg2S0aNH28SoOdi5kpISFRcX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9SOhpdP7lq7q6qR77nFdDMvKXMC68UYX5nbfPXXnuyRkZ7ttJro09uuX2u21lzHSwQe7y623Sv/6l/vFPzdX+uADN8ACAO906CCdeKK7rFsnPfGEa+G7/nrpuutcy9/ata475ogRbvROyX2+/fSn7gemAw/05oeloiI3VcRVV0m//a2bOP7RR6WhQ1OzPb7DgdQi5CEl1q1zQS4R5j75pP72+vU7Pr93b/cr5aRJ7pfKlg4Pj+h6/33XPfLNN938Vhs3urB15pl+V+atth4AdezoRuK88053m4CHKAtDUOja1bWSTZ7sBmp55BHXwpeYb2/AAOlPf3LBbsgQf2rMynLh8+CDXav/fvu5c3lPPdWfeprid0D0e/tRZa07fly1yp0ysXp1/fUlS9yxIlqOkJck69enXzDZtEnasMEdfN9007ZhruGw8BkZUv/+7pfJb37TLXff3f06+J3vSOXl7ovk6add97IuXVzXlEmT3JLRvpIr6F9OlZXul+Rbb3XB5J573Pkhhx3md2UAsKO2fJb26SNdfLG7HHCA6+Lpx2dyU9s8+mjpvffceYSnnea6b/7xj65lMiHo3yVBla7vW3W1a7X++9+3DW8NA93q1dueX9+QMa4n2PXXu949Dc97R+MIeUnywQduxxw3zh2MFhe7D24vgl+qPjBqa91/qM8+q798+mn99a+/rn/uz37mzhvYfXc3LPzQofVhbtCgbb8YGsrMdKMX3nuv+wB49VXp8celp55yv3J26OCGnZ80yf26mazWiJqatnURTXft3dd2tr617t/+pz91+93557shynv2bNu2tufnF2q6fZkDaLn2HCek8rNl112l//7XjcR7003S//7nvpf790/dNpFafgTMTZvc+Z3vvOOOvc4/393fubNrmSsoqB/ILHF7+2VBgRtIbdEiN23Jiy+6AY123dW7vyOMCHlJYK3rWlFR4Vr0rr1Wuvpq98F94IH1oW///d0gCEFSV+dqfvjhbcPcZ5+5E8Crq+ufm5Hh/iMOGOC6VA4Y4IaKzs2VXn65/Qfj2dnudSdOdKP/vfGGO+h/4gnXypeV5Yah/va33fkNTf09q1e7ALr9Zfny+usrV7rn5uW5k+G/8x13Hf5YssSdO/b88+68lMcecz+SAICnrHWXhte3v52Mxxpcz98Sv70yNa/fnseyJf3pTKtD+nTTuVd/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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#First read wavelength, flux, and continuum from our cleaned data table:\n", "wave = g111_clean['wavelength']\n", "flux = g111_clean['flux'] #observed flux\n", "err = g111_clean['error'] #errors\n", "cont = g111_clean['cont'] #continuum model\n", "\n", "#Now load into Spect1D objects:\n", "spec_obs = Spectrum1D(spectral_axis=wave,flux=flux)\n", "spec_cont = Spectrum1D(spectral_axis=wave,flux=cont)\n", "spec_errs = Spectrum1D(spectral_axis=wave,flux=err)\n", "spec_cs = Spectrum1D(spectral_axis=wave,flux=(flux-cont)) #we'll need continuum subtracted flux in the fitting step.\n", "\n", "#Now define sub region for the line at 10.5 micron\n", "line_sr = SpectralRegion(9.5*u.um, 11.*u.um)\n", "\n", "#And extract that region for separate analysis.\n", "#Extract_region takes a Spect1D and SpectralRegion objects as inputs and returns\n", "line_obs = extract_region(spec_obs, line_sr)\n", "line_cont = extract_region(spec_cont, line_sr)\n", "line_err = extract_region(spec_errs, line_sr)\n", "line_cs = extract_region(spec_cs, line_sr) #continuum subtracted \n", "\n", "\n", "#Plot total flux and continuum model:\n", "plt.figure(figsize=(15,10))\n", "plt.errorbar(line_obs.spectral_axis,line_obs.flux,\n", " yerr=line_err.flux,color='b',label='data')\n", "plt.plot(line_cont.spectral_axis,line_cont.flux,label='continuum model',color='red')\n", "plt.xlabel('Wavelength ($\\mu$m)')\n", "plt.ylabel('F$_v$ (Jy)')\n", "plt.grid()\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'll load the fitting functions and run the fitter; which is only a few lines of code. Note that a number of profile models are available in the astropy modelling package. Here we'll use a simple 1D Gaussian:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:28.118382Z", "iopub.status.busy": "2023-09-21T00:15:28.118135Z", "iopub.status.idle": "2023-09-21T00:15:28.134225Z", "shell.execute_reply": "2023-09-21T00:15:28.133389Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: Gaussian1D\n", "Inputs: ('x',)\n", "Outputs: ('y',)\n", "Model set size: 1\n", "Parameters:\n", " amplitude mean stddev \n", " Jy micron micron \n", " --------------- ------------------ -------------------\n", " 53.866258857508 10.503897458720795 0.04462759099997495\n" ] } ], "source": [ "from specutils.fitting import fit_lines, estimate_line_parameters\n", "\n", "#First generate an initial Gaussian profile model with estimates generated from the data.\n", "g_est = estimate_line_parameters(line_cs, models.Gaussian1D())\n", "\n", "#Numerous other models (e.g. Voigt, Lorentzian, etc...) are available in the \n", "#astropy modelling package, which can be specified in the estimate_line_parameters call:\n", "#g_est = estimate_line_parameters(line_cs, models.Voigt1D())\n", "#g_est = estimate_line_parameters(line_cs, models.Lorentz1D())\n", "\n", "\n", "#Regardless of what model is used, the fitting routine is the same. \n", "#fit_lines takes a Spect1D object and initial model profile as inputs. \n", "g_fit = fit_lines(line_cs, g_est)\n", "\n", "print(g_fit)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next we'll evaluate the model fluxes at each wavelength and add to the continuum model so we can compare the full model to the observed flux: " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:28.136947Z", "iopub.status.busy": "2023-09-21T00:15:28.136716Z", "iopub.status.idle": "2023-09-21T00:15:28.361312Z", "shell.execute_reply": "2023-09-21T00:15:28.360599Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAJRCAYAAAD4eH46AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+OklEQVR4nO3de5hkVX0v/O/iNtCKgiIjQmYa74AwrQyKEKUVb3lNvETjZVqF96CdE6MeEy8xZ86JJGEST/REcjl53sxEA2qPEtGgRnMSRRoVJAKmFRDvYSYoSARHISMjl/X+UT3jzNAz011VU5fdn8/z9NO1V+1d9avq1VX1rbX32qXWGgAAAJphn34XAAAAQPcIeQAAAA0i5AEAADSIkAcAANAgQh4AAECDCHkAAAANsl+/C2jHYYcdVkdHR/tdxlD4z//8z9zvfvfrdxkMOf2IbtCP6Ab9iG7Qj+iGfvejq6+++oe11ofMdd1QhrzR0dFcddVV/S5jKExPT2d8fLzfZTDk9CO6QT+iG/QjukE/ohv63Y9KKRt2dZ3dNQEAABpEyAMAAGgQIQ8AAKBBhvKYPAAAWIzuuuuu3Hjjjbnzzjv7Xcqi98AHPjDXX3/9Xr+fAw88MEcddVT233//eW8j5AEAwJC48cYbc/DBB2d0dDSllH6Xs6jdfvvtOfjgg/fqfdRac+utt+bGG2/M0UcfPe/t7K4JAABD4s4778yDH/xgAW+RKKXkwQ9+8IJHboU8AAAYIgLe4tLO31vIAwAAaBAhDwAA6IvR0dH88Ic/bGudWmue/vSn5yc/+UnX6rnhhhuyfv36BW2zfX2nnHJK2/f95je/OZ/97Gfb3n57Qh4AADB0PvWpT2XFihV5wAMe0LXb3F3IO/vss3PeeeftdvvLL7+87ft+/etfn3e84x1tb789IQ8AAJiXG264IY997GNz5pln5tGPfnQmJibymc98Jqeeemoe9ahH5Utf+lKS5LbbbssLXvCCnHDCCTn55JPz1a9+NUly66235lnPelaOO+64vPrVr06tddttf+ADH8gTn/jEjI2N5dd//ddzzz337LaWqampPP/5z9+2/L73vS8nnHBCVqxYkVe+8pXb6n3605+eE044Iaeffno2btyYJDnzzDPzhje8Iaecckoe/vCH58ILL0ySvO1tb8vnP//5jI2N5d3vfveCn5/73//+SZLp6emMj4/nxS9+cR772MdmYmJi22O9+uqrc9ppp+XEE0/Ms5/97Nx0001JkuXLl+fWW2/NzTffvOD73ZlTKAAAwDB64xuTmZnu3ubYWHLuubtd5dvf/nY+/OEP573vfW9OOumkrF+/Pl/4whfy8Y9/PH/0R3+Uiy66KG9/+9vz+Mc/PhdddFE++9nP5lWvelVmZmby+7//+/nFX/zF/N7v/V4++clP5j3veU+S5Prrr88FF1yQyy67LPvvv39e+9rXZmpqKq961at2Wcdll12Wv/7rv06SXHfddTnnnHNy+eWX57DDDsttt92WpDU6dsYZZ+SMM87Ie9/73rzhDW/IRRddlCS56aab8oUvfCFf//rX87znPS8vfvGL8453vCPvete78g//8A8dP5X/+q//muuuuy4Pe9jDcuqpp+ayyy7Lk570pLz+9a/Pxz72sTzkIQ/JBRdckNWrV+e9731vkuQJT3hCLrvssrzoRS/q6L6FPAAAYN6OPvroHH/88UmS4447LqeffnpKKTn++ONzww03JEm+8IUv5CMf+UiS5OlPf3puvfXW/OQnP8nnPve5fPSjH02SPPe5z82hhx6aJLn44otz9dVX56STTkqS/PSnP83hhx++2zpuu+22beep++xnP5tf+7Vfy2GHHZYkedCDHpQk+eIXv7jt/l75ylfmrW9967btX/CCF2SfffbJsccemx/84Adz3sc111yzbVTw5ptvzgEHHJBzZ0PwRRddtNvz5D3xiU/MUUcdlSQZGxvLDTfckEMOOSTXXnttnvnMZyZJ7rnnnhxxxBHbtjn88MPz/e9/f7ePez6EPAAAGEZ7GHHbW5YsWbLt8j777LNteZ999sndd9/d1m3WWnPGGWfkj//4j+e9zX777Zd77703++zT3hFo2z+O7Xcb3d7xxx+fmdnR0rPPPjujo6M588wzk7ROhj7f2993331z9913p9aa4447Ll/84hfn3ObOO+/MQQcdtIBHMTfH5AEAAF31lKc8JVNTU0lax6cddthhecADHpCnPvWp2yY2+cd//Mf86Ec/SpKcfvrpufDCC3PLLbckaY3SbdiwYbf38ZjHPCbf/e53k7RGCz/84Q/n1ltv3bZ90prt8kMf+lCS1jF8T3nKU3Z7mwcffPAew1snHvOYx+Q//uM/toW8u+66K9ddd92267/5zW/mcY97XMf3I+QBAABddfbZZ+fqq6/OCSeckLe97W05//zzkyRvf/vb87nPfS7HHXdcPvrRj2bZsmVJkmOPPTbnnHNOnvWsZ+WEE07IM5/5zG0TkuzKc5/73ExPTydp7Ta6evXqnHbaaVmxYkV++7d/O0nyF3/xF/nbv/3bnHDCCXn/+9+fP/uzP9vtbZ5wwgnZd999s2LFirYmXtmTAw44IBdeeGF+53d+JytWrMjY2Ni2GTnvuuuufPvb387KlSs7vp+yq6HJQbZy5cp61VVX9buMobB1Zh/ohH5EN+hHdIN+RDcMcz+6/vrrc8wxx/S7jIFw00035VWvelU+/elP9+X+b7/99t0ek7dQf//3f58vf/nL+cM//MP7XDfX372UcnWtdc5EaCQPAAAYOkcccURe85rXdPVk6P109913501velNXbsvEKwAAwFB6yUte0u8SuubXfu3XunZbRvIAAAAaRMgDAABoECEPAACgQRyTBwC9tHZtMnuOqLasWpVMTnavHqDxtk4kOnu2ga46++yzc//73z9vfvOb57z+oosuyqMf/egce+yx3b9zdslIHgD00vr1ycxMe9vOzHQWEAF67KKLLsrXvva1fpex6BjJA4BeGxtr7yv1IT2vF9A/U1PJFVckW7Yko6PJmjXJxERnt7lmzZqcf/75Ofzww/MLv/ALOfHEE7Nu3bqsXbs2P/vZz/LIRz4y73//+zMzM5OPf/zjufTSS3POOefkIx/5SD772c/eZ72RkZGuPFZ+zkgeAAA00NRUa+/uLVtayxs2tJanptq/zauvvjof+tCHMjMzk0996lO58sorkyS/+qu/miuvvDJf+cpXcswxx+Q973lPTjnllDzvec/LO9/5zszMzOQRj3jEnOvRfUIeAAA00OrVyebNO7Zt3txqb9fnP//5vPCFL8zIyEge8IAH5HnPe16S5Nprr81TnvKUHH/88Zmamsp111035/bzXY/O2F0TAAAaaOPGhbV34swzz8xFF12UFStW5Lzzzsv0LnZJn+96dMZIHgAANNCyZQtrn4+nPvWpueiii/LTn/40t99+ez7xiU8kSW6//fYcccQRueuuuzK13f6gBx98cG6//fZty7taj+4S8gAAoIHWrEl2ntNkZKTV3q4nPOEJeelLX5oVK1bkl37pl3LSSSclSf7wD/8wT3rSk3LqqafmsY997Lb1X/ayl+Wd73xnHv/4x+c73/nOLteju+yuCQAADbR1Fs2zzmpNvrJ8eXdm11y9enVWz3Fg32/8xm/cp+3UU0/d4RQKv/EbvzHnenSXkAcAAA01MZGsW9e67PC3xUPIAwCABhPuFh/H5AEAADSIkAcAANAgQh4AAECDCHkAAAANIuQBAAA0iJAHAADM27777puxsbFtPzfccEMe//jHZ2ZmJkly99135/73v38+8IEPbNvmxBNPzJe//OWcd955ed3rXrfD7Y2Pj+eqq65KkoyOjuYpT3nKDtePjY3lcY973Jy13HTTTfnlX/7lbcsvf/nLc8IJJ+Td7353fu/3fi+f+cxnkiTnnntuNm/evG29ZzzjGfnRj37U/pMw4IQ8AABoqKlrpjJ67mj2+f19MnruaKaumer4Ng866KDMzMxs+xkdHc2pp56ayy+/PEnyla98JY9+9KO3Lf/nf/5nvvOd72TFihXzuv3bb789//7v/54kuf7663e77p/+6Z/mNa95TZLk5ptvzpVXXpmvfvWr+a3f+q38wR/8QZ7xjGckuW/Ie+UrX5m/+qu/WtgDHyJCHgAANNDUNVOZ/MRkNvx4Q2pqNvx4QyY/MdmVoLezU045ZVuou/zyy/Nf/+t/3Tay96UvfSknnnhi9t1333nd1kte8pJccMEFSZIPfvCDefnLX77LdT/ykY/kOc95TpLkWc96Vr73ve9lbGwsn//853PmmWfmwgsvzJ//+Z/n+9//fp72tKflaU97WpLkec97Xj74wQ+2+3AHnpAHAAANMn7eeMbPG89ZHzsrm+/avMN1m+/anLM+dlbGzxtv+/Z/+tOfbttV84UvfGGS7DCSd/nll+epT31qlixZkttvvz2XX355TjnllG3bX3DBBTvs7rl1V82tXvSiF+WjH/1okuQTn/hEfuVXfmXOOv7t3/4thx56aJYsWZIk+fjHP55HPOIRmZmZ2WGXzze84Q152MMelksuuSSXXHJJkuTQQw/Nli1bcuutt7b9PAyy/fpdAAAA0H1b7tmyoPb52rq75vaWL1+en/3sZ7n55pvz9a9/PY95zGNy0kkn5V/+5V9y+eWX5/Wvf/22dV/60pfmL//yL7ctj4+P73BbD37wg3PooYfmQx/6UI455piMjIzMWcdNN92UhzzkIW0/jsMPPzzf//738+AHP7jt2xhUQh4AADTI9JnTSZLRc0ez4ccb7nP98gcu37ZON51yyin58Ic/nCOOOCKllJx88sm57LLL8qUvfSlPfvKTF3RbL33pS/Obv/mbOe+883a5zkEHHZQ777yz7XrvvPPOHHTQQW1vP8jsrgkAAA205vQ1Gdl/x1Gwkf1Hsub0NXvl/k455ZSce+652wLdk5/85Lzvfe/LQx/60DzwgQ9c0G298IUvzFvf+tY8+9nP3uU6j370o3PDDTfM6/YOPvjg3H777duWa625+eabMzo6uqC6hoWQBwAADTRx/ETW/sraLH/g8pSULH/g8qz9lbWZOH5ir9zfqaeemu9+97vbQt4RRxyRe+65Z4fj8ebr4IMPzu/8zu/kgAMO2OU697vf/fKIRzwi3/72t/d4e5OTk3nOc56zbeKVq6++OieffHL226+ZOzY281EBAACZOH6i66HujjvumLP9pJNOSq11h7adR9rOPPPMnHnmmTu0TU9P73L9pHXuvGuvvXbO+3zd616X8847L+ecc8591tt+V8/Xv/71OxwX+P73vz+vfe1r57zNJhDyAACAofTCF76wrRkyH/e4x+X000/fCxUNBrtrAgAAQ+vVr371grfZegL1phLyAABgiOy8SyTN1s7fW8gDAIAhceCBB+bWW28V9BaJWmtuvfXWHHjggQvazjF5AAAwJI466qjceOON+Y//+I9+l7Lo3XnnnQsOX+048MADc9RRRy1oGyEPAACGxP7775+jjz6632WQ1qygj3/84/tdxpzsrgkAANAgQh4AAECDCHkAMEDGx1s/ANAuIQ8AAKBBhDwAAIAGEfIAAAAaRMgDgAExNZVccUVy6aXJ6GhrGQAWqqfnySul3JDk9iT3JLm71rqylPKgJBckGU1yQ5KX1Fp/1Mu6AKDfpqaSyclky5bW8oYNreUkmZjoX10ADJ9+jOQ9rdY6VmtdObv8tiQX11ofleTi2WUAWFRWr042b96xbfPmVjsALMQg7K75/CTnz14+P8kL+lcKAPTHxo0LaweAXel1yKtJ/rmUcnUpZXYnlCyttd40e/nmJEt7XBMAdE2757lbtmxh7QCwKz09Ji/JL9Zav1dKOTzJp0spX9/+ylprLaXUuTacDYWTSbJ06dJMT0/v9WKb4I477vBc0TH9iG5YLP1o06axJMn09Myc149t2pQkmdnpuXjFKw7Pu971mGzZsu+2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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Calculate the model line flux and add to continuum model to generate full model:\n", "model = g_fit(line_cs.spectral_axis) + line_cont.flux\n", "\n", "#And calculate fit parameters for display\n", "wave_cent=[g_fit.mean.value]\n", "hm=[g_fit.amplitude.value / 2.0]\n", "hwhm=[2.355*g_fit.stddev.value / 2.0]\n", "\n", "#COmpare full model to observed flux\n", "plt.figure(figsize=(15,10))\n", "plt.errorbar(line_obs.spectral_axis,line_obs.flux,yerr=line_err.flux,\n", " fmt='o',color='b',label='data')\n", "plt.step(line_obs.spectral_axis,model,label='model (cont+line)',color='red',where='mid')\n", "#And overplot fitted wavelength and FWHM:\n", "plt.errorbar(wave_cent,hm,xerr=hwhm, fmt='o',color='g', label='FWHM (fit)')\n", "plt.xlabel('Wavelength ($\\mu$m)')\n", "plt.ylabel('F$_v$ (Jy)')\n", "plt.grid()\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A sigma of 0.045 $\\mu$m corresponds to a FWHM of 0.106 $\\mu$m and an R = v / $\\Delta$v of about 100, which is close to the R = 130 limit for the G111 grism. The line is either marginally resolved, or the image quality for this particular observation was not quite good enough to achieve the best possible resolution. \n", "\n", "We can evaluate the goodness of fit by examining the residuals and calculating the chi-squared and reduced chi-squared statistics. For the degrees of freedom, remember that we used a 2nd order Chebyshev for our continuum, so we have *6* constraints for the full continuum and line model." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2023-09-21T00:15:28.364423Z", "iopub.status.busy": "2023-09-21T00:15:28.364225Z", "iopub.status.idle": "2023-09-21T00:15:28.535452Z", "shell.execute_reply": "2023-09-21T00:15:28.534612Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chi Squared:\n", "302.98749794155054\n", "Reduced Chi Squared:\n", "6.886079498671603\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3cAAACeCAYAAACRkPPBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgBUlEQVR4nO3de9QcdZng8e8DCcmEQBCQDIpJYLyAXIWA4OxAIowwOuLouIyzryIrEOeM7CzryFGMK+x4OMcjOsPO6nokHLkMcVAZuSg4BBxCXDVKgpFb1CBLmADLJaIQYmJMnv2j+4U3yXvp7uru6ur+fs7p83ZVd1U93e/T1fX0r+r3i8xEkiRJklRtu5QdgCRJkiSpOIs7SZIkSeoDFneSJEmS1Acs7iRJkiSpD1jcSZIkSVIfsLiTJEmSpD4wqewAmrHvvvvmnDlzyg6jEl544QV23333ssNQxZlHagfzSO1gHqkdzCO1Q9l5tHLlymcy8+WjPVap4m7OnDmsWLGi7DAqYenSpcybN6/sMFRx5pHawTxSO5hHagfzSO1Qdh5FxNqxHvO0TEmSJEnqAxZ3kiRJktQHLO4kSZIkqQ9U6po7SZLUfsOXjixdWmYUkvrNli1bWLduHZs2bSo7lLaaMWMGq1ev7vh2pk6dygEHHMDkyZMbXsbiTpIkSVLbrVu3jj322IM5c+YQEWWH0zbPP/88e+yxR0e3kZmsX7+edevWceCBBza8nKdlSpI0wBYvhuXL4a67YM6c2rQktcOmTZvYZ599+qqw65aIYJ999mm61dPiTpKkAbV4MSxYAJs316bXrq1NW+BJahcLu9a18t5Z3EmSNKAWLoSNG7eft3Fjbb4klWHevJeuAy7bOeecw4MPPrjT/MWLF3Peeee1vN7p06cXCWtcXnMnSdKAevTR5uZLUpVlJpnJLrs01r51xRVXdDii9rPlTpKkATVrVnPzJamTOnEN8COPPMLrXvc6zjzzTA477DA+9alPceyxx3LEEUdw0UUXAfDCCy/wtre9jSOPPJLDDjuMr371qwDMmzePFStWAHDllVfy2te+luOOO47ly5e/uP6zzjqL66+//sXp4Va5DRs2cPLJJ3P00Udz+OGHc9NNN+0U2xNPPMGJJ57IUUcdxWGHHcZ3v/vdwq/XljtJkgbUJZfUrrEbeWrmtGm1+ZLUTWNdAwwwNFRs3WvWrOHqq6/mueee4/rrr+dHP/oRmcnpp5/OsmXLePrpp3nFK17BLbfcAsCvf/3r7ZZ/4oknuOiii1i5ciUzZszgxBNPZO7cueNuc+rUqdxwww3sueeePPPMMxx//PGcfvrp211H95WvfIVTTz2VhQsXsnXrVjbueJ58C0ptuYuIRyLivohYFREryoxFkqRBMzQEl18OU6bUpmfPrk0XPZCSpGZ18hrg2bNnc/zxx7NkyRKWLFnCG97wBo4++mh++tOfsmbNGg4//HBuv/12PvrRj/Ld736XGTNmbLf8D3/4Q+bNm8fLX/5ydtttN971rndNuM3M5OMf/zhHHHEEp5xyCo899hhPPvnkds859thjufLKK7n44ou577772jK8Qi+03M3PzGfKDkKSpEE0NASLFtXuO4i5pLJ08hrg3XffHagVXBdeeCEf/OAHd3rOPffcw6233sonPvEJTj75ZD75yU82tO5Jkyaxbds2ALZt28Zvf/tboNbpytNPP83KlSuZPHkyc+bM2WlYgxNPPJFly5Zxyy23cNZZZ/HhD3+YM888s8hL9Zo7SZIkSeXqxjXAp556Kl/+8pfZsGEDAI899hhPPfUUjz/+ONOmTeO9730vF1xwAffcc892y73xjW/krrvuYv369WzZsoUbb7zxxcfmzJnDypUrAbj55pvZsmULUDu1c7/99mPy5MnceeedrF27dqd41q5dy8yZMzn33HM555xzdtpuK8puuUtgSUQk8KXMvLzkeCRJGji22EkqWzeuAX7LW97C6tWrOeGEE4Ba5yfXXnstDz30EBdccAG77LILkydP5otf/OJ2y+2///5cfPHFnHDCCey1114ceuihLz527rnn8o53vIMjjzyS00477cVWwqGhId7+9rdz+OGHM3fuXA4++OCd4lm6dCmXXnopkydPZvr06VxzzTWFX2NkZuGVtLzxiFdm5mMRsR9wO/BfMnPZDs9ZACwAmDlz5jHXXXddCZFWz4YNGzo6hoYGg3mkdqhSHp1//lEAXHbZqlLj0M6qlEfqXeZRd82YMYNXv/rVDT//a1+bxIc+NJXNm+FVr0ouumgzZ5zxuw5G2JqtW7ey6667dmVbDz300E4dvMyfP39lZo7ao0upxd1IEXExsCEzPzvWc+bOnZvD3ZFqfEuXLmVer4wAqcoyj9QOVcqj4TBtyeo9Vcoj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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Now calculate residuals:\n", "res = line_obs.flux - model\n", "\n", "#...and plot them.\n", "plt.figure(figsize=(15,2))\n", "plt.errorbar(line_obs.spectral_axis,res,yerr=line_err.flux,fmt='o',color='b',label='residuals')\n", "#plt.plot(x.spectral_axis,line_fit,label='line fit',color='red')\n", "plt.xlabel('Wavelength ($\\mu$m)')\n", "plt.ylabel('Residuals (Jy)')\n", "plt.grid()\n", "plt.legend()\n", "\n", "#Report the chi**2 statitic (for comparison to other model fits), and the reduced chi-squared:\n", "c = 6 #nubmer of constraints (parameters) on our continuum + line model.\n", "chisq=np.sum((res**2)/(line_err.flux)**2)\n", "chisq_nu=chisq/(len(line_obs.flux)-c)\n", "print('Chi Squared:')\n", "print(chisq)\n", "print('Reduced Chi Squared:')\n", "print(chisq_nu)\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While a 1D Gaussian may provide a good estimate of the line centroid and width, it is not a terribly good fit to the observed data. The Voigt profile does not fit very well either: the residuals and chi-squared statistics are nearly identical to those for the Gaussian profile. Detailed modelling of the FORCAST grism line profile is still a work in progress. \n", "\n", "USER EXERCISE: Try fitting the SIV line with Voigt and Lorentzian profiles and comapre the results with the Gaussian case.\n", "\n", "USER EXERCISE: Find the centroid and FWHM for the ArIII line at 9.9 $\\mu$m. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] } ], "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.8.17" } }, "nbformat": 4, "nbformat_minor": 4 }