Wavelength calibration (for intermediate band filters)

The intermediate band blockers are used for high resolution work (R<500). The narrow band blockers can also be used but they restrict the available field of view as well as the spectral coverage. The broadband blockers  (e.g. BVR) are used for low resolution work and require a slightly different calibration procedure.

The TTF is tuned by setting the "z" offset value. But first we need to calibrate the linear "z" scale  against arc lines of known wavelength. Some of the BTTF blockers are the property of the WHT (see here for more details) so be sure we have these at site.

Assuming you have dialled up the spectral resolution you want, here is a reliable way to wavelength calibrate the TTF response in about 10 mins or less.  The colours refer to the TAURUS control window or the CCD control window. (In fact, you can type all of the commands from the TAURUS window if you so choose.) Recall that the obeyw command is typed after hitting "." on the keypad: these are in-line commands. Of course, you can perform all the same actions with cursor clicks in the SMS control window.

First, switch in the calibration lamp mirror (chimney flap) and turn on your preferred calibration source shown here.

We generate a sequence of little 6x3 postage stamp images over a series of consecutive  wavelengths. We then stack the images in iraf and fit to the emission lines along the third dimension. (If the lamp is faint, esp. in U and B bands, try using the MITLL_ON_OFF_LARGE window which is 60x30 format.)

                                               From the TAURUS control window, hit "." on the keypad and then type (followed vy CR)......

obeyw taurus focal ?           Select the  spectral region with an order sorting filter (e.g. B, V, R0)

obeyw taurus etalon ?         Ensure you have the correct TTF in the beam

obeyw taurus pupil  8          Ensure you have the clear pupil

obeyw taurus aperture  1    Ensure you have the big aperture

                                               From the CCD window, type...

win mitll_on_off                   Set the CCD window size in the CCD window (read speed irrelevant)

time 1                                    You must set exposure time or the run sequence will bomb (this is a
                                              SMS bug that I have long wanted TJF to fix) and you will need to
                                              exit the entire system

obj ?                                     Set the new object name to CuAr sausage cube; filter ?

                                              For the next command,  we normally initiate from the SMS window using the pull down menus:
                                              Follow the horrible pull downs to find......numbers are etalon z values start, increment, stop.

run / run_ccd / run_step  / 0  10  790

                                              A much better way is to sidestep the SMS window pull-downs completely using in-line commands
                                                (note that "obeyw taurus" is not required)
ccd_runstep  0  10  790

                                              Helpful hint: you can bypass all SMS window functions with in-line commands.
                                              We only need SMS control window for the complex charge shuffle sub-window

How did we choose the run_step "z" values?  The TTF response is cyclical over a free spectral range "FSR" in the  same units. The "FSR" at H-alpha is 340;  the "FSR" at any other wavelength is simply proportional to wavelength. Without foreknowledge, simply scan the TTF through roughly two FSRs. In this way, we ensure there will be at least one set of calibration lines in order of increasing "z" in the spectrum. You really don't want to mess around with wrapped spectra. For the sampling step, use FSR/40.

In the example above, the run sequence generates 80 images in rapid succession.

It makes sense to work with the files that the unix_server creates, instead of copying them over to your iraf  work area. So now we stack the little images into a sausage cube within iraf. Under iraf, type

This will generate a  list of file names. It is possible that your version of the operating system does not give the full path name, in which case use "ls -L" in place of "ls -1". Remove those that were not part of the calibration sequence.

Be sure that the number of files matches the expected number of calibration steps as the unix_server  sometimes skips an image. If this is the case, simply duplicate one of the images to take the place of the missing image (avoiding emission lines).

Now stack the images into a cube structure, and bin up the left hand and right hand 3x3 regions into separate spectra for fitting.

A faster route. . . .

For the CCD window mitll_on_off, this perl script is particularly useful as it carries out the above commands in one hit, and also checks to see if the actual files exist. Download the file to your work area and type chmod +x sausage.p. If you are using mitll_on_off_large, use this perl script.

(Advanced tip: If you do all of your reduction within IRAF, declare sausage as a "foreign task" within the login.cl file and simply run from within IRAF. This looks like "task $sausage = sausage.pl" and "task $sausage = "$foreign".)

Within IRAF or under unix, if you type "sausage", you will see

Usage:     sausage [-d dir] [-s suffix]  id  date  start  end
To generate the above file sequence, type
sausage  -d /data/ssf/1/obsred/iraf/ccd_1/980825  17   25aug   7   87                        (hint:    rather than typing in the directory every time, edit it into the perl script at "dir")
The "id" is simply an identification number;  sausage now creates a file called LIST17 and reports back about any missing files. It also returns the exact command sequence you need to run within IRAF, i.e.
Now type:
    imstack @LIST17 cube17
    blkavg cube17[4:6,*] spec17
    splot spec17
 So grab with the mouse and execute these within IRAF.

So what do the spectra tell us?  The first spectrum spec1o is taken from the edge of the field and measures the phase over the field with respect the spectrum spec1 from the field centre. The right hand spectrum, spec1,  is the calibration you will need for observing.

From an xgterm window, plot the central spectrum and fit the line profiles.

        splot   spec1               (splot has a lot of cursor options: see here)

This is a low resolution spectrum (Zc = -2) of the CuAr lamp taken through the I6 filter. The x-axis needs to be transformed to a z-axis.  Type "p" and then enter the first and last "z" values of the  sequence run. You should now get

Now we fit the profiles.

For old IRAF installations, place the cursor on the flat part on either side of the 3-line group and type "d". Mark each peak with "m".
In the latest IRAF release (v. 2.11 for Solaris 2.6), splot now permits lorentzian fitting by marking each peak with "l".

Now type  "q", "a", "a", "n"  to get . . . . . .

These are gaussian fits to lorentzian profiles. (Without the new splot, an improvement is to use lorentzian fitting in the nmisc package.)  The fitted line centroids in units of "z" are given at the bottom. Cycle through them forwards using "+" or backwards using "-".  To exit, keep hitting "q".

The splot package writes the line wavelengths and centres to a file splot.log., e.g.

Aug 27 14:51 [spec1[1,1,*]]:
    center      cont      flux       eqw      core     sigma      fwhm
  365.3387   489.781   148264.    -302.7   6689.07     8.843     20.82
    414.65   489.781   46857.7    -95.67   2489.56     7.509     17.68
  484.3594   489.781   14272.3    -29.14   782.244     7.279     17.14
Strip the first two lines, and insert the correct wavelengths in the first column, i.e.
8416    365.3387   489.781   148264.    -302.7   6689.07     8.843     20.82
8521.4    414.65   489.781   46857.7    -95.67   2489.56     7.509     17.68
8668    484.3594   489.781   14272.3    -29.14   782.244     7.279     17.14
and perform a least-squares fit This returns So now we have the lambda-z relation,  z = 0.47164 * lambda - 3604.1, to compute the necessary "z" values for TTF.  Write this equation into the observing log.  This procedure only needs to be done once at the beginning of each night, or after a system crash, for each filter and resolutionrequired. There is a much faster and better way of keeping track of TTF stability, involvingcharge-shuffled arc lamp images, as we show later. Time for coffee...