Created
April 1, 2020 16:49
-
-
Save eteq/d65b62656a593e42fa6f412fa22862a2 to your computer and use it in GitHub Desktop.
This file contains 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