IRAF TUTORIALS:
ECHELLE SLIT REDUCTIONS WITH DOECSLIT

Abstract

This tutorial and exercise illustrates flat fielding of multiorder echelle slit spectra with apflatten and the use of the reduction task doecslit. As an exercise, artificial echelle data will be created and used. The reader may then execute the steps illustrated here as well as explore the options. As a tutorial this document may be read alone and the sample output may be viewed. The version you are looking at has the graphical output as optional links to an external Postscript viewer. This makes it faster to load and is more appropriate for an exercise. A version of this document including the graphical output, which makes it self-contained and more easily read as a tutorial but also slower to load, may be selected here.

Echelle slit spectra require creating a special flat field with the task apflatten. which contains the normalized flat field responses within the slit orders and unit response outside. After flat fielding the echelle data is reduced using the task doecslit. The reduction task is specialized for background sky or scattered light subtraction, extraction, wavelength calibration, and flux calibration of multiorder echelle slit spectra. It is a command language script which collects and combines the functions and parameters of many general purpose tasks to provide a single complete data reduction path. The task provides a degree of guidance, automation, and record keeping necessary when dealing with many orders.


Introduction

This tutorial and exercise presents a simple, though complete, use of the apflatten task for creating flat fields appropriate for multiorder echelle slit spectra and the echelle slit spectra reduction task doecslit. This task is a complex script that guides the user through the various steps of background sky or scattered light subtraction, order extraction, wavelength calibration, and flux calibration of multiorder echelle slit spectra. In addition to organizing and guiding the user through these steps the task attempts to provide additional record keeping such that only images and steps not yet performed will be done. This exercise assumes some knowledge of how to use IRAF such as starting the IRAF session, moving about directories, and editing parameters.

There is on-line help for this tasks as well as a typeset user's guide for doecslit. These are essentially identical and differ only in visual appearance and where the parameters are described. To read the on-line help type

ec> phelp apflatten
[output]
ec> phelp doecslit
[output]
A printed copy of this help can be produced with the commands
ec> help apflatten,doecslit | lprint
where the lprint command will print to the default printer which may be changed using the hidden parameters. Finally, the typeset Postscript version of the reduction task may be obtained and read by clicking here

Another useful reference for the reduction of echelle spectra which covers doing the various steps separately or with doecslit is the document A User's Guide to Reducing Echelle Spectra with IRAF by D. Willmarth and J. Barnes.

Getting Started

Start an IRAF session and go to a directory in which to do this exercise; you could use your home directory if you wish. Now load the echelle package and unlearn all previous parameters as shown below.

cl> noao
[List of tasks]
no> artdata
[List of tasks]
ar> imred
[List of tasks]
im> echelle
[List of tasks]
ec> unlearn echelle artdata
The echelle package includes all the individual tools for processing the spectra apart from the basic CCD processing. However, in this exercise we are mainly concerned with the apflatten task to create a flat field and the doecslit task to reduce the data.

To create some sample echelle data type the following command. If the data already exists then nothing will happen.

ec> demos mkdoecslit
Creating example demoflat ...
Creating example demoobj1 ...
Creating example demoobj2 ...
Creating example demostd ...
Creating example demoarc ...
ec> dir
Bdemoarc.imh    Bdemoobj1.imh   Bdemostd.imh    
Bdemoflat.imh   Bdemoobj2.imh

The fact that the images actually begin with B is an unimportant detail. In IRAF version V2.11 the above images will be created. In V2.10.2 instead of Bdemoobj1 and Bdemoobj2 there will only be Bdemoobj. In the exercise you should use either Bdemoobj1 or Bdemoobj.

If the demos task does not create a flat field (pre-V2.11) we will have to do this ourselves with the artificial data package.

ec> mkech Bdemoflat nc=100 nl=256 nor=21 prof=slit width=20 cont=20000
ec> mknoise Bdemoflat rdnoise=10 seed=5

