Created
April 1, 2020 16:49
-
-
Save eteq/d65b62656a593e42fa6f412fa22862a2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import sys\n", | |
| "sys.path.insert(1, '/Users/erik/src/specutils')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import pathlib\n", | |
| "import collections\n", | |
| "from glob import glob\n", | |
| "\n", | |
| "import numpy as np\n", | |
| "\n", | |
| "from astropy import units as u\n", | |
| "from astropy.constants import c\n", | |
| "from astropy.io import fits\n", | |
| "from astropy import nddata, visualization\n", | |
| "visualization.quantity_support()\n", | |
| "\n", | |
| "from IPython import display\n", | |
| "import ipywidgets\n", | |
| "from ipyevents import Event \n", | |
| "\n", | |
| "import specutils\n", | |
| "\n", | |
| "import tqdm\n", | |
| "\n", | |
| "first = lambda x:next(iter(x))\n", | |
| "\n", | |
| "%matplotlib inline\n", | |
| "from matplotlib import style, pyplot as plt\n", | |
| "from matplotlib.backends.backend_agg import FigureCanvasAgg" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "cat_lines = [8498, 8542, 8662]*u.angstrom" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "datadir = pathlib.Path('/Users/erik/astrodata/DEIMOS/LeoT1')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Allslits0.LeoT1.fits.gz\n", | |
| "Allslits1.LeoT1.fits.gz\n", | |
| "LeoT1.bintabs.fits\n", | |
| "LeoT1.log\n", | |
| "LeoT1.plan\n", | |
| "LeoT1_1d.log\n", | |
| "LeoT1_mcerr.log\n", | |
| "arcwave_qa1.fits\n", | |
| "arcwave_qa2.fits\n", | |
| "arcwave_qa3.fits\n", | |
| "arcwave_qa4.fits\n", | |
| "arcwave_qa5.fits\n", | |
| "arcwave_qa6.fits\n", | |
| "arcwave_qa7.fits\n", | |
| "arcwave_qa8.fits\n", | |
| "calibSlit.LeoT1.000B.fits.gz\n", | |
| "calibSlit.LeoT1.000R.fits.gz\n", | |
| "calibSlit.LeoT1.001B.fits.gz\n", | |
| "calibSlit.LeoT1.001R.fits.gz\n", | |
| "calibSlit.LeoT1.002B.fits.gz\n", | |
| "calibSlit.LeoT1.002R.fits.gz\n", | |
| "calibSlit.LeoT1.003B.fits.gz\n", | |
| "calibSlit.LeoT1.003R.fits.gz\n", | |
| "calibSlit.LeoT1.004B.fits.gz\n", | |
| "calibSlit.LeoT1.004R.fits.gz\n", | |
| "calibSlit.LeoT1.005B.fits.gz\n", | |
| "calibSlit.LeoT1.005R.fits.gz\n", | |
| "calibSlit.LeoT1.006B.fits.gz\n", | |
| "calibSlit.LeoT1.006R.fits.gz\n", | |
| "calibSlit.LeoT1.007B.fits.gz\n", | |
| "calibSlit.LeoT1.007R.fits.gz\n", | |
| "calibSlit.LeoT1.008B.fits.gz\n", | |
| "calibSlit.LeoT1.008R.fits.gz\n", | |
| "calibSlit.LeoT1.009B.fits.gz\n", | |
| "calibSlit.LeoT1.009R.fits.gz\n", | |
| "calibSlit.LeoT1.010B.fits.gz\n", | |
| "calibSlit.LeoT1.010R.fits.gz\n", | |
| "calibSlit.LeoT1.011B.fits.gz\n", | |
| "calibSlit.LeoT1.011R.fits.gz\n", | |
| "calibSlit.LeoT1.012B.fits.gz\n", | |
| "calibSlit.LeoT1.012R.fits.gz\n", | |
| "calibSlit.LeoT1.013B.fits.gz\n", | |
| "calibSlit.LeoT1.013R.fits.gz\n", | |
| "calibSlit.LeoT1.014B.fits.gz\n", | |
| "calibSlit.LeoT1.014R.fits.gz\n", | |
| "calibSlit.LeoT1.015B.fits.gz\n", | |
| "calibSlit.LeoT1.015R.fits.gz\n", | |
| "calibSlit.LeoT1.016B.fits.gz\n", | |
| "calibSlit.LeoT1.016R.fits.gz\n", | |
| "calibSlit.LeoT1.017B.fits.gz\n", | |
| "calibSlit.LeoT1.017R.fits.gz\n", | |
| "calibSlit.LeoT1.018B.fits.gz\n", | |
| "calibSlit.LeoT1.018R.fits.gz\n", | |
| "calibSlit.LeoT1.019B.fits.gz\n", | |
| "calibSlit.LeoT1.019R.fits.gz\n", | |
| "calibSlit.LeoT1.020B.fits.gz\n", | |
| "calibSlit.LeoT1.020R.fits.gz\n", | |
| "calibSlit.LeoT1.022B.fits.gz\n", | |
| "calibSlit.LeoT1.022R.fits.gz\n", | |
| "calibSlit.LeoT1.023B.fits.gz\n", | |
| "calibSlit.LeoT1.023R.fits.gz\n", | |
| "calibSlit.LeoT1.024B.fits.gz\n", | |
| "calibSlit.LeoT1.024R.fits.gz\n", | |
| "calibSlit.LeoT1.025B.fits.gz\n", | |
| "calibSlit.LeoT1.025R.fits.gz\n", | |
| "calibSlit.LeoT1.026B.fits.gz\n", | |
| "calibSlit.LeoT1.026R.fits.gz\n", | |
| "calibSlit.LeoT1.027B.fits.gz\n", | |
| "calibSlit.LeoT1.027R.fits.gz\n", | |
| "calibSlit.LeoT1.028B.fits.gz\n", | |
| "calibSlit.LeoT1.028R.fits.gz\n", | |
| "calibSlit.LeoT1.029B.fits.gz\n", | |
| "calibSlit.LeoT1.029R.fits.gz\n", | |
| "calibSlit.LeoT1.030B.fits.gz\n", | |
| "calibSlit.LeoT1.030R.fits.gz\n", | |
| "calibSlit.LeoT1.031B.fits.gz\n", | |
| "calibSlit.LeoT1.031R.fits.gz\n", | |
| "calibSlit.LeoT1.032B.fits.gz\n", | |
| "calibSlit.LeoT1.032R.fits.gz\n", | |
| "calibSlit.LeoT1.033B.fits.gz\n", | |
| "calibSlit.LeoT1.033R.fits.gz\n", | |
| "calibSlit.LeoT1.034B.fits.gz\n", | |
| "calibSlit.LeoT1.034R.fits.gz\n", | |
| "calibSlit.LeoT1.035B.fits.gz\n", | |
| "calibSlit.LeoT1.035R.fits.gz\n", | |
| "calibSlit.LeoT1.036B.fits.gz\n", | |
| "calibSlit.LeoT1.036R.fits.gz\n", | |
| "calibSlit.LeoT1.037B.fits.gz\n", | |
| "calibSlit.LeoT1.037R.fits.gz\n", | |
| "calibSlit.LeoT1.039B.fits.gz\n", | |
| "calibSlit.LeoT1.039R.fits.gz\n", | |
| "calibSlit.LeoT1.040B.fits.gz\n", | |
| "calibSlit.LeoT1.040R.fits.gz\n", | |
| "calibSlit.LeoT1.041B.fits.gz\n", | |
| "calibSlit.LeoT1.041R.fits.gz\n", | |
| "calibSlit.LeoT1.042B.fits.gz\n", | |
| "calibSlit.LeoT1.042R.fits.gz\n", | |
| "calibSlit.LeoT1.043B.fits.gz\n", | |
| "calibSlit.LeoT1.043R.fits.gz\n", | |
| "calibSlit.LeoT1.044B.fits.gz\n", | |
| "calibSlit.LeoT1.044R.fits.gz\n", | |
| "calibSlit.LeoT1.045B.fits.gz\n", | |
| "calibSlit.LeoT1.045R.fits.gz\n", | |
| "calibSlit.LeoT1.046B.fits.gz\n", | |
| "calibSlit.LeoT1.046R.fits.gz\n", | |
| "calibSlit.LeoT1.047B.fits.gz\n", | |
| "calibSlit.LeoT1.047R.fits.gz\n", | |
| "calibSlit.LeoT1.048B.fits.gz\n", | |
| "calibSlit.LeoT1.048R.fits.gz\n", | |
| "calibSlit.LeoT1.049B.fits.gz\n", | |
| "calibSlit.LeoT1.049R.fits.gz\n", | |
| "calibSlit.LeoT1.050B.fits.gz\n", | |
| "calibSlit.LeoT1.050R.fits.gz\n", | |
| "calibSlit.LeoT1.051B.fits.gz\n", | |
| "calibSlit.LeoT1.051R.fits.gz\n", | |
| "calibSlit.LeoT1.052B.fits.gz\n", | |
| "calibSlit.LeoT1.052R.fits.gz\n", | |
| "calibSlit.LeoT1.053B.fits.gz\n", | |
| "calibSlit.LeoT1.053R.fits.gz\n", | |
| "calibSlit.LeoT1.054B.fits.gz\n", | |
| "calibSlit.LeoT1.054R.fits.gz\n", | |
| "calibSlit.LeoT1.055B.fits.gz\n", | |
| "calibSlit.LeoT1.055R.fits.gz\n", | |
| "calibSlit.LeoT1.056B.fits.gz\n", | |
| "calibSlit.LeoT1.056R.fits.gz\n", | |
| "calibSlit.LeoT1.057B.fits.gz\n", | |
| "calibSlit.LeoT1.057R.fits.gz\n", | |
| "calibSlit.LeoT1.058B.fits.gz\n", | |
| "calibSlit.LeoT1.058R.fits.gz\n", | |
| "calibSlit.LeoT1.059B.fits.gz\n", | |
| "calibSlit.LeoT1.059R.fits.gz\n", | |
| "calibSlit.LeoT1.060B.fits.gz\n", | |
| "calibSlit.LeoT1.060R.fits.gz\n", | |
| "calibSlit.LeoT1.061B.fits.gz\n", | |
| "calibSlit.LeoT1.061R.fits.gz\n", | |
| "calibSlit.LeoT1.062B.fits.gz\n", | |
| "calibSlit.LeoT1.062R.fits.gz\n", | |
| "calibSlit.LeoT1.063B.fits.gz\n", | |
| "calibSlit.LeoT1.063R.fits.gz\n", | |
| "calibSlit.LeoT1.064B.fits.gz\n", | |
| "calibSlit.LeoT1.064R.fits.gz\n", | |
| "calibSlit.LeoT1.065B.fits.gz\n", | |
| "calibSlit.LeoT1.065R.fits.gz\n", | |
| "calibSlit.LeoT1.066B.fits.gz\n", | |
| "calibSlit.LeoT1.066R.fits.gz\n", | |
| "calibSlit.LeoT1.067B.fits.gz\n", | |
| "calibSlit.LeoT1.067R.fits.gz\n", | |
| "calibSlit.LeoT1.068B.fits.gz\n", | |
| "calibSlit.LeoT1.068R.fits.gz\n", | |
| "calibSlit.LeoT1.069B.fits.gz\n", | |
| "calibSlit.LeoT1.069R.fits.gz\n", | |
| "calibSlit.LeoT1.070B.fits.gz\n", | |
| "calibSlit.LeoT1.070R.fits.gz\n", | |
| "calibSlit.LeoT1.071B.fits.gz\n", | |
| "calibSlit.LeoT1.071R.fits.gz\n", | |
| "calibSlit.LeoT1.072B.fits.gz\n", | |
| "calibSlit.LeoT1.072R.fits.gz\n", | |
| "calibSlit.LeoT1.073B.fits.gz\n", | |
| "calibSlit.LeoT1.073R.fits.gz\n", | |
| "calibSlit.LeoT1.074B.fits.gz\n", | |
| "calibSlit.LeoT1.074R.fits.gz\n", | |
| "calibSlit.LeoT1.075B.fits.gz\n", | |
| "calibSlit.LeoT1.075R.fits.gz\n", | |
| "calibSlit.LeoT1.076B.fits.gz\n", | |
| "calibSlit.LeoT1.076R.fits.gz\n", | |
| "calibSlit.LeoT1.077B.fits.gz\n", | |
| "calibSlit.LeoT1.077R.fits.gz\n", | |
| "calibSlit.LeoT1.078B.fits.gz\n", | |
| "calibSlit.LeoT1.078R.fits.gz\n", | |
| "calibSlit.LeoT1.079B.fits.gz\n", | |
| "calibSlit.LeoT1.079R.fits.gz\n", | |
| "calibSlit.LeoT1.080B.fits.gz\n", | |
| "calibSlit.LeoT1.080R.fits.gz\n", | |
| "calibSlit.LeoT1.081B.fits.gz\n", | |
| "calibSlit.LeoT1.081R.fits.gz\n", | |
| "calibSlit.LeoT1.082B.fits.gz\n", | |
| "calibSlit.LeoT1.082R.fits.gz\n", | |
| "calibSlit.LeoT1.083B.fits.gz\n", | |
| "calibSlit.LeoT1.083R.fits.gz\n", | |
| "calibSlit.LeoT1.084B.fits.gz\n", | |
| "calibSlit.LeoT1.084R.fits.gz\n", | |
| "calibSlit.LeoT1.085B.fits.gz\n", | |
| "calibSlit.LeoT1.085R.fits.gz\n", | |
| "calibSlit.LeoT1.086B.fits.gz\n", | |
| "calibSlit.LeoT1.086R.fits.gz\n", | |
| "calibSlit.LeoT1.087B.fits.gz\n", | |
| "calibSlit.LeoT1.087R.fits.gz\n", | |
| "calibSlit.LeoT1.088B.fits.gz\n", | |
| "calibSlit.LeoT1.088R.fits.gz\n", | |
| "calibSlit.LeoT1.089B.fits.gz\n", | |
| "calibSlit.LeoT1.089R.fits.gz\n", | |
| "calibSlit.LeoT1.090B.fits.gz\n", | |
| "calibSlit.LeoT1.090R.fits.gz\n", | |
| "calibSlit.LeoT1.091B.fits.gz\n", | |
| "calibSlit.LeoT1.091R.fits.gz\n", | |
| "calibSlit.LeoT1.092B.fits.gz\n", | |
| "calibSlit.LeoT1.092R.fits.gz\n", | |
| "calibSlit.LeoT1.093B.fits.gz\n", | |
| "calibSlit.LeoT1.093R.fits.gz\n", | |
| "calibSlit.LeoT1.095B.fits.gz\n", | |
| "calibSlit.LeoT1.095R.fits.gz\n", | |
| "calibSlit.LeoT1.096B.fits.gz\n", | |
| "calibSlit.LeoT1.096R.fits.gz\n", | |
| "calibSlit.LeoT1.097B.fits.gz\n", | |
| "calibSlit.LeoT1.097R.fits.gz\n", | |
| "calibSlit.LeoT1.098B.fits.gz\n", | |
| "calibSlit.LeoT1.098R.fits.gz\n", | |
| "calibSlit.LeoT1.099B.fits.gz\n", | |
| "calibSlit.LeoT1.099R.fits.gz\n", | |
| "calibSlit.LeoT1.100B.fits.gz\n", | |
| "calibSlit.LeoT1.100R.fits.gz\n", | |
| "calibSlit.LeoT1.101B.fits.gz\n", | |
| "calibSlit.LeoT1.101R.fits.gz\n", | |
| "calibSlit.LeoT1.102B.fits.gz\n", | |
| "calibSlit.LeoT1.102R.fits.gz\n", | |
| "calibSlit.LeoT1.103B.fits.gz\n", | |
| "calibSlit.LeoT1.103R.fits.gz\n", | |
| "calibSlit.LeoT1.104B.fits.gz\n", | |
| "calibSlit.LeoT1.104R.fits.gz\n", | |
| "calibSlit.LeoT1.105B.fits.gz\n", | |
| "calibSlit.LeoT1.105R.fits.gz\n", | |
| "calibSlit.LeoT1.106B.fits.gz\n", | |
| "calibSlit.LeoT1.106R.fits.gz\n", | |
| "calibSlit.LeoT1.107B.fits.gz\n", | |
| "calibSlit.LeoT1.107R.fits.gz\n", | |
| "calibSlit.LeoT1.108B.fits.gz\n", | |
| "calibSlit.LeoT1.108R.fits.gz\n", | |
| "calibSlit.LeoT1.109B.fits.gz\n", | |
| "calibSlit.LeoT1.109R.fits.gz\n", | |
| "calibSlit.LeoT1.110B.fits.gz\n", | |
| "calibSlit.LeoT1.110R.fits.gz\n", | |
| "calibSlit.LeoT1.111B.fits.gz\n", | |
| "calibSlit.LeoT1.111R.fits.gz\n", | |
| "calibSlit.LeoT1.112B.fits.gz\n", | |
| "calibSlit.LeoT1.112R.fits.gz\n", | |
| "calibSlit.LeoT1.113B.fits.gz\n", | |
| "calibSlit.LeoT1.113R.fits.gz\n", | |
| "calibSlit.LeoT1.114B.fits.gz\n", | |
| "calibSlit.LeoT1.114R.fits.gz\n", | |
| "calibSlit.LeoT1.115B.fits.gz\n", | |
| "calibSlit.LeoT1.115R.fits.gz\n", | |
| "calibSlit.LeoT1.116B.fits.gz\n", | |
| "calibSlit.LeoT1.116R.fits.gz\n", | |
| "calibSlit.LeoT1.117B.fits.gz\n", | |
| "calibSlit.LeoT1.117R.fits.gz\n", | |
| "doneprocessing.txt\n", | |
| "failure.19.3.sav\n", | |
| "failure.19.7.sav\n", | |
| "failure.56.2.sav\n", | |
| "failure.56.6.sav\n", | |
| "failure.91.4.sav\n", | |
| "failure.92.4.sav\n", | |
| "failure.96.1.sav\n", | |
| "failure.96.5.sav\n", | |
| "obj_info.LeoT1.fits\n", | |
| "\u001b[1m\u001b[36mps\u001b[m\u001b[m/\n", | |
| "slit.LeoT1.000B.fits.gz\n", | |
| "slit.LeoT1.000R.fits.gz\n", | |
| "slit.LeoT1.001B.fits.gz\n", | |
| "slit.LeoT1.001R.fits.gz\n", | |
| "slit.LeoT1.002B.fits.gz\n", | |
| "slit.LeoT1.002R.fits.gz\n", | |
| "slit.LeoT1.003B.fits.gz\n", | |
| "slit.LeoT1.003R.fits.gz\n", | |
| "slit.LeoT1.004B.fits.gz\n", | |
| "slit.LeoT1.004R.fits.gz\n", | |
| "slit.LeoT1.005B.fits.gz\n", | |
| "slit.LeoT1.005R.fits.gz\n", | |
| "slit.LeoT1.006B.fits.gz\n", | |
| "slit.LeoT1.006R.fits.gz\n", | |
| "slit.LeoT1.007B.fits.gz\n", | |
| "slit.LeoT1.007R.fits.gz\n", | |
| "slit.LeoT1.008B.fits.gz\n", | |
| "slit.LeoT1.008R.fits.gz\n", | |
| "slit.LeoT1.009B.fits.gz\n", | |
| "slit.LeoT1.009R.fits.gz\n", | |
| "slit.LeoT1.010B.fits.gz\n", | |
| "slit.LeoT1.010R.fits.gz\n", | |
| "slit.LeoT1.011B.fits.gz\n", | |
| "slit.LeoT1.011R.fits.gz\n", | |
| "slit.LeoT1.012B.fits.gz\n", | |
| "slit.LeoT1.012R.fits.gz\n", | |
| "slit.LeoT1.013B.fits.gz\n", | |
| "slit.LeoT1.013R.fits.gz\n", | |
| "slit.LeoT1.014B.fits.gz\n", | |
| "slit.LeoT1.014R.fits.gz\n", | |
| "slit.LeoT1.015B.fits.gz\n", | |
| "slit.LeoT1.015R.fits.gz\n", | |
| "slit.LeoT1.016B.fits.gz\n", | |
| "slit.LeoT1.016R.fits.gz\n", | |
| "slit.LeoT1.017B.fits.gz\n", | |
| "slit.LeoT1.017R.fits.gz\n", | |
| "slit.LeoT1.018B.fits.gz\n", | |
| "slit.LeoT1.018R.fits.gz\n", | |
| "slit.LeoT1.019B.fits.gz\n", | |
| "slit.LeoT1.019R.fits.gz\n", | |
| "slit.LeoT1.020B.fits.gz\n", | |
| "slit.LeoT1.020R.fits.gz\n", | |
| "slit.LeoT1.022B.fits.gz\n", | |
| "slit.LeoT1.022R.fits.gz\n", | |
| "slit.LeoT1.023B.fits.gz\n", | |
| "slit.LeoT1.023R.fits.gz\n", | |
| "slit.LeoT1.024B.fits.gz\n", | |
| "slit.LeoT1.024R.fits.gz\n", | |
| "slit.LeoT1.025B.fits.gz\n", | |
| "slit.LeoT1.025R.fits.gz\n", | |
| "slit.LeoT1.026B.fits.gz\n", | |
| "slit.LeoT1.026R.fits.gz\n", | |
| "slit.LeoT1.027B.fits.gz\n", | |
| "slit.LeoT1.027R.fits.gz\n", | |
| "slit.LeoT1.028B.fits.gz\n", | |
| "slit.LeoT1.028R.fits.gz\n", | |
| "slit.LeoT1.029B.fits.gz\n", | |
| "slit.LeoT1.029R.fits.gz\n", | |
| "slit.LeoT1.030B.fits.gz\n", | |
| "slit.LeoT1.030R.fits.gz\n", | |
| "slit.LeoT1.031B.fits.gz\n", | |
| "slit.LeoT1.031R.fits.gz\n", | |
| "slit.LeoT1.032B.fits.gz\n", | |
| "slit.LeoT1.032R.fits.gz\n", | |
| "slit.LeoT1.033B.fits.gz\n", | |
| "slit.LeoT1.033R.fits.gz\n", | |
| "slit.LeoT1.034B.fits.gz\n", | |
| "slit.LeoT1.034R.fits.gz\n", | |
| "slit.LeoT1.035B.fits.gz\n", | |
| "slit.LeoT1.035R.fits.gz\n", | |
| "slit.LeoT1.036B.fits.gz\n", | |
| "slit.LeoT1.036R.fits.gz\n", | |
| "slit.LeoT1.037B.fits.gz\n", | |
| "slit.LeoT1.037R.fits.gz\n", | |
| "slit.LeoT1.039B.fits.gz\n", | |
| "slit.LeoT1.039R.fits.gz\n", | |
| "slit.LeoT1.040B.fits.gz\n", | |
| "slit.LeoT1.040R.fits.gz\n", | |
| "slit.LeoT1.041B.fits.gz\n", | |
| "slit.LeoT1.041R.fits.gz\n", | |
| "slit.LeoT1.042B.fits.gz\n", | |
| "slit.LeoT1.042R.fits.gz\n", | |
| "slit.LeoT1.043B.fits.gz\n", | |
| "slit.LeoT1.043R.fits.gz\n", | |
| "slit.LeoT1.044B.fits.gz\n", | |
| "slit.LeoT1.044R.fits.gz\n", | |
| "slit.LeoT1.045B.fits.gz\n", | |
| "slit.LeoT1.045R.fits.gz\n", | |
| "slit.LeoT1.046B.fits.gz\n", | |
| "slit.LeoT1.046R.fits.gz\n", | |
| "slit.LeoT1.047B.fits.gz\n", | |
| "slit.LeoT1.047R.fits.gz\n", | |
| "slit.LeoT1.048B.fits.gz\n", | |
| "slit.LeoT1.048R.fits.gz\n", | |
| "slit.LeoT1.049B.fits.gz\n", | |
| "slit.LeoT1.049R.fits.gz\n", | |
| "slit.LeoT1.050B.fits.gz\n", | |
| "slit.LeoT1.050R.fits.gz\n", | |
| "slit.LeoT1.051B.fits.gz\n", | |
| "slit.LeoT1.051R.fits.gz\n", | |
| "slit.LeoT1.052B.fits.gz\n", | |
| "slit.LeoT1.052R.fits.gz\n", | |
| "slit.LeoT1.053B.fits.gz\n", | |
| "slit.LeoT1.053R.fits.gz\n", | |
| "slit.LeoT1.054B.fits.gz\n", | |
| "slit.LeoT1.054R.fits.gz\n", | |
| "slit.LeoT1.055B.fits.gz\n", | |
| "slit.LeoT1.055R.fits.gz\n", | |
| "slit.LeoT1.056B.fits.gz\n", | |
| "slit.LeoT1.056R.fits.gz\n", | |
| "slit.LeoT1.057B.fits.gz\n", | |
| "slit.LeoT1.057R.fits.gz\n", | |
| "slit.LeoT1.058B.fits.gz\n", | |
| "slit.LeoT1.058R.fits.gz\n", | |
| "slit.LeoT1.059B.fits.gz\n", | |
| "slit.LeoT1.059R.fits.gz\n", | |
| "slit.LeoT1.060B.fits.gz\n", | |
| "slit.LeoT1.060R.fits.gz\n", | |
| "slit.LeoT1.061B.fits.gz\n", | |
| "slit.LeoT1.061R.fits.gz\n", | |
| "slit.LeoT1.062B.fits.gz\n", | |
| "slit.LeoT1.062R.fits.gz\n", | |
| "slit.LeoT1.063B.fits.gz\n", | |
| "slit.LeoT1.063R.fits.gz\n", | |
| "slit.LeoT1.064B.fits.gz\n", | |
| "slit.LeoT1.064R.fits.gz\n", | |
| "slit.LeoT1.065B.fits.gz\n", | |
| "slit.LeoT1.065R.fits.gz\n", | |
| "slit.LeoT1.066B.fits.gz\n", | |
| "slit.LeoT1.066R.fits.gz\n", | |
| "slit.LeoT1.067B.fits.gz\n", | |
| "slit.LeoT1.067R.fits.gz\n", | |
| "slit.LeoT1.068B.fits.gz\n", | |
| "slit.LeoT1.068R.fits.gz\n", | |
| "slit.LeoT1.069B.fits.gz\n", | |
| "slit.LeoT1.069R.fits.gz\n", | |
| "slit.LeoT1.070B.fits.gz\n", | |
| "slit.LeoT1.070R.fits.gz\n", | |
| "slit.LeoT1.071B.fits.gz\n", | |
| "slit.LeoT1.071R.fits.gz\n", | |
| "slit.LeoT1.072B.fits.gz\n", | |
| "slit.LeoT1.072R.fits.gz\n", | |
| "slit.LeoT1.073B.fits.gz\n", | |
| "slit.LeoT1.073R.fits.gz\n", | |
| "slit.LeoT1.074B.fits.gz\n", | |
| "slit.LeoT1.074R.fits.gz\n", | |
| "slit.LeoT1.075B.fits.gz\n", | |
| "slit.LeoT1.075R.fits.gz\n", | |
| "slit.LeoT1.076B.fits.gz\n", | |
| "slit.LeoT1.076R.fits.gz\n", | |
| "slit.LeoT1.077B.fits.gz\n", | |
| "slit.LeoT1.077R.fits.gz\n", | |
| "slit.LeoT1.078B.fits.gz\n", | |
| "slit.LeoT1.078R.fits.gz\n", | |
| "slit.LeoT1.079B.fits.gz\n", | |
| "slit.LeoT1.079R.fits.gz\n", | |
| "slit.LeoT1.080B.fits.gz\n", | |
| "slit.LeoT1.080R.fits.gz\n", | |
| "slit.LeoT1.081B.fits.gz\n", | |
| "slit.LeoT1.081R.fits.gz\n", | |
| "slit.LeoT1.082B.fits.gz\n", | |
| "slit.LeoT1.082R.fits.gz\n", | |
| "slit.LeoT1.083B.fits.gz\n", | |
| "slit.LeoT1.083R.fits.gz\n", | |
| "slit.LeoT1.084B.fits.gz\n", | |
| "slit.LeoT1.084R.fits.gz\n", | |
| "slit.LeoT1.085B.fits.gz\n", | |
| "slit.LeoT1.085R.fits.gz\n", | |
| "slit.LeoT1.086B.fits.gz\n", | |
| "slit.LeoT1.086R.fits.gz\n", | |
| "slit.LeoT1.087B.fits.gz\n", | |
| "slit.LeoT1.087R.fits.gz\n", | |
| "slit.LeoT1.088B.fits.gz\n", | |
| "slit.LeoT1.088R.fits.gz\n", | |
| "slit.LeoT1.089B.fits.gz\n", | |
| "slit.LeoT1.089R.fits.gz\n", | |
| "slit.LeoT1.090B.fits.gz\n", | |
| "slit.LeoT1.090R.fits.gz\n", | |
| "slit.LeoT1.091B.fits.gz\n", | |
| "slit.LeoT1.091R.fits.gz\n", | |
| "slit.LeoT1.092B.fits.gz\n", | |
| "slit.LeoT1.092R.fits.gz\n", | |
| "slit.LeoT1.093B.fits.gz\n", | |
| "slit.LeoT1.093R.fits.gz\n", | |
| "slit.LeoT1.095B.fits.gz\n", | |
| "slit.LeoT1.095R.fits.gz\n", | |
| "slit.LeoT1.096B.fits.gz\n", | |
| "slit.LeoT1.096R.fits.gz\n", | |
| "slit.LeoT1.097B.fits.gz\n", | |
| "slit.LeoT1.097R.fits.gz\n", | |
| "slit.LeoT1.098B.fits.gz\n", | |
| "slit.LeoT1.098R.fits.gz\n", | |
| "slit.LeoT1.099B.fits.gz\n", | |
| "slit.LeoT1.099R.fits.gz\n", | |
| "slit.LeoT1.100B.fits.gz\n", | |
| "slit.LeoT1.100R.fits.gz\n", | |
| "slit.LeoT1.101B.fits.gz\n", | |
| "slit.LeoT1.101R.fits.gz\n", | |
| "slit.LeoT1.102B.fits.gz\n", | |
| "slit.LeoT1.102R.fits.gz\n", | |
| "slit.LeoT1.103B.fits.gz\n", | |
| "slit.LeoT1.103R.fits.gz\n", | |
| "slit.LeoT1.104B.fits.gz\n", | |
| "slit.LeoT1.104R.fits.gz\n", | |
| "slit.LeoT1.105B.fits.gz\n", | |
| "slit.LeoT1.105R.fits.gz\n", | |
| "slit.LeoT1.106B.fits.gz\n", | |
| "slit.LeoT1.106R.fits.gz\n", | |
| "slit.LeoT1.107B.fits.gz\n", | |
| "slit.LeoT1.107R.fits.gz\n", | |
| "slit.LeoT1.108B.fits.gz\n", | |
| "slit.LeoT1.108R.fits.gz\n", | |
| "slit.LeoT1.109B.fits.gz\n", | |
| "slit.LeoT1.109R.fits.gz\n", | |
| "slit.LeoT1.110B.fits.gz\n", | |
| "slit.LeoT1.110R.fits.gz\n", | |
| "slit.LeoT1.111B.fits.gz\n", | |
| "slit.LeoT1.111R.fits.gz\n", | |
| "slit.LeoT1.112B.fits.gz\n", | |
| "slit.LeoT1.112R.fits.gz\n", | |
| "slit.LeoT1.113B.fits.gz\n", | |
| "slit.LeoT1.113R.fits.gz\n", | |
| "slit.LeoT1.114B.fits.gz\n", | |
| "slit.LeoT1.114R.fits.gz\n", | |
| "slit.LeoT1.115B.fits.gz\n", | |
| "slit.LeoT1.115R.fits.gz\n", | |
| "slit.LeoT1.116B.fits.gz\n", | |
| "slit.LeoT1.116R.fits.gz\n", | |
| "slit.LeoT1.117B.fits.gz\n", | |
| "slit.LeoT1.117R.fits.gz\n", | |
| "spSlit.LeoT1.000B.fits.gz\n", | |
| "spSlit.LeoT1.000R.fits.gz\n", | |
| "spSlit.LeoT1.001B.fits.gz\n", | |
| "spSlit.LeoT1.001R.fits.gz\n", | |
| "spSlit.LeoT1.002B.fits.gz\n", | |
| "spSlit.LeoT1.002R.fits.gz\n", | |
| "spSlit.LeoT1.003B.fits.gz\n", | |
| "spSlit.LeoT1.003R.fits.gz\n", | |
| "spSlit.LeoT1.004B.fits.gz\n", | |
| "spSlit.LeoT1.004R.fits.gz\n", | |
| "spSlit.LeoT1.005B.fits.gz\n", | |
| "spSlit.LeoT1.005R.fits.gz\n", | |
| "spSlit.LeoT1.006B.fits.gz\n", | |
| "spSlit.LeoT1.006R.fits.gz\n", | |
| "spSlit.LeoT1.007B.fits.gz\n", | |
| "spSlit.LeoT1.007R.fits.gz\n", | |
| "spSlit.LeoT1.008B.fits.gz\n", | |
| "spSlit.LeoT1.008R.fits.gz\n", | |
| "spSlit.LeoT1.009B.fits.gz\n", | |
| "spSlit.LeoT1.009R.fits.gz\n", | |
| "spSlit.LeoT1.010B.fits.gz\n", | |
| "spSlit.LeoT1.010R.fits.gz\n", | |
| "spSlit.LeoT1.011B.fits.gz\n", | |
| "spSlit.LeoT1.011R.fits.gz\n", | |
| "spSlit.LeoT1.012B.fits.gz\n", | |
| "spSlit.LeoT1.012R.fits.gz\n", | |
| "spSlit.LeoT1.013B.fits.gz\n", | |
| "spSlit.LeoT1.013R.fits.gz\n", | |
| "spSlit.LeoT1.014B.fits.gz\n", | |
| "spSlit.LeoT1.014R.fits.gz\n", | |
| "spSlit.LeoT1.015B.fits.gz\n", | |
| "spSlit.LeoT1.015R.fits.gz\n", | |
| "spSlit.LeoT1.016B.fits.gz\n", | |
| "spSlit.LeoT1.016R.fits.gz\n", | |
| "spSlit.LeoT1.017B.fits.gz\n", | |
| "spSlit.LeoT1.017R.fits.gz\n", | |
| "spSlit.LeoT1.018B.fits.gz\n", | |
| "spSlit.LeoT1.018R.fits.gz\n", | |
| "spSlit.LeoT1.019B.fits.gz\n", | |
| "spSlit.LeoT1.019R.fits.gz\n", | |
| "spSlit.LeoT1.020B.fits.gz\n", | |
| "spSlit.LeoT1.020R.fits.gz\n", | |
| "spSlit.LeoT1.022B.fits.gz\n", | |
| "spSlit.LeoT1.022R.fits.gz\n", | |
| "spSlit.LeoT1.023B.fits.gz\n", | |
| "spSlit.LeoT1.023R.fits.gz\n", | |
| "spSlit.LeoT1.024B.fits.gz\n", | |
| "spSlit.LeoT1.024R.fits.gz\n", | |
| "spSlit.LeoT1.025B.fits.gz\n", | |
| "spSlit.LeoT1.025R.fits.gz\n", | |
| "spSlit.LeoT1.026B.fits.gz\n", | |
| "spSlit.LeoT1.026R.fits.gz\n", | |
| "spSlit.LeoT1.027B.fits.gz\n", | |
| "spSlit.LeoT1.027R.fits.gz\n", | |
| "spSlit.LeoT1.028B.fits.gz\n", | |
| "spSlit.LeoT1.028R.fits.gz\n", | |
| "spSlit.LeoT1.029B.fits.gz\n", | |
| "spSlit.LeoT1.029R.fits.gz\n", | |
| "spSlit.LeoT1.030B.fits.gz\n", | |
| "spSlit.LeoT1.030R.fits.gz\n", | |
| "spSlit.LeoT1.031B.fits.gz\n", | |
| "spSlit.LeoT1.031R.fits.gz\n", | |
| "spSlit.LeoT1.032B.fits.gz\n", | |
| "spSlit.LeoT1.032R.fits.gz\n", | |
| "spSlit.LeoT1.033B.fits.gz\n", | |
| "spSlit.LeoT1.033R.fits.gz\n", | |
| "spSlit.LeoT1.034B.fits.gz\n", | |
| "spSlit.LeoT1.034R.fits.gz\n", | |
| "spSlit.LeoT1.035B.fits.gz\n", | |
| "spSlit.LeoT1.035R.fits.gz\n", | |
| "spSlit.LeoT1.036B.fits.gz\n", | |
| "spSlit.LeoT1.036R.fits.gz\n", | |
| "spSlit.LeoT1.037B.fits.gz\n", | |
| "spSlit.LeoT1.037R.fits.gz\n", | |
| "spSlit.LeoT1.039B.fits.gz\n", | |
| "spSlit.LeoT1.039R.fits.gz\n", | |
| "spSlit.LeoT1.040B.fits.gz\n", | |
| "spSlit.LeoT1.040R.fits.gz\n", | |
| "spSlit.LeoT1.041B.fits.gz\n", | |
| "spSlit.LeoT1.041R.fits.gz\n", | |
| "spSlit.LeoT1.042B.fits.gz\n", | |
| "spSlit.LeoT1.042R.fits.gz\n", | |
| "spSlit.LeoT1.043B.fits.gz\n", | |
| "spSlit.LeoT1.043R.fits.gz\n", | |
| "spSlit.LeoT1.044B.fits.gz\n", | |
| "spSlit.LeoT1.044R.fits.gz\n", | |
| "spSlit.LeoT1.045B.fits.gz\n", | |
| "spSlit.LeoT1.045R.fits.gz\n", | |
| "spSlit.LeoT1.046B.fits.gz\n", | |
| "spSlit.LeoT1.046R.fits.gz\n", | |
| "spSlit.LeoT1.047B.fits.gz\n", | |
| "spSlit.LeoT1.047R.fits.gz\n", | |
| "spSlit.LeoT1.048B.fits.gz\n", | |
| "spSlit.LeoT1.048R.fits.gz\n", | |
| "spSlit.LeoT1.049B.fits.gz\n", | |
| "spSlit.LeoT1.049R.fits.gz\n", | |
| "spSlit.LeoT1.050B.fits.gz\n", | |
| "spSlit.LeoT1.050R.fits.gz\n", | |
| "spSlit.LeoT1.051B.fits.gz\n", | |
| "spSlit.LeoT1.051R.fits.gz\n", | |
| "spSlit.LeoT1.052B.fits.gz\n", | |
| "spSlit.LeoT1.052R.fits.gz\n", | |
| "spSlit.LeoT1.053B.fits.gz\n", | |
| "spSlit.LeoT1.053R.fits.gz\n", | |
| "spSlit.LeoT1.054B.fits.gz\n", | |
| "spSlit.LeoT1.054R.fits.gz\n", | |
| "spSlit.LeoT1.055B.fits.gz\n", | |
| "spSlit.LeoT1.055R.fits.gz\n", | |
| "spSlit.LeoT1.056B.fits.gz\n", | |
| "spSlit.LeoT1.056R.fits.gz\n", | |
| "spSlit.LeoT1.057B.fits.gz\n", | |
| "spSlit.LeoT1.057R.fits.gz\n", | |
| "spSlit.LeoT1.058B.fits.gz\n", | |
| "spSlit.LeoT1.058R.fits.gz\n", | |
| "spSlit.LeoT1.059B.fits.gz\n", | |
| "spSlit.LeoT1.059R.fits.gz\n", | |
| "spSlit.LeoT1.060B.fits.gz\n", | |
| "spSlit.LeoT1.060R.fits.gz\n", | |
| "spSlit.LeoT1.061B.fits.gz\n", | |
| "spSlit.LeoT1.061R.fits.gz\n", | |
| "spSlit.LeoT1.062B.fits.gz\n", | |
| "spSlit.LeoT1.062R.fits.gz\n", | |
| "spSlit.LeoT1.063B.fits.gz\n", | |
| "spSlit.LeoT1.063R.fits.gz\n", | |
| "spSlit.LeoT1.064B.fits.gz\n", | |
| "spSlit.LeoT1.064R.fits.gz\n", | |
| "spSlit.LeoT1.065B.fits.gz\n", | |
| "spSlit.LeoT1.065R.fits.gz\n", | |
| "spSlit.LeoT1.066B.fits.gz\n", | |
| "spSlit.LeoT1.066R.fits.gz\n", | |
| "spSlit.LeoT1.067B.fits.gz\n", | |
| "spSlit.LeoT1.067R.fits.gz\n", | |
| "spSlit.LeoT1.068B.fits.gz\n", | |
| "spSlit.LeoT1.068R.fits.gz\n", | |
| "spSlit.LeoT1.069B.fits.gz\n", | |
| "spSlit.LeoT1.069R.fits.gz\n", | |
| "spSlit.LeoT1.070B.fits.gz\n", | |
| "spSlit.LeoT1.070R.fits.gz\n", | |
| "spSlit.LeoT1.071B.fits.gz\n", | |
| "spSlit.LeoT1.071R.fits.gz\n", | |
| "spSlit.LeoT1.072B.fits.gz\n", | |
| "spSlit.LeoT1.072R.fits.gz\n", | |
| "spSlit.LeoT1.073B.fits.gz\n", | |
| "spSlit.LeoT1.073R.fits.gz\n", | |
| "spSlit.LeoT1.074B.fits.gz\n", | |
| "spSlit.LeoT1.074R.fits.gz\n", | |
| "spSlit.LeoT1.075B.fits.gz\n", | |
| "spSlit.LeoT1.075R.fits.gz\n", | |
| "spSlit.LeoT1.076B.fits.gz\n", | |
| "spSlit.LeoT1.076R.fits.gz\n", | |
| "spSlit.LeoT1.077B.fits.gz\n", | |
| "spSlit.LeoT1.077R.fits.gz\n", | |
| "spSlit.LeoT1.078B.fits.gz\n", | |
| "spSlit.LeoT1.078R.fits.gz\n", | |
| "spSlit.LeoT1.079B.fits.gz\n", | |
| "spSlit.LeoT1.079R.fits.gz\n", | |
| "spSlit.LeoT1.080B.fits.gz\n", | |
| "spSlit.LeoT1.080R.fits.gz\n", | |
| "spSlit.LeoT1.081B.fits.gz\n", | |
| "spSlit.LeoT1.081R.fits.gz\n", | |
| "spSlit.LeoT1.082B.fits.gz\n", | |
| "spSlit.LeoT1.082R.fits.gz\n", | |
| "spSlit.LeoT1.083B.fits.gz\n", | |
| "spSlit.LeoT1.083R.fits.gz\n", | |
| "spSlit.LeoT1.084B.fits.gz\n", | |
| "spSlit.LeoT1.084R.fits.gz\n", | |
| "spSlit.LeoT1.085B.fits.gz\n", | |
| "spSlit.LeoT1.085R.fits.gz\n", | |
| "spSlit.LeoT1.086B.fits.gz\n", | |
| "spSlit.LeoT1.086R.fits.gz\n", | |
| "spSlit.LeoT1.087B.fits.gz\n", | |
| "spSlit.LeoT1.087R.fits.gz\n", | |
| "spSlit.LeoT1.088B.fits.gz\n", | |
| "spSlit.LeoT1.088R.fits.gz\n", | |
| "spSlit.LeoT1.089B.fits.gz\n", | |
| "spSlit.LeoT1.089R.fits.gz\n", | |
| "spSlit.LeoT1.090B.fits.gz\n", | |
| "spSlit.LeoT1.090R.fits.gz\n", | |
| "spSlit.LeoT1.091B.fits.gz\n", | |
| "spSlit.LeoT1.091R.fits.gz\n", | |
| "spSlit.LeoT1.092B.fits.gz\n", | |
| "spSlit.LeoT1.092R.fits.gz\n", | |
| "spSlit.LeoT1.093B.fits.gz\n", | |
| "spSlit.LeoT1.093R.fits.gz\n", | |
| "spSlit.LeoT1.095B.fits.gz\n", | |
| "spSlit.LeoT1.095R.fits.gz\n", | |
| "spSlit.LeoT1.096B.fits.gz\n", | |
| "spSlit.LeoT1.096R.fits.gz\n", | |
| "spSlit.LeoT1.097B.fits.gz\n", | |
| "spSlit.LeoT1.097R.fits.gz\n", | |
| "spSlit.LeoT1.098B.fits.gz\n", | |
| "spSlit.LeoT1.098R.fits.gz\n", | |
| "spSlit.LeoT1.099B.fits.gz\n", | |
| "spSlit.LeoT1.099R.fits.gz\n", | |
| "spSlit.LeoT1.100B.fits.gz\n", | |
| "spSlit.LeoT1.100R.fits.gz\n", | |
| "spSlit.LeoT1.101B.fits.gz\n", | |
| "spSlit.LeoT1.101R.fits.gz\n", | |
| "spSlit.LeoT1.102B.fits.gz\n", | |
| "spSlit.LeoT1.102R.fits.gz\n", | |
| "spSlit.LeoT1.103B.fits.gz\n", | |
| "spSlit.LeoT1.103R.fits.gz\n", | |
| "spSlit.LeoT1.104B.fits.gz\n", | |
| "spSlit.LeoT1.104R.fits.gz\n", | |
| "spSlit.LeoT1.105B.fits.gz\n", | |
| "spSlit.LeoT1.105R.fits.gz\n", | |
| "spSlit.LeoT1.106B.fits.gz\n", | |
| "spSlit.LeoT1.106R.fits.gz\n", | |
| "spSlit.LeoT1.107B.fits.gz\n", | |
| "spSlit.LeoT1.107R.fits.gz\n", | |
| "spSlit.LeoT1.108B.fits.gz\n", | |
| "spSlit.LeoT1.108R.fits.gz\n", | |
| "spSlit.LeoT1.109B.fits.gz\n", | |
| "spSlit.LeoT1.109R.fits.gz\n", | |
| "spSlit.LeoT1.110B.fits.gz\n", | |
| "spSlit.LeoT1.110R.fits.gz\n", | |
| "spSlit.LeoT1.111B.fits.gz\n", | |
| "spSlit.LeoT1.111R.fits.gz\n", | |
| "spSlit.LeoT1.112B.fits.gz\n", | |
| "spSlit.LeoT1.112R.fits.gz\n", | |
| "spSlit.LeoT1.113B.fits.gz\n", | |
| "spSlit.LeoT1.113R.fits.gz\n", | |
| "spSlit.LeoT1.114B.fits.gz\n", | |
| "spSlit.LeoT1.114R.fits.gz\n", | |
| "spSlit.LeoT1.115B.fits.gz\n", | |
| "spSlit.LeoT1.115R.fits.gz\n", | |
| "spSlit.LeoT1.116B.fits.gz\n", | |
| "spSlit.LeoT1.116R.fits.gz\n", | |
| "spSlit.LeoT1.117B.fits.gz\n", | |
| "spSlit.LeoT1.117R.fits.gz\n", | |
| "spec1d.LeoT1.000.s67782280741880h.fits.gz\n", | |
| "spec1d.LeoT1.001.s67735028630104h.fits.gz\n", | |
| "spec1d.LeoT1.002.s67782280806769h.fits.gz\n", | |
| "spec1d.LeoT1.003.s67782280742003h.fits.gz\n", | |
| "spec1d.LeoT1.004.s67782280742000h.fits.gz\n", | |
| "spec1d.LeoT1.005.s67782280742008h.fits.gz\n", | |
| "spec1d.LeoT1.006.s67782280741936h.fits.gz\n", | |
| "spec1d.LeoT1.007.s67782280741158h.fits.gz\n", | |
| "spec1d.LeoT1.008.s67782280741964h.fits.gz\n", | |
| "spec1d.LeoT1.009.s67782280742004h.fits.gz\n", | |
| "spec1d.LeoT1.010.s67782280741218h.fits.gz\n", | |
| "spec1d.LeoT1.010.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.011.s67782280741842h.fits.gz\n", | |
| "spec1d.LeoT1.012.s67782280741115h.fits.gz\n", | |
| "spec1d.LeoT1.013.s67782280741213h.fits.gz\n", | |
| "spec1d.LeoT1.014.s67782280741856h.fits.gz\n", | |
| "spec1d.LeoT1.015.s67782280741815h.fits.gz\n", | |
| "spec1d.LeoT1.016.s67782280741884h.fits.gz\n", | |
| "spec1d.LeoT1.017.s67782280741914h.fits.gz\n", | |
| "spec1d.LeoT1.017.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.017.serendip2.fits.gz\n", | |
| "spec1d.LeoT1.018.s67782280741835.fits.gz\n", | |
| "spec1d.LeoT1.019.s67782280741321.fits.gz\n", | |
| "spec1d.LeoT1.020.s67782280741763.fits.gz\n", | |
| "spec1d.LeoT1.022.s67782280806771.fits.gz\n", | |
| "spec1d.LeoT1.023.s67782280806780.fits.gz\n", | |
| "spec1d.LeoT1.024.s67782280806784.fits.gz\n", | |
| "spec1d.LeoT1.025.s67782280806827.fits.gz\n", | |
| "spec1d.LeoT1.026.s67782280806844.fits.gz\n", | |
| "spec1d.LeoT1.027.s67782280807271.fits.gz\n", | |
| "spec1d.LeoT1.028.s67735028629971.fits.gz\n", | |
| "spec1d.LeoT1.029.s67735028630019.fits.gz\n", | |
| "spec1d.LeoT1.030.s67735028630021.fits.gz\n", | |
| "spec1d.LeoT1.031.s67735028630026.fits.gz\n", | |
| "spec1d.LeoT1.032.s67735028630050.fits.gz\n", | |
| "spec1d.LeoT1.033.s67735028630051.fits.gz\n", | |
| "spec1d.LeoT1.034.s67782280741681.fits.gz\n", | |
| "spec1d.LeoT1.035.s67782280741743.fits.gz\n", | |
| "spec1d.LeoT1.036.s67782280742025.fits.gz\n", | |
| "spec1d.LeoT1.037.s67782280806816.fits.gz\n", | |
| "spec1d.LeoT1.039.s67782280806842.fits.gz\n", | |
| "spec1d.LeoT1.040.s67782280806868.fits.gz\n", | |
| "spec1d.LeoT1.041.s67782280807273.fits.gz\n", | |
| "spec1d.LeoT1.042.s67735028564964.fits.gz\n", | |
| "spec1d.LeoT1.043.hst230.fits.gz\n", | |
| "spec1d.LeoT1.044.s67782280741759.fits.gz\n", | |
| "spec1d.LeoT1.045.s67735028629954.fits.gz\n", | |
| "spec1d.LeoT1.046.s67735028629997.fits.gz\n", | |
| "spec1d.LeoT1.047.s67735028630460.fits.gz\n", | |
| "spec1d.LeoT1.048.s67782280806696.fits.gz\n", | |
| "spec1d.LeoT1.049.s67782280806857.fits.gz\n", | |
| "spec1d.LeoT1.049.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.050.s67735028564345.fits.gz\n", | |
| "spec1d.LeoT1.050.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.051.s67735028564736.fits.gz\n", | |
| "spec1d.LeoT1.052.s67735028564930.fits.gz\n", | |
| "spec1d.LeoT1.053.s67735028564331.fits.gz\n", | |
| "spec1d.LeoT1.054.s67735028564340.fits.gz\n", | |
| "spec1d.LeoT1.055.s67735028564348.fits.gz\n", | |
| "spec1d.LeoT1.056.s67735028564654.fits.gz\n", | |
| "spec1d.LeoT1.057.s67735028564661.fits.gz\n", | |
| "spec1d.LeoT1.058.s67735028564669.fits.gz\n", | |
| "spec1d.LeoT1.059.s67735028564682.fits.gz\n", | |
| "spec1d.LeoT1.060.s67735028629955.fits.gz\n", | |
| "spec1d.LeoT1.061.s67735028629959.fits.gz\n", | |
| "spec1d.LeoT1.062.s67735028629960.fits.gz\n", | |
| "spec1d.LeoT1.063.s67735028629962.fits.gz\n", | |
| "spec1d.LeoT1.064.s67782280806433.fits.gz\n", | |
| "spec1d.LeoT1.065.s67782280806455.fits.gz\n", | |
| "spec1d.LeoT1.065.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.066.s67735028564091.fits.gz\n", | |
| "spec1d.LeoT1.067.s67782280806957.fits.gz\n", | |
| "spec1d.LeoT1.068.s67782280806964.fits.gz\n", | |
| "spec1d.LeoT1.069.s67782280806965.fits.gz\n", | |
| "spec1d.LeoT1.070.s67782280807000.fits.gz\n", | |
| "spec1d.LeoT1.070.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.071.s67782280807282.fits.gz\n", | |
| "spec1d.LeoT1.072.s67782280807300.fits.gz\n", | |
| "spec1d.LeoT1.073.s67782280807306.fits.gz\n", | |
| "spec1d.LeoT1.074.s67782280807314.fits.gz\n", | |
| "spec1d.LeoT1.075.s67782280807334.fits.gz\n", | |
| "spec1d.LeoT1.076.s67782280807339.fits.gz\n", | |
| "spec1d.LeoT1.076.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.077.s67782280807346.fits.gz\n", | |
| "spec1d.LeoT1.078.s67735028564083.fits.gz\n", | |
| "spec1d.LeoT1.078.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.079.s67735028564084.fits.gz\n", | |
| "spec1d.LeoT1.079.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.080.s67735028564252.fits.gz\n", | |
| "spec1d.LeoT1.081.s67735028564326.fits.gz\n", | |
| "spec1d.LeoT1.082.s67735028564328.fits.gz\n", | |
| "spec1d.LeoT1.083.s67735028564591.fits.gz\n", | |
| "spec1d.LeoT1.084.s67735028564603.fits.gz\n", | |
| "spec1d.LeoT1.085.s67735028564616.fits.gz\n", | |
| "spec1d.LeoT1.086.s67735028564651.fits.gz\n", | |
| "spec1d.LeoT1.087.s67735028564674.fits.gz\n", | |
| "spec1d.LeoT1.088.s67735028564910.fits.gz\n", | |
| "spec1d.LeoT1.089.s67735028564925.fits.gz\n", | |
| "spec1d.LeoT1.089.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.090.s67782280806447.fits.gz\n", | |
| "spec1d.LeoT1.090.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.091.s67782280806938.fits.gz\n", | |
| "spec1d.LeoT1.091.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.092.s67782280806951.fits.gz\n", | |
| "spec1d.LeoT1.093.s67782280807004.fits.gz\n", | |
| "spec1d.LeoT1.095.s67735028564834.fits.gz\n", | |
| "spec1d.LeoT1.096.s67735028564835.fits.gz\n", | |
| "spec1d.LeoT1.096.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.096.serendip2.fits.gz\n", | |
| "spec1d.LeoT1.096.serendip3.fits.gz\n", | |
| "spec1d.LeoT1.097.s67735028564839.fits.gz\n", | |
| "spec1d.LeoT1.098.s67735028564857.fits.gz\n", | |
| "spec1d.LeoT1.099.s67735028564047.fits.gz\n", | |
| "spec1d.LeoT1.099.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.100.s67735028564310.fits.gz\n", | |
| "spec1d.LeoT1.101.s67735028564312.fits.gz\n", | |
| "spec1d.LeoT1.102.s67735028564315.fits.gz\n", | |
| "spec1d.LeoT1.102.serendip1.fits.gz\n", | |
| "spec1d.LeoT1.103.s67735028564502.fits.gz\n", | |
| "spec1d.LeoT1.104.s67735028564507.fits.gz\n", | |
| "spec1d.LeoT1.105.s67735028564551.fits.gz\n", | |
| "spec1d.LeoT1.106.s67735028564568.fits.gz\n", | |
| "spec1d.LeoT1.107.s67735028564599.fits.gz\n", | |
| "spec1d.LeoT1.108.s67735028564639.fits.gz\n", | |
| "spec1d.LeoT1.109.s67735028564657.fits.gz\n", | |
| "spec1d.LeoT1.110.s67735028629668.fits.gz\n", | |
| "spec1d.LeoT1.111.s67782280806547.fits.gz\n", | |
| "spec1d.LeoT1.112.s67782280806555.fits.gz\n", | |
| "spec1d.LeoT1.113.s67735028564217.fits.gz\n", | |
| "spec1d.LeoT1.114.s67735028564082.fits.gz\n", | |
| "spec1d.LeoT1.115.s67735028564198.fits.gz\n", | |
| "spec1d.LeoT1.116.s67782280806558.fits.gz\n", | |
| "spec1d.LeoT1.117.s67735028564202.fits.gz\n", | |
| "zspec1d.LeoT1.000.s67782280741880h.fits.gz\n", | |
| "zspec1d.LeoT1.001.s67735028630104h.fits.gz\n", | |
| "zspec1d.LeoT1.002.s67782280806769h.fits.gz\n", | |
| "zspec1d.LeoT1.003.s67782280742003h.fits.gz\n", | |
| "zspec1d.LeoT1.004.s67782280742000h.fits.gz\n", | |
| "zspec1d.LeoT1.005.s67782280742008h.fits.gz\n", | |
| "zspec1d.LeoT1.006.s67782280741936h.fits.gz\n", | |
| "zspec1d.LeoT1.007.s67782280741158h.fits.gz\n", | |
| "zspec1d.LeoT1.008.s67782280741964h.fits.gz\n", | |
| "zspec1d.LeoT1.009.s67782280742004h.fits.gz\n", | |
| "zspec1d.LeoT1.010.s67782280741218h.fits.gz\n", | |
| "zspec1d.LeoT1.010.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.011.s67782280741842h.fits.gz\n", | |
| "zspec1d.LeoT1.012.s67782280741115h.fits.gz\n", | |
| "zspec1d.LeoT1.013.s67782280741213h.fits.gz\n", | |
| "zspec1d.LeoT1.014.s67782280741856h.fits.gz\n", | |
| "zspec1d.LeoT1.015.s67782280741815h.fits.gz\n", | |
| "zspec1d.LeoT1.016.s67782280741884h.fits.gz\n", | |
| "zspec1d.LeoT1.017.s67782280741914h.fits.gz\n", | |
| "zspec1d.LeoT1.017.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.017.serendip2.fits.gz\n", | |
| "zspec1d.LeoT1.018.s67782280741835.fits.gz\n", | |
| "zspec1d.LeoT1.019.s67782280741321.fits.gz\n", | |
| "zspec1d.LeoT1.020.s67782280741763.fits.gz\n", | |
| "zspec1d.LeoT1.022.s67782280806771.fits.gz\n", | |
| "zspec1d.LeoT1.023.s67782280806780.fits.gz\n", | |
| "zspec1d.LeoT1.024.s67782280806784.fits.gz\n", | |
| "zspec1d.LeoT1.025.s67782280806827.fits.gz\n", | |
| "zspec1d.LeoT1.026.s67782280806844.fits.gz\n", | |
| "zspec1d.LeoT1.027.s67782280807271.fits.gz\n", | |
| "zspec1d.LeoT1.028.s67735028629971.fits.gz\n", | |
| "zspec1d.LeoT1.029.s67735028630019.fits.gz\n", | |
| "zspec1d.LeoT1.030.s67735028630021.fits.gz\n", | |
| "zspec1d.LeoT1.031.s67735028630026.fits.gz\n", | |
| "zspec1d.LeoT1.032.s67735028630050.fits.gz\n", | |
| "zspec1d.LeoT1.033.s67735028630051.fits.gz\n", | |
| "zspec1d.LeoT1.034.s67782280741681.fits.gz\n", | |
| "zspec1d.LeoT1.035.s67782280741743.fits.gz\n", | |
| "zspec1d.LeoT1.036.s67782280742025.fits.gz\n", | |
| "zspec1d.LeoT1.037.s67782280806816.fits.gz\n", | |
| "zspec1d.LeoT1.039.s67782280806842.fits.gz\n", | |
| "zspec1d.LeoT1.040.s67782280806868.fits.gz\n", | |
| "zspec1d.LeoT1.041.s67782280807273.fits.gz\n", | |
| "zspec1d.LeoT1.042.s67735028564964.fits.gz\n", | |
| "zspec1d.LeoT1.043.hst230.fits.gz\n", | |
| "zspec1d.LeoT1.044.s67782280741759.fits.gz\n", | |
| "zspec1d.LeoT1.045.s67735028629954.fits.gz\n", | |
| "zspec1d.LeoT1.046.s67735028629997.fits.gz\n", | |
| "zspec1d.LeoT1.047.s67735028630460.fits.gz\n", | |
| "zspec1d.LeoT1.048.s67782280806696.fits.gz\n", | |
| "zspec1d.LeoT1.049.s67782280806857.fits.gz\n", | |
| "zspec1d.LeoT1.049.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.050.s67735028564345.fits.gz\n", | |
| "zspec1d.LeoT1.050.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.051.s67735028564736.fits.gz\n", | |
| "zspec1d.LeoT1.052.s67735028564930.fits.gz\n", | |
| "zspec1d.LeoT1.053.s67735028564331.fits.gz\n", | |
| "zspec1d.LeoT1.054.s67735028564340.fits.gz\n", | |
| "zspec1d.LeoT1.055.s67735028564348.fits.gz\n", | |
| "zspec1d.LeoT1.056.s67735028564654.fits.gz\n", | |
| "zspec1d.LeoT1.057.s67735028564661.fits.gz\n", | |
| "zspec1d.LeoT1.058.s67735028564669.fits.gz\n", | |
| "zspec1d.LeoT1.059.s67735028564682.fits.gz\n", | |
| "zspec1d.LeoT1.060.s67735028629955.fits.gz\n", | |
| "zspec1d.LeoT1.061.s67735028629959.fits.gz\n", | |
| "zspec1d.LeoT1.062.s67735028629960.fits.gz\n", | |
| "zspec1d.LeoT1.063.s67735028629962.fits.gz\n", | |
| "zspec1d.LeoT1.064.s67782280806433.fits.gz\n", | |
| "zspec1d.LeoT1.065.s67782280806455.fits.gz\n", | |
| "zspec1d.LeoT1.065.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.066.s67735028564091.fits.gz\n", | |
| "zspec1d.LeoT1.067.s67782280806957.fits.gz\n", | |
| "zspec1d.LeoT1.068.s67782280806964.fits.gz\n", | |
| "zspec1d.LeoT1.069.s67782280806965.fits.gz\n", | |
| "zspec1d.LeoT1.070.s67782280807000.fits.gz\n", | |
| "zspec1d.LeoT1.070.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.071.s67782280807282.fits.gz\n", | |
| "zspec1d.LeoT1.072.s67782280807300.fits.gz\n", | |
| "zspec1d.LeoT1.073.s67782280807306.fits.gz\n", | |
| "zspec1d.LeoT1.074.s67782280807314.fits.gz\n", | |
| "zspec1d.LeoT1.075.s67782280807334.fits.gz\n", | |
| "zspec1d.LeoT1.076.s67782280807339.fits.gz\n", | |
| "zspec1d.LeoT1.076.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.077.s67782280807346.fits.gz\n", | |
| "zspec1d.LeoT1.078.s67735028564083.fits.gz\n", | |
| "zspec1d.LeoT1.078.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.079.s67735028564084.fits.gz\n", | |
| "zspec1d.LeoT1.079.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.080.s67735028564252.fits.gz\n", | |
| "zspec1d.LeoT1.081.s67735028564326.fits.gz\n", | |
| "zspec1d.LeoT1.082.s67735028564328.fits.gz\n", | |
| "zspec1d.LeoT1.083.s67735028564591.fits.gz\n", | |
| "zspec1d.LeoT1.084.s67735028564603.fits.gz\n", | |
| "zspec1d.LeoT1.085.s67735028564616.fits.gz\n", | |
| "zspec1d.LeoT1.086.s67735028564651.fits.gz\n", | |
| "zspec1d.LeoT1.087.s67735028564674.fits.gz\n", | |
| "zspec1d.LeoT1.088.s67735028564910.fits.gz\n", | |
| "zspec1d.LeoT1.089.s67735028564925.fits.gz\n", | |
| "zspec1d.LeoT1.089.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.090.s67782280806447.fits.gz\n", | |
| "zspec1d.LeoT1.090.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.091.s67782280806938.fits.gz\n", | |
| "zspec1d.LeoT1.091.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.092.s67782280806951.fits.gz\n", | |
| "zspec1d.LeoT1.093.s67782280807004.fits.gz\n", | |
| "zspec1d.LeoT1.095.s67735028564834.fits.gz\n", | |
| "zspec1d.LeoT1.097.s67735028564839.fits.gz\n", | |
| "zspec1d.LeoT1.098.s67735028564857.fits.gz\n", | |
| "zspec1d.LeoT1.099.s67735028564047.fits.gz\n", | |
| "zspec1d.LeoT1.099.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.100.s67735028564310.fits.gz\n", | |
| "zspec1d.LeoT1.101.s67735028564312.fits.gz\n", | |
| "zspec1d.LeoT1.102.s67735028564315.fits.gz\n", | |
| "zspec1d.LeoT1.102.serendip1.fits.gz\n", | |
| "zspec1d.LeoT1.103.s67735028564502.fits.gz\n", | |
| "zspec1d.LeoT1.104.s67735028564507.fits.gz\n", | |
| "zspec1d.LeoT1.105.s67735028564551.fits.gz\n", | |
| "zspec1d.LeoT1.106.s67735028564568.fits.gz\n", | |
| "zspec1d.LeoT1.107.s67735028564599.fits.gz\n", | |
| "zspec1d.LeoT1.108.s67735028564639.fits.gz\n", | |
| "zspec1d.LeoT1.109.s67735028564657.fits.gz\n", | |
| "zspec1d.LeoT1.110.s67735028629668.fits.gz\n", | |
| "zspec1d.LeoT1.111.s67782280806547.fits.gz\n", | |
| "zspec1d.LeoT1.112.s67782280806555.fits.gz\n", | |
| "zspec1d.LeoT1.113.s67735028564217.fits.gz\n", | |
| "zspec1d.LeoT1.114.s67735028564082.fits.gz\n", | |
| "zspec1d.LeoT1.115.s67735028564198.fits.gz\n", | |
| "zspec1d.LeoT1.116.s67782280806558.fits.gz\n", | |
| "zspec1d.LeoT1.117.s67735028564202.fits.gz\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "ls $datadir" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "<ipython-input-6-a698f4fff297>:2: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n", | |
| "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n", | |
| " for fn in tqdm.tqdm_notebook(glob(str(datadir / 'zspec1d.LeoT1.*.fits.gz'))):\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "application/vnd.jupyter.widget-view+json": { | |
| "model_id": "0b60d976429d4561a01096c591380cb2", | |
| "version_major": 2, | |
| "version_minor": 0 | |
| }, | |
| "text/plain": [ | |
| "HBox(children=(FloatProgress(value=0.0, max=129.0), HTML(value='')))" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "zspecs = {}\n", | |
| "for fn in tqdm.tqdm_notebook(glob(str(datadir / 'zspec1d.LeoT1.*.fits.gz'))):\n", | |
| " nm = fn.split('LeoT1.')[-1].replace('.fits.gz', '')\n", | |
| " d = fits.getdata(fn, 1)\n", | |
| " zspecs[nm] = specutils.Spectrum1D(spectral_axis=d[0]['LAMBDA']*u.angstrom, flux=d[0]['SPEC']*u.count,\n", | |
| " uncertainty=nddata.InverseVariance(d[0]['IVAR']))\n", | |
| " for dnm in d.dtype.names:\n", | |
| " if dnm not in ('SPEC', 'LAMBDA', 'IVAR'):\n", | |
| " zspecs[nm].meta[dnm] = d[dnm][0]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "<ipython-input-7-e793a316b3c0>:2: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0\n", | |
| "Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`\n", | |
| " for fn in tqdm.tqdm_notebook(glob(str(datadir / 'slit.LeoT1.*.fits.gz'))):\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "application/vnd.jupyter.widget-view+json": { | |
| "model_id": "7cf4da5eb5d14cdb99424e3435e0ba56", | |
| "version_major": 2, | |
| "version_minor": 0 | |
| }, | |
| "text/plain": [ | |
| "HBox(children=(FloatProgress(value=0.0, max=230.0), HTML(value='')))" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "slits_temp = {}\n", | |
| "for fn in tqdm.tqdm_notebook(glob(str(datadir / 'slit.LeoT1.*.fits.gz'))):\n", | |
| " nm = fn.split('LeoT1.')[-1].replace('.fits.gz', '')\n", | |
| " slits_temp[nm] = fits.getdata(fn, 1)\n", | |
| "\n", | |
| "slits = {}\n", | |
| "for i in range(len(slits_temp)):\n", | |
| " rstr = '{:03}R'.format(i)\n", | |
| " bstr = '{:03}B'.format(i)\n", | |
| " if bstr not in slits_temp and rstr not in slits_temp:\n", | |
| " continue\n", | |
| " slits[i] = (slits_temp[bstr], slits_temp[rstr])\n", | |
| "del slits_temp" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "stemp = fits.open('templates/deimos-021507.fits')[0]\n", | |
| "wl = 10**(stemp.header['COEFF0'] + np.arange(stemp.data.shape[1])*stemp.header['COEFF1'])*u.angstrom\n", | |
| "\n", | |
| "template_specs = {}\n", | |
| "for i, val in enumerate(stemp.data):\n", | |
| " template_specs[stemp.header[f'NAME{i}']] = specutils.Spectrum1D(spectral_axis=wl, flux=val*u.dimensionless_unscaled)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Ipywidgets zspeccer" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "zspec_vals = collections.defaultdict(lambda:'uncategorized')\n", | |
| "spec_comments = collections.defaultdict(lambda:'')\n", | |
| "\n", | |
| "KEY_TO_QUALITY = {\n", | |
| " '0': 'uncategorized',\n", | |
| " '`' : 'bad',\n", | |
| " '1': 'galaxy/other',\n", | |
| " '2' : 'marginal',\n", | |
| " '3' : 'good',\n", | |
| "}\n", | |
| "\n", | |
| "imshow_norm_kwargs = dict(stretch='log', min_percent=5, max_percent=99.)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "<ipython-input-14-fb1d44242235>:58: DeprecationWarning: on_trait_change is deprecated in traitlets 4.1: use observe instead\n", | |
| " dropdown.on_trait_change(update_dropdown, 'value')\n", | |
| "<ipython-input-14-fb1d44242235>:76: DeprecationWarning: on_trait_change is deprecated in traitlets 4.1: use observe instead\n", | |
| " zspec.on_trait_change(update_zspec, 'value')\n", | |
| "<ipython-input-14-fb1d44242235>:81: DeprecationWarning: on_trait_change is deprecated in traitlets 4.1: use observe instead\n", | |
| " comments.on_trait_change(update_comments, 'value')\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "application/vnd.jupyter.widget-view+json": { | |
| "model_id": "daf232af99a64e77af12e9917fa8b974", | |
| "version_major": 2, | |
| "version_minor": 0 | |
| }, | |
| "text/plain": [ | |
| "VBox(children=(HBox(children=(Button(description='<', style=ButtonStyle()), Dropdown(options=('000.s6778228074…" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "application/vnd.jupyter.widget-view+json": { | |
| "model_id": "d2d37a5d52894e46969359929d09623d", | |
| "version_major": 2, | |
| "version_minor": 0 | |
| }, | |
| "text/plain": [ | |
| "Output()" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "<ipython-input-14-fb1d44242235>:151: DeprecationWarning: on_trait_change is deprecated in traitlets 4.1: use observe instead\n", | |
| " widget.on_trait_change(update_fig, 'value')\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "def make_fig(specname, templname, v, output, new_canvas=True):\n", | |
| " if new_canvas:\n", | |
| " fig = plt.Figure(figsize=(15, 10))\n", | |
| " canvas = FigureCanvasAgg(fig)\n", | |
| " else:\n", | |
| " fig = plt.figure(figsize=(15, 10))\n", | |
| " \n", | |
| " (ax1, ax2), (ax3, ax4) = fig.subplots(2, 2)\n", | |
| " \n", | |
| " zline = (v*u.km/u.s/c + 1).decompose().value\n", | |
| " \n", | |
| " spec = zspecs[specname]\n", | |
| " specnum = int(specname.split('.')[0])\n", | |
| " slit = slits[specnum]\n", | |
| " \n", | |
| " if templname is not None:\n", | |
| " tspec = template_specs[templname]\n", | |
| " for ax in [ax1, ax2]:\n", | |
| " ax.cla()\n", | |
| " ax.step(spec.wavelength, spec.flux, lw=1)\n", | |
| " data_yls = ax.get_ylim()\n", | |
| " if templname is None:\n", | |
| " ax.step([]*first(template_specs.values()).wavelength.unit, \n", | |
| " [], alpha=.5, lw=1)\n", | |
| " else:\n", | |
| " ax.step(tspec.wavelength, tspec.flux.value*np.median(spec.flux))\n", | |
| " ax.set_ylim(*data_yls)\n", | |
| " \n", | |
| " snormb = visualization.simple_norm(slit[0]['FLUX'][0], **imshow_norm_kwargs)\n", | |
| " ax3.imshow(slit[0]['FLUX'][0], extent=(slit[0]['LAMBDA0'][0][0], slit[0]['LAMBDA0'][0][-1],0, 50), \n", | |
| " aspect=15, norm=snormb)\n", | |
| " snormr = visualization.simple_norm(slit[1]['FLUX'][0], **imshow_norm_kwargs)\n", | |
| " ax3.imshow(slit[1]['FLUX'][0], extent=(slit[1]['LAMBDA0'][0][0], slit[1]['LAMBDA0'][0][-1],0, 50), \n", | |
| " aspect=15, norm=snormr)\n", | |
| " ax4.imshow(slit[1]['FLUX'][0], extent=(slit[1]['LAMBDA0'][0][0], slit[1]['LAMBDA0'][0][-1],0, 50), \n", | |
| " aspect=2, norm=snormr)\n", | |
| " \n", | |
| " ax1.set_title(specname)\n", | |
| " ax2.set_xlim(cat_lines[0]*zline-20*u.angstrom, cat_lines[-1]*zline+20*u.angstrom)\n", | |
| " ax4.set_xlim(cat_lines[0]*zline-20*u.angstrom, cat_lines[-1]*zline+20*u.angstrom)\n", | |
| " \n", | |
| " msk2 = (ax2.get_xlim()[0]<spec.wavelength.value)&(spec.wavelength.value<ax2.get_xlim()[1])\n", | |
| " ax2.set_ylim(np.min(spec.flux[msk2]), np.max(spec.flux[msk2]))\n", | |
| " for line in cat_lines:\n", | |
| " ax2.axvline(line*zline, c='k', ls=':')\n", | |
| " \n", | |
| " if output is not None:\n", | |
| " with output:\n", | |
| " display.display(fig)\n", | |
| " \n", | |
| " return fig, ax1, ax2, ax3, ax4\n", | |
| "\n", | |
| "\n", | |
| "dropdown = ipywidgets.Dropdown(options=zspecs.keys())\n", | |
| "def update_dropdown(change):\n", | |
| " zspec.value = zspec_vals[dropdown.value]\n", | |
| " comments.value = spec_comments[dropdown.value]\n", | |
| "dropdown.on_trait_change(update_dropdown, 'value')\n", | |
| "\n", | |
| "left = ipywidgets.Button(description='<')\n", | |
| "right = ipywidgets.Button(description='>')\n", | |
| "@left.on_click\n", | |
| "def on_left_clicked(b):\n", | |
| " idx = dropdown.options.index(dropdown.value)\n", | |
| " if idx > 0:\n", | |
| " dropdown.value = dropdown.options[idx-1]\n", | |
| "@right.on_click\n", | |
| "def on_right_clicked(b):\n", | |
| " idx = dropdown.options.index(dropdown.value)\n", | |
| " if idx < len(dropdown.options)-1:\n", | |
| " dropdown.value = dropdown.options[idx+1]\n", | |
| "\n", | |
| "zspec = ipywidgets.Dropdown(options=['uncategorized', 'bad', 'galaxy/other', 'marginal', 'good'], description='zspec:')\n", | |
| "def update_zspec(change):\n", | |
| " zspec_vals[dropdown.value] = zspec.value\n", | |
| "zspec.on_trait_change(update_zspec, 'value')\n", | |
| "\n", | |
| "comments = ipywidgets.Text(description='Comments:')\n", | |
| "def update_comments(change):\n", | |
| " spec_comments[dropdown.value] = comments.value\n", | |
| "comments.on_trait_change(update_comments, 'value')\n", | |
| "\n", | |
| "template = ipywidgets.Dropdown(description='template', options=[None]+list(template_specs.keys()))\n", | |
| "vval = ipywidgets.FloatText(value=35, description='v (km/s)')\n", | |
| "\n", | |
| " \n", | |
| "top = ipywidgets.HBox([left, dropdown, right])\n", | |
| "middle = ipywidgets.HBox([zspec, comments])\n", | |
| "lower = ipywidgets.HBox([template, vval])\n", | |
| "\n", | |
| "ui = ipywidgets.VBox([top, middle, lower])\n", | |
| "\n", | |
| "out = ipywidgets.Output()\n", | |
| " \n", | |
| "d = Event(source=out, watched_events=['keydown'])\n", | |
| "def handle_event(event):\n", | |
| " try:\n", | |
| " if event['key'] in KEY_TO_QUALITY.keys():\n", | |
| " zspec.value = KEY_TO_QUALITY[event['key']]\n", | |
| " elif event['key'] in ('-', '[',','):\n", | |
| " left.click()\n", | |
| " elif event['key'] in ('+', ']','.'):\n", | |
| " right.click()\n", | |
| " except Exception as e:\n", | |
| " comments.value = repr(e)\n", | |
| "d.on_dom_event(handle_event)\n", | |
| "\n", | |
| "display.display(ui, out)\n", | |
| "\n", | |
| "\n", | |
| "fig, ax1, ax2, ax3, ax4 = make_fig(dropdown.value, template.value, vval.value, out)\n", | |
| "def update_fig(change):\n", | |
| " specname = dropdown.value\n", | |
| " templname = template.value\n", | |
| " v = vval.value\n", | |
| " \n", | |
| " zline = (v*u.km/u.s/c + 1).decompose().value\n", | |
| " spec = zspecs[specname]\n", | |
| " if templname is not None:\n", | |
| " tspec = template_specs[templname]\n", | |
| " specnum = int(specname.split('.')[0])\n", | |
| " slit = slits[specnum]\n", | |
| " \n", | |
| " for ax in [ax1, ax2]:\n", | |
| " ax.get_children()[0].set_data(spec.wavelength, spec.flux)\n", | |
| " if templname is not None:\n", | |
| " ax.get_children()[1].set_data(tspec.wavelength, tspec.flux.value*np.median(spec.flux))\n", | |
| " ax.set_ylim(np.min(spec.flux), np.max(spec.flux))\n", | |
| " \n", | |
| " ax3.get_children()[-2].set_array(slit[0]['FLUX'][0])\n", | |
| " ax3.get_children()[-2].set_norm(visualization.simple_norm(slit[0]['FLUX'][0], **imshow_norm_kwargs))\n", | |
| " ax4.get_children()[-2].set_array(slit[1]['FLUX'][0])\n", | |
| " ax4.get_children()[-2].set_norm(visualization.simple_norm(slit[1]['FLUX'][0], **imshow_norm_kwargs))\n", | |
| " \n", | |
| " ax1.set_title(specname)\n", | |
| " ax2.set_xlim(cat_lines[0]*zline-20*u.angstrom, cat_lines[-1]*zline+20*u.angstrom)\n", | |
| " ax4.set_xlim(cat_lines[0]*zline-20*u.angstrom, cat_lines[-1]*zline+20*u.angstrom)\n", | |
| " \n", | |
| " msk2 = (ax2.get_xlim()[0]<spec.wavelength.value)&(spec.wavelength.value<ax2.get_xlim()[1])\n", | |
| " ax2.set_ylim(np.min(spec.flux[msk2]), np.max(spec.flux[msk2]))\n", | |
| " \n", | |
| " with out:\n", | |
| " display.clear_output(True)\n", | |
| " display.display(fig)\n", | |
| " \n", | |
| "def get_current_spec():\n", | |
| " specname = dropdown.value\n", | |
| " return zspecs[specname]\n", | |
| " \n", | |
| "for widget in (dropdown, template, vval):\n", | |
| " widget.on_trait_change(update_fig, 'value')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| }, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "fig, ax = plt.subplots(1, 1)\n", | |
| "ax.imshow(np.random.randn(10, 10))\n", | |
| "p = ax.get_children()[-2]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(defaultdict(<function __main__.<lambda>()>, {}),\n", | |
| " defaultdict(<function __main__.<lambda>()>, {}))" | |
| ] | |
| }, | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "zspec_vals, spec_comments" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Marla requests:\n", | |
| "\n", | |
| "* Fast enough to go fast\n", | |
| "* hit number buttons for zspeccing (ipyevents)\n", | |
| "* 2D slit\n", | |
| "\n", | |
| "* (some quality plots/chi^2 surfaces - understandable interface to Marla)" | |
| ] | |
| } | |
| ], | |
| "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.0" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 4 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment