Basic CCD reductions. The idea here is to process the ALL THE SPECTRAL DATA, including the object, pflat, dflat, and sflat data, to [OTZF] before extracting.

Find the biassec and trimsize. You must trim out as much of the image as you can to make the flat fielding as easy as possible. Process the data through [OTZ].


(pixeltype = "real real") Output and calculation pixel datatypes
(verbose = yes) Print log information to the standard output?
(logfile = "logfile") Text log file
(plotfile = "") Log metacode plot file
(backup = "") Backup directory or prefix
(instrument = "ccddb$ctio/csccd.dat") CCD instrument file
(ssfile = "home$/subsets") Subset translation file
(graphics = "stdgraph") Interactive graphics output device
(cursor = "") Graphics cursor input
(version = "2: October 1987")  
(mode = "ql")  
($nargs = 0)  

ccdpr: (last half of n2 and n3)

images = "sflat*" List of CCD images to correct
(ccdtype = "") CCD image type to correct
(max_cache = 0) Maximum image caching memory (in Mbytes)
(noproc = no) List processing steps only?\n
(fixpix = no) Fix bad CCD lines and columns?
(overscan = yes) Apply overscan strip correction?
(trim = yes) Trim the image?
(zerocor = yes) Apply zero level correction?
(darkcor = no) Apply dark count correction?
(flatcor = yes) Apply flat field correction?
(illumcor = no) Apply illumination correction?
(fringecor = no) Apply fringe correction?
(readcor = no) Convert zero level image to readout correction?
(scancor = no) Convert flat field image to scan correction?\n
(readaxis = "line") Read out axis (column|line)
(fixfile = "") File describing the bad lines and columns
(biassec = "[1:55,1:1004]") Overscan strip image section
(trimsec = "[75:3120,1:1004]") Trim data section
(zero = "home$n3/biasn3") Zero level calibration image
(dark = "") Dark count calibration image
(flat = "home$n3/flatn3") Flat field images
(illum = "") Illumination correction images
(fringe = "") Fringe correction images
(minreplace = 1.) Minimum flat field value
(scantype = "shortscan") Scan type (shortscan|longscan)
(nscan = 1) Number of short scan lines\n
(interactive = no) Fit overscan interactively?
(function = "legendre") Fitting function
(order = 10) Number of polynomial terms or spline pieces
(sample = "*") Sample points to fit
(naverage = 1) Number of sample points to combine
(niterate = 3) Number of rejection iterations
(low_reject = 2.5) Low sigma rejection factor
(high_reject = 2.5) High sigma rejection factor
(grow = 0.) Rejection growing radius
(mode = "ql")  

To process milk flats, first process through [OTZ]. The idea here is to bring the milk flat to 1.0 everywhere with the pixel to pixel variation left in. If a few wiggles are left in the image, that's okay. You will be dividing by the dflats later anyway. To bring the milky flat to 1.0, you need to remove the faint ripples of the fiber images. These run along the x-axis. The trick to remove these is to create a median filtered image using a long skinny boxcar and divide this into the data.

Do something like:

imdel temp*
# combine the milky flats into a single image
comb @in1 temp1
# remove the spectral shape in the x-direction
blkavg temp1 temp2 1 2000
fit1d temp2 temp3 fit ax=1 low=2 high=2 or=20 niter=10
blkrep temp3 temp4 1 1004
imar temp4 / 2000 temp4
imar temp1 / temp4 temp5
# remove the spectral shape in the y-direction
blkavg temp5 temp6 4000 1
fit1d temp6 temp7 fit ax=2 low=2 high=2 or=3 niter=5
blkrep temp7 temp8 3021 1
imar temp8 / 2000 temp8
imar temp5 / temp8 temp9
# filter the data with a long skinny boxcar
fmed temp9 temp10 xwin=51 ywin=1
imar temp9 / temp10 flat
(you may want to process with fmed in y direction also)




We have four types of lamps:

For low dispersion (RC) work:

Helium-Neon-Argon (a single lamp with all 3 gases)
"Penray" which is actually 4 lamps of helium, argon, neon, and xenon.

The individual lamps in the penray "lamp" can be turned on or off on the hydra instrument (but not from the Hydra GUI). All lamps should be on. We have been having problems with the neon lamp burning out or being weak.

For high dispersion (echelle) work:


The wavelengths are kept in the IRAF directory linelists$. Some additional notes if you want to go to the original sources:

For the Xenon lines, use the list in Striganov & Sventitski, "Tables of Spectral Lines of Neutral and Ionized Atoms", 1968, (IFI/Plenum: New York). This is a good source for all wavelenghts in the visible region and is accurate enought for all the RC setups. It is a nice table because it gives intensities also.

The best source for argon lines is: Norlen, 1973, Phys. Scrip. 8, 249.

The thorium lamp has rather weak thorium with respect to argon, and the lamp seems to have a quite different ionization than typical atlases for th-ar, such as the ESO atlas. Very accurate wavelengths are given in: Palmer, B.A., and Engleman, R. Jr. Los Alamos Sci Lab Pubs, LA-9615. In the blu, the ThAr lamp is basically all argon, with only the very brightest Th lines appearing weakly in the spectra.

In the blue, the He lines dominate in the penray lamps.

As far as I can tell, there is no neon in the he-ne-ar lamp.



See Knut's reduction notes.



We have DDS3 and exabyte. We also have DLT 7000, but you will not be generating that much data to need a DLT. Most people write data to tape using the IRAF "wfits" command. This is not a particularly efficient way to write data, but it is tried and true. I would NOT recommend writing a large tar file. A tape error in the middle of a tar read can ruin your whole day because it is hard to force the tar past the bad data point (if this happens, turn off the parity checking in the tar command). If you do write tar, I recommend breaking the data up into tar files = say one per night of no more than 1-2 Gbyte.

Write two tapes just in case. Give one to your collaborator or sister or whoever, just in case. Data can be (painfully) recovered from the SAVE THE BITS backup tapes, so if you can't even read your sister's tape, you can ask us to recover it from the backups.