The data we have created consists of a flat field image Bdemoflat, an arc image Bdemoarc, a bright standard star image Bdemostd, and an object image Bdemoobj1. These images have already been processed to subtract the overscan bias level, trim the overscan region, and apply a zero level calibration.

Let's begin by looking at one of the images. We can use an image display, which requires that you have a display server running on your console (SAOimage or XImtool) and that your session has been setup to display to that window, and/or the plotting task implot.

ec> display Bdemoflat 1 fill+
[output]
ec> implot Bdemoobj1
[output]
[output after placing cursor on column 50 and typing c]

In the plotting task you exit by typing 'q' as is true for most graphics tasks. You may also wish to look at the other images and list out a header with imhead. You will see that this data has only 3 complete orders and two that go off the edge. Also the images are only 100 by 256 pixels in size. This example data is actually much smaller than typical data which has up to 50 orders and much larger images. However, it has all the basic characteristics of echelle slit spectra.

Creating a Flat Field with APFLATTEN

One cannot simply divide by the observed flat field image for two reasons. First the flat field image includes the shape of the flat field spectrum and the echelle blaze function. Applying the flat field directly will distort the object spectra and, in particular, the pixel values will no longer be related to the actual observed signal. This means that it would not be possible to use algorithms that depend on using the detector gain and readout noise to estimate the uncertainties of the pixels from the pixel values such those for optimally weighted extraction and cosmic ray detection. The second reason is that flat field signal between the orders may approach zero and application of the flat field to an object frame will greatly magnify the noise between the orders.

The algorithm we need will a) model the shape of the observed flat field spectrum in each order and normalize it away and b) will know where the orders are and replace pixels between the orders with unit response. This is done by the apflatten task.

The first step is to determine and set the order width of the full slit. We can do this with various image plotting tasks. Let's use implot.

ec> implot Bdemoflat 100
[output]

We see the slit widths are a bit over 20 pixels. Currently the organization of the parameters used by apflatten are spread across several tasks. What we need to set for apflatten are the width, the minimum separation between the orders, and two parameters defining the flux level at which to define the edges of the slit. You do this with the following commands.

ec> apedit.width = 25.
ec> apfind.minsep = 20.
ec> apresize.ylevel = 0.5
ec> apresize.bkg = no

We can now run apflatten to create a suitable flat field for the echelle data. The first thing that happens is that we can have the task automatically find the orders. We need to know the number of orders which we find using implot or display. In this case we know there are three orders. You are then asked if you want to resize the apertures (the regions defining the locations of the orders). By saying yes the apertures will be adjusted to the edges of the slit. The algorithms for finding the orders are described in the help for apfind and for resizing the apertures in the help for apresize.

ec> apflat Bdemoflat Flat
Find apertures for Bdemoflat?  (yes):
Number of apertures to be found automatically: 3
Resize apertures for Bdemoflat?  (yes):
Edit apertures for Bdemoflat?  (yes):
[output]

By saying yes to the query for editing the apertures you are shown a plot across the dispersion of the average of 10 lines with the apertures marked. This gives you the chance to adjust things if the automatic finding and sizing fail. The options for this stage may be seen by typing '?' with cursor in the window. The commands are described in more detail under the help for apedit. Once the apertures are defined to your satisfaction type 'q'.

The next step is to measure the positions of the orders at other lines in the image; normally echelle orders are not aligned with the image columns. The tracing is described in the help for aptrace. You are asked first whether to trace the apertures, which you should respond with yes. The tracing is done in steps of 10 lines with an average of 10 lines. Once the positions at this subsample of lines have been measured, a function is fit to the positions. You are then asked whether to fit the measured positions interactively. Generally you will say yes for the first one and yes or NO for subsequent ones.

Trace apertures for Bdemoflat?  (yes):
Fit traced positions for Bdemoflat interactively?  (yes):
Fit curve to aperture 1 of Bdemoflat interactively?  (yes):
[output]

