From 94cc65a0e1e79362fdc5a85e6d80d8d0528558a8 Mon Sep 17 00:00:00 2001 From: SunilSimha Date: Thu, 20 May 2021 16:43:40 -0700 Subject: [PATCH 01/30] hacks to get it working for new lris_r --- pypeit/spectrographs/keck_lris.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index e78ad452f7..a8d0d23ea0 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -5,6 +5,7 @@ """ import glob import os +import pdb from IPython import embed @@ -121,9 +122,9 @@ def init_meta(self): self.meta['target'] = dict(ext=0, card='TARGNAME') self.meta['decker'] = dict(ext=0, card='SLITNAME') self.meta['binning'] = dict(card=None, compound=True) - - self.meta['mjd'] = dict(ext=0, card='MJD-OBS') - self.meta['exptime'] = dict(ext=0, card='ELAPTIME') + # TODO: Sunil replaced TELAPSE with TTIME and mJD-OBS with MJD temporarily. Sunil needs to create a new detector class for this stuff. + self.meta['mjd'] = dict(ext=0, card='MJD') + self.meta['exptime'] = dict(ext=0, card='TTIME') self.meta['airmass'] = dict(ext=0, card='AIRMASS') # Extras for config and frametyping self.meta['dichroic'] = dict(ext=0, card='DICHNAME') @@ -155,7 +156,7 @@ def compound_meta(self, headarr, meta_key): return binning elif 'lampstat' in meta_key: idx = int(meta_key[-2:]) - curr_date = time.Time(headarr[0]['MJD-OBS'], format='mjd') + curr_date = time.Time(headarr[0]['MJD'], format='mjd') # Modern -- Assuming the change occurred with the new red detector t_newlamp = time.Time("2014-02-15", format='isot') # LAMPS changed in Header if curr_date > t_newlamp: @@ -837,7 +838,9 @@ def get_detector_par(self, hdu, det): # Allow for post COVID detector issues t2020_1 = time.Time("2020-06-30", format='isot') # First run t2020_2 = time.Time("2020-07-29", format='isot') # Second run - date = time.Time(hdu[0].header['MJD-OBS'], format='mjd') + # Allow for the new detector upgrade + t2021_upgrade = time.Time("2021-04-15", format='isot') + date = time.Time(hdu[0].header['MJD'], format='mjd') if date < t2020_1: pass @@ -847,6 +850,13 @@ def get_detector_par(self, hdu, det): detector_dict2['gain'] = np.atleast_1d([1.26]) detector_dict1['ronoise'] = np.atleast_1d([99.]) detector_dict2['ronoise'] = np.atleast_1d([5.2]) + elif date > t2021_upgrade: #Implicitly assumes 2 amps and the ampmode is HSPLIT,VUP + msgs.warn("We are using LRISr gain/RN values based on Sunil's estimates. Will be updated to WMKO values soon.") + detector_dict1['gain'] = np.atleast_1d([1.71, 1.68]) + detector_dict2['gain'] = np.atleast_1d([1.61, 1.72]) + detector_dict1['ronoise'] = np.atleast_1d([4.42, 4.24]) + detector_dict2['ronoise'] = np.atleast_1d([4.41, 4.68]) + else: # This is the 2020 July 29 run msgs.warn("We are using LRISr gain/RN values based on WMKO estimates.") detector_dict1['gain'] = np.atleast_1d([1.45]) @@ -865,8 +875,11 @@ def get_detector_par(self, hdu, det): if namps == 2 or ((namps==4) & (len(hdu)==3)): # Longslit readout mode is the latter. This is a hack.. detector.numamplifiers = 1 # Long silt mode + # TODO: Change AMPPSIZE to whatever is on the new FITS files for data after the upgrade. if hdu[0].header['AMPPSIZE'] == '[1:1024,1:4096]': idx = 0 if det==1 else 1 # Vid1 for det=1, Vid4 for det=2 + #if idx>0: + # import pdb; pdb.set_trace() detector.gain = np.atleast_1d(detector.gain[idx]) detector.ronoise = np.atleast_1d(detector.ronoise[idx]) else: @@ -1255,7 +1268,6 @@ def lris_read_amp(inp, ext): # parse the DATASEC keyword to determine the size of the science region (unbinned) datasec = header['DATASEC'] xdata1, xdata2, ydata1, ydata2 = np.array(parse.load_sections(datasec, fmt_iraf=False)).flatten() - # grab the components... predata = temp[0:precol, :] # datasec appears to have the x value for the keywords that are zero @@ -1385,8 +1397,8 @@ def get_orig_rawimage(raw_file, debug=False): oscansec_img[:, biascols] = iamp+1 imagecols = np.arange(1024 // xbin) + iamp * 1024 // xbin rawdatasec_img[:,imagecols + namps*(prepix // xbin)] = iamp+1 - - return image, hdul, float(head0['ELAPTIME']), \ + # TODO: I've replaced TELAPSE with TTIME temporarily + return image, hdul, float(head0['TTIME']), \ rawdatasec_img, oscansec_img From 530df60f45770a007c639ef332b456b9260adff2 Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 20 May 2021 18:09:39 -0700 Subject: [PATCH 02/30] flip me --- pypeit/core/wavecal/autoid.py | 3 +++ pypeit/spectrographs/keck_lris.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pypeit/core/wavecal/autoid.py b/pypeit/core/wavecal/autoid.py index 798bb37d4d..30e6442c4d 100644 --- a/pypeit/core/wavecal/autoid.py +++ b/pypeit/core/wavecal/autoid.py @@ -882,6 +882,9 @@ def full_template(spec, par, ok_mask, det, binspectral, nsnippet=2, debug_xcorr= Dict of wavelength calibration solutions """ + #debug_xcorr=True + #debug_reid=True + #debug=True # Load line lists if 'ThAr' in par['lamps']: line_lists_all = waveio.load_line_lists(par['lamps']) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index a8d0d23ea0..c07cf82631 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -417,6 +417,8 @@ def get_rawimage(self, raw_file, det): # Need the exposure time exptime = hdu[self.meta['exptime']['ext']].header[self.meta['exptime']['card']] # Return + #return self.get_detector_par(hdu, det if det is not None else 1), \ + # array.T, hdu, exptime, rawdatasec_img.T, oscansec_img.T return self.get_detector_par(hdu, det if det is not None else 1), \ array.T, hdu, exptime, rawdatasec_img.T, oscansec_img.T @@ -815,7 +817,7 @@ def get_detector_par(self, hdu, det): det=1, dataext=1, specaxis=0, - specflip=False, + specflip=True, # This is for the new LRISr spatflip=False, platescale=0.135, darkcurr=0.0, From a2d42a5293566404c527618385ac0dad054a4b3e Mon Sep 17 00:00:00 2001 From: SunilSimha Date: Sat, 22 May 2021 03:37:17 -0700 Subject: [PATCH 03/30] TELAPSE is better --- pypeit/spectrographs/keck_lris.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index c07cf82631..53dda8ec13 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -124,7 +124,7 @@ def init_meta(self): self.meta['binning'] = dict(card=None, compound=True) # TODO: Sunil replaced TELAPSE with TTIME and mJD-OBS with MJD temporarily. Sunil needs to create a new detector class for this stuff. self.meta['mjd'] = dict(ext=0, card='MJD') - self.meta['exptime'] = dict(ext=0, card='TTIME') + self.meta['exptime'] = dict(ext=0, card='TELAPSE') self.meta['airmass'] = dict(ext=0, card='AIRMASS') # Extras for config and frametyping self.meta['dichroic'] = dict(ext=0, card='DICHNAME') @@ -1400,7 +1400,7 @@ def get_orig_rawimage(raw_file, debug=False): imagecols = np.arange(1024 // xbin) + iamp * 1024 // xbin rawdatasec_img[:,imagecols + namps*(prepix // xbin)] = iamp+1 # TODO: I've replaced TELAPSE with TTIME temporarily - return image, hdul, float(head0['TTIME']), \ + return image, hdul, float(head0['TELAPSE']), \ rawdatasec_img, oscansec_img From b4af70bdf04f54cf03da967d4cd1cfa379d665b0 Mon Sep 17 00:00:00 2001 From: SunilSimha Date: Thu, 20 May 2021 16:43:40 -0700 Subject: [PATCH 04/30] hacks to get it working for new lris_r --- pypeit/spectrographs/keck_lris.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index def7e81751..77abd79e43 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -5,6 +5,7 @@ """ import glob import os +import pdb from IPython import embed @@ -123,9 +124,9 @@ def init_meta(self): self.meta['target'] = dict(ext=0, card='TARGNAME') self.meta['decker'] = dict(ext=0, card='SLITNAME') self.meta['binning'] = dict(card=None, compound=True) - - self.meta['mjd'] = dict(ext=0, card='MJD-OBS') - self.meta['exptime'] = dict(ext=0, card='ELAPTIME') + # TODO: Sunil replaced TELAPSE with TTIME and mJD-OBS with MJD temporarily. Sunil needs to create a new detector class for this stuff. + self.meta['mjd'] = dict(ext=0, card='MJD') + self.meta['exptime'] = dict(ext=0, card='TTIME') self.meta['airmass'] = dict(ext=0, card='AIRMASS') # Extras for config and frametyping self.meta['dichroic'] = dict(ext=0, card='DICHNAME') @@ -158,7 +159,7 @@ def compound_meta(self, headarr, meta_key): return binning elif 'lampstat' in meta_key: idx = int(meta_key[-2:]) - curr_date = time.Time(headarr[0]['MJD-OBS'], format='mjd') + curr_date = time.Time(headarr[0]['MJD'], format='mjd') # Modern -- Assuming the change occurred with the new red detector t_newlamp = time.Time("2014-02-15", format='isot') # LAMPS changed in Header if curr_date > t_newlamp: @@ -851,7 +852,9 @@ def get_detector_par(self, hdu, det): # Allow for post COVID detector issues t2020_1 = time.Time("2020-06-30", format='isot') # First run t2020_2 = time.Time("2020-07-29", format='isot') # Second run - date = time.Time(hdu[0].header['MJD-OBS'], format='mjd') + # Allow for the new detector upgrade + t2021_upgrade = time.Time("2021-04-15", format='isot') + date = time.Time(hdu[0].header['MJD'], format='mjd') if date < t2020_1: pass @@ -861,6 +864,13 @@ def get_detector_par(self, hdu, det): detector_dict2['gain'] = np.atleast_1d([1.26]) detector_dict1['ronoise'] = np.atleast_1d([99.]) detector_dict2['ronoise'] = np.atleast_1d([5.2]) + elif date > t2021_upgrade: #Implicitly assumes 2 amps and the ampmode is HSPLIT,VUP + msgs.warn("We are using LRISr gain/RN values based on Sunil's estimates. Will be updated to WMKO values soon.") + detector_dict1['gain'] = np.atleast_1d([1.71, 1.68]) + detector_dict2['gain'] = np.atleast_1d([1.61, 1.72]) + detector_dict1['ronoise'] = np.atleast_1d([4.42, 4.24]) + detector_dict2['ronoise'] = np.atleast_1d([4.41, 4.68]) + else: # This is the 2020 July 29 run msgs.warn("We are using LRISr gain/RN values based on WMKO estimates.") detector_dict1['gain'] = np.atleast_1d([1.45]) @@ -879,8 +889,11 @@ def get_detector_par(self, hdu, det): if namps == 2 or ((namps==4) & (len(hdu)==3)): # Longslit readout mode is the latter. This is a hack.. detector.numamplifiers = 1 # Long silt mode + # TODO: Change AMPPSIZE to whatever is on the new FITS files for data after the upgrade. if hdu[0].header['AMPPSIZE'] == '[1:1024,1:4096]': idx = 0 if det==1 else 1 # Vid1 for det=1, Vid4 for det=2 + #if idx>0: + # import pdb; pdb.set_trace() detector.gain = np.atleast_1d(detector.gain[idx]) detector.ronoise = np.atleast_1d(detector.ronoise[idx]) else: @@ -1272,7 +1285,6 @@ def lris_read_amp(inp, ext): # parse the DATASEC keyword to determine the size of the science region (unbinned) datasec = header['DATASEC'] xdata1, xdata2, ydata1, ydata2 = np.array(parse.load_sections(datasec, fmt_iraf=False)).flatten() - # grab the components... predata = temp[0:precol, :] # datasec appears to have the x value for the keywords that are zero @@ -1402,8 +1414,8 @@ def get_orig_rawimage(raw_file, debug=False): oscansec_img[:, biascols] = iamp+1 imagecols = np.arange(1024 // xbin) + iamp * 1024 // xbin rawdatasec_img[:,imagecols + namps*(prepix // xbin)] = iamp+1 - - return image, hdul, float(head0['ELAPTIME']), \ + # TODO: I've replaced TELAPSE with TTIME temporarily + return image, hdul, float(head0['TTIME']), \ rawdatasec_img, oscansec_img From f59572f4e30a53221597b08097986c6b507b4729 Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 20 May 2021 18:09:39 -0700 Subject: [PATCH 05/30] flip me --- pypeit/core/wavecal/autoid.py | 3 +++ pypeit/spectrographs/keck_lris.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pypeit/core/wavecal/autoid.py b/pypeit/core/wavecal/autoid.py index 8ac1abb68d..603aa5497d 100644 --- a/pypeit/core/wavecal/autoid.py +++ b/pypeit/core/wavecal/autoid.py @@ -882,6 +882,9 @@ def full_template(spec, par, ok_mask, det, binspectral, nsnippet=2, debug_xcorr= Dict of wavelength calibration solutions """ + #debug_xcorr=True + #debug_reid=True + #debug=True # Load line lists if 'ThAr' in par['lamps']: line_lists_all = waveio.load_line_lists(par['lamps']) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 77abd79e43..b3562cbb4b 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -431,6 +431,8 @@ def get_rawimage(self, raw_file, det): # Need the exposure time exptime = hdu[self.meta['exptime']['ext']].header[self.meta['exptime']['card']] # Return + #return self.get_detector_par(hdu, det if det is not None else 1), \ + # array.T, hdu, exptime, rawdatasec_img.T, oscansec_img.T return self.get_detector_par(hdu, det if det is not None else 1), \ array.T, hdu, exptime, rawdatasec_img.T, oscansec_img.T @@ -829,7 +831,7 @@ def get_detector_par(self, hdu, det): det=1, dataext=1, specaxis=0, - specflip=False, + specflip=True, # This is for the new LRISr spatflip=False, platescale=0.135, darkcurr=0.0, From f06d33c96f561a028da2459b7ed126f384591249 Mon Sep 17 00:00:00 2001 From: SunilSimha Date: Sat, 22 May 2021 03:37:17 -0700 Subject: [PATCH 06/30] TELAPSE is better --- pypeit/spectrographs/keck_lris.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index b3562cbb4b..40045cbe81 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -126,7 +126,7 @@ def init_meta(self): self.meta['binning'] = dict(card=None, compound=True) # TODO: Sunil replaced TELAPSE with TTIME and mJD-OBS with MJD temporarily. Sunil needs to create a new detector class for this stuff. self.meta['mjd'] = dict(ext=0, card='MJD') - self.meta['exptime'] = dict(ext=0, card='TTIME') + self.meta['exptime'] = dict(ext=0, card='TELAPSE') self.meta['airmass'] = dict(ext=0, card='AIRMASS') # Extras for config and frametyping self.meta['dichroic'] = dict(ext=0, card='DICHNAME') @@ -1417,7 +1417,7 @@ def get_orig_rawimage(raw_file, debug=False): imagecols = np.arange(1024 // xbin) + iamp * 1024 // xbin rawdatasec_img[:,imagecols + namps*(prepix // xbin)] = iamp+1 # TODO: I've replaced TELAPSE with TTIME temporarily - return image, hdul, float(head0['TTIME']), \ + return image, hdul, float(head0['TELAPSE']), \ rawdatasec_img, oscansec_img From ebe66fc0e617102e7798e11f12e5206242f1a609 Mon Sep 17 00:00:00 2001 From: profxj Date: Mon, 4 Oct 2021 15:52:22 -0700 Subject: [PATCH 07/30] flats and a new class --- pypeit/spectrographs/keck_lris.py | 89 +++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 4 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index fbf0fb2913..1626074a98 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -237,8 +237,11 @@ def check_frame_type(self, ftype, fitstbl, exprng=None): if ftype == 'bias': return good_exp & self.lamps(fitstbl, 'off') & (fitstbl['hatch'] == 'closed') if ftype in ['pixelflat', 'trace', 'illumflat']: + # Allow for dome or internal + good_dome = self.lamps(fitstbl, 'dome') & (fitstbl['hatch'] == 'open') + good_internal = self.lamps(fitstbl, 'halogen') & (fitstbl['hatch'] == 'closed') # Flats and trace frames are typed together - return good_exp & self.lamps(fitstbl, 'dome') & (fitstbl['hatch'] == 'open') + return good_exp & (good_dome + good_internal) if ftype in ['pinhole', 'dark']: # Don't type pinhole or dark frames return np.zeros(len(fitstbl), dtype=bool) @@ -271,17 +274,22 @@ def lamps(self, fitstbl, status): # Check if all are off return np.all(np.array([ (fitstbl[k] == 'off') | (fitstbl[k] == 'None') for k in fitstbl.keys() if 'lampstat' in k]), axis=0) - if status == 'arcs': + elif status == 'arcs': # Check if any arc lamps are on arc_lamp_stat = [ 'lampstat{0:02d}'.format(i) for i in range(1,9) ] return np.any(np.array([ fitstbl[k] == 'on' for k in fitstbl.keys() if k in arc_lamp_stat]), axis=0) - if status == 'dome': + elif status == 'dome': # Check if any dome lamps are on # Warning 9, 10 are FEARGON and DEUTERI dome_lamp_stat = [ 'lampstat{0:02d}'.format(i) for i in range(9,13) ] return np.any(np.array([ fitstbl[k] == 'on' for k in fitstbl.keys() if k in dome_lamp_stat]), axis=0) + elif status == 'halogen': + return fitstbl['lampstat12'] == 'on' + else: + msgs.error(f"Bad status option! {status}") + raise ValueError('No implementation for status = {0}'.format(status)) def get_rawimage(self, raw_file, det): @@ -830,7 +838,7 @@ class KeckLRISRSpectrograph(KeckLRISSpectrograph): name = 'keck_lris_red' camera = 'LRISr' supported = True - comment = 'Red camera; see :doc:`lris`' + comment = 'Red camera; LBNL detector, 2kx4k; see :doc:`lris`' def get_detector_par(self, det, hdu=None): """ @@ -1110,6 +1118,79 @@ def bpm(self, filename, det, shape=None, msbias=None): return bpm_img + +class KeckLRISRMark4Spectrograph(KeckLRISRSpectrograph): + """ + Child to handle the original LRISr detector (pre 01 JUL 2009) + """ + ndet = 1 + name = 'keck_lris_red_mark4' + camera = 'LRISr' + supported = True + comment = 'New Mark4 detector, circa Spring 2021' + + + def get_detector_par(self, det, hdu=None): + """ + Return metadata for the selected detector. + + Args: + det (:obj:`int`): + 1-indexed detector number. + hdu (`astropy.io.fits.HDUList`_, optional): + The open fits file with the raw image of interest. If not + provided, frame-dependent parameters are set to a default. + + Returns: + :class:`~pypeit.images.detector_container.DetectorContainer`: + Object with the detector metadata. + """ + # Binning + binning = '1,1' if hdu is None else self.get_meta_value(self.get_headarr(hdu), 'binning') + + # Detector 1 + detector_dict1 = dict( + binning=binning, + det=1, + dataext=1, + specaxis=0, + specflip=False, + spatflip=False, + platescale=0.135, + darkcurr=0.0, + saturation=65535., + nonlinear=0.76, + mincounts=-1e10, + numamplifiers=2, # These are defaults but can modify below + gain=np.atleast_1d([1.71, 1.61]), + ronoise=np.atleast_1d([4.42, 4.41]), + ) + + if hdu is None: + return detector + + # Deal with number of amps + namps = hdu[0].header['NUMAMPS'] + # The website does not give values for single amp per detector so we take the mean + # of the values provided + if namps == 2: + pass + elif namps == 4: + msgs.warn("We are using LRISr gain/RN values based on Sunil's estimates. Will be updated to WMKO values soon.") + msgs.warn("CONFIRM THE FOLLOWING!!") + detector_dict1['gain'] = np.atleast_1d([1.71, 1.68, 1.61, 1.72]) + detector_dict1['ronoise'] = np.atleast_1d([4.42, 4.24, 4.41, 4.68]) + embed(header='1173 of keck_lris') + else: + msgs.error("Did not see this namps coming..") + + # Instantiate + detector = detector_container.DetectorContainer(**detector_dict1) + + # Return + return detector + + class KeckLRISROrigSpectrograph(KeckLRISRSpectrograph): """ Child to handle the original LRISr detector (pre 01 JUL 2009) From f8c2238ad7a17adbad6ad21f7a092e3a12d2d44a Mon Sep 17 00:00:00 2001 From: profxj Date: Mon, 4 Oct 2021 17:21:46 -0700 Subject: [PATCH 08/30] notebook --- doc/nb/LRIS_red_mark4.ipynb | 430 ++++++++++++++++++++++++++++++ pypeit/spectrographs/keck_lris.py | 65 ++++- 2 files changed, 482 insertions(+), 13 deletions(-) create mode 100644 doc/nb/LRIS_red_mark4.ipynb diff --git a/doc/nb/LRIS_red_mark4.ipynb b/doc/nb/LRIS_red_mark4.ipynb new file mode 100644 index 0000000000..311d3d2c43 --- /dev/null +++ b/doc/nb/LRIS_red_mark4.ipynb @@ -0,0 +1,430 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d7a65b56", + "metadata": {}, + "source": [ + "# New LRISr Mark4 detector" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bee10ff6", + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "import os\n", + "import numpy as np\n", + "\n", + "from astropy.io import fits\n", + "\n", + "from pypeit.core import parse\n", + "from pypeit.display import display" + ] + }, + { + "cell_type": "markdown", + "id": "9d3b618d", + "metadata": {}, + "source": [ + "# Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6f06c9fa", + "metadata": {}, + "outputs": [], + "source": [ + "dpath = '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0a7b746a", + "metadata": {}, + "outputs": [], + "source": [ + "dfile = os.path.join(dpath, 'r211004_00003.fits')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5a77f1dd", + "metadata": {}, + "outputs": [], + "source": [ + "hdul = fits.open(dfile)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "5c3c0018", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Filename: /scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00003.fits\n", + "No. Name Ver Type Cards Dimensions Format\n", + " 0 PRIMARY 1 PrimaryHDU 344 (4234, 4248) int16 (rescales to uint16) \n", + " 1 Exposure Events 1 TableHDU 17 3R x 2C [A26, A80] \n" + ] + } + ], + "source": [ + "hdul.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "275734fc", + "metadata": {}, + "outputs": [], + "source": [ + "raw_data = hdul[0].data.astype(float)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "6566c288", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(4248, 4234)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "raw_data.shape" + ] + }, + { + "cell_type": "markdown", + "id": "f05260b5", + "metadata": {}, + "source": [ + "# Header info" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "3312ad31", + "metadata": {}, + "outputs": [], + "source": [ + "head0 = hdul[0].header" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3fbcfcf2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[8:2064,1:2064]\n", + "[4227:2171,1:2064]\n", + "[8:2064,4248:2185]\n", + "[4227:2171,4248:2185]\n" + ] + } + ], + "source": [ + "print(head0['DSEC1'])\n", + "print(head0['DSEC2'])\n", + "print(head0['DSEC3'])\n", + "print(head0['DSEC4'])" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "511dc84c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'[8:2064,4248:2185]'" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "head0['DSEC3']" + ] + }, + { + "cell_type": "markdown", + "id": "e6a69401", + "metadata": {}, + "source": [ + "# Extract me" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "f3c472bb", + "metadata": {}, + "outputs": [], + "source": [ + "final_img = np.zeros((2064*2, 2057*2))" + ] + }, + { + "cell_type": "markdown", + "id": "e1e90996", + "metadata": {}, + "source": [ + "## Amp L1, aka AMPID3, aka readout sequence 2" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "2503239c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[4247, 2185], [7, 2064]]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parse.load_sections(head0['DSEC3'], fmt_iraf=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "d2b4b2de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(slice(7, 2064, None), slice(4247, 2183, -1))" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slice3 = parse.sec2slice(head0['DSEC3'], one_indexed=True, include_end=True)\n", + "slice3" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "23f1ace1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(slice(4247, 2183, -1), slice(7, 2064, None))" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slice3b = (slice3[1], slice3[0])\n", + "slice3b" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "2df38e18", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2064, 2057)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "amp_l1 = raw_data[slice3b]\n", + "amp_l1.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "12ed8047", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "display.show_image(amp_l1)" + ] + }, + { + "cell_type": "markdown", + "id": "a1464d38", + "metadata": {}, + "source": [ + "## Amp L2" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "516f5797", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(slice(4226, 2169, -1), slice(0, 2064, None))" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slice2 = parse.sec2slice(head0['DSEC2'], one_indexed=True, include_end=True)\n", + "slice2" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "79c7ea4b", + "metadata": {}, + "outputs": [], + "source": [ + "slice2b = (slice2[1], slice2[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "464ce6b9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2064, 2057)" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "amp_l2 = raw_data[slice2b]\n", + "amp_l2.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "3b7e13c1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "display.show_image(amp_l2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "02152dac", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 1626074a98..2bcd6f47bc 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -1117,8 +1117,6 @@ def bpm(self, filename, det, shape=None, msbias=None): return bpm_img - - class KeckLRISRMark4Spectrograph(KeckLRISRSpectrograph): """ Child to handle the original LRISr detector (pre 01 JUL 2009) @@ -1152,35 +1150,34 @@ def get_detector_par(self, det, hdu=None): detector_dict1 = dict( binning=binning, det=1, - dataext=1, + dataext=0, specaxis=0, - specflip=False, + specflip=True, spatflip=False, - platescale=0.135, + platescale=0.123, # From the web page darkcurr=0.0, saturation=65535., nonlinear=0.76, mincounts=-1e10, numamplifiers=2, # These are defaults but can modify below gain=np.atleast_1d([1.71, 1.61]), - ronoise=np.atleast_1d([4.42, 4.41]), + ronoise=np.atleast_1d([3.64, 3.45]), ) if hdu is None: - return detector + return detector_container.DetectorContainer(**detector_dict1) # Deal with number of amps - namps = hdu[0].header['NUMAMPS'] + namps = hdu[0].header['NVIDINP'] + # The website does not give values for single amp per detector so we take the mean # of the values provided if namps == 2: pass elif namps == 4: - msgs.warn("We are using LRISr gain/RN values based on Sunil's estimates. Will be updated to WMKO values soon.") - msgs.warn("CONFIRM THE FOLLOWING!!") - detector_dict1['gain'] = np.atleast_1d([1.71, 1.68, 1.61, 1.72]) - detector_dict1['ronoise'] = np.atleast_1d([4.42, 4.24, 4.41, 4.68]) - embed(header='1173 of keck_lris') + # From the web page on 2021-10-04 (L1, L2, L3, L4) + detector_dict1['gain'] = np.atleast_1d([1.71, 1.64, 1.61, 1.67]) + detector_dict1['ronoise'] = np.atleast_1d([3.64, 3.45, 3.65, 3.52]) else: msgs.error("Did not see this namps coming..") @@ -1190,6 +1187,48 @@ def get_detector_par(self, det, hdu=None): # Return return detector + def get_rawimage(self, raw_file, det): + """ + Read raw images and generate a few other bits and pieces + that are key for image processing. + + Over-ride standard get_rawimage() for LRIS + + Parameters + ---------- + raw_file : :obj:`str` + File to read + det : :obj:`int` + 1-indexed detector to read + + Returns + ------- + detector_par : :class:`pypeit.images.detector_container.DetectorContainer` + Detector metadata parameters. + raw_img : `numpy.ndarray`_ + Raw image for this detector. + hdu : `astropy.io.fits.HDUList`_ + Opened fits file + exptime : :obj:`float` + Exposure time read from the file header + rawdatasec_img : `numpy.ndarray`_ + Data (Science) section of the detector as provided by setting the + (1-indexed) number of the amplifier used to read each detector + pixel. Pixels unassociated with any amplifier are set to 0. + oscansec_img : `numpy.ndarray`_ + Overscan section of the detector as provided by setting the + (1-indexed) number of the amplifier used to read each detector + pixel. Pixels unassociated with any amplifier are set to 0. + """ + # Image info + hdul = fits.open(raw_file) + embed(header='1226 of keck_lris') + image, hdul, elaptime, rawdatasec_img, oscansec_img = get_orig_rawimage(raw_file) + # Detector + detector_par = self.get_detector_par(det, hdu=hdul) + # Return + return detector_par, image, hdul, elaptime, rawdatasec_img, oscansec_img + class KeckLRISROrigSpectrograph(KeckLRISRSpectrograph): """ From d0759542a957359067306a3c0feb13e758db769c Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 14 Oct 2021 15:58:02 -0700 Subject: [PATCH 09/30] progress! --- doc/nb/LRIS_red_mark4.ipynb | 275 ++++++++++++++++++++++++------ pypeit/spectrographs/keck_lris.py | 29 ++-- 2 files changed, 237 insertions(+), 67 deletions(-) diff --git a/doc/nb/LRIS_red_mark4.ipynb b/doc/nb/LRIS_red_mark4.ipynb index 311d3d2c43..78c79e9b17 100644 --- a/doc/nb/LRIS_red_mark4.ipynb +++ b/doc/nb/LRIS_red_mark4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "d7a65b56", + "id": "1719939a", "metadata": {}, "source": [ "# New LRISr Mark4 detector" @@ -10,13 +10,13 @@ }, { "cell_type": "code", - "execution_count": 17, - "id": "bee10ff6", + "execution_count": 23, + "id": "96f7d2dd", "metadata": {}, "outputs": [], "source": [ "# imports\n", - "import os\n", + "import os, glob\n", "import numpy as np\n", "\n", "from astropy.io import fits\n", @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "9d3b618d", + "id": "a8a5dd31", "metadata": {}, "source": [ "# Load data" @@ -35,28 +35,29 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "6f06c9fa", + "execution_count": 8, + "id": "154c0e87", "metadata": {}, "outputs": [], "source": [ - "dpath = '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw'" + "dpath = '/scratch/REDUX/Keck/LRIS/new_LRISr'\n", + "rpath = os.path.join(dpath, 'Raw')" ] }, { "cell_type": "code", - "execution_count": 4, - "id": "0a7b746a", + "execution_count": 9, + "id": "58d12873", "metadata": {}, "outputs": [], "source": [ - "dfile = os.path.join(dpath, 'r211004_00003.fits')" + "dfile = os.path.join(rpath, 'r211004_00003.fits')" ] }, { "cell_type": "code", - "execution_count": 5, - "id": "5a77f1dd", + "execution_count": 4, + "id": "ed15b755", "metadata": {}, "outputs": [], "source": [ @@ -65,8 +66,8 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "5c3c0018", + "execution_count": 5, + "id": "93a4fe62", "metadata": {}, "outputs": [ { @@ -86,8 +87,8 @@ }, { "cell_type": "code", - "execution_count": 25, - "id": "275734fc", + "execution_count": 6, + "id": "7c7f9483", "metadata": {}, "outputs": [], "source": [ @@ -96,8 +97,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "6566c288", + "execution_count": 7, + "id": "5a0e2a10", "metadata": {}, "outputs": [ { @@ -106,7 +107,7 @@ "(4248, 4234)" ] }, - "execution_count": 16, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -117,70 +118,228 @@ }, { "cell_type": "markdown", - "id": "f05260b5", + "id": "2b46502e", "metadata": {}, "source": [ - "# Header info" + "# Load pixel file" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "3312ad31", + "execution_count": 12, + "id": "d3650628", "metadata": {}, "outputs": [], "source": [ - "head0 = hdul[0].header" + "pix_file = os.path.join(dpath, 'pixelsL2U2L1U1_1_1.fits')" ] }, { "cell_type": "code", - "execution_count": 11, - "id": "3fbcfcf2", + "execution_count": 13, + "id": "e973b5ac", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[8:2064,1:2064]\n", - "[4227:2171,1:2064]\n", - "[8:2064,4248:2185]\n", - "[4227:2171,4248:2185]\n" + "Filename: /scratch/REDUX/Keck/LRIS/new_LRISr/pixelsL2U2L1U1_1_1.fits\n", + "No. Name Ver Type Cards Dimensions Format\n", + " 0 PRIMARY 1 PrimaryHDU 217 (4234, 4248) int16 \n" + ] + } + ], + "source": [ + "hdu_pix = fits.open(pix_file)\n", + "hdu_pix.info()" + ] + }, + { + "cell_type": "markdown", + "id": "3ad42c37", + "metadata": {}, + "source": [ + "# Overwrite header" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5a233d47", + "metadata": {}, + "outputs": [], + "source": [ + "head0 = hdul[0].header" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "fb457779", + "metadata": {}, + "outputs": [], + "source": [ + "for card, value in hdu_pix[0].header.items():\n", + " head0[card] = value" + ] + }, + { + "cell_type": "markdown", + "id": "40eb907e", + "metadata": {}, + "source": [ + "## Write" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "86ff1eff", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'[2170:2118,4248:2185]'" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hdul[0].header['BSEC4']" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "f324676e", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: VerifyWarning: Card is too long, comment will be truncated. [astropy.io.fits.card]\n" ] } ], "source": [ - "print(head0['DSEC1'])\n", - "print(head0['DSEC2'])\n", - "print(head0['DSEC3'])\n", - "print(head0['DSEC4'])" + "hdul.writeto(dfile.replace('.fits', '_upd.fits'))" + ] + }, + { + "cell_type": "markdown", + "id": "1f7e1ee4", + "metadata": {}, + "source": [ + "# Loop me" ] }, { "cell_type": "code", - "execution_count": 31, - "id": "511dc84c", + "execution_count": 27, + "id": "148324d1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'[8:2064,4248:2185]'" + "['/scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00006.fits',\n", + " '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00003.fits',\n", + " '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00008.fits',\n", + " '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00005.fits',\n", + " '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00004.fits',\n", + " '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00007.fits',\n", + " '/scratch/REDUX/Keck/LRIS/new_LRISr/Raw/r211004_00009.fits']" ] }, - "execution_count": 31, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "head0['DSEC3']" + "rfiles = glob.glob(rpath+'/*.fits')\n", + "rfiles" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "bfcabc33", + "metadata": {}, + "outputs": [], + "source": [ + "for rfile in rfiles:\n", + " hdul = fits.open(rfile)\n", + " head0 = hdul[0].header\n", + " for card, value in hdu_pix[0].header.items():\n", + " head0[card] = value\n", + " # Write\n", + " hdul.writeto(rfile.replace('.fits', '_upd.fits'))" + ] + }, + { + "cell_type": "markdown", + "id": "622f8bca", + "metadata": {}, + "source": [ + "## Moved them to their own folder.." + ] + }, + { + "cell_type": "markdown", + "id": "c4a2d4ff", + "metadata": {}, + "source": [ + "----" + ] + }, + { + "cell_type": "markdown", + "id": "4be577db", + "metadata": {}, + "source": [ + "# Reudcin" + ] + }, + { + "cell_type": "markdown", + "id": "1e9851e8", + "metadata": {}, + "source": [ + "## Test\n", + "\n", + "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1191f612", + "metadata": {}, + "outputs": [], + "source": [ + "## Setup\n", + "\n", + "## " + ] + }, + { + "cell_type": "markdown", + "id": "608e7df1", + "metadata": {}, + "source": [ + "----" ] }, { "cell_type": "markdown", - "id": "e6a69401", + "id": "8159e223", "metadata": {}, "source": [ "# Extract me" @@ -189,7 +348,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "f3c472bb", + "id": "dc239bde", "metadata": {}, "outputs": [], "source": [ @@ -198,7 +357,7 @@ }, { "cell_type": "markdown", - "id": "e1e90996", + "id": "13d30473", "metadata": {}, "source": [ "## Amp L1, aka AMPID3, aka readout sequence 2" @@ -207,7 +366,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "2503239c", + "id": "ecb32d76", "metadata": {}, "outputs": [ { @@ -228,7 +387,7 @@ { "cell_type": "code", "execution_count": 43, - "id": "d2b4b2de", + "id": "f0682bd0", "metadata": {}, "outputs": [ { @@ -250,7 +409,7 @@ { "cell_type": "code", "execution_count": 44, - "id": "23f1ace1", + "id": "1dc9bb94", "metadata": {}, "outputs": [ { @@ -272,7 +431,7 @@ { "cell_type": "code", "execution_count": 45, - "id": "2df38e18", + "id": "1df6ce1f", "metadata": {}, "outputs": [ { @@ -294,7 +453,7 @@ { "cell_type": "code", "execution_count": 51, - "id": "12ed8047", + "id": "6b4a7ad4", "metadata": {}, "outputs": [ { @@ -315,7 +474,7 @@ }, { "cell_type": "markdown", - "id": "a1464d38", + "id": "68163859", "metadata": {}, "source": [ "## Amp L2" @@ -324,7 +483,7 @@ { "cell_type": "code", "execution_count": 47, - "id": "516f5797", + "id": "f74ef83d", "metadata": {}, "outputs": [ { @@ -346,7 +505,7 @@ { "cell_type": "code", "execution_count": 48, - "id": "79c7ea4b", + "id": "6b0a768c", "metadata": {}, "outputs": [], "source": [ @@ -356,7 +515,7 @@ { "cell_type": "code", "execution_count": 49, - "id": "464ce6b9", + "id": "35d470d8", "metadata": {}, "outputs": [ { @@ -378,7 +537,7 @@ { "cell_type": "code", "execution_count": 50, - "id": "3b7e13c1", + "id": "45a1e545", "metadata": {}, "outputs": [ { @@ -397,10 +556,18 @@ "display.show_image(amp_l2)" ] }, + { + "cell_type": "markdown", + "id": "bfd8840b", + "metadata": {}, + "source": [ + "----" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "02152dac", + "id": "ee63935a", "metadata": {}, "outputs": [], "source": [] diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 2bcd6f47bc..534b091276 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -1168,19 +1168,29 @@ def get_detector_par(self, det, hdu=None): return detector_container.DetectorContainer(**detector_dict1) # Deal with number of amps - namps = hdu[0].header['NVIDINP'] + head0 = hdu[0].header + detector_dict1['numamplifiers'] = head0['TAPLINES'] # The website does not give values for single amp per detector so we take the mean # of the values provided - if namps == 2: + if detector_dict1['numamplifiers'] == 2: pass - elif namps == 4: - # From the web page on 2021-10-04 (L1, L2, L3, L4) + elif detector_dict1['numamplifiers'] == 4: + # From the web page on 2021-10-04 (L1, L2, U1, U2) + # TODO -- Make sure this is right -- See doc by SS detector_dict1['gain'] = np.atleast_1d([1.71, 1.64, 1.61, 1.67]) detector_dict1['ronoise'] = np.atleast_1d([3.64, 3.45, 3.65, 3.52]) else: msgs.error("Did not see this namps coming..") + detector_dict1['datasec'] = [] + detector_dict1['oscansec'] = [] + for iamp in range(detector_dict1['numamplifiers']): + detector_dict1['datasec'] += [head0[f'DSEC{iamp}']] + detector_dict1['oscansec'] += [head0[f'BSEC{iamp}']] + detector_dict1['datasec'] = np.array(detector_dict1['datasec']) + detector_dict1['oscansec'] = np.array(detector_dict1['oscansec']) + # Instantiate detector = detector_container.DetectorContainer(**detector_dict1) @@ -1220,15 +1230,8 @@ def get_rawimage(self, raw_file, det): (1-indexed) number of the amplifier used to read each detector pixel. Pixels unassociated with any amplifier are set to 0. """ - # Image info - hdul = fits.open(raw_file) - embed(header='1226 of keck_lris') - image, hdul, elaptime, rawdatasec_img, oscansec_img = get_orig_rawimage(raw_file) - # Detector - detector_par = self.get_detector_par(det, hdu=hdul) - # Return - return detector_par, image, hdul, elaptime, rawdatasec_img, oscansec_img - + # Note: There is no way we know to super super super + return spectrograph.Spectrograph.get_rawimage(self, raw_file, det) class KeckLRISROrigSpectrograph(KeckLRISRSpectrograph): """ From ae31795203770b6645df0e6b5eb49801e08d893a Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 14 Oct 2021 16:10:33 -0700 Subject: [PATCH 10/30] score? --- doc/nb/LRIS_red_mark4.ipynb | 139 +++++++++++++++++++++--------- pypeit/spectrographs/keck_lris.py | 8 +- 2 files changed, 102 insertions(+), 45 deletions(-) diff --git a/doc/nb/LRIS_red_mark4.ipynb b/doc/nb/LRIS_red_mark4.ipynb index 78c79e9b17..a9c8ba3956 100644 --- a/doc/nb/LRIS_red_mark4.ipynb +++ b/doc/nb/LRIS_red_mark4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "1719939a", + "id": "6325d7cd", "metadata": {}, "source": [ "# New LRISr Mark4 detector" @@ -11,7 +11,7 @@ { "cell_type": "code", "execution_count": 23, - "id": "96f7d2dd", + "id": "6f1185ea", "metadata": {}, "outputs": [], "source": [ @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "a8a5dd31", + "id": "3375797d", "metadata": {}, "source": [ "# Load data" @@ -36,7 +36,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "154c0e87", + "id": "d17f5bd5", "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "58d12873", + "id": "47fd5e62", "metadata": {}, "outputs": [], "source": [ @@ -57,7 +57,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "ed15b755", + "id": "86d97c4e", "metadata": {}, "outputs": [], "source": [ @@ -67,7 +67,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "93a4fe62", + "id": "742a9b6b", "metadata": {}, "outputs": [ { @@ -88,7 +88,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "7c7f9483", + "id": "56a1af39", "metadata": {}, "outputs": [], "source": [ @@ -98,7 +98,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "5a0e2a10", + "id": "458f5f99", "metadata": {}, "outputs": [ { @@ -118,7 +118,7 @@ }, { "cell_type": "markdown", - "id": "2b46502e", + "id": "54832cb7", "metadata": {}, "source": [ "# Load pixel file" @@ -127,7 +127,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "d3650628", + "id": "ff963623", "metadata": {}, "outputs": [], "source": [ @@ -137,7 +137,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "e973b5ac", + "id": "bc5e0597", "metadata": {}, "outputs": [ { @@ -155,9 +155,31 @@ "hdu_pix.info()" ] }, + { + "cell_type": "code", + "execution_count": 32, + "id": "6b7c3531", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[8:2064,2185:4248]\n", + "[8:2064,1:2064]\n", + "[2171:4227,2185:4248]\n", + "[2171:4227,1:2064]\n" + ] + } + ], + "source": [ + "for ii in range(4):\n", + " print(hdu_pix[0].header[f'DSEC{ii}'])" + ] + }, { "cell_type": "markdown", - "id": "3ad42c37", + "id": "bb84d2c7", "metadata": {}, "source": [ "# Overwrite header" @@ -166,7 +188,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "5a233d47", + "id": "6d825e8b", "metadata": {}, "outputs": [], "source": [ @@ -176,7 +198,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "fb457779", + "id": "68af81e7", "metadata": {}, "outputs": [], "source": [ @@ -186,7 +208,7 @@ }, { "cell_type": "markdown", - "id": "40eb907e", + "id": "00bdadec", "metadata": {}, "source": [ "## Write" @@ -195,7 +217,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "86ff1eff", + "id": "63333a35", "metadata": {}, "outputs": [ { @@ -216,7 +238,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "f324676e", + "id": "afc7781a", "metadata": {}, "outputs": [ { @@ -233,7 +255,7 @@ }, { "cell_type": "markdown", - "id": "1f7e1ee4", + "id": "099fe7b6", "metadata": {}, "source": [ "# Loop me" @@ -242,7 +264,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "148324d1", + "id": "b640890a", "metadata": {}, "outputs": [ { @@ -270,7 +292,7 @@ { "cell_type": "code", "execution_count": 29, - "id": "bfcabc33", + "id": "6046b2ad", "metadata": {}, "outputs": [], "source": [ @@ -285,7 +307,7 @@ }, { "cell_type": "markdown", - "id": "622f8bca", + "id": "097e963e", "metadata": {}, "source": [ "## Moved them to their own folder.." @@ -293,7 +315,7 @@ }, { "cell_type": "markdown", - "id": "c4a2d4ff", + "id": "a676fd43", "metadata": {}, "source": [ "----" @@ -301,7 +323,7 @@ }, { "cell_type": "markdown", - "id": "4be577db", + "id": "220610d8", "metadata": {}, "source": [ "# Reudcin" @@ -309,18 +331,28 @@ }, { "cell_type": "markdown", - "id": "1e9851e8", + "id": "ac14c786", "metadata": {}, "source": [ "## Test\n", "\n", - "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits" + "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits\n", + "\n", + "### Looks good!" + ] + }, + { + "cell_type": "markdown", + "id": "b45bc87f", + "metadata": {}, + "source": [ + "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits --proc" ] }, { "cell_type": "code", "execution_count": null, - "id": "1191f612", + "id": "b3fca9b6", "metadata": {}, "outputs": [], "source": [ @@ -331,7 +363,7 @@ }, { "cell_type": "markdown", - "id": "608e7df1", + "id": "0bd8ab91", "metadata": {}, "source": [ "----" @@ -339,7 +371,7 @@ }, { "cell_type": "markdown", - "id": "8159e223", + "id": "00e0078b", "metadata": {}, "source": [ "# Extract me" @@ -348,7 +380,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "dc239bde", + "id": "6122c935", "metadata": {}, "outputs": [], "source": [ @@ -357,7 +389,7 @@ }, { "cell_type": "markdown", - "id": "13d30473", + "id": "38df5deb", "metadata": {}, "source": [ "## Amp L1, aka AMPID3, aka readout sequence 2" @@ -366,7 +398,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "ecb32d76", + "id": "d5d9c788", "metadata": {}, "outputs": [ { @@ -387,7 +419,7 @@ { "cell_type": "code", "execution_count": 43, - "id": "f0682bd0", + "id": "6cb4bc7a", "metadata": {}, "outputs": [ { @@ -409,7 +441,7 @@ { "cell_type": "code", "execution_count": 44, - "id": "1dc9bb94", + "id": "b14e1ccd", "metadata": {}, "outputs": [ { @@ -431,7 +463,7 @@ { "cell_type": "code", "execution_count": 45, - "id": "1df6ce1f", + "id": "d36ef82f", "metadata": {}, "outputs": [ { @@ -453,7 +485,7 @@ { "cell_type": "code", "execution_count": 51, - "id": "6b4a7ad4", + "id": "9492fe56", "metadata": {}, "outputs": [ { @@ -474,7 +506,7 @@ }, { "cell_type": "markdown", - "id": "68163859", + "id": "2ea6118f", "metadata": {}, "source": [ "## Amp L2" @@ -483,7 +515,7 @@ { "cell_type": "code", "execution_count": 47, - "id": "f74ef83d", + "id": "55c82513", "metadata": {}, "outputs": [ { @@ -505,7 +537,7 @@ { "cell_type": "code", "execution_count": 48, - "id": "6b0a768c", + "id": "e5307beb", "metadata": {}, "outputs": [], "source": [ @@ -515,7 +547,7 @@ { "cell_type": "code", "execution_count": 49, - "id": "35d470d8", + "id": "94efd93b", "metadata": {}, "outputs": [ { @@ -537,7 +569,7 @@ { "cell_type": "code", "execution_count": 50, - "id": "45a1e545", + "id": "3cb9c4ed", "metadata": {}, "outputs": [ { @@ -558,16 +590,37 @@ }, { "cell_type": "markdown", - "id": "bfd8840b", + "id": "aac3a582", "metadata": {}, "source": [ "----" ] }, + { + "cell_type": "code", + "execution_count": 33, + "id": "10f87403", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2057.0" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "4114/2" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "ee63935a", + "id": "7a452b21", "metadata": {}, "outputs": [], "source": [] diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 534b091276..51810723e5 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -1186,8 +1186,12 @@ def get_detector_par(self, det, hdu=None): detector_dict1['datasec'] = [] detector_dict1['oscansec'] = [] for iamp in range(detector_dict1['numamplifiers']): - detector_dict1['datasec'] += [head0[f'DSEC{iamp}']] - detector_dict1['oscansec'] += [head0[f'BSEC{iamp}']] + # These are column, row + dsecs = head0[f'DSEC{iamp}'].split(',') + bsecs = head0[f'BSEC{iamp}'].split(',') + # These are now row, column + detector_dict1['datasec'] += ['['+dsecs[1][:-1]+','+dsecs[0][1:]+']'] + detector_dict1['oscansec'] += ['['+bsecs[1][:-1]+','+bsecs[0][1:]+']'] detector_dict1['datasec'] = np.array(detector_dict1['datasec']) detector_dict1['oscansec'] = np.array(detector_dict1['oscansec']) From 4ce472e4797b6bd8e35971cf31827802ac36d041 Mon Sep 17 00:00:00 2001 From: profxj Date: Tue, 26 Oct 2021 13:54:59 -0700 Subject: [PATCH 11/30] intermediate Mark4 files --- .../keck_lris_red_mark4/dict_for_ampmode.json | 11 +++++++++ .../keck_lris_red_mark4/headerL1U1_1_1.fits | 1 + .../keck_lris_red_mark4/headerL1U1_1_2.fits | 1 + .../keck_lris_red_mark4/headerL1U1_2_1.fits | 1 + .../keck_lris_red_mark4/headerL1U1_2_2.fits | 1 + .../keck_lris_red_mark4/headerL1_1_1.fits | 1 + .../keck_lris_red_mark4/headerL1_1_2.fits | 1 + .../keck_lris_red_mark4/headerL1_2_1.fits | 1 + .../keck_lris_red_mark4/headerL1_2_2.fits | 1 + .../keck_lris_red_mark4/headerL2L1_1_1.fits | 1 + .../keck_lris_red_mark4/headerL2L1_1_2.fits | 1 + .../keck_lris_red_mark4/headerL2L1_2_1.fits | 1 + .../keck_lris_red_mark4/headerL2L1_2_2.fits | 1 + .../headerL2U2L1U1_1_1.fits | 1 + .../headerL2U2L1U1_1_2.fits | 1 + .../headerL2U2L1U1_2_1.fits | 1 + .../headerL2U2L1U1_2_2.fits | 1 + .../keck_lris_red_mark4/headerL2U2_1_1.fits | 1 + .../keck_lris_red_mark4/headerL2U2_1_2.fits | 1 + .../keck_lris_red_mark4/headerL2U2_2_1.fits | 1 + .../keck_lris_red_mark4/headerL2U2_2_2.fits | 1 + .../keck_lris_red_mark4/headerL2_1_1.fits | 1 + .../keck_lris_red_mark4/headerL2_1_2.fits | 1 + .../keck_lris_red_mark4/headerL2_2_1.fits | 1 + .../keck_lris_red_mark4/headerL2_2_2.fits | 1 + .../keck_lris_red_mark4/headerU1_1_1.fits | 1 + .../keck_lris_red_mark4/headerU1_1_2.fits | 1 + .../keck_lris_red_mark4/headerU1_2_1.fits | 1 + .../keck_lris_red_mark4/headerU1_2_2.fits | 1 + .../keck_lris_red_mark4/headerU2U1_1_1.fits | 1 + .../keck_lris_red_mark4/headerU2U1_1_2.fits | 1 + .../keck_lris_red_mark4/headerU2U1_2_1.fits | 1 + .../keck_lris_red_mark4/headerU2U1_2_2.fits | 1 + .../keck_lris_red_mark4/headerU2_1_1.fits | 1 + .../keck_lris_red_mark4/headerU2_1_2.fits | 1 + .../keck_lris_red_mark4/headerU2_2_1.fits | 1 + .../keck_lris_red_mark4/headerU2_2_2.fits | 1 + pypeit/spectrographs/keck_lris.py | 23 +++++++++++++------ 38 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_2.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_1.fits create mode 100644 pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_2.fits diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json b/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json new file mode 100644 index 0000000000..43d2f34fe1 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json @@ -0,0 +1,11 @@ +{ + "HLEFT,VDOWN": "L1", + "HLEFT,VSPLIT": "L2L1", + "HLEFT,VUP": "L2", + "HRIGHT,VDOWN": "U1", + "HRIGHT,VSPLIT": "U2U1", + "HRIGHT,VUP": "U2", + "HSPLIT,VDOWN": "L1U1", + "HSPLIT,VSPLIT": "L2U2L1U1", + "HSPLIT,VUP": "L2U2" +} \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_1.fits new file mode 100644 index 0000000000..72aa61b671 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2057 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2057 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,4188:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:2064,61:4188]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2065:2117,4188:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:2057,1:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:2057,4128:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 4188.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -1. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 4188.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4234:2118:-1,4188:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[2171:4227,61:4188]' / [FITSpix] ampId2 DATASEC BSEC2 = '[2170:2118:-1,4188:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4114:-1,1:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:1:-1,4128:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 4234.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 4188.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -1. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 4234.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 4188.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_2.fits new file mode 100644 index 0000000000..bda732079a --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2057 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2057 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,2124:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:2064,61:2124]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2065:2117,2124:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:2057,1:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:2057,4128:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 2124.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -2. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 2124.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4234:2118:-1,2124:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[2171:4227,61:2124]' / [FITSpix] ampId2 DATASEC BSEC2 = '[2170:2118:-1,2124:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4114:-1,1:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:1:-1,4128:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 4234.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 2124.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -2. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 4234.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 2124.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_1.fits new file mode 100644 index 0000000000..7ef41cdd1a --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 1104 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2056 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 144 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 1028 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 72 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:1104,4188:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:1032,61:4188]' / [FITSpix] ampId0 DATASEC BSEC0 = '[1033:1104,4188:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:2057:2,1:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:2057:2,4128:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 4188.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -1. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 4188.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2208:1105:-1,4188:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[1177:2204,61:4188]' / [FITSpix] ampId2 DATASEC BSEC2 = '[1176:1105:-1,4188:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4113:-2,1:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:2:-2,4128:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 2208.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 4188.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -1. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 2208.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 4188.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 1104 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_2.fits new file mode 100644 index 0000000000..04356488b1 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1U1_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 1104 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2056 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 144 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 1028 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 72 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:1104,2124:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:1032,61:2124]' / [FITSpix] ampId0 DATASEC BSEC0 = '[1033:1104,2124:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:2057:2,1:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:2057:2,4128:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 2124.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -2. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 2124.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2208:1105:-1,2124:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[1177:2204,61:2124]' / [FITSpix] ampId2 DATASEC BSEC2 = '[1176:1105:-1,2124:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4113:-2,1:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:2:-2,4128:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 2208.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 2124.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -2. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 2208.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 2124.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 1104 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_1.fits new file mode 100644 index 0000000000..bcad8310eb --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:4174,4188:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:4121,61:4188]' / [FITSpix] ampId0 DATASEC BSEC0 = '[4122:4174,4188:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:4114,1:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:4114,4128:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 4188.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -1. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 4188.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_2.fits new file mode 100644 index 0000000000..964b3bae69 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:4174,2124:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:4121,61:2124]' / [FITSpix] ampId0 DATASEC BSEC0 = '[4122:4174,2124:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:4114,1:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:4114,4128:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 2124.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -2. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 2124.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_1.fits new file mode 100644 index 0000000000..0815938408 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,4188:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:2060,61:4188]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2062:2117,4188:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:4113:2,1:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:4113:2,4128:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 4188.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -1. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 4188.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_2.fits new file mode 100644 index 0000000000..83314c05c5 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL1_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,2124:1:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:2060,61:2124]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2062:2117,2124:61:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:4113:2,1:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:4113:2,4128:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1A = 0.5 / ampId0 axis1 WCSA reference pixel CRPIX2A = 2124.5 / ampId0 axis2 WCSA reference pixel CRVAL1A = -7. / ampId0 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId0 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId0 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId0 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId0 WCSA CTM2_1 from pix to iWC CD2_2A = -2. / ampId0 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId0 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId0 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId0 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId0 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId0 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId0 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId0' / TAPLINE0 chanId1 CRPIX1B = 0.5 / ampId0 axis1 WCSB reference pixel CRPIX2B = 2124.5 / ampId0 axis2 WCSB reference pixel CRVAL1B = -7. / ampId0 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId0 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId0 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId0 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId0 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId0 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId0 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId0 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId0 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId0 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId0 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId0 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_1.fits new file mode 100644 index 0000000000..d197be8f7b --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:4174,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[8:4121,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[4122:4174,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:4114,1:2064]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:4114,1:2064]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:4174,4248:2125:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:4121,2185:4248]' / [FITSpix] ampId0 DATASEC BSEC0 = '[4122:4174,4248:2185:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:4114,2065:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:4114,2064:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1C = 0.5 / ampId0 axis1 WCSC reference pixel CRPIX2C = 4248.5 / ampId0 axis2 WCSC reference pixel CRVAL1C = -7. / ampId0 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId0 iWaxis2 WCSC coord value @ refpix CD1_1C = 1. / ampId0 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId0 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId0 WCSC CTM2_1 from pix to iWC CD2_2C = -1. / ampId0 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId0 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId0 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId0 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId0 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId0 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId0 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1D = 0.5 / ampId0 axis1 WCSD reference pixel CRPIX2D = 4248.5 / ampId0 axis2 WCSD reference pixel CRVAL1D = -7. / ampId0 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId0 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId0 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId0 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId0 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId0 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId0 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId0 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId0 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId0 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId0 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId0 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_2.fits new file mode 100644 index 0000000000..120674d730 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 1092 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 1032 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:4174,1:1092]' / [FITSpix] ampId1 total section DSEC1 = '[8:4121,1:1032]' / [FITSpix] ampId1 DATASEC BSEC1 = '[4122:4174,1:1032]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:4114,1:2064:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:4114,1:2064:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:4174,2184:1093:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:4121,1153:2184]' / [FITSpix] ampId0 DATASEC BSEC0 = '[4122:4174,2184:1153:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:4114,2065:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:4114,2064:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1C = 0.5 / ampId0 axis1 WCSC reference pixel CRPIX2C = 2184.5 / ampId0 axis2 WCSC reference pixel CRVAL1C = -7. / ampId0 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId0 iWaxis2 WCSC coord value @ refpix CD1_1C = 1. / ampId0 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId0 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId0 WCSC CTM2_1 from pix to iWC CD2_2C = -2. / ampId0 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId0 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId0 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId0 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId0 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId0 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId0 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1D = 0.5 / ampId0 axis1 WCSD reference pixel CRPIX2D = 2184.5 / ampId0 axis2 WCSD reference pixel CRVAL1D = -7. / ampId0 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId0 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId0 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId0 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId0 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId0 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId0 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId0 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId0 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId0 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId0 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId0 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 1092 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_1.fits new file mode 100644 index 0000000000..945af06301 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[5:2060,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2062:2117,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:4113:2,1:2064]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:4113:2,1:2064]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,4248:2125:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:2060,2185:4248]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2062:2117,4248:2185:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:4113:2,2065:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:4113:2,2064:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1C = 0.5 / ampId0 axis1 WCSC reference pixel CRPIX2C = 4248.5 / ampId0 axis2 WCSC reference pixel CRVAL1C = -7. / ampId0 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId0 iWaxis2 WCSC coord value @ refpix CD1_1C = 2. / ampId0 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId0 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId0 WCSC CTM2_1 from pix to iWC CD2_2C = -1. / ampId0 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId0 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId0 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId0 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId0 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId0 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId0 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1D = 0.5 / ampId0 axis1 WCSD reference pixel CRPIX2D = 4248.5 / ampId0 axis2 WCSD reference pixel CRVAL1D = -7. / ampId0 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId0 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId0 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId0 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId0 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId0 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId0 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId0 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId0 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId0 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId0 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId0 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_2.fits new file mode 100644 index 0000000000..cc2fbb7297 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2L1_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 1092 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 1032 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:1092]' / [FITSpix] ampId1 total section DSEC1 = '[5:2060,1:1032]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2062:2117,1:1032]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:4113:2,1:2064:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:4113:2,1:2064:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,2184:1093:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:2060,1153:2184]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2062:2117,2184:1153:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:4113:2,2065:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:4113:2,2064:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1C = 0.5 / ampId0 axis1 WCSC reference pixel CRPIX2C = 2184.5 / ampId0 axis2 WCSC reference pixel CRVAL1C = -7. / ampId0 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId0 iWaxis2 WCSC coord value @ refpix CD1_1C = 2. / ampId0 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId0 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId0 WCSC CTM2_1 from pix to iWC CD2_2C = -2. / ampId0 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId0 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId0 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId0 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId0 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId0 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId0 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId0' / TAPLINE1 chanId1 CRPIX1D = 0.5 / ampId0 axis1 WCSD reference pixel CRPIX2D = 2184.5 / ampId0 axis2 WCSD reference pixel CRVAL1D = -7. / ampId0 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId0 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId0 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId0 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId0 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId0 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId0 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId0 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId0 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId0 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId0 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId0 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 1092 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_1.fits new file mode 100644 index 0000000000..db6979ce21 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2057 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2057 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[8:2064,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2065:2117,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:2057,1:2064]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:2057,1:2064]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4234:2118:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[2171:4227,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[2170:2118:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4114:-1,1:2064]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:1:-1,1:2064]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 4234.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 1. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 4234.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,4248:2125:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:2064,2185:4248]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2065:2117,4248:2185:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:2057,2065:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:2057,2064:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEE= 'Amplifier coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1E = 0.5 / ampId0 axis1 WCSE reference pixel CRPIX2E = 4248.5 / ampId0 axis2 WCSE reference pixel CRVAL1E = -7. / ampId0 iWaxis1 WCSE coord value @ refpix CRVAL2E = 0. / ampId0 iWaxis2 WCSE coord value @ refpix CD1_1E = 1. / ampId0 WCSE CTM1_1 from pix to iWC CD1_2E = 0. / ampId0 WCSE CTM1_2 from pix to iWC CD2_1E = 0. / ampId0 WCSE CTM2_1 from pix to iWC CD2_2E = -1. / ampId0 WCSE CTM2_2 from pix to iWC CTYPE1E = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSE coord/proj type CTYPE2E = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSE coord/proj type CUNIT1E = 'CCDpix ' / ampId0 iWaxis1 WCSE physical unit CUNIT2E = 'CCDpix ' / ampId0 iWaxis2 WCSE physical unit CRDER1E = 0. / ampId0 iWaxis1 WCSE coord random error CRDER2E = 0. / ampId0 iWaxis2 WCSE coord random error CSYER1E = 0. / ampId0 iWaxis1 WCSE coord systematic error CSYER2E = 0. / ampId0 iWaxis2 WCSE coord systematic error WCSNAMEF= 'Pane coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1F = 0.5 / ampId0 axis1 WCSF reference pixel CRPIX2F = 4248.5 / ampId0 axis2 WCSF reference pixel CRVAL1F = -7. / ampId0 iWaxis1 WCSF coord value @ refpix CRVAL2F = 4128. / ampId0 iWaxis2 WCSF coord value @ refpix CD1_1F = 1. / ampId0 WCSF CTM1_1 from pix to iWC CD1_2F = 0. / ampId0 WCSF CTM1_2 from pix to iWC CD2_1F = 0. / ampId0 WCSF CTM2_1 from pix to iWC CD2_2F = 1. / ampId0 WCSF CTM2_2 from pix to iWC CTYPE1F = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSF coord/proj type CTYPE2F = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSF coord/proj type CUNIT1F = 'CCDpix ' / ampId0 iWaxis1 WCSF physical unit CUNIT2F = 'CCDpix ' / ampId0 iWaxis2 WCSF physical unit CRDER1F = 0. / ampId0 iWaxis1 WCSF coord random error CRDER2F = 0. / ampId0 iWaxis2 WCSF coord random error CSYER1F = 0. / ampId0 iWaxis1 WCSF coord systematic error CSYER2F = 0. / ampId0 iWaxis2 WCSF coord systematic error TAPLIN2 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4234:2118:-1,4248:2125:-1]' / [FITSpix] ampId2 total section DSEC2 = '[2171:4227,2185:4248]' / [FITSpix] ampId2 DATASEC BSEC2 = '[2170:2118:-1,4248:2185:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4114:-1,2065:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:1:-1,2064:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEG= 'Amplifier coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1G = 4234.5 / ampId2 axis1 WCSG reference pixel CRPIX2G = 4248.5 / ampId2 axis2 WCSG reference pixel CRVAL1G = -7. / ampId2 iWaxis1 WCSG coord value @ refpix CRVAL2G = 0. / ampId2 iWaxis2 WCSG coord value @ refpix CD1_1G = -1. / ampId2 WCSG CTM1_1 from pix to iWC CD1_2G = 0. / ampId2 WCSG CTM1_2 from pix to iWC CD2_1G = 0. / ampId2 WCSG CTM2_1 from pix to iWC CD2_2G = -1. / ampId2 WCSG CTM2_2 from pix to iWC CTYPE1G = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSG coord/proj type CTYPE2G = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSG coord/proj type CUNIT1G = 'CCDpix ' / ampId2 iWaxis1 WCSG physical unit CUNIT2G = 'CCDpix ' / ampId2 iWaxis2 WCSG physical unit CRDER1G = 0. / ampId2 iWaxis1 WCSG coord random error CRDER2G = 0. / ampId2 iWaxis2 WCSG coord random error CSYER1G = 0. / ampId2 iWaxis1 WCSG coord systematic error CSYER2G = 0. / ampId2 iWaxis2 WCSG coord systematic error WCSNAMEH= 'Pane coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1H = 4234.5 / ampId2 axis1 WCSH reference pixel CRPIX2H = 4248.5 / ampId2 axis2 WCSH reference pixel CRVAL1H = 4121. / ampId2 iWaxis1 WCSH coord value @ refpix CRVAL2H = 4128. / ampId2 iWaxis2 WCSH coord value @ refpix CD1_1H = 1. / ampId2 WCSH CTM1_1 from pix to iWC CD1_2H = 0. / ampId2 WCSH CTM1_2 from pix to iWC CD2_1H = 0. / ampId2 WCSH CTM2_1 from pix to iWC CD2_2H = 1. / ampId2 WCSH CTM2_2 from pix to iWC CTYPE1H = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSH coord/proj type CTYPE2H = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSH coord/proj type CUNIT1H = 'CCDpix ' / ampId2 iWaxis1 WCSH physical unit CUNIT2H = 'CCDpix ' / ampId2 iWaxis2 WCSH physical unit CRDER1H = 0. / ampId2 iWaxis1 WCSH coord random error CRDER2H = 0. / ampId2 iWaxis2 WCSH coord random error CSYER1H = 0. / ampId2 iWaxis1 WCSH coord systematic error CSYER2H = 0. / ampId2 iWaxis2 WCSH coord systematic error TAPLIN3 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 4 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_2.fits new file mode 100644 index 0000000000..6e1ddaef38 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2057 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2057 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 1092 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 1032 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:1092]' / [FITSpix] ampId1 total section DSEC1 = '[8:2064,1:1032]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2065:2117,1:1032]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:2057,1:2064:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:2057,1:2064:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4234:2118:-1,1:1092]' / [FITSpix] ampId3 total section DSEC3 = '[2171:4227,1:1032]' / [FITSpix] ampId3 DATASEC BSEC3 = '[2170:2118:-1,1:1032]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4114:-1,1:2064:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:1:-1,1:2064:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 4234.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 2. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 4234.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:2117,2184:1093:-1]' / [FITSpix] ampId0 total section DSEC0 = '[8:2064,1153:2184]' / [FITSpix] ampId0 DATASEC BSEC0 = '[2065:2117,2184:1153:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[1:2057,2065:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[1:2057,2064:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEE= 'Amplifier coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1E = 0.5 / ampId0 axis1 WCSE reference pixel CRPIX2E = 2184.5 / ampId0 axis2 WCSE reference pixel CRVAL1E = -7. / ampId0 iWaxis1 WCSE coord value @ refpix CRVAL2E = 0. / ampId0 iWaxis2 WCSE coord value @ refpix CD1_1E = 1. / ampId0 WCSE CTM1_1 from pix to iWC CD1_2E = 0. / ampId0 WCSE CTM1_2 from pix to iWC CD2_1E = 0. / ampId0 WCSE CTM2_1 from pix to iWC CD2_2E = -2. / ampId0 WCSE CTM2_2 from pix to iWC CTYPE1E = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSE coord/proj type CTYPE2E = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSE coord/proj type CUNIT1E = 'CCDpix ' / ampId0 iWaxis1 WCSE physical unit CUNIT2E = 'CCDpix ' / ampId0 iWaxis2 WCSE physical unit CRDER1E = 0. / ampId0 iWaxis1 WCSE coord random error CRDER2E = 0. / ampId0 iWaxis2 WCSE coord random error CSYER1E = 0. / ampId0 iWaxis1 WCSE coord systematic error CSYER2E = 0. / ampId0 iWaxis2 WCSE coord systematic error WCSNAMEF= 'Pane coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1F = 0.5 / ampId0 axis1 WCSF reference pixel CRPIX2F = 2184.5 / ampId0 axis2 WCSF reference pixel CRVAL1F = -7. / ampId0 iWaxis1 WCSF coord value @ refpix CRVAL2F = 4128. / ampId0 iWaxis2 WCSF coord value @ refpix CD1_1F = 1. / ampId0 WCSF CTM1_1 from pix to iWC CD1_2F = 0. / ampId0 WCSF CTM1_2 from pix to iWC CD2_1F = 0. / ampId0 WCSF CTM2_1 from pix to iWC CD2_2F = 2. / ampId0 WCSF CTM2_2 from pix to iWC CTYPE1F = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSF coord/proj type CTYPE2F = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSF coord/proj type CUNIT1F = 'CCDpix ' / ampId0 iWaxis1 WCSF physical unit CUNIT2F = 'CCDpix ' / ampId0 iWaxis2 WCSF physical unit CRDER1F = 0. / ampId0 iWaxis1 WCSF coord random error CRDER2F = 0. / ampId0 iWaxis2 WCSF coord random error CSYER1F = 0. / ampId0 iWaxis1 WCSF coord systematic error CSYER2F = 0. / ampId0 iWaxis2 WCSF coord systematic error TAPLIN2 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4234:2118:-1,2184:1093:-1]' / [FITSpix] ampId2 total section DSEC2 = '[2171:4227,1153:2184]' / [FITSpix] ampId2 DATASEC BSEC2 = '[2170:2118:-1,2184:1153:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4114:-1,2065:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:1:-1,2064:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEG= 'Amplifier coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1G = 4234.5 / ampId2 axis1 WCSG reference pixel CRPIX2G = 2184.5 / ampId2 axis2 WCSG reference pixel CRVAL1G = -7. / ampId2 iWaxis1 WCSG coord value @ refpix CRVAL2G = 0. / ampId2 iWaxis2 WCSG coord value @ refpix CD1_1G = -1. / ampId2 WCSG CTM1_1 from pix to iWC CD1_2G = 0. / ampId2 WCSG CTM1_2 from pix to iWC CD2_1G = 0. / ampId2 WCSG CTM2_1 from pix to iWC CD2_2G = -2. / ampId2 WCSG CTM2_2 from pix to iWC CTYPE1G = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSG coord/proj type CTYPE2G = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSG coord/proj type CUNIT1G = 'CCDpix ' / ampId2 iWaxis1 WCSG physical unit CUNIT2G = 'CCDpix ' / ampId2 iWaxis2 WCSG physical unit CRDER1G = 0. / ampId2 iWaxis1 WCSG coord random error CRDER2G = 0. / ampId2 iWaxis2 WCSG coord random error CSYER1G = 0. / ampId2 iWaxis1 WCSG coord systematic error CSYER2G = 0. / ampId2 iWaxis2 WCSG coord systematic error WCSNAMEH= 'Pane coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1H = 4234.5 / ampId2 axis1 WCSH reference pixel CRPIX2H = 2184.5 / ampId2 axis2 WCSH reference pixel CRVAL1H = 4121. / ampId2 iWaxis1 WCSH coord value @ refpix CRVAL2H = 4128. / ampId2 iWaxis2 WCSH coord value @ refpix CD1_1H = 1. / ampId2 WCSH CTM1_1 from pix to iWC CD1_2H = 0. / ampId2 WCSH CTM1_2 from pix to iWC CD2_1H = 0. / ampId2 WCSH CTM2_1 from pix to iWC CD2_2H = 2. / ampId2 WCSH CTM2_2 from pix to iWC CTYPE1H = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSH coord/proj type CTYPE2H = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSH coord/proj type CUNIT1H = 'CCDpix ' / ampId2 iWaxis1 WCSH physical unit CUNIT2H = 'CCDpix ' / ampId2 iWaxis2 WCSH physical unit CRDER1H = 0. / ampId2 iWaxis1 WCSH coord random error CRDER2H = 0. / ampId2 iWaxis2 WCSH coord random error CSYER1H = 0. / ampId2 iWaxis1 WCSH coord systematic error CSYER2H = 0. / ampId2 iWaxis2 WCSH coord systematic error TAPLIN3 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 1092 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 4 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_1.fits new file mode 100644 index 0000000000..2fdde5af35 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 1104 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2056 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 144 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 1028 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 72 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:1104,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[5:1032,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[1033:1104,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:2057:2,1:2064]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:2057:2,1:2064]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2208:1105:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[1177:2204,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[1176:1105:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4113:-2,1:2064]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:2:-2,1:2064]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 2208.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 1. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 2208.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:1104,4248:2125:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:1032,2185:4248]' / [FITSpix] ampId0 DATASEC BSEC0 = '[1033:1104,4248:2185:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:2057:2,2065:4128:-1]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:2057:2,2064:1:-1]' / [CCDpix] ampId0 AMPSEC WCSNAMEE= 'Amplifier coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1E = 0.5 / ampId0 axis1 WCSE reference pixel CRPIX2E = 4248.5 / ampId0 axis2 WCSE reference pixel CRVAL1E = -7. / ampId0 iWaxis1 WCSE coord value @ refpix CRVAL2E = 0. / ampId0 iWaxis2 WCSE coord value @ refpix CD1_1E = 2. / ampId0 WCSE CTM1_1 from pix to iWC CD1_2E = 0. / ampId0 WCSE CTM1_2 from pix to iWC CD2_1E = 0. / ampId0 WCSE CTM2_1 from pix to iWC CD2_2E = -1. / ampId0 WCSE CTM2_2 from pix to iWC CTYPE1E = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSE coord/proj type CTYPE2E = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSE coord/proj type CUNIT1E = 'CCDpix ' / ampId0 iWaxis1 WCSE physical unit CUNIT2E = 'CCDpix ' / ampId0 iWaxis2 WCSE physical unit CRDER1E = 0. / ampId0 iWaxis1 WCSE coord random error CRDER2E = 0. / ampId0 iWaxis2 WCSE coord random error CSYER1E = 0. / ampId0 iWaxis1 WCSE coord systematic error CSYER2E = 0. / ampId0 iWaxis2 WCSE coord systematic error WCSNAMEF= 'Pane coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1F = 0.5 / ampId0 axis1 WCSF reference pixel CRPIX2F = 4248.5 / ampId0 axis2 WCSF reference pixel CRVAL1F = -7. / ampId0 iWaxis1 WCSF coord value @ refpix CRVAL2F = 4128. / ampId0 iWaxis2 WCSF coord value @ refpix CD1_1F = 2. / ampId0 WCSF CTM1_1 from pix to iWC CD1_2F = 0. / ampId0 WCSF CTM1_2 from pix to iWC CD2_1F = 0. / ampId0 WCSF CTM2_1 from pix to iWC CD2_2F = 1. / ampId0 WCSF CTM2_2 from pix to iWC CTYPE1F = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSF coord/proj type CTYPE2F = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSF coord/proj type CUNIT1F = 'CCDpix ' / ampId0 iWaxis1 WCSF physical unit CUNIT2F = 'CCDpix ' / ampId0 iWaxis2 WCSF physical unit CRDER1F = 0. / ampId0 iWaxis1 WCSF coord random error CRDER2F = 0. / ampId0 iWaxis2 WCSF coord random error CSYER1F = 0. / ampId0 iWaxis1 WCSF coord systematic error CSYER2F = 0. / ampId0 iWaxis2 WCSF coord systematic error TAPLIN2 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2208:1105:-1,4248:2125:-1]' / [FITSpix] ampId2 total section DSEC2 = '[1177:2204,2185:4248]' / [FITSpix] ampId2 DATASEC BSEC2 = '[1176:1105:-1,4248:2185:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4113:-2,2065:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:2:-2,2064:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEG= 'Amplifier coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1G = 2208.5 / ampId2 axis1 WCSG reference pixel CRPIX2G = 4248.5 / ampId2 axis2 WCSG reference pixel CRVAL1G = -7. / ampId2 iWaxis1 WCSG coord value @ refpix CRVAL2G = 0. / ampId2 iWaxis2 WCSG coord value @ refpix CD1_1G = -2. / ampId2 WCSG CTM1_1 from pix to iWC CD1_2G = 0. / ampId2 WCSG CTM1_2 from pix to iWC CD2_1G = 0. / ampId2 WCSG CTM2_1 from pix to iWC CD2_2G = -1. / ampId2 WCSG CTM2_2 from pix to iWC CTYPE1G = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSG coord/proj type CTYPE2G = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSG coord/proj type CUNIT1G = 'CCDpix ' / ampId2 iWaxis1 WCSG physical unit CUNIT2G = 'CCDpix ' / ampId2 iWaxis2 WCSG physical unit CRDER1G = 0. / ampId2 iWaxis1 WCSG coord random error CRDER2G = 0. / ampId2 iWaxis2 WCSG coord random error CSYER1G = 0. / ampId2 iWaxis1 WCSG coord systematic error CSYER2G = 0. / ampId2 iWaxis2 WCSG coord systematic error WCSNAMEH= 'Pane coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1H = 2208.5 / ampId2 axis1 WCSH reference pixel CRPIX2H = 4248.5 / ampId2 axis2 WCSH reference pixel CRVAL1H = 4121. / ampId2 iWaxis1 WCSH coord value @ refpix CRVAL2H = 4128. / ampId2 iWaxis2 WCSH coord value @ refpix CD1_1H = 2. / ampId2 WCSH CTM1_1 from pix to iWC CD1_2H = 0. / ampId2 WCSH CTM1_2 from pix to iWC CD2_1H = 0. / ampId2 WCSH CTM2_1 from pix to iWC CD2_2H = 1. / ampId2 WCSH CTM2_2 from pix to iWC CTYPE1H = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSH coord/proj type CTYPE2H = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSH coord/proj type CUNIT1H = 'CCDpix ' / ampId2 iWaxis1 WCSH physical unit CUNIT2H = 'CCDpix ' / ampId2 iWaxis2 WCSH physical unit CRDER1H = 0. / ampId2 iWaxis1 WCSH coord random error CRDER2H = 0. / ampId2 iWaxis2 WCSH coord random error CSYER1H = 0. / ampId2 iWaxis1 WCSH coord systematic error CSYER2H = 0. / ampId2 iWaxis2 WCSH coord systematic error TAPLIN3 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 1104 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 4 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_2.fits new file mode 100644 index 0000000000..26533712fe --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2L1U1_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 1104 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2056 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 144 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 1028 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 72 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 1092 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 1032 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:1104,1:1092]' / [FITSpix] ampId1 total section DSEC1 = '[5:1032,1:1032]' / [FITSpix] ampId1 DATASEC BSEC1 = '[1033:1104,1:1032]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:2057:2,1:2064:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:2057:2,1:2064:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2208:1105:-1,1:1092]' / [FITSpix] ampId3 total section DSEC3 = '[1177:2204,1:1032]' / [FITSpix] ampId3 DATASEC BSEC3 = '[1176:1105:-1,1:1032]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4113:-2,1:2064:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:2:-2,1:2064:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 2208.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 2. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 2208.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM0 = 'L1 ' / ampId0 name TSEC0 = '[1:1104,2184:1093:-1]' / [FITSpix] ampId0 total section DSEC0 = '[5:1032,1153:2184]' / [FITSpix] ampId0 DATASEC BSEC0 = '[1033:1104,2184:1153:-1]' / [FITSpix] ampId0 BIASSEC CSEC0 = '[2:2057:2,2065:4128:-2]' / [CCDpix] ampId0 CCDSEC ASEC0 = '[2:2057:2,2064:1:-2]' / [CCDpix] ampId0 AMPSEC WCSNAMEE= 'Amplifier coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1E = 0.5 / ampId0 axis1 WCSE reference pixel CRPIX2E = 2184.5 / ampId0 axis2 WCSE reference pixel CRVAL1E = -7. / ampId0 iWaxis1 WCSE coord value @ refpix CRVAL2E = 0. / ampId0 iWaxis2 WCSE coord value @ refpix CD1_1E = 2. / ampId0 WCSE CTM1_1 from pix to iWC CD1_2E = 0. / ampId0 WCSE CTM1_2 from pix to iWC CD2_1E = 0. / ampId0 WCSE CTM2_1 from pix to iWC CD2_2E = -2. / ampId0 WCSE CTM2_2 from pix to iWC CTYPE1E = 'AMPLIFIER_X for ampId0' / ampId0 iWaxis1 WCSE coord/proj type CTYPE2E = 'AMPLIFIER_Y for ampId0' / ampId0 iWaxis2 WCSE coord/proj type CUNIT1E = 'CCDpix ' / ampId0 iWaxis1 WCSE physical unit CUNIT2E = 'CCDpix ' / ampId0 iWaxis2 WCSE physical unit CRDER1E = 0. / ampId0 iWaxis1 WCSE coord random error CRDER2E = 0. / ampId0 iWaxis2 WCSE coord random error CSYER1E = 0. / ampId0 iWaxis1 WCSE coord systematic error CSYER2E = 0. / ampId0 iWaxis2 WCSE coord systematic error WCSNAMEF= 'Pane coordinates for ampId0' / TAPLINE2 chanId1 CRPIX1F = 0.5 / ampId0 axis1 WCSF reference pixel CRPIX2F = 2184.5 / ampId0 axis2 WCSF reference pixel CRVAL1F = -7. / ampId0 iWaxis1 WCSF coord value @ refpix CRVAL2F = 4128. / ampId0 iWaxis2 WCSF coord value @ refpix CD1_1F = 2. / ampId0 WCSF CTM1_1 from pix to iWC CD1_2F = 0. / ampId0 WCSF CTM1_2 from pix to iWC CD2_1F = 0. / ampId0 WCSF CTM2_1 from pix to iWC CD2_2F = 2. / ampId0 WCSF CTM2_2 from pix to iWC CTYPE1F = 'PANE_X for ampId0' / ampId0 iWaxis1 WCSF coord/proj type CTYPE2F = 'PANE_Y for ampId0' / ampId0 iWaxis2 WCSF coord/proj type CUNIT1F = 'CCDpix ' / ampId0 iWaxis1 WCSF physical unit CUNIT2F = 'CCDpix ' / ampId0 iWaxis2 WCSF physical unit CRDER1F = 0. / ampId0 iWaxis1 WCSF coord random error CRDER2F = 0. / ampId0 iWaxis2 WCSF coord random error CSYER1F = 0. / ampId0 iWaxis1 WCSF coord systematic error CSYER2F = 0. / ampId0 iWaxis2 WCSF coord systematic error TAPLIN2 = 'AD1L,1,113' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2208:1105:-1,2184:1093:-1]' / [FITSpix] ampId2 total section DSEC2 = '[1177:2204,1153:2184]' / [FITSpix] ampId2 DATASEC BSEC2 = '[1176:1105:-1,2184:1153:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2058:4113:-2,2065:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[2057:2:-2,2064:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEG= 'Amplifier coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1G = 2208.5 / ampId2 axis1 WCSG reference pixel CRPIX2G = 2184.5 / ampId2 axis2 WCSG reference pixel CRVAL1G = -7. / ampId2 iWaxis1 WCSG coord value @ refpix CRVAL2G = 0. / ampId2 iWaxis2 WCSG coord value @ refpix CD1_1G = -2. / ampId2 WCSG CTM1_1 from pix to iWC CD1_2G = 0. / ampId2 WCSG CTM1_2 from pix to iWC CD2_1G = 0. / ampId2 WCSG CTM2_1 from pix to iWC CD2_2G = -2. / ampId2 WCSG CTM2_2 from pix to iWC CTYPE1G = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSG coord/proj type CTYPE2G = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSG coord/proj type CUNIT1G = 'CCDpix ' / ampId2 iWaxis1 WCSG physical unit CUNIT2G = 'CCDpix ' / ampId2 iWaxis2 WCSG physical unit CRDER1G = 0. / ampId2 iWaxis1 WCSG coord random error CRDER2G = 0. / ampId2 iWaxis2 WCSG coord random error CSYER1G = 0. / ampId2 iWaxis1 WCSG coord systematic error CSYER2G = 0. / ampId2 iWaxis2 WCSG coord systematic error WCSNAMEH= 'Pane coordinates for ampId2' / TAPLINE3 chanId3 CRPIX1H = 2208.5 / ampId2 axis1 WCSH reference pixel CRPIX2H = 2184.5 / ampId2 axis2 WCSH reference pixel CRVAL1H = 4121. / ampId2 iWaxis1 WCSH coord value @ refpix CRVAL2H = 4128. / ampId2 iWaxis2 WCSH coord value @ refpix CD1_1H = 2. / ampId2 WCSH CTM1_1 from pix to iWC CD1_2H = 0. / ampId2 WCSH CTM1_2 from pix to iWC CD2_1H = 0. / ampId2 WCSH CTM2_1 from pix to iWC CD2_2H = 2. / ampId2 WCSH CTM2_2 from pix to iWC CTYPE1H = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSH coord/proj type CTYPE2H = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSH coord/proj type CUNIT1H = 'CCDpix ' / ampId2 iWaxis1 WCSH physical unit CUNIT2H = 'CCDpix ' / ampId2 iWaxis2 WCSH physical unit CRDER1H = 0. / ampId2 iWaxis1 WCSH coord random error CRDER2H = 0. / ampId2 iWaxis2 WCSH coord random error CSYER1H = 0. / ampId2 iWaxis1 WCSH coord systematic error CSYER2H = 0. / ampId2 iWaxis2 WCSH coord systematic error TAPLIN3 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 1104 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 1092 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 4 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_1.fits new file mode 100644 index 0000000000..f880bcfc84 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2057 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2057 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:4188]' / [FITSpix] ampId1 total section DSEC1 = '[8:2064,1:4128]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2065:2117,1:4128]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:2057,1:4128]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:2057,1:4128]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4234:2118:-1,1:4188]' / [FITSpix] ampId3 total section DSEC3 = '[2171:4227,1:4128]' / [FITSpix] ampId3 DATASEC BSEC3 = '[2170:2118:-1,1:4128]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4114:-1,1:4128]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:1:-1,1:4128]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 4234.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 1. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 4234.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_2.fits new file mode 100644 index 0000000000..ac2b350c79 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2057 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2057 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[8:2064,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2065:2117,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:2057,1:4128:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:2057,1:4128:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4234:2118:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[2171:4227,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[2170:2118:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4114:-1,1:4128:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:1:-1,1:4128:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 4234.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 2. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 4234.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_1.fits new file mode 100644 index 0000000000..f738c61ae7 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 1104 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2056 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 144 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 1028 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 72 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:1104,1:4188]' / [FITSpix] ampId1 total section DSEC1 = '[5:1032,1:4128]' / [FITSpix] ampId1 DATASEC BSEC1 = '[1033:1104,1:4128]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:2057:2,1:4128]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:2057:2,1:4128]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2208:1105:-1,1:4188]' / [FITSpix] ampId3 total section DSEC3 = '[1177:2204,1:4128]' / [FITSpix] ampId3 DATASEC BSEC3 = '[1176:1105:-1,1:4128]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4113:-2,1:4128]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:2:-2,1:4128]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 2208.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 1. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 2208.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 1104 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_2.fits new file mode 100644 index 0000000000..d552392eab --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2U2_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 2057 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 1104 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 2056 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 144 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 1028 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 72 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:1104,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[5:1032,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[1033:1104,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:2057:2,1:4128:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:2057:2,1:4128:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2208:1105:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[1177:2204,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[1176:1105:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2058:4113:-2,1:4128:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[2057:2:-2,1:4128:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1C = 2208.5 / ampId3 axis1 WCSC reference pixel CRPIX2C = 0.5 / ampId3 axis2 WCSC reference pixel CRVAL1C = -7. / ampId3 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId3 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId3 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId3 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId3 WCSC CTM2_1 from pix to iWC CD2_2C = 2. / ampId3 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId3 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId3 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId3 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId3 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId3 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId3 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId3' / TAPLINE1 chanId4 CRPIX1D = 2208.5 / ampId3 axis1 WCSD reference pixel CRPIX2D = 0.5 / ampId3 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId3 iWaxis1 WCSD coord value @ refpix CRVAL2D = 0. / ampId3 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId3 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId3 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId3 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId3 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId3 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId3 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId3 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId3 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId3 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId3 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 1 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 2 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 1104 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_1.fits new file mode 100644 index 0000000000..43fdace9f9 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:4174,1:4188]' / [FITSpix] ampId1 total section DSEC1 = '[8:4121,1:4128]' / [FITSpix] ampId1 DATASEC BSEC1 = '[4122:4174,1:4128]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:4114,1:4128]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:4114,1:4128]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_2.fits new file mode 100644 index 0000000000..f60adcd4bd --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:4174,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[8:4121,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[4122:4174,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[1:4114,1:4128:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[1:4114,1:4128:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 1. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_1.fits new file mode 100644 index 0000000000..dcbc2b21be --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:4188]' / [FITSpix] ampId1 total section DSEC1 = '[5:2060,1:4128]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2062:2117,1:4128]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:4113:2,1:4128]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:4113:2,1:4128]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_2.fits new file mode 100644 index 0000000000..e1cc257734 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerL2_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM1 = 'L2 ' / ampId1 name TSEC1 = '[1:2117,1:2124]' / [FITSpix] ampId1 total section DSEC1 = '[5:2060,1:2064]' / [FITSpix] ampId1 DATASEC BSEC1 = '[2062:2117,1:2064]' / [FITSpix] ampId1 BIASSEC CSEC1 = '[2:4113:2,1:4128:2]' / [CCDpix] ampId1 CCDSEC ASEC1 = '[2:4113:2,1:4128:2]' / [CCDpix] ampId1 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1A = 0.5 / ampId1 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId1 axis2 WCSA reference pixel CRVAL1A = -7. / ampId1 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId1 iWaxis2 WCSA coord value @ refpix CD1_1A = 2. / ampId1 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId1 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId1 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId1 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId1' / ampId1 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId1' / ampId1 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId1 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId1 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId1 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId1 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId1 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId1 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId1' / TAPLINE0 chanId2 CRPIX1B = 0.5 / ampId1 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId1 axis2 WCSB reference pixel CRVAL1B = -7. / ampId1 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId1 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId1 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId1 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId1 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId1 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId1' / ampId1 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId1' / ampId1 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId1 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId1 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId1 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId1 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId1 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId1 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD2L,1,114' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 0 / parameter H_RIGHT for this readout H_LEFT = 1 / parameter H_LEFT for this readout HLRS = 0 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_1.fits new file mode 100644 index 0000000000..8ec0292545 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4174:1:-1,4188:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[54:4167,61:4188]' / [FITSpix] ampId2 DATASEC BSEC2 = '[53:1:-1,4188:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[1:4114:-1,1:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4114:1:-1,4128:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1A = 4174.5 / ampId2 axis1 WCSA reference pixel CRPIX2A = 4188.5 / ampId2 axis2 WCSA reference pixel CRVAL1A = -7. / ampId2 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId2 iWaxis2 WCSA coord value @ refpix CD1_1A = -1. / ampId2 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId2 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId2 WCSA CTM2_1 from pix to iWC CD2_2A = -1. / ampId2 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId2 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId2 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId2 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId2 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId2 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId2 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1B = 4174.5 / ampId2 axis1 WCSB reference pixel CRPIX2B = 4188.5 / ampId2 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId2 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId2 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId2 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId2 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId2 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId2 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId2 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId2 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId2 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId2 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId2 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId2 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_2.fits new file mode 100644 index 0000000000..d00b2c1fc4 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4174:1:-1,2124:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[54:4167,61:2124]' / [FITSpix] ampId2 DATASEC BSEC2 = '[53:1:-1,2124:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[1:4114:-1,1:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4114:1:-1,4128:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1A = 4174.5 / ampId2 axis1 WCSA reference pixel CRPIX2A = 2124.5 / ampId2 axis2 WCSA reference pixel CRVAL1A = -7. / ampId2 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId2 iWaxis2 WCSA coord value @ refpix CD1_1A = -1. / ampId2 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId2 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId2 WCSA CTM2_1 from pix to iWC CD2_2A = -2. / ampId2 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId2 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId2 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId2 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId2 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId2 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId2 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1B = 4174.5 / ampId2 axis1 WCSB reference pixel CRPIX2B = 2124.5 / ampId2 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId2 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId2 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId2 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId2 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId2 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId2 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId2 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId2 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId2 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId2 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId2 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId2 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_1.fits new file mode 100644 index 0000000000..123d349cad --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2117:1:-1,4188:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[58:2113,61:4188]' / [FITSpix] ampId2 DATASEC BSEC2 = '[56:1:-1,4188:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2:4113:-2,1:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4113:2:-2,4128:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1A = 2117.5 / ampId2 axis1 WCSA reference pixel CRPIX2A = 4188.5 / ampId2 axis2 WCSA reference pixel CRVAL1A = -7. / ampId2 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId2 iWaxis2 WCSA coord value @ refpix CD1_1A = -2. / ampId2 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId2 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId2 WCSA CTM2_1 from pix to iWC CD2_2A = -1. / ampId2 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId2 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId2 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId2 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId2 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId2 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId2 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1B = 2117.5 / ampId2 axis1 WCSB reference pixel CRPIX2B = 4188.5 / ampId2 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId2 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId2 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId2 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId2 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId2 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId2 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId2 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId2 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId2 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId2 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId2 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId2 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_2.fits new file mode 100644 index 0000000000..64fb2db3fe --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU1_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2117:1:-1,2124:1:-1]' / [FITSpix] ampId2 total section DSEC2 = '[58:2113,61:2124]' / [FITSpix] ampId2 DATASEC BSEC2 = '[56:1:-1,2124:61:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2:4113:-2,1:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4113:2:-2,4128:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1A = 2117.5 / ampId2 axis1 WCSA reference pixel CRPIX2A = 2124.5 / ampId2 axis2 WCSA reference pixel CRVAL1A = -7. / ampId2 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId2 iWaxis2 WCSA coord value @ refpix CD1_1A = -2. / ampId2 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId2 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId2 WCSA CTM2_1 from pix to iWC CD2_2A = -2. / ampId2 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId2 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId2 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId2 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId2 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId2 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId2 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId2' / TAPLINE0 chanId3 CRPIX1B = 2117.5 / ampId2 axis1 WCSB reference pixel CRPIX2B = 2124.5 / ampId2 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId2 iWaxis1 WCSB coord value @ refpix CRVAL2B = 4128. / ampId2 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId2 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId2 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId2 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId2 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId2 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId2 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId2 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId2 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId2 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId2 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 1 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 1 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_1.fits new file mode 100644 index 0000000000..3945ea9e55 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4174:1:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[54:4167,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[53:1:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[1:4114:-1,1:2064]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4114:1:-1,1:2064]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 4174.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -1. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 4174.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4174:1:-1,4248:2125:-1]' / [FITSpix] ampId2 total section DSEC2 = '[54:4167,2185:4248]' / [FITSpix] ampId2 DATASEC BSEC2 = '[53:1:-1,4248:2185:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[1:4114:-1,2065:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4114:1:-1,2064:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 4174.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 4248.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -1. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 4174.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 4248.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_2.fits new file mode 100644 index 0000000000..75e3c4c17f --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 1092 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 1032 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4174:1:-1,1:1092]' / [FITSpix] ampId3 total section DSEC3 = '[54:4167,1:1032]' / [FITSpix] ampId3 DATASEC BSEC3 = '[53:1:-1,1:1032]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[1:4114:-1,1:2064:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4114:1:-1,1:2064:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 4174.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -1. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 4174.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[4174:1:-1,2184:1093:-1]' / [FITSpix] ampId2 total section DSEC2 = '[54:4167,1153:2184]' / [FITSpix] ampId2 DATASEC BSEC2 = '[53:1:-1,2184:1153:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[1:4114:-1,2065:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4114:1:-1,2064:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 4174.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 2184.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -1. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -2. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 4174.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 2184.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 1. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 1092 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_1.fits new file mode 100644 index 0000000000..37757fdb9e --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2117:1:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[58:2113,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[56:1:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2:4113:-2,1:2064]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4113:2:-2,1:2064]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 2117.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -2. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 2117.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2117:1:-1,4248:2125:-1]' / [FITSpix] ampId2 total section DSEC2 = '[58:2113,2185:4248]' / [FITSpix] ampId2 DATASEC BSEC2 = '[56:1:-1,4248:2185:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2:4113:-2,2065:4128:-1]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4113:2:-2,2064:1:-1]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 2117.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 4248.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -1. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 2117.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 4248.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 1. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_2.fits new file mode 100644 index 0000000000..24f59061b6 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2U1_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 2064 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 1092 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 2064 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 1032 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2117:1:-1,1:1092]' / [FITSpix] ampId3 total section DSEC3 = '[58:2113,1:1032]' / [FITSpix] ampId3 DATASEC BSEC3 = '[56:1:-1,1:1032]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2:4113:-2,1:2064:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4113:2:-2,1:2064:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 2117.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -2. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 2117.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset AMPNM2 = 'U1 ' / ampId2 name TSEC2 = '[2117:1:-1,2184:1093:-1]' / [FITSpix] ampId2 total section DSEC2 = '[58:2113,1153:2184]' / [FITSpix] ampId2 DATASEC BSEC2 = '[56:1:-1,2184:1153:-1]' / [FITSpix] ampId2 BIASSEC CSEC2 = '[2:4113:-2,2065:4128:-2]' / [CCDpix] ampId2 CCDSEC ASEC2 = '[4113:2:-2,2064:1:-2]' / [CCDpix] ampId2 AMPSEC WCSNAMEC= 'Amplifier coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1C = 2117.5 / ampId2 axis1 WCSC reference pixel CRPIX2C = 2184.5 / ampId2 axis2 WCSC reference pixel CRVAL1C = -7. / ampId2 iWaxis1 WCSC coord value @ refpix CRVAL2C = 0. / ampId2 iWaxis2 WCSC coord value @ refpix CD1_1C = -2. / ampId2 WCSC CTM1_1 from pix to iWC CD1_2C = 0. / ampId2 WCSC CTM1_2 from pix to iWC CD2_1C = 0. / ampId2 WCSC CTM2_1 from pix to iWC CD2_2C = -2. / ampId2 WCSC CTM2_2 from pix to iWC CTYPE1C = 'AMPLIFIER_X for ampId2' / ampId2 iWaxis1 WCSC coord/proj type CTYPE2C = 'AMPLIFIER_Y for ampId2' / ampId2 iWaxis2 WCSC coord/proj type CUNIT1C = 'CCDpix ' / ampId2 iWaxis1 WCSC physical unit CUNIT2C = 'CCDpix ' / ampId2 iWaxis2 WCSC physical unit CRDER1C = 0. / ampId2 iWaxis1 WCSC coord random error CRDER2C = 0. / ampId2 iWaxis2 WCSC coord random error CSYER1C = 0. / ampId2 iWaxis1 WCSC coord systematic error CSYER2C = 0. / ampId2 iWaxis2 WCSC coord systematic error WCSNAMED= 'Pane coordinates for ampId2' / TAPLINE1 chanId3 CRPIX1D = 2117.5 / ampId2 axis1 WCSD reference pixel CRPIX2D = 2184.5 / ampId2 axis2 WCSD reference pixel CRVAL1D = 4121. / ampId2 iWaxis1 WCSD coord value @ refpix CRVAL2D = 4128. / ampId2 iWaxis2 WCSD coord value @ refpix CD1_1D = 2. / ampId2 WCSD CTM1_1 from pix to iWC CD1_2D = 0. / ampId2 WCSD CTM1_2 from pix to iWC CD2_1D = 0. / ampId2 WCSD CTM2_1 from pix to iWC CD2_2D = 2. / ampId2 WCSD CTM2_2 from pix to iWC CTYPE1D = 'PANE_X for ampId2' / ampId2 iWaxis1 WCSD coord/proj type CTYPE2D = 'PANE_Y for ampId2' / ampId2 iWaxis2 WCSD coord/proj type CUNIT1D = 'CCDpix ' / ampId2 iWaxis1 WCSD physical unit CUNIT2D = 'CCDpix ' / ampId2 iWaxis2 WCSD physical unit CRDER1D = 0. / ampId2 iWaxis1 WCSD coord random error CRDER2D = 0. / ampId2 iWaxis2 WCSD coord random error CSYER1D = 0. / ampId2 iWaxis1 WCSD coord systematic error CSYER2D = 0. / ampId2 iWaxis2 WCSD coord systematic error TAPLIN1 = 'AD3R,1,122' / Archon chanIdBufdir,gain,offset V_SPLIT = 1 / parameter V_SPLIT for this readout V_UP = 0 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 1092 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 2 / Archon FRAMEMODE for this readout TAPLINES= 2 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_1.fits new file mode 100644 index 0000000000..bcbf8f991e --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4174:1:-1,1:4188]' / [FITSpix] ampId3 total section DSEC3 = '[54:4167,1:4128]' / [FITSpix] ampId3 DATASEC BSEC3 = '[53:1:-1,1:4128]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[1:4114:-1,1:4128]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4114:1:-1,1:4128]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 4174.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -1. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 4174.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_2.fits new file mode 100644 index 0000000000..7f90d9263a --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_1_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX1= 4174 / [FITSpix] total FITS pixels PPSCPIX1= 7 / [CCDpix] pure prescan pixels PMICPIX1= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4114 / [CCDpix] pure image pixels IMOCPIX1= 0 / [CCDpix] image mixed with overscan pixels OMICPIX1= 0 / [CCDpix] overscan mixed with image pixels POSCPIX1= 53 / [CCDpix] pure overscan pixels PPSFPIX1= 7 / [FITSpix] pure prescan pixels MPIFPIX1= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 4114 / [FITSpix] pure image pixels MIOFPIX1= 0 / [FITSpix] mixed image+overscan pixels POSFPIX1= 53 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[4174:1:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[54:4167,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[53:1:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[1:4114:-1,1:4128:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4114:1:-1,1:4128:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 4174.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -1. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 4174.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 1. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 0 / parameter HBIN2 for this readout PIXELCNT= 4174 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_1.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_1.fits new file mode 100644 index 0000000000..c278b7212d --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_1.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 1 / [CCDpix/FITSpix] bin factor TOTFPIX2= 4188 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 60 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 4128 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2117:1:-1,1:4188]' / [FITSpix] ampId3 total section DSEC3 = '[58:2113,1:4128]' / [FITSpix] ampId3 DATASEC BSEC3 = '[56:1:-1,1:4128]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2:4113:-2,1:4128]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4113:2:-2,1:4128]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 2117.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -2. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 1. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 2117.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 1. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 0 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 4188 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_2.fits b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_2.fits new file mode 100644 index 0000000000..067d399257 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/headerU2_2_2.fits @@ -0,0 +1 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H PSCPIX1 = 7 / [CCDpix] detector prescan pixels IMCPIX1 = 4114 / [CCDpix] detector image pixels BINFAC1 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX1= 2117 / [FITSpix] total FITS pixels PPSCPIX1= 6 / [CCDpix] pure prescan pixels PMICPIX1= 1 / [CCDpix] prescan mixed with image pixels IMPCPIX1= 1 / [CCDpix] image mixed with prescan pixels PIMCPIX1= 4112 / [CCDpix] pure image pixels IMOCPIX1= 1 / [CCDpix] image mixed with overscan pixels OMICPIX1= 1 / [CCDpix] overscan mixed with image pixels POSCPIX1= 112 / [CCDpix] pure overscan pixels PPSFPIX1= 3 / [FITSpix] pure prescan pixels MPIFPIX1= 1 / [FITSpix] mixed prescan+image pixels PIMFPIX1= 2056 / [FITSpix] pure image pixels MIOFPIX1= 1 / [FITSpix] mixed image+overscan pixels POSFPIX1= 56 / [FITSpix] pure overscan pixels PSCPIX2 = 0 / [CCDpix] detector prescan pixels IMCPIX2 = 4128 / [CCDpix] detector image pixels BINFAC2 = 2 / [CCDpix/FITSpix] bin factor TOTFPIX2= 2124 / [FITSpix] total FITS pixels PPSCPIX2= 0 / [CCDpix] pure prescan pixels PMICPIX2= 0 / [CCDpix] prescan mixed with image pixels IMPCPIX2= 0 / [CCDpix] image mixed with prescan pixels PIMCPIX2= 4128 / [CCDpix] pure image pixels IMOCPIX2= 0 / [CCDpix] image mixed with overscan pixels OMICPIX2= 0 / [CCDpix] overscan mixed with image pixels POSCPIX2= 120 / [CCDpix] pure overscan pixels PPSFPIX2= 0 / [FITSpix] pure prescan pixels MPIFPIX2= 0 / [FITSpix] mixed prescan+image pixels PIMFPIX2= 2064 / [FITSpix] pure image pixels MIOFPIX2= 0 / [FITSpix] mixed image+overscan pixels POSFPIX2= 60 / [FITSpix] pure overscan pixels AMPNM3 = 'U2 ' / ampId3 name TSEC3 = '[2117:1:-1,1:2124]' / [FITSpix] ampId3 total section DSEC3 = '[58:2113,1:2064]' / [FITSpix] ampId3 DATASEC BSEC3 = '[56:1:-1,1:2064]' / [FITSpix] ampId3 BIASSEC CSEC3 = '[2:4113:-2,1:4128:2]' / [CCDpix] ampId3 CCDSEC ASEC3 = '[4113:2:-2,1:4128:2]' / [CCDpix] ampId3 AMPSEC WCSNAMEA= 'Amplifier coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1A = 2117.5 / ampId3 axis1 WCSA reference pixel CRPIX2A = 0.5 / ampId3 axis2 WCSA reference pixel CRVAL1A = -7. / ampId3 iWaxis1 WCSA coord value @ refpix CRVAL2A = 0. / ampId3 iWaxis2 WCSA coord value @ refpix CD1_1A = -2. / ampId3 WCSA CTM1_1 from pix to iWC CD1_2A = 0. / ampId3 WCSA CTM1_2 from pix to iWC CD2_1A = 0. / ampId3 WCSA CTM2_1 from pix to iWC CD2_2A = 2. / ampId3 WCSA CTM2_2 from pix to iWC CTYPE1A = 'AMPLIFIER_X for ampId3' / ampId3 iWaxis1 WCSA coord/proj type CTYPE2A = 'AMPLIFIER_Y for ampId3' / ampId3 iWaxis2 WCSA coord/proj type CUNIT1A = 'CCDpix ' / ampId3 iWaxis1 WCSA physical unit CUNIT2A = 'CCDpix ' / ampId3 iWaxis2 WCSA physical unit CRDER1A = 0. / ampId3 iWaxis1 WCSA coord random error CRDER2A = 0. / ampId3 iWaxis2 WCSA coord random error CSYER1A = 0. / ampId3 iWaxis1 WCSA coord systematic error CSYER2A = 0. / ampId3 iWaxis2 WCSA coord systematic error WCSNAMEB= 'Pane coordinates for ampId3' / TAPLINE0 chanId4 CRPIX1B = 2117.5 / ampId3 axis1 WCSB reference pixel CRPIX2B = 0.5 / ampId3 axis2 WCSB reference pixel CRVAL1B = 4121. / ampId3 iWaxis1 WCSB coord value @ refpix CRVAL2B = 0. / ampId3 iWaxis2 WCSB coord value @ refpix CD1_1B = 2. / ampId3 WCSB CTM1_1 from pix to iWC CD1_2B = 0. / ampId3 WCSB CTM1_2 from pix to iWC CD2_1B = 0. / ampId3 WCSB CTM2_1 from pix to iWC CD2_2B = 2. / ampId3 WCSB CTM2_2 from pix to iWC CTYPE1B = 'PANE_X for ampId3' / ampId3 iWaxis1 WCSB coord/proj type CTYPE2B = 'PANE_Y for ampId3' / ampId3 iWaxis2 WCSB coord/proj type CUNIT1B = 'CCDpix ' / ampId3 iWaxis1 WCSB physical unit CUNIT2B = 'CCDpix ' / ampId3 iWaxis2 WCSB physical unit CRDER1B = 0. / ampId3 iWaxis1 WCSB coord random error CRDER2B = 0. / ampId3 iWaxis2 WCSB coord random error CSYER1B = 0. / ampId3 iWaxis1 WCSB coord systematic error CSYER2B = 0. / ampId3 iWaxis2 WCSB coord systematic error TAPLIN0 = 'AD4R,1,127' / Archon chanIdBufdir,gain,offset V_SPLIT = 0 / parameter V_SPLIT for this readout V_UP = 1 / parameter V_UP for this readout V_DOWN = 0 / parameter V_DOWN for this readout H_SPLIT = 0 / parameter H_SPLIT for this readout H_RIGHT = 1 / parameter H_RIGHT for this readout H_LEFT = 0 / parameter H_LEFT for this readout HLRS = 1 / old KTL keyword hlrs for this readout VBIN2 = 1 / parameter VBIN2 for this readout HBIN2 = 1 / parameter HBIN2 for this readout PIXELCNT= 2117 / [FITSpix] Archon PIXELCOUNT for this readout LINECNT = 2124 / [FITSpix] Archon LINECOUNT for this readout FRAMEMOD= 0 / Archon FRAMEMODE for this readout TAPLINES= 1 / Archon taps for this readout END \ No newline at end of file diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 51810723e5..b1b4e093ee 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -901,13 +901,9 @@ def get_detector_par(self, det, hdu=None): detector_dict2['gain'] = np.atleast_1d([1.26]) detector_dict1['ronoise'] = np.atleast_1d([99.]) detector_dict2['ronoise'] = np.atleast_1d([5.2]) - elif date > t2021_upgrade: #Implicitly assumes 2 amps and the ampmode is HSPLIT,VUP - msgs.warn("We are using LRISr gain/RN values based on Sunil's estimates. Will be updated to WMKO values soon.") - detector_dict1['gain'] = np.atleast_1d([1.71, 1.68]) - detector_dict2['gain'] = np.atleast_1d([1.61, 1.72]) - detector_dict1['ronoise'] = np.atleast_1d([4.42, 4.24]) - detector_dict2['ronoise'] = np.atleast_1d([4.41, 4.68]) - + elif date > t2021_upgrade: + # Note: We are unlikely to trip this. Other things probably failed first + msgs.error("This is the new detector. Use keck_lris_red_mark4") else: # This is the 2020 July 29 run msgs.warn("We are using LRISr gain/RN values based on WMKO estimates.") detector_dict1['gain'] = np.atleast_1d([1.45]) @@ -1167,6 +1163,19 @@ def get_detector_par(self, det, hdu=None): if hdu is None: return detector_container.DetectorContainer(**detector_dict1) + # Date of Mark4 installation + t2021_upgrade = time.Time("2021-04-15", format='isot') + # TODO -- Update with the date we transitioned to the correct ones + t_gdhead = time.Time("2021-11-01", format='isot') + date = time.Time(hdu[0].header['MJD'], format='mjd') + + if date < t2021_upgrade: + msgs.error("This is not the Mark4 detector. Use a different keck_lris_red spectrograph") + + if date < t_gdhead: + amp_mode = hdu[0].header['AMPMODE'] + embed(header='1176 of keck_lris') + # Deal with number of amps head0 = hdu[0].header detector_dict1['numamplifiers'] = head0['TAPLINES'] From a8b998ebd65290acaa86c7cc069c7934d0793e4f Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 28 Oct 2021 12:17:25 -0700 Subject: [PATCH 12/30] workin? --- pypeit/spectrographs/keck_lris.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index b1b4e093ee..550be7d73f 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -16,6 +16,8 @@ from astropy.io import fits from astropy import time +from linetools import utils as ltu + from pypeit import msgs from pypeit import telescopes from pypeit import io @@ -1119,7 +1121,6 @@ class KeckLRISRMark4Spectrograph(KeckLRISRSpectrograph): """ ndet = 1 name = 'keck_lris_red_mark4' - camera = 'LRISr' supported = True comment = 'New Mark4 detector, circa Spring 2021' @@ -1174,11 +1175,22 @@ def get_detector_par(self, det, hdu=None): if date < t_gdhead: amp_mode = hdu[0].header['AMPMODE'] - embed(header='1176 of keck_lris') + # Load up translation dict + ampmode_translate_file = os.path.join( + resource_filename('pypeit', 'data'), 'spectrographs', + 'keck_lris_red_mark4', 'dict_for_ampmode.json') + ampmode_translate_dict = ltu.loadjson(ampmode_translate_file) + # Load up the corrected header + header_file = os.path.join( + resource_filename('pypeit', 'data'), 'spectrographs', + 'keck_lris_red_mark4', + f'header{ampmode_translate_dict[amp_mode]}_{binning.replace(",","_")}.fits') + correct_header = fits.getheader(header_file) + else: + correct_header = hdu[0].header # Deal with number of amps - head0 = hdu[0].header - detector_dict1['numamplifiers'] = head0['TAPLINES'] + detector_dict1['numamplifiers'] = correct_header['TAPLINES'] # The website does not give values for single amp per detector so we take the mean # of the values provided @@ -1196,8 +1208,8 @@ def get_detector_par(self, det, hdu=None): detector_dict1['oscansec'] = [] for iamp in range(detector_dict1['numamplifiers']): # These are column, row - dsecs = head0[f'DSEC{iamp}'].split(',') - bsecs = head0[f'BSEC{iamp}'].split(',') + dsecs = correct_header[f'DSEC{iamp}'].split(',') + bsecs = correct_header[f'BSEC{iamp}'].split(',') # These are now row, column detector_dict1['datasec'] += ['['+dsecs[1][:-1]+','+dsecs[0][1:]+']'] detector_dict1['oscansec'] += ['['+bsecs[1][:-1]+','+bsecs[0][1:]+']'] From 14133c0457030c81527f7b06dd8caf2ea90fb6a4 Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 28 Oct 2021 14:27:42 -0700 Subject: [PATCH 13/30] working now?! --- .../keck_lris_red_mark4/dict_for_ampmode.json | 1 + pypeit/spectrographs/keck_lris.py | 46 +++++++++++++++++-- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json b/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json index 43d2f34fe1..69ed630008 100644 --- a/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json @@ -7,5 +7,6 @@ "HRIGHT,VUP": "U2", "HSPLIT,VDOWN": "L1U1", "HSPLIT,VSPLIT": "L2U2L1U1", + "ALL": "L2U2L1U1", "HSPLIT,VUP": "L2U2" } \ No newline at end of file diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 550be7d73f..6a63afc4be 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -158,6 +158,11 @@ def compound_meta(self, headarr, meta_key): if meta_key == 'binning': binspatial, binspec = parse.parse_binning(headarr[0]['BINNING']) binning = parse.binning2string(binspec, binspatial) + + # Hack for the not-stable commission version of the Mark4 detector + if binning == '0,0': + binning = '1,1' + return binning elif 'lampstat' in meta_key: idx = int(meta_key[-2:]) @@ -1173,18 +1178,21 @@ def get_detector_par(self, det, hdu=None): if date < t2021_upgrade: msgs.error("This is not the Mark4 detector. Use a different keck_lris_red spectrograph") + # Deal with the intermediate headers if date < t_gdhead: amp_mode = hdu[0].header['AMPMODE'] + msgs.info("AMPMODE = {:s}".format(amp_mode)) # Load up translation dict ampmode_translate_file = os.path.join( resource_filename('pypeit', 'data'), 'spectrographs', 'keck_lris_red_mark4', 'dict_for_ampmode.json') ampmode_translate_dict = ltu.loadjson(ampmode_translate_file) # Load up the corrected header + swap_binning = f"{binning[-1]},{binning[0]}" # LRIS convention is oppopsite ours header_file = os.path.join( resource_filename('pypeit', 'data'), 'spectrographs', 'keck_lris_red_mark4', - f'header{ampmode_translate_dict[amp_mode]}_{binning.replace(",","_")}.fits') + f'header{ampmode_translate_dict[amp_mode]}_{swap_binning.replace(",","_")}.fits') correct_header = fits.getheader(header_file) else: correct_header = hdu[0].header @@ -1206,19 +1214,49 @@ def get_detector_par(self, det, hdu=None): detector_dict1['datasec'] = [] detector_dict1['oscansec'] = [] - for iamp in range(detector_dict1['numamplifiers']): + + # Parse which AMPS were used + used_amps = [] + for amp in range(4): + if f'AMPNM{amp}' in correct_header.keys(): + used_amps.append(amp) + # Check + assert detector_dict1['numamplifiers'] == len(used_amps) + + # Reverse engenieering to translate LRIS DSEC, BSEC + # into ones friendly for PypeIt... + binspec = int(binning[0]) + binspatial = int(binning[-1]) + + for iamp in used_amps: # These are column, row dsecs = correct_header[f'DSEC{iamp}'].split(',') + d_rows = [int(item) for item in dsecs[1][:-1].split(':')] + d_cols = [int(item) for item in dsecs[0][1:].split(':')] bsecs = correct_header[f'BSEC{iamp}'].split(',') + o_rows = [int(item) for item in bsecs[1][:-1].split(':')] + o_cols = [int(item) for item in bsecs[0][1:].split(':')] + + # Deal with binning (heaven help me!!) + d_rows = [str(item*binspec) if item != 1 else str(item) for item in d_rows] + o_rows = [str(item*binspec) if item != 1 else str(item) for item in o_rows] + d_cols = [str(item*binspatial) if item != 1 else str(item) for item in d_cols] + o_cols = [str(item*binspatial) if item != 1 else str(item) for item in o_cols] + # These are now row, column - detector_dict1['datasec'] += ['['+dsecs[1][:-1]+','+dsecs[0][1:]+']'] - detector_dict1['oscansec'] += ['['+bsecs[1][:-1]+','+bsecs[0][1:]+']'] + # And they need to be native!! i.e. no binning accounted for.. + detector_dict1['datasec'] += [f"[{':'.join(d_rows)},{':'.join(d_cols)}]"] + detector_dict1['oscansec'] += [f"[{':'.join(o_rows)},{':'.join(o_cols)}]"] + detector_dict1['datasec'] = np.array(detector_dict1['datasec']) detector_dict1['oscansec'] = np.array(detector_dict1['oscansec']) # Instantiate detector = detector_container.DetectorContainer(**detector_dict1) + print('Dict1:', detector_dict1) + print('Binning:', binning) + # Return return detector From ee276d4b077a22ee2ed1af1daee9c134cbe1faa5 Mon Sep 17 00:00:00 2001 From: SunilSimha Date: Tue, 9 Nov 2021 13:40:49 -0800 Subject: [PATCH 14/30] Assume defaul ampmode is HSPLIT,VUP --- pypeit/spectrographs/keck_lris.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 6a63afc4be..c8ff05a7f7 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -1162,8 +1162,8 @@ def get_detector_par(self, det, hdu=None): nonlinear=0.76, mincounts=-1e10, numamplifiers=2, # These are defaults but can modify below - gain=np.atleast_1d([1.71, 1.61]), - ronoise=np.atleast_1d([3.64, 3.45]), + gain=np.atleast_1d([1.61, 1.67]), # Assumes AMPMODE=HSPLIT,VUP + ronoise=np.atleast_1d([3.65, 3.52]), ) if hdu is None: From a8a17506b561c9da990a3df60d2a5ecb1576e1d7 Mon Sep 17 00:00:00 2001 From: profxj Date: Tue, 9 Nov 2021 13:53:27 -0800 Subject: [PATCH 15/30] padding --- pypeit/core/wavecal/autoid.py | 18 ++++++++++++++---- pypeit/spectrographs/keck_lris.py | 4 ++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/pypeit/core/wavecal/autoid.py b/pypeit/core/wavecal/autoid.py index 603aa5497d..fae489ddd3 100644 --- a/pypeit/core/wavecal/autoid.py +++ b/pypeit/core/wavecal/autoid.py @@ -937,17 +937,27 @@ def full_template(spec, par, ok_mask, det, binspectral, nsnippet=2, debug_xcorr= pspec = np.zeros_like(temp_spec) nspec = len(ispec) npad = ncomb - nspec - pspec[npad // 2:npad // 2 + len(ispec)] = ispec_cont_sub + if npad > 0: # Pad the input spectrum + pspec[npad // 2:npad // 2 + len(ispec)] = ispec_cont_sub + tspec = tspec_cont_sub + elif npad < 0: # Pad the template! + pspec = ispec_cont_sub + npad *= -1 + tspec = np.zeros(nspec) + tspec[npad // 2:npad // 2 + ncomb] = tspec_cont_sub + else: + pspec = ispec_cont_sub + tspec = tspec_cont_sub # Cross-correlate - shift_cc, corr_cc = wvutils.xcorr_shift(tspec_cont_sub, pspec, debug=debug, fwhm=par['fwhm'], percent_ceil=x_percentile) + shift_cc, corr_cc = wvutils.xcorr_shift(tspec, pspec, debug=debug, fwhm=par['fwhm'], percent_ceil=x_percentile) #shift_cc, corr_cc = wvutils.xcorr_shift(temp_spec, pspec, debug=debug, percent_ceil=x_percentile) msgs.info("Shift = {}; cc = {}".format(shift_cc, corr_cc)) if debug: - xvals = np.arange(ncomb) + xvals = np.arange(tspec.size) plt.clf() ax = plt.gca() # - ax.plot(xvals, temp_spec) # Template + ax.plot(xvals, tspec) # Template ax.plot(xvals, np.roll(pspec, int(shift_cc)), 'k') # Input plt.show() embed(header='909 autoid') diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 6a63afc4be..a418f8c706 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -1254,8 +1254,8 @@ def get_detector_par(self, det, hdu=None): # Instantiate detector = detector_container.DetectorContainer(**detector_dict1) - print('Dict1:', detector_dict1) - print('Binning:', binning) + #print('Dict1:', detector_dict1) + #print('Binning:', binning) # Return return detector From 48ab111a0a92dde300c7a3155e34a17507710b6f Mon Sep 17 00:00:00 2001 From: profxj Date: Fri, 12 Nov 2021 07:02:03 -0800 Subject: [PATCH 16/30] rm size --- pypeit/core/tracewave.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pypeit/core/tracewave.py b/pypeit/core/tracewave.py index 600022423d..e985e0b2b9 100644 --- a/pypeit/core/tracewave.py +++ b/pypeit/core/tracewave.py @@ -954,9 +954,9 @@ def arc_tilts_spec_qa(tilts_spec_fit, tilts, tilts_model, tot_mask, rej_mask, rm markersize=7.0) ax.text(0.90, 0.90, 'Slit {:d}: Residual (pixels) = {:0.5f}'.format(slitord_id, rms), - transform=ax.transAxes, size='large', ha='right', color='black', fontsize=16) + transform=ax.transAxes, ha='right', color='black', fontsize=16) ax.text(0.90, 0.80, ' Slit {:d}: RMS/FWHM = {:0.5f}'.format(slitord_id, rms / fwhm), - transform=ax.transAxes, size='large', ha='right', color='black', fontsize=16) + transform=ax.transAxes, ha='right', color='black', fontsize=16) # Label ax.set_xlabel('Spectral Pixel') ax.set_ylabel('RMS (pixels)') From 30ccdfe5a99e1fe16caff7e71c5a0a1a3122bbf2 Mon Sep 17 00:00:00 2001 From: profxj Date: Mon, 15 Nov 2021 11:16:05 -0800 Subject: [PATCH 17/30] cleaning up --- CHANGES.rst | 1 + pypeit/core/wavecal/autoid.py | 5 +---- pypeit/spectrographs/keck_lris.py | 27 ++++++++++++++------------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index e2d13a446b..351a8e3aa6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,7 @@ the header and use it for wavelength calibration. - Allow one to restrict the wavelength range of the arxiv template - Set DEMIOS FWHM default to 10 pixels +- Implements new Mark4 detector for Keck/LRISr (aka keck_lris_red_mark4) 1.6.0 (1 Oct 2021) diff --git a/pypeit/core/wavecal/autoid.py b/pypeit/core/wavecal/autoid.py index 887ad03fbe..3c826e6327 100644 --- a/pypeit/core/wavecal/autoid.py +++ b/pypeit/core/wavecal/autoid.py @@ -884,9 +884,6 @@ def full_template(spec, lamps, par, ok_mask, det, binspectral, nsnippet=2, Dict of wavelength calibration solutions """ - #debug_xcorr=True - #debug_reid=True - #debug=True # Load line lists if 'ThAr' in lamps: line_lists_all = waveio.load_line_lists(lamps) @@ -948,7 +945,7 @@ def full_template(spec, lamps, par, ok_mask, det, binspectral, nsnippet=2, npad *= -1 tspec = np.zeros(nspec) tspec[npad // 2:npad // 2 + ncomb] = tspec_cont_sub - else: + else: # No padding necessary pspec = ispec_cont_sub tspec = tspec_cont_sub # Cross-correlate diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 66a2f0d82e..d0c3e7bd16 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -126,9 +126,9 @@ def init_meta(self): self.meta['target'] = dict(ext=0, card='TARGNAME') self.meta['decker'] = dict(ext=0, card='SLITNAME') self.meta['binning'] = dict(card=None, compound=True) - # TODO: Sunil replaced TELAPSE with TTIME and mJD-OBS with MJD temporarily. Sunil needs to create a new detector class for this stuff. - self.meta['mjd'] = dict(ext=0, card='MJD') - self.meta['exptime'] = dict(ext=0, card='TELAPSE') + # + self.meta['mjd'] = dict(ext=0, card='MJD-OBS') + self.meta['exptime'] = dict(ext=0, card='ELAPTIME') self.meta['airmass'] = dict(ext=0, card='AIRMASS') # Extras for config and frametyping self.meta['dichroic'] = dict(ext=0, card='DICHNAME') @@ -166,7 +166,7 @@ def compound_meta(self, headarr, meta_key): return binning elif 'lampstat' in meta_key: idx = int(meta_key[-2:]) - curr_date = time.Time(headarr[0]['MJD'], format='mjd') + curr_date = time.Time(self.get_meta_value(headarr, 'mjd'), format='mjd') # Modern -- Assuming the change occurred with the new red detector t_newlamp = time.Time("2014-02-15", format='isot') # LAMPS changed in Header if curr_date > t_newlamp: @@ -872,7 +872,7 @@ def get_detector_par(self, det, hdu=None): det=1, dataext=1, specaxis=0, - specflip=True, # This is for the new LRISr + specflip=False, spatflip=False, platescale=0.135, darkcurr=0.0, @@ -896,7 +896,7 @@ def get_detector_par(self, det, hdu=None): # Allow for post COVID detector issues t2020_1 = time.Time("2020-06-30", format='isot') # First run t2020_2 = time.Time("2020-07-29", format='isot') # Second run - # Allow for the new detector upgrade + # Check for the new detector (Mark4) upgrade t2021_upgrade = time.Time("2021-04-15", format='isot') date = time.Time(hdu[0].header['MJD'], format='mjd') @@ -932,11 +932,8 @@ def get_detector_par(self, det, hdu=None): if namps == 2 or (namps==4 and len(hdu)==3): # Longslit readout mode is the latter. This is a hack.. detector.numamplifiers = 1 # Long silt mode - # TODO: Change AMPPSIZE to whatever is on the new FITS files for data after the upgrade. if hdu[0].header['AMPPSIZE'] == '[1:1024,1:4096]': idx = 0 if det==1 else 1 # Vid1 for det=1, Vid4 for det=2 - #if idx>0: - # import pdb; pdb.set_trace() detector.gain = np.atleast_1d(detector.gain[idx]) detector.ronoise = np.atleast_1d(detector.ronoise[idx]) else: @@ -1122,13 +1119,18 @@ def bpm(self, filename, det, shape=None, msbias=None): class KeckLRISRMark4Spectrograph(KeckLRISRSpectrograph): """ - Child to handle the original LRISr detector (pre 01 JUL 2009) + Child to handle the new Mark4 detector """ ndet = 1 name = 'keck_lris_red_mark4' supported = True comment = 'New Mark4 detector, circa Spring 2021' + def init_meta(self): + super().init_meta() + # Over-ride a pair + self.meta['mjd'] = dict(ext=0, card='MJD') + self.meta['exptime'] = dict(ext=0, card='TELAPSE') def get_detector_par(self, det, hdu=None): """ @@ -1172,7 +1174,7 @@ def get_detector_par(self, det, hdu=None): # Date of Mark4 installation t2021_upgrade = time.Time("2021-04-15", format='isot') # TODO -- Update with the date we transitioned to the correct ones - t_gdhead = time.Time("2021-11-01", format='isot') + t_gdhead = time.Time("2022-01-01", format='isot') date = time.Time(hdu[0].header['MJD'], format='mjd') if date < t2021_upgrade: @@ -1634,8 +1636,7 @@ def get_orig_rawimage(raw_file, debug=False): oscansec_img[:, biascols] = iamp+1 imagecols = np.arange(1024 // xbin) + iamp * 1024 // xbin rawdatasec_img[:,imagecols + namps*(prepix // xbin)] = iamp+1 - # TODO: I've replaced TELAPSE with TTIME temporarily - return image, hdul, float(head0['TELAPSE']), \ + return image, hdul, float(head0['ELAPTIME']), \ rawdatasec_img, oscansec_img From 8aed5361ee04f5b342d5e8a29805b12d692ee204 Mon Sep 17 00:00:00 2001 From: profxj Date: Mon, 15 Nov 2021 11:43:51 -0800 Subject: [PATCH 18/30] fussin --- doc/lris.rst | 12 ++++++ .../wavecal/spectrographs/templ_keck_lris.py | 40 ++++++++++++++++++ .../reid_arxiv/keck_lris_red_mark4_R400.fits | Bin 0 -> 83520 bytes pypeit/spectrographs/keck_lris.py | 9 ++-- 4 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 pypeit/core/wavecal/spectrographs/templ_keck_lris.py create mode 100644 pypeit/data/arc_lines/reid_arxiv/keck_lris_red_mark4_R400.fits diff --git a/doc/lris.rst b/doc/lris.rst index 3903bef6df..736638584a 100644 --- a/doc/lris.rst +++ b/doc/lris.rst @@ -82,6 +82,18 @@ very blue. keck_lris_red ============= +Detectors ++++++++++ + +There have been 3 (or is it 4?!) generations of detectors +in the LRISr camera. The original is named `keck_lris_red_orig`, +the LBNL detectors (2kx4k) are `keck_lris_red` and the newest +Mark4 detector is `keck_lris_red_mark4`. + +For the latter (Mark4), the wavelengths have been incorporated for the +R400 grating only so far but the arxiv solutions from the LBNL detector +may work ok. Check the outputs! + Taking Calibrations for LRISr ============================= diff --git a/pypeit/core/wavecal/spectrographs/templ_keck_lris.py b/pypeit/core/wavecal/spectrographs/templ_keck_lris.py new file mode 100644 index 0000000000..840ece2488 --- /dev/null +++ b/pypeit/core/wavecal/spectrographs/templ_keck_lris.py @@ -0,0 +1,40 @@ +""" Generate the wavelength templates for Keck/LRIS""" +import os + +from pypeit.core.wavecal import templates + + +# Keck/DEIMOS + +def keck_lris_red_mark4_R400(overwrite=False): + binspec = 1 + outroot = 'keck_lris_red_mark4_R400.fits' + # PypeIt fits + wpath = os.path.join(templates.template_path, 'Keck_LRIS', 'Mark4', 'R400') + + basefiles = ['MasterWaveCalib_A_1_01_long.fits', + 'MasterWaveCalib_A_1_01_sunil.fits'] + wfiles = [os.path.join(wpath, basefile) for basefile in basefiles] + # Snippets + ifiles = [0,1] + slits = [2048, 2045] + wv_cuts = [9320.] + assert len(wv_cuts) == len(slits)-1 + # det_dict + det_cut = None + # + templates.build_template(wfiles, slits, wv_cuts, binspec, outroot, + ifiles=ifiles, det_cut=det_cut, chk=True, + normalize=True, lowredux=False, + subtract_conti=True, overwrite=overwrite, + shift_wave=True) + + + +if __name__ == '__main__': + keck_lris_red_mark4_R400(overwrite=True) + #keck_deimos_830G(overwrite=False) # False for Testing; True for real + #keck_deimos_1200G(overwrite=False) + #keck_deimos_1200B() + #keck_deimos_900ZD(overwrite=False) + pass diff --git a/pypeit/data/arc_lines/reid_arxiv/keck_lris_red_mark4_R400.fits b/pypeit/data/arc_lines/reid_arxiv/keck_lris_red_mark4_R400.fits new file mode 100644 index 0000000000000000000000000000000000000000..b8cede8938204c1b50d4dcc2e7d368ac2ce77c53 GIT binary patch literal 83520 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 Date: Mon, 15 Nov 2021 11:45:52 -0800 Subject: [PATCH 19/30] mo docs --- doc/lris.rst | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/doc/lris.rst b/doc/lris.rst index 736638584a..dbb8bed068 100644 --- a/doc/lris.rst +++ b/doc/lris.rst @@ -94,9 +94,6 @@ For the latter (Mark4), the wavelengths have been incorporated for the R400 grating only so far but the arxiv solutions from the LBNL detector may work ok. Check the outputs! -Taking Calibrations for LRISr -============================= - LRISr Default Settings ++++++++++++++++++++++ @@ -107,10 +104,10 @@ for LRISr:: settings trace slits pca params [3,2,1,0] Known issues -++++++++++++ +============ LRISb Slit Edges ----------------- +++++++++++++++++ When observing in long-slit mode, PypeIt might set the slit incorrectly for detector 2. This may occur if the counts from the flat field @@ -135,7 +132,7 @@ Here is an example for the PypeIt file:: This will force a slit onto the detector for reduction. Multi-slit ----------- +++++++++++ The code may identify a 'ghost' slit in empty detector real estate if your mask does not fill most of the field. Be prepared From 4c26fa8b3b5d1bef92e3d2e43ecbcc9d57cd665f Mon Sep 17 00:00:00 2001 From: profxj Date: Mon, 15 Nov 2021 11:51:15 -0800 Subject: [PATCH 20/30] polish --- pypeit/core/wavecal/spectrographs/templ_keck_lris.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pypeit/core/wavecal/spectrographs/templ_keck_lris.py b/pypeit/core/wavecal/spectrographs/templ_keck_lris.py index 840ece2488..87a69530ba 100644 --- a/pypeit/core/wavecal/spectrographs/templ_keck_lris.py +++ b/pypeit/core/wavecal/spectrographs/templ_keck_lris.py @@ -31,10 +31,6 @@ def keck_lris_red_mark4_R400(overwrite=False): +# Run em if __name__ == '__main__': - keck_lris_red_mark4_R400(overwrite=True) - #keck_deimos_830G(overwrite=False) # False for Testing; True for real - #keck_deimos_1200G(overwrite=False) - #keck_deimos_1200B() - #keck_deimos_900ZD(overwrite=False) - pass + keck_lris_red_mark4_R400()#overwrite=True) From 3ffd3aa2af2498d9e54c51f23f7e00302cd42062 Mon Sep 17 00:00:00 2001 From: profxj Date: Mon, 15 Nov 2021 12:10:27 -0800 Subject: [PATCH 21/30] another MJD fix --- pypeit/spectrographs/keck_lris.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 4ad30ae909..31d59feb0f 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -898,7 +898,8 @@ def get_detector_par(self, det, hdu=None): t2020_2 = time.Time("2020-07-29", format='isot') # Second run # Check for the new detector (Mark4) upgrade t2021_upgrade = time.Time("2021-04-15", format='isot') - date = time.Time(hdu[0].header['MJD'], format='mjd') + date = time.Time(self.get_meta_value(self.get_headarr(hdu), 'mjd'), + format='mjd') if date < t2020_1: pass From c162e133e5056518dd3c9fa4e6f5cad78128988c Mon Sep 17 00:00:00 2001 From: SunilSimha Date: Mon, 15 Nov 2021 13:28:15 -0800 Subject: [PATCH 22/30] lris xSecn header keyword doc --- doc/help/LRISr_section_keywords.pdf | Bin 0 -> 477662 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/help/LRISr_section_keywords.pdf diff --git a/doc/help/LRISr_section_keywords.pdf b/doc/help/LRISr_section_keywords.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8adfa1944fc4579836739a1c89e93b3660c0bc36 GIT binary patch literal 477662 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Ȱ?lNs^T{mxgc$ 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
  • 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 Jk_yX;{4eyb^+f;x literal 0 HcmV?d00001 From 77f663d416d734bd6e6bfbf4c14b40c75084b7fb Mon Sep 17 00:00:00 2001 From: profxj Date: Tue, 16 Nov 2021 08:08:08 -0800 Subject: [PATCH 23/30] bring in develop --- doc/nb/LRIS_red_mark4.ipynb | 385 +++++++++++++++++++++++++++++++----- 1 file changed, 333 insertions(+), 52 deletions(-) diff --git a/doc/nb/LRIS_red_mark4.ipynb b/doc/nb/LRIS_red_mark4.ipynb index a9c8ba3956..a14fcf1c6b 100644 --- a/doc/nb/LRIS_red_mark4.ipynb +++ b/doc/nb/LRIS_red_mark4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "6325d7cd", + "id": "b4c65b84", "metadata": {}, "source": [ "# New LRISr Mark4 detector" @@ -10,8 +10,8 @@ }, { "cell_type": "code", - "execution_count": 23, - "id": "6f1185ea", + "execution_count": 11, + "id": "ca6c3ac4", "metadata": {}, "outputs": [], "source": [ @@ -19,15 +19,18 @@ "import os, glob\n", "import numpy as np\n", "\n", + "from matplotlib import pyplot as plt\n", + "\n", "from astropy.io import fits\n", "\n", "from pypeit.core import parse\n", - "from pypeit.display import display" + "from pypeit.display import display\n", + "from pypeit import flatfield" ] }, { "cell_type": "markdown", - "id": "3375797d", + "id": "18ee77b0", "metadata": {}, "source": [ "# Load data" @@ -35,8 +38,8 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "d17f5bd5", + "execution_count": 2, + "id": "964f1851", "metadata": {}, "outputs": [], "source": [ @@ -47,7 +50,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "47fd5e62", + "id": "8992012b", "metadata": {}, "outputs": [], "source": [ @@ -57,7 +60,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "86d97c4e", + "id": "92182edf", "metadata": {}, "outputs": [], "source": [ @@ -67,7 +70,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "742a9b6b", + "id": "5bef65df", "metadata": {}, "outputs": [ { @@ -88,7 +91,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "56a1af39", + "id": "75dad938", "metadata": {}, "outputs": [], "source": [ @@ -98,7 +101,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "458f5f99", + "id": "262a809a", "metadata": {}, "outputs": [ { @@ -118,7 +121,7 @@ }, { "cell_type": "markdown", - "id": "54832cb7", + "id": "713758b6", "metadata": {}, "source": [ "# Load pixel file" @@ -127,7 +130,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "ff963623", + "id": "f0b70669", "metadata": {}, "outputs": [], "source": [ @@ -137,7 +140,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "bc5e0597", + "id": "09ba7322", "metadata": {}, "outputs": [ { @@ -158,7 +161,7 @@ { "cell_type": "code", "execution_count": 32, - "id": "6b7c3531", + "id": "ba9308cd", "metadata": {}, "outputs": [ { @@ -179,7 +182,7 @@ }, { "cell_type": "markdown", - "id": "bb84d2c7", + "id": "0d3c6143", "metadata": {}, "source": [ "# Overwrite header" @@ -188,7 +191,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "6d825e8b", + "id": "89ea21dd", "metadata": {}, "outputs": [], "source": [ @@ -198,7 +201,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "68af81e7", + "id": "8b857333", "metadata": {}, "outputs": [], "source": [ @@ -208,7 +211,7 @@ }, { "cell_type": "markdown", - "id": "00bdadec", + "id": "087fd380", "metadata": {}, "source": [ "## Write" @@ -217,7 +220,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "63333a35", + "id": "aa8a9d5e", "metadata": {}, "outputs": [ { @@ -238,7 +241,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "afc7781a", + "id": "7f6ba083", "metadata": {}, "outputs": [ { @@ -255,7 +258,7 @@ }, { "cell_type": "markdown", - "id": "099fe7b6", + "id": "e978c5c6", "metadata": {}, "source": [ "# Loop me" @@ -264,7 +267,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "b640890a", + "id": "6e868642", "metadata": {}, "outputs": [ { @@ -292,7 +295,7 @@ { "cell_type": "code", "execution_count": 29, - "id": "6046b2ad", + "id": "85ecc33c", "metadata": {}, "outputs": [], "source": [ @@ -307,7 +310,7 @@ }, { "cell_type": "markdown", - "id": "097e963e", + "id": "5198d498", "metadata": {}, "source": [ "## Moved them to their own folder.." @@ -315,7 +318,7 @@ }, { "cell_type": "markdown", - "id": "a676fd43", + "id": "6981be05", "metadata": {}, "source": [ "----" @@ -323,7 +326,7 @@ }, { "cell_type": "markdown", - "id": "220610d8", + "id": "ae1d4209", "metadata": {}, "source": [ "# Reudcin" @@ -331,7 +334,7 @@ }, { "cell_type": "markdown", - "id": "ac14c786", + "id": "cd2f9012", "metadata": {}, "source": [ "## Test\n", @@ -343,7 +346,7 @@ }, { "cell_type": "markdown", - "id": "b45bc87f", + "id": "d402288d", "metadata": {}, "source": [ "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits --proc" @@ -352,7 +355,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b3fca9b6", + "id": "be70c05f", "metadata": {}, "outputs": [], "source": [ @@ -363,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "0bd8ab91", + "id": "f095c34b", "metadata": {}, "source": [ "----" @@ -371,7 +374,7 @@ }, { "cell_type": "markdown", - "id": "00e0078b", + "id": "60a4f9c5", "metadata": {}, "source": [ "# Extract me" @@ -380,7 +383,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "6122c935", + "id": "613ffbc3", "metadata": {}, "outputs": [], "source": [ @@ -389,7 +392,7 @@ }, { "cell_type": "markdown", - "id": "38df5deb", + "id": "3ec6bb23", "metadata": {}, "source": [ "## Amp L1, aka AMPID3, aka readout sequence 2" @@ -398,7 +401,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "d5d9c788", + "id": "2b250734", "metadata": {}, "outputs": [ { @@ -419,7 +422,7 @@ { "cell_type": "code", "execution_count": 43, - "id": "6cb4bc7a", + "id": "5876409f", "metadata": {}, "outputs": [ { @@ -441,7 +444,7 @@ { "cell_type": "code", "execution_count": 44, - "id": "b14e1ccd", + "id": "4a15ae85", "metadata": {}, "outputs": [ { @@ -463,7 +466,7 @@ { "cell_type": "code", "execution_count": 45, - "id": "d36ef82f", + "id": "fef5b85e", "metadata": {}, "outputs": [ { @@ -485,7 +488,7 @@ { "cell_type": "code", "execution_count": 51, - "id": "9492fe56", + "id": "f7ed3eb8", "metadata": {}, "outputs": [ { @@ -506,7 +509,7 @@ }, { "cell_type": "markdown", - "id": "2ea6118f", + "id": "35c67efc", "metadata": {}, "source": [ "## Amp L2" @@ -515,7 +518,7 @@ { "cell_type": "code", "execution_count": 47, - "id": "55c82513", + "id": "eb151f34", "metadata": {}, "outputs": [ { @@ -537,7 +540,7 @@ { "cell_type": "code", "execution_count": 48, - "id": "e5307beb", + "id": "6810075b", "metadata": {}, "outputs": [], "source": [ @@ -547,7 +550,7 @@ { "cell_type": "code", "execution_count": 49, - "id": "94efd93b", + "id": "685641e6", "metadata": {}, "outputs": [ { @@ -569,7 +572,7 @@ { "cell_type": "code", "execution_count": 50, - "id": "3cb9c4ed", + "id": "6fc47915", "metadata": {}, "outputs": [ { @@ -590,37 +593,315 @@ }, { "cell_type": "markdown", - "id": "aac3a582", + "id": "29b68a62", "metadata": {}, "source": [ "----" ] }, + { + "cell_type": "markdown", + "id": "466c96e6", + "metadata": {}, + "source": [ + "# Checking the gain" + ] + }, + { + "cell_type": "markdown", + "id": "9d753249", + "metadata": {}, + "source": [ + "## Load a 4 amp flat" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c4faf1b2", + "metadata": {}, + "outputs": [], + "source": [ + "rdx_path = '/scratch/REDUX/Keck/LRIS/new_LRISr/keck_lris_red_mark4_A'" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "aaa21d9d", + "metadata": {}, + "outputs": [], + "source": [ + "master_file = os.path.join(rdx_path, 'Masters', 'MasterFlat_A_1_01.fits')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9d2ad3d5", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[1;32m[INFO] ::\u001b[0m \u001b[1;34mdatamodel.py 1480 from_file()\u001b[0m - Loading FlatImages from /scratch/REDUX/Keck/LRIS/new_LRISr/keck_lris_red_mark4_A/Masters/MasterFlat_A_1_01.fits\n" + ] + } + ], + "source": [ + "# Load\n", + "flatImages = flatfield.FlatImages.from_file(master_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "96962c94", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(4128, 4114)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flatImages.pixelflat_raw.shape" + ] + }, + { + "cell_type": "markdown", + "id": "0a435355", + "metadata": {}, + "source": [ + "## Spectral cut" + ] + }, { "cell_type": "code", - "execution_count": 33, - "id": "10f87403", + "execution_count": 14, + "id": "3afbf604", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2057.0" + "2057" ] }, - "execution_count": 33, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "4114/2" + "spat_mid = flatImages.pixelflat_raw.shape[1]//2\n", + "spat_mid" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "f4e9c0f1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4128" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "left_spec = np.median(flatImages.pixelflat_raw[:,spat_mid-3:spat_mid], axis=1)\n", + "left_spec.size" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "5ed76258", + "metadata": {}, + "outputs": [], + "source": [ + "right_spec = np.median(flatImages.pixelflat_raw[:,spat_mid:spat_mid+3], axis=1)" + ] + }, + { + "cell_type": "markdown", + "id": "21310207", + "metadata": {}, + "source": [ + "### Plot" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "22e2978e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.clf()\n", + "ax = plt.gca()\n", + "ax.plot(left_spec, label='left')\n", + "ax.plot(left_spec, label='right')\n", + "ax.legend()\n", + "ax.set_xlabel('spec')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "037aa1ac", + "metadata": {}, + "outputs": [], + "source": [ + "rtio_spec = left_spec/right_spec" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "ac1e237f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.clf()\n", + "ax = plt.gca()\n", + "ax.plot(rtio_spec, label='ratio', color='k')\n", + "#ax.plot(left_spec, label='right')\n", + "ax.set_xlabel('spec')\n", + "ax.legend()\n", + "plt.savefig('ratio_spec.png', dpi=300)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "194060c2", + "metadata": {}, + "source": [ + "## Spatial cuts" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "1ef28d74", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2064" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spec_mid = flatImages.pixelflat_raw.shape[0]//2\n", + "spec_mid" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "04f6aca0", + "metadata": {}, + "outputs": [], + "source": [ + "bot_spat = np.median(flatImages.pixelflat_raw[spec_mid-3:spec_mid, :], axis=0)\n", + "top_spat = np.median(flatImages.pixelflat_raw[spec_mid:spec_mid+3, :], axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "a6a20a9c", + "metadata": {}, + "outputs": [], + "source": [ + "rtio_spat = top_spat/bot_spat" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "33f36d28", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wkEjPBHh+vUuIH3rW7DHHpm0OHvvnXm86aZw8sn5zz3c5njJJdnP166FX/wiu0dTONP1pYTx411j9KefZraFeyr5Np9lkb45s4LfnY89lnxunTvDQQdl0nwJKBqcwy6/3N1/8EHutvB3lbaKL1+ngilTcr+LuHM788zcaWY6d848LvdsxapaNbfddttNjWnSdttN1WU9qieckL3t5Zcz28ClhZ+Hb6+9lnndhAmZ9GuuyT3G6NHZaXffrTplSvxxw3zaqaeqrluXfC6g+sQT8el33eWO9Z//JL92880zjz/80N23bZs5j6++Ut15Z5d+zDHZrx0yRHX1atVjj81/fueco/rZZ7npPXu6+8MOy912yy2Zc3j//fzHL/RZ/uMfmfSJEzPpS5eme304fc6cnD8rYKqWKB+2EeHGNCbTpmUet2rlBpH5brjFVH348QE33JBdPTR9evZ+48fn1ru3aOHq5+N8+imce252r6C//hXefTf/+QwfHp/+3//t7vNNyx4ete17LH35pSsxicChh2bSox0AXngBvv99N99UPn/8Y3zPJP/Z+JJbhw6ZbdHqvWJpqFTyfqhjaXgQYJr2pZkzs59XunrKGFMhK1ZAjx4uY33kkUzDbBpnnpl974UzKoBf/zo+aCQ57DCXwUbddlv6c4uTL3MMn9+wYZnHu+3m7l98MZPmg2VYtCE+SVybjK/q8dVG4TEcPnO+/nrYdtt07xG2557w8MPucfj6w20saZbg/dnPsp+/8EL28yefLP7c8rCgYUxj8fnn2c8fesjdP/oojBhR/PHSzHnUokVuvXm+MSJJXUUnTkx/XnHqsj55XM+kUvOlPF8S2nzzzLZZs+Dtt+EnP6nbsadMgSOPdIE8HLDCn0W+YOp/AES/r3POccH9q69cW8xZZ9Xt/BJY0DCm0pYtcwPKOnZM/5o0g//23LPwPh9+mDv+IVoaCUua4K++ja9pu/lWig+K4aBx772w8871P/bq1dmf67p1bhbd117LH0x90OzRI3fbE0+4Hxq9emUCX4lY0DCm0s45x1V75Muso77znbq9V1zd/vz52c/zZVRxVTiQGbldV40taLRtGx8Qtt669O/19dfZ179mjRsBv8ce+T+XQgNBfffiTz4pzXkGLGgYU2l1abicPNnNrVSsNFOBhwewRRUT2NISceMsGpMNG2CzzXLTe/XK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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.clf()\n", + "ax = plt.gca()\n", + "ax.plot(rtio_spat, label='ratio', color='r')\n", + "#ax.plot(left_spec, label='right')\n", + "ax.set_xlabel('spat')\n", + "ax.set_xlim(1400, 2600)\n", + "ax.set_ylim(0.9, 1.1)\n", + "ax.legend()\n", + "plt.savefig('ratio_spat.png', dpi=300)\n", + "\n", + "plt.show()" ] }, { "cell_type": "code", "execution_count": null, - "id": "7a452b21", + "id": "0245357e", "metadata": {}, "outputs": [], "source": [] From c73e0574e3255544968f90ea857611c2d3ac9796 Mon Sep 17 00:00:00 2001 From: profxj Date: Tue, 16 Nov 2021 13:07:39 -0800 Subject: [PATCH 24/30] 4 amps --- doc/nb/LRIS_red_mark4.ipynb | 136 ++++++++++++++++-------------- pypeit/spectrographs/keck_lris.py | 7 +- 2 files changed, 78 insertions(+), 65 deletions(-) diff --git a/doc/nb/LRIS_red_mark4.ipynb b/doc/nb/LRIS_red_mark4.ipynb index a14fcf1c6b..a127a8c748 100644 --- a/doc/nb/LRIS_red_mark4.ipynb +++ b/doc/nb/LRIS_red_mark4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b4c65b84", + "id": "91756735", "metadata": {}, "source": [ "# New LRISr Mark4 detector" @@ -11,7 +11,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "ca6c3ac4", + "id": "2be99f22", "metadata": {}, "outputs": [], "source": [ @@ -30,7 +30,7 @@ }, { "cell_type": "markdown", - "id": "18ee77b0", + "id": "337dfda7", "metadata": {}, "source": [ "# Load data" @@ -39,7 +39,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "964f1851", + "id": "e48ea21b", "metadata": {}, "outputs": [], "source": [ @@ -50,7 +50,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "8992012b", + "id": "235a6d08", "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "92182edf", + "id": "9d8457ec", "metadata": {}, "outputs": [], "source": [ @@ -70,7 +70,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "5bef65df", + "id": "6b763af6", "metadata": {}, "outputs": [ { @@ -91,7 +91,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "75dad938", + "id": "c0b473b4", "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "262a809a", + "id": "b2038ca2", "metadata": {}, "outputs": [ { @@ -121,7 +121,7 @@ }, { "cell_type": "markdown", - "id": "713758b6", + "id": "0d96ec76", "metadata": {}, "source": [ "# Load pixel file" @@ -130,7 +130,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "f0b70669", + "id": "877f812f", "metadata": {}, "outputs": [], "source": [ @@ -140,7 +140,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "09ba7322", + "id": "df5e1ffc", "metadata": {}, "outputs": [ { @@ -161,7 +161,7 @@ { "cell_type": "code", "execution_count": 32, - "id": "ba9308cd", + "id": "d01476af", "metadata": {}, "outputs": [ { @@ -182,7 +182,7 @@ }, { "cell_type": "markdown", - "id": "0d3c6143", + "id": "117f6ccf", "metadata": {}, "source": [ "# Overwrite header" @@ -191,7 +191,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "89ea21dd", + "id": "6f1d2922", "metadata": {}, "outputs": [], "source": [ @@ -201,7 +201,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "8b857333", + "id": "448fc8aa", "metadata": {}, "outputs": [], "source": [ @@ -211,7 +211,7 @@ }, { "cell_type": "markdown", - "id": "087fd380", + "id": "926baca1", "metadata": {}, "source": [ "## Write" @@ -220,7 +220,7 @@ { "cell_type": "code", "execution_count": 21, - "id": "aa8a9d5e", + "id": "0ee29e90", "metadata": {}, "outputs": [ { @@ -241,7 +241,7 @@ { "cell_type": "code", "execution_count": 22, - "id": "7f6ba083", + "id": "b5689a62", "metadata": {}, "outputs": [ { @@ -258,7 +258,7 @@ }, { "cell_type": "markdown", - "id": "e978c5c6", + "id": "6ef71e3e", "metadata": {}, "source": [ "# Loop me" @@ -267,7 +267,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "6e868642", + "id": "bf108893", "metadata": {}, "outputs": [ { @@ -295,7 +295,7 @@ { "cell_type": "code", "execution_count": 29, - "id": "85ecc33c", + "id": "46c56928", "metadata": {}, "outputs": [], "source": [ @@ -310,7 +310,7 @@ }, { "cell_type": "markdown", - "id": "5198d498", + "id": "40bc108d", "metadata": {}, "source": [ "## Moved them to their own folder.." @@ -318,7 +318,7 @@ }, { "cell_type": "markdown", - "id": "6981be05", + "id": "dd49fae5", "metadata": {}, "source": [ "----" @@ -326,7 +326,7 @@ }, { "cell_type": "markdown", - "id": "ae1d4209", + "id": "19b648a5", "metadata": {}, "source": [ "# Reudcin" @@ -334,7 +334,7 @@ }, { "cell_type": "markdown", - "id": "cd2f9012", + "id": "81b523ce", "metadata": {}, "source": [ "## Test\n", @@ -346,7 +346,7 @@ }, { "cell_type": "markdown", - "id": "d402288d", + "id": "73acc961", "metadata": {}, "source": [ "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits --proc" @@ -355,7 +355,7 @@ { "cell_type": "code", "execution_count": null, - "id": "be70c05f", + "id": "1a2381d4", "metadata": {}, "outputs": [], "source": [ @@ -366,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "f095c34b", + "id": "2c8c6d18", "metadata": {}, "source": [ "----" @@ -374,7 +374,7 @@ }, { "cell_type": "markdown", - "id": "60a4f9c5", + "id": "2044a723", "metadata": {}, "source": [ "# Extract me" @@ -383,7 +383,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "613ffbc3", + "id": "e5c75fd0", "metadata": {}, "outputs": [], "source": [ @@ -392,7 +392,7 @@ }, { "cell_type": "markdown", - "id": "3ec6bb23", + "id": "d6963f8b", "metadata": {}, "source": [ "## Amp L1, aka AMPID3, aka readout sequence 2" @@ -401,7 +401,7 @@ { "cell_type": "code", "execution_count": 18, - "id": "2b250734", + "id": "b60abf5b", "metadata": {}, "outputs": [ { @@ -422,7 +422,7 @@ { "cell_type": "code", "execution_count": 43, - "id": "5876409f", + "id": "55a57ecd", "metadata": {}, "outputs": [ { @@ -444,7 +444,7 @@ { "cell_type": "code", "execution_count": 44, - "id": "4a15ae85", + "id": "dc1d27d4", "metadata": {}, "outputs": [ { @@ -466,7 +466,7 @@ { "cell_type": "code", "execution_count": 45, - "id": "fef5b85e", + "id": "b900b10e", "metadata": {}, "outputs": [ { @@ -488,7 +488,7 @@ { "cell_type": "code", "execution_count": 51, - "id": "f7ed3eb8", + "id": "854d352a", "metadata": {}, "outputs": [ { @@ -509,7 +509,7 @@ }, { "cell_type": "markdown", - "id": "35c67efc", + "id": "dcf11314", "metadata": {}, "source": [ "## Amp L2" @@ -518,7 +518,7 @@ { "cell_type": "code", "execution_count": 47, - "id": "eb151f34", + "id": "6100a075", "metadata": {}, "outputs": [ { @@ -540,7 +540,7 @@ { "cell_type": "code", "execution_count": 48, - "id": "6810075b", + "id": "162cf985", "metadata": {}, "outputs": [], "source": [ @@ -550,7 +550,7 @@ { "cell_type": "code", "execution_count": 49, - "id": "685641e6", + "id": "d46d0710", "metadata": {}, "outputs": [ { @@ -572,7 +572,7 @@ { "cell_type": "code", "execution_count": 50, - "id": "6fc47915", + "id": "43758335", "metadata": {}, "outputs": [ { @@ -593,7 +593,7 @@ }, { "cell_type": "markdown", - "id": "29b68a62", + "id": "5b7cd968", "metadata": {}, "source": [ "----" @@ -601,7 +601,7 @@ }, { "cell_type": "markdown", - "id": "466c96e6", + "id": "ab81d254", "metadata": {}, "source": [ "# Checking the gain" @@ -609,7 +609,17 @@ }, { "cell_type": "markdown", - "id": "9d753249", + "id": "fc9a6ffa", + "metadata": {}, + "source": [ + "## The following was for an original set of gain values.\n", + "\n", + "## Use chk_lris_mark4_gain.py in the DevSuite repo (dev_algorithms/lris) for further analysis" + ] + }, + { + "cell_type": "markdown", + "id": "d8de2231", "metadata": {}, "source": [ "## Load a 4 amp flat" @@ -618,7 +628,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "c4faf1b2", + "id": "013f88b6", "metadata": {}, "outputs": [], "source": [ @@ -628,7 +638,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "aaa21d9d", + "id": "a65f65af", "metadata": {}, "outputs": [], "source": [ @@ -638,7 +648,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "9d2ad3d5", + "id": "edfcd3ca", "metadata": {}, "outputs": [ { @@ -657,7 +667,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "96962c94", + "id": "04b3583d", "metadata": {}, "outputs": [ { @@ -677,7 +687,7 @@ }, { "cell_type": "markdown", - "id": "0a435355", + "id": "83646560", "metadata": {}, "source": [ "## Spectral cut" @@ -686,7 +696,7 @@ { "cell_type": "code", "execution_count": 14, - "id": "3afbf604", + "id": "bda1b2e3", "metadata": {}, "outputs": [ { @@ -708,7 +718,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "f4e9c0f1", + "id": "234a5fc6", "metadata": {}, "outputs": [ { @@ -730,7 +740,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "5ed76258", + "id": "6eed74a1", "metadata": {}, "outputs": [], "source": [ @@ -739,7 +749,7 @@ }, { "cell_type": "markdown", - "id": "21310207", + "id": "96c5eab7", "metadata": {}, "source": [ "### Plot" @@ -748,7 +758,7 @@ { "cell_type": "code", "execution_count": 24, - "id": "22e2978e", + "id": "fdad943b", "metadata": {}, "outputs": [ { @@ -777,7 +787,7 @@ { "cell_type": "code", "execution_count": 20, - "id": "037aa1ac", + "id": "1c982067", "metadata": {}, "outputs": [], "source": [ @@ -787,7 +797,7 @@ { "cell_type": "code", "execution_count": 34, - "id": "ac1e237f", + "id": "84d324cd", "metadata": {}, "outputs": [ { @@ -816,7 +826,7 @@ }, { "cell_type": "markdown", - "id": "194060c2", + "id": "f98607d6", "metadata": {}, "source": [ "## Spatial cuts" @@ -825,7 +835,7 @@ { "cell_type": "code", "execution_count": 25, - "id": "1ef28d74", + "id": "eb5b44c9", "metadata": {}, "outputs": [ { @@ -847,7 +857,7 @@ { "cell_type": "code", "execution_count": 26, - "id": "04f6aca0", + "id": "f8836780", "metadata": {}, "outputs": [], "source": [ @@ -858,7 +868,7 @@ { "cell_type": "code", "execution_count": 27, - "id": "a6a20a9c", + "id": "716d7338", "metadata": {}, "outputs": [], "source": [ @@ -868,7 +878,7 @@ { "cell_type": "code", "execution_count": 35, - "id": "33f36d28", + "id": "490efde6", "metadata": {}, "outputs": [ { @@ -901,7 +911,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0245357e", + "id": "084c35bd", "metadata": {}, "outputs": [], "source": [] diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index f50f0bc5dd..6c59bfe46f 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -1215,8 +1215,11 @@ def get_detector_par(self, det, hdu=None): pass elif detector_dict1['numamplifiers'] == 4: # From the web page on 2021-10-04 (L1, L2, U1, U2) - # TODO -- Make sure this is right -- See doc by SS - detector_dict1['gain'] = np.atleast_1d([1.71, 1.64, 1.61, 1.67]) + # Corrected by JXP and SS using chk_lris_mark4_gain.py in the DevSuite + detector_dict1['gain'] = np.atleast_1d([1.710, + 1.64*1.0245, # L2 + 1.61*1.0185, # U1 + 1.67*1.0052]) # U2 detector_dict1['ronoise'] = np.atleast_1d([3.64, 3.45, 3.65, 3.52]) else: msgs.error("Did not see this namps coming..") From 8ab14bbb7daa08af02e1b9a12d281ba4c1155adc Mon Sep 17 00:00:00 2001 From: profxj Date: Tue, 16 Nov 2021 13:19:54 -0800 Subject: [PATCH 25/30] modify for setup --- pypeit/spectrographs/keck_lris.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 6c59bfe46f..8e527a50e5 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -137,6 +137,8 @@ def init_meta(self): self.meta['dispangle'] = dict(ext=0, card='GRANGLE', rtol=1e-2) self.meta['frameno'] = dict(ext=0, card='FRAMENO') self.meta['instrument'] = dict(ext=0, card='INSTRUME') + # Extras for pypeit file + self.meta['amp'] = dict(ext=0, card='NUMAMPS') # This may evolve with date to TAPLINES # Lamps -- Have varied in time.. for kk in range(12): # This needs to match the length of LAMPS below @@ -216,7 +218,7 @@ def pypeit_file_keys(self): :class:`~pypeit.metadata.PypeItMetaData` instance to print to the :ref:`pypeit_file`. """ - return super().pypeit_file_keys() + ['frameno'] + return super().pypeit_file_keys() + ['frameno', 'amp'] def check_frame_type(self, ftype, fitstbl, exprng=None): """ @@ -1072,7 +1074,7 @@ def configuration_keys(self): and used to constuct the :class:`~pypeit.metadata.PypeItMetaData` object. """ - return super().configuration_keys() + ['dispangle'] + return super().configuration_keys() + ['dispangle', 'amp'] def bpm(self, filename, det, shape=None, msbias=None): """ From 3c63999fdaf31518d0fc232f753848bdbd840563 Mon Sep 17 00:00:00 2001 From: profxj Date: Tue, 16 Nov 2021 13:27:27 -0800 Subject: [PATCH 26/30] amp fix --- pypeit/spectrographs/keck_lris.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 8e527a50e5..2d994386ba 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -138,7 +138,7 @@ def init_meta(self): self.meta['frameno'] = dict(ext=0, card='FRAMENO') self.meta['instrument'] = dict(ext=0, card='INSTRUME') # Extras for pypeit file - self.meta['amp'] = dict(ext=0, card='NUMAMPS') # This may evolve with date to TAPLINES + self.meta['amp'] = dict(card=None, compound=True) # Lamps -- Have varied in time.. for kk in range(12): # This needs to match the length of LAMPS below @@ -190,6 +190,11 @@ def compound_meta(self, headarr, meta_key): return ('off' if plamps[len(old_lamp_names)-1] == '0' else 'on') else: # Lamp didn't exist. Set to None return 'None' + elif 'amp' in meta_key: + if self.name == 'keck_lris_red_mark4': + return headarr[0]['TAPLINES'] + else: + return headarr[0]['NUMAMPS'] else: msgs.error("Not ready for this compound meta") @@ -218,7 +223,7 @@ def pypeit_file_keys(self): :class:`~pypeit.metadata.PypeItMetaData` instance to print to the :ref:`pypeit_file`. """ - return super().pypeit_file_keys() + ['frameno', 'amp'] + return super().pypeit_file_keys() + ['frameno'] def check_frame_type(self, ftype, fitstbl, exprng=None): """ @@ -1074,7 +1079,7 @@ def configuration_keys(self): and used to constuct the :class:`~pypeit.metadata.PypeItMetaData` object. """ - return super().configuration_keys() + ['dispangle', 'amp'] + return super().configuration_keys() + ['dispangle', 'amp', 'binning'] def bpm(self, filename, det, shape=None, msbias=None): """ From 52ca7aca262b2e789ff427321fb5c89ab8802a22 Mon Sep 17 00:00:00 2001 From: profxj Date: Wed, 17 Nov 2021 12:28:43 -0800 Subject: [PATCH 27/30] 2 amp --- pypeit/spectrographs/keck_lris.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 2d994386ba..06b324ae72 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -1178,7 +1178,7 @@ def get_detector_par(self, det, hdu=None): nonlinear=0.76, mincounts=-1e10, numamplifiers=2, # These are defaults but can modify below - gain=np.atleast_1d([1.61, 1.67]), # Assumes AMPMODE=HSPLIT,VUP + gain=np.atleast_1d([1.61, 1.67*0.959]), # Assumes AMPMODE=HSPLIT,VUP; Corrected by JXP using 2x1 binned flats ronoise=np.atleast_1d([3.65, 3.52]), ) From 71e76ce587e025a195cf6694445305d7d8304a9d Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 18 Nov 2021 09:40:15 -0800 Subject: [PATCH 28/30] edits to PR --- pypeit/spectrographs/keck_lris.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 06b324ae72..7903cc3ef1 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -137,8 +137,12 @@ def init_meta(self): self.meta['dispangle'] = dict(ext=0, card='GRANGLE', rtol=1e-2) self.meta['frameno'] = dict(ext=0, card='FRAMENO') self.meta['instrument'] = dict(ext=0, card='INSTRUME') + # Extras for pypeit file - self.meta['amp'] = dict(card=None, compound=True) + if self.name == 'keck_lris_red_mark4': + self.meta['amp'] = dict(ext=0, card='TAPLINES') + else: + self.meta['amp'] = dict(ext=0, card='NUMAMPS') # Lamps -- Have varied in time.. for kk in range(12): # This needs to match the length of LAMPS below @@ -190,11 +194,6 @@ def compound_meta(self, headarr, meta_key): return ('off' if plamps[len(old_lamp_names)-1] == '0' else 'on') else: # Lamp didn't exist. Set to None return 'None' - elif 'amp' in meta_key: - if self.name == 'keck_lris_red_mark4': - return headarr[0]['TAPLINES'] - else: - return headarr[0]['NUMAMPS'] else: msgs.error("Not ready for this compound meta") From 9c3af0083ebc714a45cb98a748166c016c665cae Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 18 Nov 2021 13:10:04 -0800 Subject: [PATCH 29/30] test fixes --- pypeit/spectrographs/keck_lris.py | 4 +++- pypeit/tests/test_setups.py | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 7903cc3ef1..230306f4c8 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -300,7 +300,9 @@ def lamps(self, fitstbl, status): return np.any(np.array([ fitstbl[k] == 'on' for k in fitstbl.keys() if k in dome_lamp_stat]), axis=0) elif status == 'halogen': - return fitstbl['lampstat12'] == 'on' + halo_lamp_stat = ['lampstat12'] + return np.any(np.array([ fitstbl[k] == 'on' for k in fitstbl.keys() + if k in halo_lamp_stat]), axis=0) else: msgs.error(f"Bad status option! {status}") diff --git a/pypeit/tests/test_setups.py b/pypeit/tests/test_setups.py index 00094fd09e..10b7ffbca3 100644 --- a/pypeit/tests/test_setups.py +++ b/pypeit/tests/test_setups.py @@ -78,6 +78,26 @@ def test_setup_made_pypeit_file(): # Cleanup shutil.rmtree(data_path('shane_kast_blue_A')) +@dev_suite_required +def test_setup_keck_lris_red_mark4(): + droot = os.path.join(os.environ['PYPEIT_DEV'], 'RAW_DATA/keck_lris_red_mark4/long_400_8500') + droot += '/' + pargs = Setup.parse_args(['-r', droot, '-s', 'keck_lris_red_mark4']) + Setup.main(pargs) + + cwd = os.getcwd() + setup_dir = os.path.join(cwd, 'setup_files') + assert os.path.isdir(setup_dir), 'No setup_files directory created' + + files = glob.glob(os.path.join(setup_dir, 'keck_lris_red_mark4*')) + ext = [f.split('.')[-1] for f in files] + expected = expected_file_extensions() + assert np.all([e in ext for e in expected]), \ + 'Did not find all setup file extensions: {0}'.format(expected) + + # Clean-up + shutil.rmtree(setup_dir) + @dev_suite_required def test_setup_keck_lris_red(): From 9be0ac13d37c0c78289b31dc05d71c815c19861c Mon Sep 17 00:00:00 2001 From: profxj Date: Thu, 18 Nov 2021 13:36:54 -0800 Subject: [PATCH 30/30] remove 0,0 --- pypeit/spectrographs/keck_lris.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pypeit/spectrographs/keck_lris.py b/pypeit/spectrographs/keck_lris.py index 230306f4c8..632e530e37 100644 --- a/pypeit/spectrographs/keck_lris.py +++ b/pypeit/spectrographs/keck_lris.py @@ -166,10 +166,6 @@ def compound_meta(self, headarr, meta_key): binspatial, binspec = parse.parse_binning(headarr[0]['BINNING']) binning = parse.binning2string(binspec, binspatial) - # Hack for the not-stable commission version of the Mark4 detector - if binning == '0,0': - binning = '1,1' - return binning elif 'lampstat' in meta_key: idx = int(meta_key[-2:])