diff --git a/CHANGES.rst b/CHANGES.rst index 077232c0fa..f1414a2a52 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -16,6 +16,7 @@ - uses dither offeset recorded in the header as default slitmask_offset, but the user can provide the maskdef_id of a slit with a bright object that can trace the offset. - improvements in the frame typing +- Implements new Mark4 detector for Keck/LRISr (aka keck_lris_red_mark4) 1.6.0 (1 Oct 2021) diff --git a/doc/help/LRISr_section_keywords.pdf b/doc/help/LRISr_section_keywords.pdf new file mode 100644 index 0000000000..8adfa1944f Binary files /dev/null and b/doc/help/LRISr_section_keywords.pdf differ diff --git a/doc/lris.rst b/doc/lris.rst index 3903bef6df..dbb8bed068 100644 --- a/doc/lris.rst +++ b/doc/lris.rst @@ -82,8 +82,17 @@ very blue. keck_lris_red ============= -Taking Calibrations for LRISr -============================= +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! LRISr Default Settings ++++++++++++++++++++++ @@ -95,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 @@ -123,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 diff --git a/doc/nb/LRIS_red_mark4.ipynb b/doc/nb/LRIS_red_mark4.ipynb new file mode 100644 index 0000000000..a127a8c748 --- /dev/null +++ b/doc/nb/LRIS_red_mark4.ipynb @@ -0,0 +1,941 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "91756735", + "metadata": {}, + "source": [ + "# New LRISr Mark4 detector" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "2be99f22", + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "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\n", + "from pypeit import flatfield" + ] + }, + { + "cell_type": "markdown", + "id": "337dfda7", + "metadata": {}, + "source": [ + "# Load data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e48ea21b", + "metadata": {}, + "outputs": [], + "source": [ + "dpath = '/scratch/REDUX/Keck/LRIS/new_LRISr'\n", + "rpath = os.path.join(dpath, 'Raw')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "235a6d08", + "metadata": {}, + "outputs": [], + "source": [ + "dfile = os.path.join(rpath, 'r211004_00003.fits')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "9d8457ec", + "metadata": {}, + "outputs": [], + "source": [ + "hdul = fits.open(dfile)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6b763af6", + "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": 6, + "id": "c0b473b4", + "metadata": {}, + "outputs": [], + "source": [ + "raw_data = hdul[0].data.astype(float)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b2038ca2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(4248, 4234)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "raw_data.shape" + ] + }, + { + "cell_type": "markdown", + "id": "0d96ec76", + "metadata": {}, + "source": [ + "# Load pixel file" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "877f812f", + "metadata": {}, + "outputs": [], + "source": [ + "pix_file = os.path.join(dpath, 'pixelsL2U2L1U1_1_1.fits')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "df5e1ffc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "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": "code", + "execution_count": 32, + "id": "d01476af", + "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": "117f6ccf", + "metadata": {}, + "source": [ + "# Overwrite header" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "6f1d2922", + "metadata": {}, + "outputs": [], + "source": [ + "head0 = hdul[0].header" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "448fc8aa", + "metadata": {}, + "outputs": [], + "source": [ + "for card, value in hdu_pix[0].header.items():\n", + " head0[card] = value" + ] + }, + { + "cell_type": "markdown", + "id": "926baca1", + "metadata": {}, + "source": [ + "## Write" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "0ee29e90", + "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": "b5689a62", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: VerifyWarning: Card is too long, comment will be truncated. [astropy.io.fits.card]\n" + ] + } + ], + "source": [ + "hdul.writeto(dfile.replace('.fits', '_upd.fits'))" + ] + }, + { + "cell_type": "markdown", + "id": "6ef71e3e", + "metadata": {}, + "source": [ + "# Loop me" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "bf108893", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['/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": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rfiles = glob.glob(rpath+'/*.fits')\n", + "rfiles" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "46c56928", + "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": "40bc108d", + "metadata": {}, + "source": [ + "## Moved them to their own folder.." + ] + }, + { + "cell_type": "markdown", + "id": "dd49fae5", + "metadata": {}, + "source": [ + "----" + ] + }, + { + "cell_type": "markdown", + "id": "19b648a5", + "metadata": {}, + "source": [ + "# Reudcin" + ] + }, + { + "cell_type": "markdown", + "id": "81b523ce", + "metadata": {}, + "source": [ + "## Test\n", + "\n", + "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits\n", + "\n", + "### Looks good!" + ] + }, + { + "cell_type": "markdown", + "id": "73acc961", + "metadata": {}, + "source": [ + "## pypeit_view_fits keck_lris_red_mark4 r211004_00003_upd.fits --proc" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a2381d4", + "metadata": {}, + "outputs": [], + "source": [ + "## Setup\n", + "\n", + "## " + ] + }, + { + "cell_type": "markdown", + "id": "2c8c6d18", + "metadata": {}, + "source": [ + "----" + ] + }, + { + "cell_type": "markdown", + "id": "2044a723", + "metadata": {}, + "source": [ + "# Extract me" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e5c75fd0", + "metadata": {}, + "outputs": [], + "source": [ + "final_img = np.zeros((2064*2, 2057*2))" + ] + }, + { + "cell_type": "markdown", + "id": "d6963f8b", + "metadata": {}, + "source": [ + "## Amp L1, aka AMPID3, aka readout sequence 2" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b60abf5b", + "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": "55a57ecd", + "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": "dc1d27d4", + "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": "b900b10e", + "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": "854d352a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "display.show_image(amp_l1)" + ] + }, + { + "cell_type": "markdown", + "id": "dcf11314", + "metadata": {}, + "source": [ + "## Amp L2" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "6100a075", + "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": "162cf985", + "metadata": {}, + "outputs": [], + "source": [ + "slice2b = (slice2[1], slice2[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "d46d0710", + "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": "43758335", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "display.show_image(amp_l2)" + ] + }, + { + "cell_type": "markdown", + "id": "5b7cd968", + "metadata": {}, + "source": [ + "----" + ] + }, + { + "cell_type": "markdown", + "id": "ab81d254", + "metadata": {}, + "source": [ + "# Checking the gain" + ] + }, + { + "cell_type": "markdown", + "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" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "013f88b6", + "metadata": {}, + "outputs": [], + "source": [ + "rdx_path = '/scratch/REDUX/Keck/LRIS/new_LRISr/keck_lris_red_mark4_A'" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "a65f65af", + "metadata": {}, + "outputs": [], + "source": [ + "master_file = os.path.join(rdx_path, 'Masters', 'MasterFlat_A_1_01.fits')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "edfcd3ca", + "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": "04b3583d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(4128, 4114)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flatImages.pixelflat_raw.shape" + ] + }, + { + "cell_type": "markdown", + "id": "83646560", + "metadata": {}, + "source": [ + "## Spectral cut" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "bda1b2e3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2057" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spat_mid = flatImages.pixelflat_raw.shape[1]//2\n", + "spat_mid" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "234a5fc6", + "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": "6eed74a1", + "metadata": {}, + "outputs": [], + "source": [ + "right_spec = np.median(flatImages.pixelflat_raw[:,spat_mid:spat_mid+3], axis=1)" + ] + }, + { + "cell_type": "markdown", + "id": "96c5eab7", + "metadata": {}, + "source": [ + "### Plot" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "fdad943b", + "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": "1c982067", + "metadata": {}, + "outputs": [], + "source": [ + "rtio_spec = left_spec/right_spec" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "84d324cd", + "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": "f98607d6", + "metadata": {}, + "source": [ + "## Spatial cuts" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "eb5b44c9", + "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": "f8836780", + "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": "716d7338", + "metadata": {}, + "outputs": [], + "source": [ + "rtio_spat = top_spat/bot_spat" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "490efde6", + "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": "084c35bd", + "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/core/wavecal/autoid.py b/pypeit/core/wavecal/autoid.py index 1ab05c0ca6..c07b60289e 100644 --- a/pypeit/core/wavecal/autoid.py +++ b/pypeit/core/wavecal/autoid.py @@ -938,17 +938,27 @@ def full_template(spec, lamps, par, ok_mask, det, binspectral, nsnippet=2, 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: # No padding necessary + 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, label='template') # Template + ax.plot(xvals, tspec, label='template') # Template ax.plot(xvals, np.roll(pspec, int(shift_cc)), 'k', label='input') # Input ax.legend() plt.show() 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..87a69530ba --- /dev/null +++ b/pypeit/core/wavecal/spectrographs/templ_keck_lris.py @@ -0,0 +1,36 @@ +""" 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) + + + +# Run em +if __name__ == '__main__': + keck_lris_red_mark4_R400()#overwrite=True) 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 0000000000..b8cede8938 Binary files /dev/null and b/pypeit/data/arc_lines/reid_arxiv/keck_lris_red_mark4_R400.fits differ 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..69ed630008 --- /dev/null +++ b/pypeit/data/spectrographs/keck_lris_red_mark4/dict_for_ampmode.json @@ -0,0 +1,12 @@ +{ + "HLEFT,VDOWN": "L1", + "HLEFT,VSPLIT": "L2L1", + "HLEFT,VUP": "L2", + "HRIGHT,VDOWN": "U1", + "HRIGHT,VSPLIT": "U2U1", + "HRIGHT,VUP": "U2", + "HSPLIT,VDOWN": "L1U1", + "HSPLIT,VSPLIT": "L2U2L1U1", + "ALL": "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 e24fa04a05..632e530e37 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 @@ -15,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 @@ -123,7 +126,7 @@ 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') self.meta['airmass'] = dict(ext=0, card='AIRMASS') @@ -135,6 +138,12 @@ def init_meta(self): self.meta['frameno'] = dict(ext=0, card='FRAMENO') self.meta['instrument'] = dict(ext=0, card='INSTRUME') + # Extras for pypeit file + 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 self.meta['lampstat{:02d}'.format(kk+1)] = dict(card=None, compound=True) @@ -156,10 +165,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) + 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(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: @@ -237,8 +247,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 +284,24 @@ 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': + 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}") + raise ValueError('No implementation for status = {0}'.format(status)) def get_rawimage(self, raw_file, det): @@ -832,7 +852,7 @@ class KeckLRISRSpectrograph(KeckLRISSpectrograph): camera = 'LRISr' header_name = 'LRIS' 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): """ @@ -883,7 +903,10 @@ 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 - date = time.Time(hdu[0].header['MJD-OBS'], format='mjd') + # Check for the new detector (Mark4) upgrade + t2021_upgrade = time.Time("2021-04-15", format='isot') + date = time.Time(self.get_meta_value(self.get_headarr(hdu), 'mjd'), + format='mjd') if date < t2020_1: pass @@ -893,6 +916,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: + # 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]) @@ -997,7 +1023,10 @@ def config_specific_par(self, scifile, inp_par=None): # Wavelength calibrations if self.get_meta_value(scifile, 'dispname') == '400/8500': # This is basically a reidentify - par['calibrations']['wavelengths']['reid_arxiv'] = 'keck_lris_red_400.fits' + if self.name == 'keck_lris_red_mark4': + par['calibrations']['wavelengths']['reid_arxiv'] = 'keck_lris_red_mark4_R400.fits' + else: + par['calibrations']['wavelengths']['reid_arxiv'] = 'keck_lris_red_400.fits' par['calibrations']['wavelengths']['method'] = 'full_template' par['calibrations']['wavelengths']['sigdetect'] = 20.0 par['calibrations']['wavelengths']['nsnippet'] = 1 @@ -1047,7 +1076,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', 'binning'] def bpm(self, filename, det, shape=None, msbias=None): """ @@ -1099,6 +1128,189 @@ def bpm(self, filename, det, shape=None, msbias=None): return bpm_img +class KeckLRISRMark4Spectrograph(KeckLRISRSpectrograph): + """ + Child to handle the new Mark4 detector + """ + ndet = 1 + name = 'keck_lris_red_mark4' + supported = True + comment = 'New Mark4 detector, circa Spring 2021; Supported setups = R400' + + 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): + """ + 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=0, + specaxis=0, + specflip=True, + spatflip=False, + 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.61, 1.67*0.959]), # Assumes AMPMODE=HSPLIT,VUP; Corrected by JXP using 2x1 binned flats + ronoise=np.atleast_1d([3.65, 3.52]), + ) + + 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("2022-01-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") + + # 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]}_{swap_binning.replace(",","_")}.fits') + correct_header = fits.getheader(header_file) + else: + correct_header = hdu[0].header + + # Deal with number of amps + 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 + if detector_dict1['numamplifiers'] == 2: + pass + elif detector_dict1['numamplifiers'] == 4: + # From the web page on 2021-10-04 (L1, L2, U1, U2) + # 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..") + + detector_dict1['datasec'] = [] + detector_dict1['oscansec'] = [] + + # 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 + # 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 + + 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. + """ + # Note: There is no way we know to super super super + return spectrograph.Spectrograph.get_rawimage(self, raw_file, det) class KeckLRISROrigSpectrograph(KeckLRISRSpectrograph): """ @@ -1108,7 +1320,7 @@ class KeckLRISROrigSpectrograph(KeckLRISRSpectrograph): name = 'keck_lris_red_orig' camera = 'LRISr' supported = True - comment = 'Original detector; replaced in 20??; see :doc:`lris`' + comment = 'Original detector; replaced in 2009; see :doc:`lris`' @classmethod def default_pypeit_par(cls): @@ -1309,7 +1521,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 @@ -1439,7 +1650,6 @@ 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']), \ rawdatasec_img, oscansec_img 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():