The interactive graphical step uses a standard IRAF tool called icfit for interactive curve fitting. Within this mode you can also type '?' to get a list of the commands. Typically one would use only :order to change the order of the fit, and 'f' to cause the fit to be redone after changing any fitting parameter. Feel free to experiment and when you are done and have an acceptable fit (one which fits the measured positions to fractions of a pixel except for noise points caused by the influence of cosmic rays) exit with 'q'.

You will be queried whether to fit the trace for each aperture interactively. The fitting parameters used will be those last set, so normally after the first fit there should be no need to change the fitting parameters. You may answer with yes to examine the fit, no to skip examining a particular order, YES to examine all order without further queries, or NO to accept all remaining fits.

Fit curve to aperture 2 of Bdemoflat interactively?  (yes): NO

After all the orders have been traced, the measured information may be saved for later use.

Write apertures for Bdemoflat to database  (yes):

Now that the positions of the orders have been defined we can proceed with creating the normalized flat field. What is done is that for each order at each line the pixel values across the aperture are summed. This creates a one dimensional spectrum for each order. We then fit a function to normalize the flat field pixels. The following queries will guide to the fitting.

Flatten apertures in Bdemoflat?  (yes):
Fit spectra from Bdemoflat interactively?  (yes):
Fit spectrum for aperture 1 for Bdemoflat.imh interactively?  (yes):
[output]

The order and function should be high enough to represent the overall shape of the flat field. The fitting is done with the icfit commands. Set the function type to a cubic spline with :f spline3 and the number of spline pieces to two with :o 2. Then type 'f' to update the fit. There are commands to look at the fit in several ways. Try the 'k' key to look at the ratio of the data and fit. To exit type 'q'. You will then be asked if you want to fit the second aperture. You can respond with NO to skip looking at the remaining fits or yes to look at each fit. When apflatten finishes the created flat field image Flat will consist of the ratio of the normalization spectrum to individual pixel data within each order at each line and the value one between the orders. Let's look at the flat field with prow.

ec> prow Flat 100
[output]
The last step is to apply this flat field to the data. This could be done as part of the basic CCD processing done by ccdproc. In this simple exercise we will simply use imarith to divide the images by the normalized flat field.
ec> imarith Bdemo* / Flat Bdemo*

Running DOECSLIT

In this section we will run doecslit on the sample echelle data. Since doecslit combines many different operations the discussion below is broken up into the logical steps. The discussion will show the various prompts and interactions with commentary added. Sample output is also given.

In general the one dimensional spectra produced will have the same image name as the original image with the extension .ec and the image format will be something called multispec; a collection of one dimensional spectra in a two dimensional image. However, for arc calibration images you will notice funny names will be used for the extracted spectra. The names are a concatenation of the original name and the object spectrum to which it applies. This is because objects in the slit may be in different places and the ideal calibration uses arc data from the same pixels. In this exercise you don't need to be concerned with this.

Parameters

To begin we set the package and task parameters. The package parameters set some global things used by many of the tasks in the package. Below are the suggested parameters for this exercise.

ec> epar echelle
                                   I R A F
                    Image Reduction and Analysis Facility
PACKAGE = imred
   TASK = echelle

(extinct= onedstds$kpnoextinct.dat) Extinction file
(caldir = onedstds$spechayescal/) Standard star calibration directory
(observa=          observatory) Observatory of data
(interp =                poly5) Interpolation type
(dispaxi=                    2) Image axis for 2D/3D images
(nsum   =                    1) Number of lines/columns/bands to sum for 2D/3D i

(databas=             database) Database
(verbose=                  yes) Verbose output?
(logfile=              logfile) Text log file
(plotfil=                     ) Plot file

(records=                     ) Record number extensions
(version= ECHELLE V3: July 1991)
(mode   =                   ql)
($nargs =                    0)
ec> epar doecslit
                                   I R A F
                    Image Reduction and Analysis Facility
