|
The first stage in the DEEP2 pipeline produces
calibSlit.xxxx.nnnB.fits and calibSlit.xxxx.nnnR.fits.
These files contain information relevant to the arc and flat
calibration frames. Reading one of these files can be done via the
mrdfits command (this routine is part of the GODDARD IDL/FITS
library and is contained in the SDSS IDLUTILS package). For example,
the command     IDL> cc = mrdfits('calibSlit.2200.004B.fits', 1) reads the first extension of this calibSlit file into the variable cc. To find out what cc contains, execute     IDL> help, cc, /str which will list the IDL structure 'tags' showing the type and the size of each tag. Detailed defintions of the calibSlit structure tags, pertaining to the 1st extension of the calibSlit files, are given in below... |
|   FLAT: | 2-d array used for defringing. Divide frame by 1+flat to correct for fringing. |
|   IVAR: | inverse variance of flat (not used). |
|   MASK: | describes whether this is a bad pixel, or vignetted: 1 = bad, 0 = good. |
|   SLITFN: | 1-d array for correcting slitlet irregularities (normalized to 1). |
|   X0: | 1-d array containing position of left edge of slitlet (in ccd pixels: 1 element for each pixel in spectral direction). |
|   X1: | same as X0, but for right edge. |
|   DLAM: | shift in wavelength for this row, relative to nominal fit. (All wavelengths are specified in Angstroms). |
|   LAMBDAX: | coefficients for a Legendre polynomial over [0, 4095] defining wavelength as a function of pixel for the central row of the slitlet. |
|   TILTX: | coefficients of Legendre polynomial giving tilt of
constant lambda locus as a function of pixel (if x,y define postion in
2-d array, and P is the Legendre polyomial and yc is the central y value
(in pixels), then lambda(x,y) = P(x|LAMBDAX) * (1.0 + (y-yc)*P(x|TILTX)) + DLAM(y) |
|   RAWFLAT: | 2-d array of raw flat image (for debugging purposes). |
|   RAWARC: | 2-d array of raw arc image (for debugging purposes). |
|
For a TRACESET wavelength solution, LAMBDAX and TILTX would be set to
zero or omitted, and new parameters FUNC, COEFF, XMIN, and XMAX will appear.
TRACESETs are more flexible than the POLYFLAG format, but testing has
shown that the POLYFLAG scheme appears to be slightly more robust.
In the TRACESET scheme, each row of COEFF is analogous
to LAMBDAX; i.e., 6 coefficients defining a legendre polynomial. The
traceset deals with the tilted lines by having a different wavelength
solution for each row, rather than a global TILTX function. Note that a 2-d wavelength array is NOT contained in the calibSlit structure. But the full wavelength solution can be obtained by using the simple routine lambda_eval.pro. The syntax for the lambda_eval function is as follows:     IDL> wv = lambda_eval(cc) where cc is the calibSlit structure contained in the first HDU of a calibSlit file (read using mrdfits). The result, wv, is a 2-d float array ([4096, 229]) containing the wavelength value at each pixel in units of angstroms. This same format of handling the wavelength solution (TILTX, LAMBDAX, DLAM) is propogated through the pipeline to the subsequent output files (spSlit and slit files). Using the same lambda_eval function, 2-d wavelength arrays can be determined using the spSlit and slit structures. |