PACKAGE = echelle
   TASK = doecslit

objects =             Bdemoobj1  List of object spectra
(apref  =             Bdemostd) Aperture reference spectrum
(arcs   =             Bdemoarc) List of arc spectra
(arctabl=                     ) Arc assignment table (optional)
(standar=             Bdemostd) List of standard star spectra

(readnoi=                   0.) Read out noise sigma (photons)
(gain   =                   1.) Photon gain (photons/data number)
(datamax=                INDEF) Max data value / cosmic ray threshold
(norders=                    3) Number of orders
(width  =                   5.) Width of profiles (pixels)

(dispcor=                  yes) Dispersion correct spectra?
(extcor =                  yes) Extinction correct spectra?
(fluxcal=                  yes) Flux calibrate spectra?
(resize =                  yes) Resize object apertures?
(clean  =                   no) Detect and replace bad pixels?
(trace  =                  yes) Trace object spectra?
(backgro=               median) Background to subtract
(splot  =                  yes) Plot the final spectra?
(redo   =                  yes) Redo operations if previously done?
(update =                   no) Update spectra if cal data changes?
(quicklo=                   no) Approximate quicklook reductions?
(batch  =                   no) Extract objects in batch?
(listonl=                   no) List steps but don't process?

(sparams=                     ) Algorithm parameters
(mode   =                   ql)
In this case we set the standard star calibration directory to the Hayes standards, onedstd$spechayescal/ and the verbose package parameter to yes so that we can see more clearly the various steps taken by the task. In the task parameters we set the names of the various types of images, the number of orders, the widths of the object profiles (which is different than the width of the slits), and the processing steps to perform. For this exercise we will do all the steps except applying the cosmic ray cleaning algorithm. The redo parameter is set so that if you want to repeat this exercise, possibly with some changes in the parameters, the operations will be repeated. Normally, doecslit will only do each operation on a data image if it has not been done previously, as determined by looking at the images in the directory.

There is a choice for background subtraction. This depends on the type of echelle data. The three basic options are to not subtract any background and simply sum the object signal in the orders. This would be useful for bright stellar objects where the spectra will be used for something in which flux accuracy is not critical (such as radial velocities or some kind of identification of lines or candidates). The second option is to subtract a global scattered light surface using data between the orders to define the scattered light. This is useful for bright objects using short slits. The final option is to use local sky background from within the slit. This requires a sufficiently long slit. This is used for fainter objects where sky subtraction is important. Note that the local sky subtraction method will also correct for scattered light though not in a global way. In this tutorial and exercise we will chose to use the median of background regions near the objects for local sky subtraction.

There is a long set of algorithm parameters contained in the parameter set with the name sparams. In this exercise we will use most of the default parameters. Very few of these parameters generally need to be modified. You may look at the parameters with epar sparams or by typing :e when over the sparams parameter. Because we have very short pieces of orders and the orders are of high resolution we will need to interpolate the standard star bandpasses to smaller bandpasses in order to have enough points to determine a flux calibration from the standard star observations. This can be set with epar sparams or on the command line as shown below.

ec> sparams.bandwidth=3
ec> sparams.bandsep=2

Defining the Apertures

The first thing the task does is to find the positions of the requested 3 orders from the average of the 10 center lines in the standard star image. The reference image can be any image with a strong signal. Initially all the apertures are the same size (specified by two of the algorithm parameters). The Resize query allows the user to have the apertures adjusted to a width where the object profile falls to a certain fraction of the peak (in this case 5% of the peak). Note that in this case the aperture is the width of the object profile and not the width of the order defined by the slit.

ec> doecslit
List of object spectra (Bdemoobj1):
Set reference aperture for Bdemostd
Searching aperture database ...
Finding apertures ...
Nov  6 16:06: FIND - 3 apertures found for Bdemostd
Resizing apertures ...
Nov  6 16:06: RESIZE - 3 apertures resized for Bdemostd
Edit apertures for Bdemostd?  (yes):
[output]

We now look at the aperture identifications to make sure nothing is amiss such as misidentified orders. The apedit aperture editing mode has many commands, which you can list with the '?' key, and allows you to do many things. For this data one would correct misidentifications and adjust aperture widths. The window can be zoomed in various ways such as with 'X' or 'w' followed by 'x' (see gtools). Since we are going to do background subtraction from relatively narrow slits we should check the positioning of the background regions. Type 'b' on the central order to see the background regions, [output].

This uses icfit graphical fitting mode which you have encountered previously and will encounter later. You can also use the 'w' windowing commands here. To change the background regions initialize them with 't' and set them with the cursor by typing pairs of 's' (for sample regions). Note that the positions of the sample regions are relative to the order center and they will shift to follow the order position. Also shown is an example fit to the data in the sample regions. The parameter chosen earlier for the background, that is a median, does not use the fitting parameters, but if you chose the fit option for the background this is where you could adjust the fitting parameters. You exit the background examination with 'q'. If there are many orders with variable widths you might need to check each order for its background regions. This is not necessary in the abbreviated example data. When you are satisfied with the order apertures and background regions exit this stage with 'q'.

Fit traced positions for Bdemostd interactively?  (yes):
Tracing apertures...
Fit curve to aperture 1 of Bdemostd interactively?  (yes):
[output]
The positions of the order are traced, as described for the aptrace task, from the central lines to the rest of the image. This is done in steps of 10 lines with an average of 10 lines. Once the positions of this subsample of lines have been measured a function is fit to the positions. This may be done interactively allowing you to adjust the fitting function and order of the function. This again uses the standard interactive curve fitting tool icfit. Typically one would use only :order [value] to change the order of the fit, and 'f' to cause the fit to be redone after changing any fitting parameter. Feel free to experiment and when you are done and have an acceptable fit (one which fits the measured positions to fractions of a pixel except for noise points caused by the influence of cosmic rays) exit with 'q'.

You will be queried whether to fit the trace for each aperture interactively. The fitting parameters used will be those last set so normally after the first fit there should be no need to change the fitting parameters. You may answer with yes to examine the fit, no to skip examining this particular order, YES to examine all order without further queries, or NO to accept all remaining fits. For example, to adopt the fits for all remaining orders respond with NO

Fit curve to aperture 2 of Bdemostd interactively?  (yes): NO

Dispersion Calibration

The doecslit task now extracts the first Thorium-Argon arc spectrum specified in the arc spectra list. This will be the reference arc against which all arcs will be automatically reidentified using the same set of arc lines and dispersion function parameters. The extracted master arc is displayed (with the ecidentify task) and you must now identify a few lines in a few orders to set the basic dispersion scale against which other lines from the line list (here linelists$thar.dat) may be found. The keys you use are 'm' to mark a line and 'j' or 'k' to go up or down through the orders.

Extract arc reference image demoarc
Determine dispersion solution for demoarc
[output for first order]

In this data mark the strongest line and the one next to it (as shown in the example output) by placing the cursor over it and typing 'm'. You will be shown the measured pixel coordinate and some other values and queried for the wavelength of this line. In this case enter 4965. The task will then look in the line list for the exact value, mark the line with a tick, and the status line will show the line identification. The second line is marked with a wavelength of 4966. To get the lines labeled as in the example type :label user and redraw the graph with 'r'.

Now advance to the next order with 'k' and mark the following three lines given as the pixel position and the wavelength you enter: (52.16, 5002), (74.46, 5003.6), (154.71, 5009.3). The marked lines can be seen here.

In the third order mark the following: (18.00, 5044.7), (89.02, 5049.8), (167.16, 5055.3), (231.02, 5059.8). The lines are shown here.

After a few lines in a few orders (spanning the range of the orders) have been marked we can have the task find an initial dispersion solution and find additional lines from the line list. Type 'l' and you will see new lines added. Now let us look at the dispersion function by typing 'f' ([output]).

Note that two lines were misidentified and have been automatically rejected from the fit as being too deviant (marked with the diamond symbols). So these lines don't affect any other arcs we may reidentify use the cursor to point to them and type 'd'. In the plot we are looking at pixel position from any order plotted against the residual of the dispersion function estimate to the true wavelength. It looks like there is a little dependence on the pixel position. So we increase the xorder with :xorder 4 followed by 'f' to get the new fit. We now need to check for a dependence on the order so type 'x' and 'o' to plot against order. There really doesn't seem to be much dependence but let us set the yorder to 3 with :yorder 3 followed by 'f'. The result of this last change is shown here. We now exit the fitting with 'q' and the line identifications with another 'q'.

The linear dispersion coordinates for each order, which will be applied to all data processed using this master arc, are then determined and shown.

Bdemoarc.ec.imh: REFSPEC1 = 'Bdemoarc.ec 1.'
Bdemoarc.ec.imh: ap = 1, w1 = 4954.867, w2 =  4970.83, dw = 0.062603, nw = 256
Bdemoarc.ec.imh: ap = 2, w1 = 4999.124, w2 = 5015.338, dw = 0.063584, nw = 256
Bdemoarc.ec.imh: ap = 3, w1 =  5043.48, w2 = 5061.633, dw = 0.071187, nw = 256

Flux Calibration

Flux calibration consists of extracting all the standard star observations and comparing the observed flux against tabulated values for the star as given in the directory specified by the package caldir directory (in this case the Hayes standards in onedstds$spechayscal/). The ratios of the observed flux over some bandpass to the tabulated value over the same bandpass are fit by a "sensitivity" function which ultimately provides the calibration.

The first step is to extract and dispersion calibrate all the standard stars. Since the standard stars may be shifted somewhat on the slit and the most accurate dispersion calibration is based on using the same pixels the appropriate arcs are extracted using the positions for each standard star observation. (In this case it is the same as the master arc but the arc is reextracted anyway). The standard star extraction, arc extraction, and arc dispersion reidentification are done automatically. In the exercise there is only one standard star.

Extract standard star spectrum Bdemostd
Searching aperture database ...
Nov 19 10:54: DATABASE  - 3 apertures read for Bdemostd from database
Extracting apertures ...
Nov 19 10:54: EXTRACT - Aperture 1 from Bdemostd --> Bdemostd.ec
Nov 19 10:54: EXTRACT - Aperture 2 from Bdemostd --> Bdemostd.ec
Nov 19 10:54: EXTRACT - Aperture 3 from Bdemostd --> Bdemostd.ec
Assign arc spectra for Bdemostd
[Bdemostd] refspec1='Bdemoarc'
Extract and reidentify arc spectrum Bdemoarc
Searching aperture database ...
Nov 19 10:54: DATABASE  - 3 apertures read for Bdemostd from database
Nov 19 10:54: DATABASE - 3 apertures for Bdemoarc written to database
Extracting apertures ...
Nov 19 10:54: EXTRACT - Aperture 1 from Bdemoarc --> BdemostdBdemoarc.ec
Nov 19 10:54: EXTRACT - Aperture 2 from Bdemoarc --> BdemostdBdemoarc.ec
Nov 19 10:54: EXTRACT - Aperture 3 from Bdemoarc --> BdemostdBdemoarc.ec

ECREIDENTIFY: NOAO/IRAF IRAFX valdes@puppis Sat 10:54:06 19-Nov-94
  Reference image = Bdemoarc.ec, Refit = yes
               Image    Found     Fit Pix Shift  User Shift  Z Shift      RMS
 BdemostdBdemoarc.ec   29/29   29/29    8.52E-4     0.00608  1.13E-8    0.017
Dispersion correct Bdemostd
Bdemostd.ec.imh: REFSPEC1 = 'BdemostdBdemoarc.ec 1.'
Bdemostd.ec.imh: ap = 1, w1 = 4954.867, w2 = 4970.831, dw = 0.062603, nw = 256
Bdemostd.ec.imh: ap = 2, w1 = 4999.124, w2 = 5015.338, dw = 0.063584, nw = 256
Bdemostd.ec.imh: ap = 3, w1 =  5043.48, w2 = 5061.633, dw = 0.071188, nw = 256

For each extracted standard the user must identify the standard star by the tabulated name. In this case the star is HZ 14. The task standard is used. You may look at the standard bandpasses used (in this case the interpolated bandpasses set by the bandpass and bandsep parameters earlier). Bandpasses may be added or deleted.

Compile standard star fluxes for Bdemostd
Bdemostd.ec.imh[*,1](1): Artificial Echelle Spectrum
Star name in calibration list: hz14
Bdemostd.ec.imh[1]: Edit bandpasses? (no|yes|NO|YES|NO!|YES!) (no): y
[output]
Bdemostd.ec.imh[*,2](2): Artificial Echelle Spectrum
Bdemostd.ec.imh[2]: Edit bandpasses? (no|yes|NO|YES|NO!|YES!) (y): n
Bdemostd.ec.imh[*,3](3): Artificial Echelle Spectrum
Bdemostd.ec.imh[3]: Edit bandpasses? (no|yes|NO|YES|NO!|YES!) (n):

The ratios of the measured fluxes to the tabulated fluxs are written to the file std. The task sensfunc is then used to fit the sensitivity function for each order. This task has many options for fitting, deleting points or stars, determining residual extinctions from the default extinction function, and displaying. In this tutorial/exercise we only have a single star so there isn't too much to do. You can experiment with this task and quit with 'q' when you are done. You have the option to look at the fits for each order or use the last set of fitting parameters.

Compute sensitivity function
Fit aperture 1 interactively? (no|yes|NO|YES) (no|yes|NO|YES) (yes):
[output]
Sensitivity function for aperture 1 --> sens.0001
Fit aperture 2 interactively? (no|yes|NO|YES) (no|yes|NO|YES) (yes): N
Sensitivity function for aperture 2 --> sens.0002
Sensitivity function for aperture 3 --> sens.0003
Flux and/or extinction calibrate standard stars
Bdemostd.ec.imh: Artificial Echelle Spectrum
  Extinction correction applied
  Flux calibration applied
Standard stars:
Splot spectrum? (no|yes|NO|YES) (yes): n

The output of the sensitivity function fitting are sensitivity function spectra which have the names sens.0001 etc. The standard star spectra are then flux calibrated by applying an extinction correction based on the air mass of the observation and the extinction function given by the extinction package parameter (which is onedstds$kpnoextinct.dat in this demonstration) and the sensitivity functions for each order just derived. You are then given the opportunity to review the flux calibrated standard star spectrum.

Extraction of Object Spectra

Having now set the dispersion calibration and the flux calibration, doecslit will extract and calibrate each object spectrum. The objects are extracted with the apertures defined earlier. Then one or more arcs from the arc list are assigned to the object. The arc spectra are extracted using the apertures for the object. The arc lines are automatically reidentified and a new dispersion function is fit based on the same lines and function parameters used with the master arc. The object spectrum is then resampled to linear dispersion. Finally the object spectrum is extinction and flux calibrated.

Extract object spectrum Bdemoobj1
Searching aperture database ...
Nov 19 10:57: DATABASE  - 3 apertures read for Bdemoobj1 from database
Extracting apertures ...
Nov 19 10:57: EXTRACT - Aperture 1 from Bdemoobj1 --> Bdemoobj1.ec
Nov 19 10:57: EXTRACT - Aperture 2 from Bdemoobj1 --> Bdemoobj1.ec
Nov 19 10:57: EXTRACT - Aperture 3 from Bdemoobj1 --> Bdemoobj1.ec
Assign arc spectra for Bdemoobj1
[Bdemoobj1] refspec1='Bdemoarc'
Extract and reidentify arc spectrum Bdemoarc
Searching aperture database ...
Nov 19 10:57: DATABASE  - 3 apertures read for Bdemoobj1 from database
Nov 19 10:57: DATABASE - 3 apertures for Bdemoarc written to database
Extracting apertures ...
Nov 19 10:57: EXTRACT - Aperture 1 from Bdemoarc --> Bdemoobj1Bdemoarc.ec
Nov 19 10:57: EXTRACT - Aperture 2 from Bdemoarc --> Bdemoobj1Bdemoarc.ec
Nov 19 10:57: EXTRACT - Aperture 3 from Bdemoarc --> Bdemoobj1Bdemoarc.ec

ECREIDENTIFY: NOAO/IRAF IRAFX valdes@puppis Sat 10:57:32 19-Nov-94
  Reference image = Bdemoarc.ec, Refit = yes
               Image    Found     Fit Pix Shift  User Shift  Z Shift      RMS
Bdemoobj1Bdemoarc.ec   29/29   29/29    -0.0388      -0.149  -2.7E-7   0.0172
Dispersion correct Bdemoobj1
Bdemoobj1.ec.imh: REFSPEC1 = 'Bdemoobj1Bdemoarc.ec 1.'
Bdemoobj1.ec.imh: ap = 1, w1 = 4954.867, w2 = 4970.831, dw = 0.062603, nw = 256
Bdemoobj1.ec.imh: ap = 2, w1 = 4999.124, w2 = 5015.338, dw = 0.063584, nw = 256
Bdemoobj1.ec.imh: ap = 3, w1 =  5043.48, w2 = 5061.633, dw = 0.071188, nw = 256
Extinction correct Bdemoobj1
Flux calibrate Bdemoobj1
Bdemoobj1.ec.imh: Artificial Echelle Spectrum
  Extinction correction applied
  Flux calibration applied

One of the options when you run doecslit is to allow you to look at each spectrum after it has been extracted and calibrated using the general spectrum examination task splot. In this interactive task you can step through each order with ')'. You may answer yes, no or the capitalized forms to suppress other queries.

Bdemoobj1.ec.imh:
Splot spectrum? (no|yes|NO|YES) (yes):
Image line/aperture to plot (0:) (1):
[output]

The extraction and calibration of all the objects, in this case only one, continues until done. That concludes doecslit. You can look at the entire spectrum over all orders with the task specplot. It will stack spectra but since the orders are (somewhat) disjoint in wavelength we will turn the stacking off. Exit with 'q' as usual.

ec> specplot Bdemoobj1.ec autolayout-
[output]

Additional Extractions

Unless the redo parameter is set to yes, any new object spectra specified in additional executions will be processed largely automatically. Also any spectra which have already been processed will be ignored. For instance try

ec> doecslit redo-
List of object spectra (Bdemoobj1): 

You can extract the data from Bdemoobj2 (if created) by

ec> doecslit Bdemoobj2 redo-

That is all for this tutorial exercise. You may run through it again, look at the logfile and standard star file std with page, and look at any of the extracted spectra with splot.

References

The two main tasks illustrated here, apflatten and doecslit have on-line help pages. There is also a typeset Postscript version of doecslit.

There is a general user's guide to echelle reductions, A User's Guide to Reducing Echelle Spectra with IRAF by D. Willmarth and J. Barnes.

There are on-line help pages for the various tasks used by the doecslit script. These tasks are: icfit, gtools, apfind, apresize, apedit, aptrace, apsum, apflatten, ecidentify, ecreidentify, standard, sensfunc, splot, specplot.


Francisco Valdes
November, 1994