IRIS Reduction Guide

AAO User Manual 30b

Version 2.1

David Allen, June 1992.

Click here to return to the AAO Instrument Manuals page.

The version of this document dating from June 1992 was converted to HTML in April 1996 by Chris Tinney.




This is the reduction guide intended to offer some succour to those who have lumbered themselves with IRIS data.

The guide may be printed out, though it is quite long. You can save paper by not printing out Appendix 3. Searching for key words usually finds the information you most need quite quickly.

The IRIS... programs (and a few others) you are about to meet are supported by Stuart Lumsden and/or Chris Tinney, and any queries should be addressed to them. These routines were originally developed by Jason Spyromilio.


The data written to VAX are in Figaro format. If you prefer alternative reduction packages, you will obviously have to translate or transfer the files. These notes assume you will use Figaro. To start Figaro on a VAX merely type

$ figaro

or if you are carrying out your reduction on a Sun you may have to use on of the following to select the particular version you wish to use (there are several available for UNIX machines)

aatsse(1): figaro3
aatsse(1): figaro4 or figaro42

There is an extensive on-line help facilitiy in Figaro, plus several printed guides.

If your version of Figaro will not handle .SDF files then you can convert INFILE.SDF to OUTFILE.DST in one of two ways. Either use the command NDF2DST, which requires access to ADAM, or:

$ WDFITS infile dummy
$ RDFITS dummy outfile swap float

Here dummy is any scratch file name.

You will find useful a number of FIGARO reduction procedures specific to IRIS. At site you should use them from the IRIS account, if you have one. You will know that you have access if Figaro outputs the message:


If you use them from another accounton a VAX, then type:

$ figaro
$ assi sysdisk1:[figaro_i] figaro_iris $ @figaro_iris:figaro

IRIS_DIR is automatically defined for you when you start up this version of Figaro.

If you wish to use the IRIS routines on a Sun, you will need to insert the directory containing them into your FIGARO paths. The easiest way to do that is to use one of the FIGARO_PROG_? environment variables. For example, at the AAO in Epping we define

setenv FIGARO_PROG_L /usr/local/figaro_iris

For historical reference, a gzip'd tar file of the IRIS Figaro data reduction source code is provided.


The non-linearities arise in the output amplifier and affect all pixels equally, but do so in total ADU rather than accumulated photons. The total ADU count is not normally evident, and must be created. Except for mode 4 data this necessitates the addition of a frame called swirl (have a look at it to see why!). All observations should be matched by a dark frame obtained using the same window, and observing mode, and comparable exposure time (the number of cycles is irrelevant except to determine signal/noise ratio). Mode 4 data have been linearised in real time, but IRISLIN converts them to electrons and appends an error array, as for other methods. Three-dimensional stacks of imaging spectroscopy are handled correctly, though big ones take several minutes, and grow even bigger because of the addition of a variance array.

2.1 The list file.

To create a list file used by some of the programs type the following on a VAX:

$ dir/nohead/notrail/output=files.dat/column=1 disk$inst:[ccd_n.yymmdd]*.sdf

or something like the following on a Sun

ls /vaxinst/ccd_n/yymmdd/*.sdf > files.dat

Optionally edit this file (FILES.DAT) to remove the .sdf;1 from the data. This can be done quite easily using the EDT editor on the VAX:

s/.sdf;1//w     (which globally swaps .sdf;1 with nothing).

Or use almost any of the available editors on the Suns.  Or use the command line editor directly from Unix

sed -e 's/.sdf//g' files.dat > tmp.dat ; mv -f tmp.dat files.dat

2.2 Identifying the darks

Type IRISDARK to search FILES.DAT for the frames that are DARK exposures. It requests the file name (FILES.DAT) and outputs a second listing file called DARKFILES.DAT

2.3 Matching data to darks

Type IRISMATCH to search FILES.DAT and match the most appropriate dark exposure to each frame. Its inputs are DARKFILES.DAT and FILES.DAT respectively. If you have failed to take the appropriate dark (identical window, observing mode and exposure time) the program will select a compromise for you. The output of this program is another file which you may call anything you like (default: MATCHED.LIS). For each frame, this file contains the observation, dark frame, swirl pattern, bias frame (relevant only if you took mode 2 data, which hopefully you didn't), and the output filename. Don't worry about the bias frame listed for mode 1 data: it won't be used.

2.4 Linearising

IRISLIN uses this new file (MATCHED.LIS) to linearise your data. This is easily performed under the new parameter system in FIGARO versions 3 and higher. Issuing the command:

$IRISLIN @matched @ @ @ @

will automatically select the input and output filenames from MATCHED.LIS. The output of IRISLIN are files called ddmmmxxxx_lin.sdf; and reside in the directory in which you are running the program. If you don't like this form of output file name, you can edit MATCHED.LIS to suit your preference. In the entire procedure described above you should not have to copy any of your data from the system directory. IRISLIN handles 3-dimensional data (e.g. stacks of spectral images).

NOTE that your linearised data have now been dark subtracted. The files used for DARK and BIAS subtraction, and the SWIRL file in IRIS_DIR, are listed in MATCHED.LIS. If you do not like the choice made by IRISMATCH you may edit this file.

You may also linearise any individual frame. Just type IRISLIN and answer the prompts.

The output of IRISLIN is in electrons. The ADU have been multiplied by 9.5. An extra array VARIANCE is added to your data, which carries through the subsequent analysis to allow photon shot noise errors to be derived. Some FIGARO routines cannot handle this, and the array will be deleted. You will get a message, and can then create and copy the old VARIANCE array. Readout noise is automatically added in, but other sources of noise are not. Although method 4 data are already linearised, running them again through IRISLIN converts them to electrons and generates the variance array.

2.5 Making a log of your images.

To generate a log of your observations issue the command


The program works on the file FILES.DAT. The output file, OUT.LIS, contains the filename, position of the flattener, exposure time, number of cycles and window information.


No infrared array is free from troublesome pixels. Some pixels are utterly insensitive while others don't behave correctly, especially at low light levels. You will also find more bad pixels at J than at the longer wavelengths, not because the sky is darker but because there are wavelength-dependent peculiarities in the array. Thus you will be aware of more bad pixels in IJ echelle spectra than in broad-band imaging. On the other hand, some of the bright pixels in the spectra are merely places with high dark current and will virtually vanish if you subtract one frame from another.

According to the application you may wish to ignore bad pixels or to fit over them for cosmetic purposes. It is not the purpose of this document to recommend an approach, merely to list the tools currently available. However, it should be noted that in spectroscopic reduction bad pixels are spread to cover a larger area. By interpolating across them before they are allowed to spread the damage to the nighbouring pixels becomes second order.

In this document `the beauty spot' refers to a patch of nine bad pixels around x=105 y=27.


You can optionally append a quality array to a frame using IRISQ. The quality array flags the bad pixels. Answer no to the question of setting bad pixels with value zero, and accept the (normal) default bad pixel file of IRIS_DIR:IRIS.BAD. There are more suspect pixels than listed in this file, and you might want to edit your own version to include others that are causing you concern. A list of additional suspect pixels is in [DAA.IRIS]NEW.BAD. If you have observed a small object in many positions it won't hurt to add these to the standard list.

The quality array allows software to decide not to use some pixels, though there is yet limited software with that capability.


When to clean? Because cleaning takes time, it is best not to do it to each component frame. For example, form median skies and subtract them off your data before you clean. You should CLEAN or IRISCLEAN spectroscopic data before applying any order straightening program.

IRISCLEAN is an alternative to the standard Figaro clean. It works in a totally different manner and has a very large number of keywords (most of which you should be able to ignore). In the absence of a quality array appended by IRISQ it will use a file of X and Y coordinates of bad pixels that resides in IRIS_DIR:IRIS.BAD. It cleans the data by performing either a two dimensional linear interpolation around bad pixels or a surface fit to the data around each bad pixel. The use of a quality array allows the surface fit to ignore other bad pixels in your aperture. You may choose to clean every bad pixel by doing a surface fit and in this case you can use a line graphics device to see the results of the fit and what the linear interpolation would do, and so choose between the two. This is extremely time consuming. The fastest and probably most useful option is:

$ IRISCLEAN IN=object OUT=cleaned_object BEAUTY NOSURF

This will linearly interpolate across all single and double bad pixels and perform a surface fit around the beauty spot. Approximately 20-30% of all attempts at such a default surface fit will fail, and a message will be issued on your screen. You may then run IRISCLEAN again in the following mode (DO NOT ISSUE THE BEAUTY KEYWORD):


The following values are recommended for the prompts:


In response to the BADPIX prompt you should issue IRIS_DIR:BEAUTY.BAD

At this point the program will spew out a load of numbers which you may safely ignore. You want to clean ALL the bad pixels in your aperture and you want the FITTED values which you will eventually be prompted for.

Alternatively take the output file and run normal FIGARO CLEAN on it. Use D=1, N=1,1.

With the additional keyword SPECTRUM, IRISCLEAN will linearly interpolate only in the y direction and therefore preserve the spectral resolution of your data. On the other hand, it can induce spectral features. The safest procedure with spectra is to clean by hand using standard Figaro software.

If you want to clean out the awkward pixels that show only at low light level, then try the pixel file IRIS_DIR:NDR.BAD in IRISCLEAN.

Since the number of bad pixels seems to vary with time and configuration, you may want to create your own bad pixel file by copying over and editing IRIS.BAD from IRIS_DIR.


You should now flat field your data using a dome lamp flat. Take the difference lamp on - lamp off. This serves both to remove any thermal component due to radiation that doesn't come directly off the primary and secondary mirrors, and to provide a better spectral match to stellar data. If broad-band 2-micron flats saturate you should use a narrow-band filter for the flat: 2.12 for K', 2.16 for Kn and 2.21 for K.

It is usually best to normalise your flat field to about unity so that raw counts are approximately preserved. Use ISTAT with the MEDIAN keyword and divide the flat by its resulting median. For echelle flats use ICUR to select a data value in a mid grey region. When flat-fielding standards taken in the IRIS31 window, ISUBSET the relevant portion out of the same flat field you use for full frames. The ISUBSET range is 15 45 69 99.



Medsky will create a suitable sky from all observations taken in a batch using the same filter. If you have changed filters between batches of data the skies may not be repeatable due to occasional tiny shifts of the filters in the wheel. This is manifested by ghost-like doughnuts, both positive and negative, on sky-subtracted images. These arise from pin-hole defects in the filters. You should use skies that have the same exposure time.

MEDSKY offers median filtering, n-sigma rejection, or max-min rejection. In any case use the option to scale each sky to match the first. MEDSKY.LOG lists the scaling. The choice of n-sigma filtering allows you some control over rejection of stars, etc. Try 2 passes at 2-sigma as a first guess. MEDSKY requires a file listing the names of the frames whose median is to be derived.

If you prefer to use medians, you should not include in your fit the frame that you are about to subtract this sky from, otherwise you will find many pixels that end up identically zero. Thus it is advisable to run MEDSKY separately for every frame in a set, using the other frames to define the sky. This is not necessary if you opt for n-sigma clipping.


IRISKY is a program to perform sky subtraction in an intelligent way. It compares a given image to the sky frame output by MEDSKY and determines the factor (alpha) by which it must multiply the latter in order to optimise subtraction from the former. The output is the subtracted sky. IRISKY smooths the histogram the number of times you specify and calculates the peak (mode) of the smoothed curve.

If you ask for the display you will see a histogram of the result of dividing the image by the sky. You will be asked for the number of bins to be used (200 is a sensible number, but you can change it after a first look), and for parameters VMAX and VMIN specifying the limits of the histogram. VMAX and VMIN should be separated by only about 0.05, and should be centred about the resultant alpha. You can estimate this from the inverse of the SCALE output in MEDSKY.LOG (or, approximately, 2-SCALE).


There are a number of photometric packages, and since the reduction beyond this point roughly parallels optical work, no recommendations are given. However, one point to bear in mind is that light is lost from between the pixels. As a result, the systemic magnitude for undersampled data (large pixels, good seeing) depends on where a star falls relative to the nearest pixel centre. This point was made in the users' guide, and if you followed the recommendations therein you will now have data to calibrate the loss of light as a function of centroid position. The centroid of faint sources cannot be determined accurately, so that an additional source of uncertainty exists.

A new set of photometric standards has been established, largely with the help of Brian Carter at SAAO. Their values are listed in Appendix 1.

When calibrating your photometry, remember that the counts in an image always relate to the end of a single exposure of duration given by the parameter TIME_INT in the FITS header. If many cycles are taken, they are averaged, not added. In mode 4 the linear regression is scaled to the exposure time, not to the period between non-destructive reads.


7.1 Sky subtraction.

Reduction of spectroscopic data requires sky subtraction. In the following it is assumed that you have observed an object in two positions, A and B, near opposite ends of the slit. If you have more than one such pair, carefully aligned, and of the same exposure time, you can cut a corner. Add together all the aperture A frames and subtract from them the sum of all the aperture B frames.

Divide the resultant difference frame by a flat-field exposure taken with the same configuration, and (optionally) clean the resultant frame. You are recommended to use the Figaro CLEAN routine, deciding on an individual basis whether to interpolate in x or y. Use linear interpoaltion (D=1) and one pixel at a time (N=1,1). It is important that cleaning be done even of pixels a little outside the bands of data, for they are spread by the distortion correction software. The huge number of apparently bad pixels seen on an individual frame (especially with the IJ echelle) is greatly reduced when subtraction and flat fielding has been performed.

7.2 Straightening the echelle orders.

To correct for the echelle distortion you will need a set of SDIST.DAT files, normally named SDHGR and SDKGR for the grisms, and SDJ6 to SDJ10 for the IJ echelle, SDK5 to SDK8 for the HK echelle. The digit is the order number. Recent versions reside in IRIS_DIR, or in DISK$USER:[DAA.IRIS] at Coona; if these are unsatisfactory they can be derived from a flat field exposure with a slit that doesn't fill the chip. Clean out bad pixels and display the flat field. Using ICUR mark a point near the middle of each order. Then enter SDIST and use something like 15 columns to average over, centre of gravity tracing, half width = 8 and fifth order. This will produce a file called SDIST.DAT. If the coverage is not 1 to 128 in x then try again with different parameters.

For echelle data you must use a text editor to extract the four or five files SDJ6 etc. as appropriate. In each case edit the number of spectra to be 1, ensuring you leave this number in the same place in the text. Delete the six lines per order associated with orders not being selected.

Apply the distortion correction with IRISCDIST, giving the y range 1 to 128 and use a linear fit (order 1). Echelle orders must be handled separately. The version of IRISCDIST available under IRIS reduction allows the input of the SDIST file name; standard CDIST assumes SDIST.DAT.

At this stage in the reduction of echelle data you will have a separate file for each order. You can use ICUR on the individual images to determine the y range of useful data for each. If you wish, you can combine the orders back into a single file using the routine IRISECH. To do so, create two files (default extension .DAT) the first of which lists the names of the images for each order, while the second lists (matched line by line) the y range and x range over which you want to extract the relevant order from that image. Normally the x range will be 1 to 128. The y range depends on the slit you have used. As a typical example, IJ order 9 with the narrow slit would need, in the second file, the line: 91 109 1 128
These are in free format. The output of IRISECH is a single image containing the straightened orders, in their original locations, separated by rows of zeroes. This step is optional, and the next operation can be performed either on the output from IRISECH or on the individual files.

7.3 Setting the slit vertical.

You will find that the slit is not vertical in the data at this stage of the reduction. In places there is a slant of more than one pixel from one end to the other, and this both reduces spectral resolution and worsens sky subtraction. IRISTRETCH has been written as a first-order correction to this. It is first order in the sense that it distorts each row linearly so that a particular wavelength in that row has the same x coordinate as the same wavelength in a row near the middle of the slit. A higher order fit is deemed unecessary. Rows at higher y value than the centre of the order are stretched; at lower y value they are shrunk. A lateral shift is also required in most orders. The files controlling this operation, HGR.STR, KGR.STR, IJ.STR and HK.STR, reside in IRIS_DIR and/or in DISK$USER:[DAA.IRIS] at site. The IRIS_DIR versions are selected automatically by IRISTRETCH using the header information, unless you give the (hidden) keyword NOFITS [currently the grisms do not feature in the headers, so you will be prompted for the stretch file]. If you want to tinker with these files to adjust the fit, you will find that they are simple tables in which each line addresses a specific row of the image. The first column is the row number, and the remaining columns are the entries into the standard Figaro routine ISTRETCH. The program STRETCH.FOR in DISK$USER:[DAA.IRIS] at Coona simplifies the creation of new files.

The IRISTRETCH algorithm does not invent data to fill pixels at the end of spectra; one or other end will normally have low end pixels, which should be removed. You can do this at any stage by suitably subsetting an image or a spectrum, or when you scrunch by specifying an appropriate range of output wavelengths.

You are now ready to use ISUBSET or IRISTRACT to remove the positive and negative spectra, and to ISUB the result. The sky will now fully cancel, (well, in intransigent cases you may see a smidgeon of it) leaving the object spectrum as either a one- or two-dimensional data set.

7.4 Wavelength calibration.

It was intended that IRIS be a fixed-format instrument, so that wavelength calibration files (like SDIST and IRISTRETCH files) never change. Unfortunately, when changes are made in the dewar the spectral images on the chip move, rotate and/or change scale. An attmept is made ot keep up-to-date files in appendix 3, in [DAA.IRIS], and eventually in IRIS_DIR. The prudent observer will have an observation of some type of wavelength calibrator to check, and if necessary adjust, the standard files.

The fits in Appendix 3 include more lines than you will readily measure without major effort, thereby defining the fit very well. A change will most likely be a shift of the entire echellegram on the array. Thus you can use a few lines to determine the value of that shift. Edit the relevant file by applying the correction to the pixel value. Finally refit. A quicker and less accurate alternative is to use the fit as is and then correct each order with an appropriate XCADD.

You will want the Figaro ARC routine. When asked for the type of lamp, give a null response (""). If you are using a pre-existing wavelength file you will be prompted for it, and need not identify any line in the spectrum you are operating on. Go straight to the fit and use 3rd order. You can edit out the fit data from Appendix 3, and give the file name you choose when the ARC routine expects ARLINES.LIS. When editing to create an arc data file, the first line should be the one noting the number of spectral lines used, and the last line should be the end of the polynomial fit parameters. Do not alter the location of data by columns as the ARC routine uses fixed format input. Note that these files are in Angstroms, to allow enough significant figures to be carried through to see the quality of the fit.

Attach the resulting wavelength fit to your spectra using the XCOPY command. Default files are stored in IRIS_DIR and/or [DAA.IRIS]. The names are fairly obvious, and all files have .SDF extensions. Wavelength calibrations copied from IRIS_DIR will be in microns. If you have created new fits in Angstroms you should now convert your spectrum to microns by the following:

$XCMULT spectrum 1e-4 spectrum. ! Ignore if wavelengths entered in microns $LET spectrum.X.UNITS = "microns" ! This for DST files $LET spectrum.AXIS[1].UNITS = "microns" ! This for SDF files

7.5 Fluxing.

To flux your data you have three choices, FIGSFLUX, IRFLUX or IRISFLUX. The former was written specifically for FIGS data, but applies perfectly well to IRIS spectra with two provisos. First, it uses a model fit to the original G dwarf FIGS standards only, and the model is certainly wrong shortward of about 1.1 microns. Second, FIGS data are stored and manipulated in photons/second whereas IRIS data are in photons/exposure time. Therefore you must divide your data (using ICDIV) by the exposure time; also by the number of separate observations you have coadded. Do the same for the standard. You can shortcut this by simply scaling the programme star to the same exposure as the standard.

IRFLUX differs from FIGSFLUX by assuming a blackbody model for the standard, and you can use any type of star you like provided that it approximates to a black body whose temperature you specify. The fact that no star does match a black body need be of only slight concern. Again you must have kept track of the different times of the programme and standard star. Again the output will be in mJy. Another difference between the two is that IRFLUX will accept a magnitude at any standard wavelength or a flux at any specific wavelength. These options are selected by the CALTYPE prompt. Enter one of J,H,K,L or M for the appropriate filter, or F to offer a flux. You will be prompted for the remaining information.

IRISFLUX, is a revised version of IRFLUX that reads the exposure times from the FITS header. It doesn't know if you have coadded several sets of data, so you should divide by the number if so, forming averages instead of totals.

In all cases you need a standard star that has been processed in exactly the same way as the programme star, including division by the same flat field. You will probably want to clean absorption lines from the standard before the division takes place, using ISEDIT.

Use FLCONV to convert your spectrum to ergs/s/cm**2/A, but first put your data back into wavelength units of Angstroms using XCMULT and the factor 10000.

7.6 Combining the echelle orders.

Finally, you may wish to combine echelle data from different orders. This is best done by scrunching them all to a common wavelength increment. Because the H and K windows occupy distinct orders in the HK echelle you can use different wavelength increments for these two if you want. If you take data with both IJ and HK echelles, note that there is overlap in the H window so that you will want the same wavelength increment for that region too.

FSCRUNCH handles errors correctly. Prefer a first-order interpolation for these data, since they are not oversampled, and answer YES to the DENSITY request even though the software thinks NO is correct.

Now run the private program MERGE, to combine two spectra at a time. MERGE requires the spectra to be entered in increasing wavelength order and sometimes crashes if the data are left in Angstroms.

You can run MERGE without scrunching. Where overlapping data do not occupy identical wavelength bins MERGE makes a reasonable attempt at combining them to match the bins of the first-named spectrum.


Since most data will have been taken on a number of different centres, you may wish to mosaic them together before embarking on photometry. IRISMOS is a mosaicing routine run in FIGARO. It rejects data on bad pixels, though will use valid data from overlapping frames where available. No interpolation of data is performed in any individual frame. Instead, a finer grid of x and y is established and the code works out where on this grid the images to be mosaiced should be placed. When all images have been placed the finer grid is rebinned to the original pixel size. Currently the code is hardwired to a 3x3 grid for each original pixel. The code attempts to shift all frames relative to the first read in.

8.1 Starting

First create a text file that IRISMOS will read, listing images to be mosaiced. Blank lines are ignored and names preceded by * are skipped. For each image IRISMOS attempts to read from the FITS header the RA and Dec offsets from some nominal base (which does not have to be in any of the frames) and a flag (COSDEC) which tells whether the offsets are specified in units of polar axis rotation or on the sky. If the images lack this information you will be prompted. Alternatively, IRISWFITS allows you to write this information to the FITS header.

Now type IRISMOS and answer the plethora of questions. The most important are noted here. Generally the default is the right response, except perhaps to the BLIND question.

GOOD enquires whether to ignore the quality array. Normally answer [no], unless you are confident you have cleaned the data. If there is no quality array the data are assumed to be GOOD.

RAPLACES, DECPLACES are the dimensions spanned by the final mosaic, relative to a single frame. These needn't be integers. After the OUTPUT has been specified, RAPLACES and DECPLACES are recycled; this time they seek the spread of locations needed to display all input frames side by side. The integer value will be used.

The data are now read in, and offsets in RA and Dec are displayed for confirmation. If no offsets are present then 0 is assumed for both coordinates.

BLIND offers a combination of frames using the nominal offsets, i.e. assuming a perfect telescope. If using this option, skip to the SCALE request, below.

8.2 Shifts

Normally some small adjustments will be needed to the offsets. These may already have been documented by a previous run through IRISMOS in an OFFFILE. All shifts are in numbers of subpixles (3 per real pixel). Answering [yes] to WHOLE leads to another set of questions regarding the positioning of the frames on the imaging device within the confines of RAPLACES and DECPLACES defined at the second encounter, above. These can be stored in a file (POSFILE.DAT) containing free-format integer x and y positions in two columns.

When all frames are displayed, select sets of stars common to overlapping frames. Move the cursor to the star, hit the spacebar, and enter a unique 1- or 2-character name. All the facilities of FIGARO CPOS are available, including zapping old points. Type A to change the aperture size used in centroiding (if you enter N you get an aperture 2N+1 across: N ~ 4 is recommended); type Q to quit.

Two other methods can be used to determine the shifts between frames by answering [no] to WHOLE. Individual pairs of frames can be matched through common stars as above. Alteratively the overlap regions in RA and Dec may be tied together through cross correlation. This is good for a final tweak or for extended objects unsuited to centroiding.

8.3 Moving

The code will attempt (if you so wish) to work out an offset for every frame from the base frame (the first read in). If you don't want this, answer [no] to the MYSELF question. You'll have to work out your own preferences then. Since there will often be more than one path, you may prefer the DONTASK option to allow IRISMOS to decide what final value to use. The DESPERATE command keeps track of the links made in the last pass through the data and the number of shifts that are required to mosaic the whole frame. You can keep going till the prompt for DESPERATE becomes [NO].

Assuming all went well you now have the shifts relative to the base frame either by working them out yourself or by letting the code do it for you. Their application is relatively simple if you have links to the base for all frames. Otherwise don't forget that any shifts you apply are absolute not relative. The code keeps track of frames that have been shifted and will warn you against doing this more than once. In fact you can SKIP all other offsets after shifting your frame. In addition it will warn you against shifting the base frame. The parameter USE will change its prompt according to the conditions and if you have all offsets to base you can take the defaults to all questions asked.

8.4 Scaling

If the component images don't match in some way you can try the scaling option. The mismatch will normally be because of failure to subtract the sky fully, a common occurrence when observing extended objects (which influence the median). Under such circumstances answer yes to the SCALE question. An algorithm due to Mark Walker does a brilliant job where extended emission overlaps frames, by adding a constant to relevant frames.

You should note, however, that the mismatch between frames is because the wrong sky level has been applied, and skies are not flat across the frame. Thus adding constants does not accurately adjust extended objects, and it is advisable to get as close as possible by adding the (flat-fielded) sky to frames by hand first.

You can get a log of the values added to each frame, but these will be nine times bigger than you expect because of the useof sub-pixels.

8.5 Combining

After combining the frames, IRISMOS displays the result with facilities such as scaling and expanding, available in Figaro CLEAN. There are options to repeat or tweak the mosaic. When you answer [yes] to DONE you may write a file containing the shifts of your frames: answer [yes] to UPDATE. This is the OFFFILE that may be reread next time through. It is a text file giving shifts from nominal in subpixels, Dec and RA occupying the two successive columns. Editing this file is a way to tweak the fit.

8.6 Warnings

IRISMOS allocates all the memory it uses before reading in the data, to avoid running out later on. However, for big frames this makes it very expensive in memory. The biggest user of memory is the display of all the images in WHOLE. If you answer [yes] to MINMEMORY you minimize the use of memory by disabling the cross-correlation and side-by-side options in the code.

Every parameter is cancelled before it is presented to the user. Hence the FIGARO abort response !! does not work. Control-Y, though harsh, does clean up reasonably well. It's good practice to follow it with EXIT.



This flow chart is not the only one possible but will suffice to reduce a set of images at a particular wavelength. Follow it for all component files of a mosaic, jitter pattern or set of skies + object.

| \|/ ------------------------------------ | irislin data, standards & flats | ------------------------------------ | \|/ | --------------------------------------- | | isub flat(lamp on) flat(lamp off) F | | --------------------------------------- | \|/ | --------------------- | | istat F reset med | | --------------------- | \|/ | --------------------- | | icdiv F median FD | | --------------------- \|/ \|/ \|/ ----------------------------- ------------------------------ | idiv data_lin FD data_div | | isubset FD 15 45 69 99 FDS | IRIS31 ----------------------------- ------------------------------ \|/ \|/ -------------------- ----------------------------------- | medsky a.dat SKY | | isub standard_a standard_b STAB | -------------------- ----------------------------------- \|/ | -------------------------------- \|/ | IRISKY data_div SKY data_sub | -------------------------- -------------------------------- | idiv STAB FDS STAB_DIV | \|/ -------------------------- --------------------------- \|/ | IRISQ data_sub data_sub | ------------------------------------- --------------------------- | idiv STAB_DIV exposure_time (sec) | \|/ | (exposure_time is TIME_INT as | ----------------------------- | given by FITSLIST) | | rotate data_sub data_subr | ------------------------------------- ----------------------------- \|/ \|/ --------------------------------- ----------------------------------- | Use your favourite photometry | | irismos all component data_subr | | package on the positive and | | to produce final MOSAIC | | negative images in STAB_DIV. | ----------------------------------- --------------------------------- \|/ | ----------------------------------- | | idiv MOSAIC exposure_time (sec) | | ----------------------------------- | \|/ \|/ ----------------------------------------- | Use your favourite photometry package | -----------------------------------------

Files needed for this (in addition to those in IRISLIN):

A.DAT for medsky



---------------------------->| | | | \|/ | ----------------------------------- | | irislin data (beams a,b) & flat | | ----------------------------------- | | \|/ | | --------------------- | | | isub flat dark FS | | | --------------------- | \|/ \|/ | --------------- ---------------------- | | isub a b AB | | istat FS reset med | | --------------- ---------------------- | | \|/ | | ---------------------- | | | icdiv FS median FC | | | ---------------------- | | \|/ | ------------------ | | idiv AB FC ABF | | ------------------ | \|/ | ------------------ | | clean ABF ABFC | | ------------------ | \|/ | ---------------------------------- | | let ABFC.variance=ABF.variance | (NDF case) | | let ABFC.z.errors=ABF.z.errors | (DST case) | ---------------------------------- | \|/ | --------------------------- | | iriscdist @cd @ @ @ @ @ | | --------------------------- | \|/ | ------------------------------- | | icur to define order limits | | | (yst, yend for irisech) | | ------------------------------- | \|/ | ------------------------------------------ | | irisech out=ABFCCD | (HK or IJ) | | file: ech.lis locfile: iris_dir:ij.ech | | ------------------------------------------ | \|/ | ------------------------------------ | | iristretch im=ABFCCD out=ABFCCDS | | ------------------------------------ | | | | <---------------------------------------- | \|/ | | --------------------------------------- | | | icur to define spectrum y ranges | | | | iristract ABFCCDS yst yend AO'numb' | | | --------------------------------------- | | | | | |-> repeat for each order and each beam --| | \|/ | ------------------------------------ | | isub AO'numb' BO'numb' ABO'numb' | | ------------------------------------ | \|/ | ------------------------------------------------ | | xcopy ABO'numb' iris_dir:ij'numb' ABO'numb'W | (or iris_dir:hk...) | ------------------------------------------------ | | - repeat for object and standard -| ---------------------------------------- (use same flat field for both) |---> | ISEDIT hydrogen lines from standard | | | and copy back .variance or .z.errors | | <------------------------------------------- |-------------------------------->| | \|/ | --------------------------------------------------------------------------- | | irisflux sp='obj'ABO'numb'W st='standard'ABO'numb'W out=iris_spect'numb'| | --------------------------------------------------------------------------- | |
|--- repeat for each order <--|
---------------------------------------------------------------- | EITHER: isubset iris_spect'numb' to trim off low end points, | | OR: fscrunch iris_spect'numb' to give same effect. | ---------------------------------------------------------------- \|/ --------------------------------------------------------------- | merge iris_spect'numb' iris_spect'numb+1' iris_spect_final | ---------------------------------------------------------------

Files needed for this:

CD.LIS (for IJ spectra)                       | ECH.LIS
ABFC 1 128 ABFCO6  1 iris_dir:sdj6.dat        | ABFCO6
ABFC 1 128 ABFCO7  1 iris_dir:sdj7.dat        | ABFCO7
ABFC 1 128 ABFCO8  1 iris_dir:sdj8.dat        | ABFCO8
ABFC 1 128 ABFCO9  1 iris_dir:sdj9.dat        | ABFCO9
ABFC 1 128 ABFCO10 1 iris_dir:sdj10.dat       | ABFCO10

CD.LIS (for HK spectra) | ECH.LIS | ABFC 1 128 ABFCO5 1 iris_dir:sdk5.dat | ABFCO5 ABFC 1 128 ABFCO6 1 iris_dir:sdk6.dat | ABFCO6 ABFC 1 128 ABFCO7 1 iris_dir:sdk7.dat | ABFCO7 ABFC 1 128 ABFCO8 1 iris_dir:sdk8.dat | ABFCO8


These lists duplicates those given in the main users' guide, primarily to provide magnitudes. The photometric standards are on the Carter system.

A1.1 Photometric standards

Star                                            J                            H                  K

HD590 9.195 8.969 8.947 HD1274 8.781 8.412 8.352 HD7644 9.487 9.239 9.199 HD8864 8.631 8.510 8.474 HD15189 8.460 8.159 8.126 HD15274 8.490 8.276 8.250 HD15911 9.452 9.462 9.472 HD17040 9.401 9.141 9.107 SA 94-251 9.131 8.426 8.305 SA 94-702 9.246 8.434 8.289 HD18847 8.992 8.686 8.653 HD20223 8.824 8.673 8.663 HD24849 8.802 8.530 8.489 HD29250 9.465 9.361 9.354 HD37567 8.997 8.990 8.993 HD38150 8.210 7.913 7.880 HD38872 8.136 7.985 7.960 HD39944 8.465 8.144 8.104 HD40348 8.926 8.895 8.892 HD52467 8.637 8.659 8.699 HD56189 9.141 8.910 8.873 HD62388 8.727 8.691 8.670 HD62998 8.593 8.323 8.294 HD71264 8.612 8.565 8.538 HD84090 8.568 8.506 8.493 HD84503 8.849 8.638 8.579 HD88449 8.522 8.257 8.223 HD94949 8.267 7.968 7.938 HD100501 9.305 9.119 9.087 HD105116 8.153 8.050 8.032 HD106807 8.707 8.645 8.637 HD106973 9.148 8.875 8.836 HD114895 8.252 8.135 8.101 HD122414 8.536 8.281 8.224 HD129349 9.077 8.861 8.802 HD129540 8.466 8.283 8.247 HD130035 8.648 8.461 8.427 HD136879 8.659 8.560 8.528 HD147778 8.453 8.151 8.088 HD148332 8.480 8.218 8.174 SA 108-475 HD154066 7.962 7.845 7.812 HD159402 8.102 8.113 8.140 HD166733 8.495 8.190 8.130 DM-59.7287 8.872 8.594 8.548 HD177619 8.584 8.312 8.278 HD193727 8.977 8.826 8.783 HD194107 8.772 8.395 8.352 HD202964 8.624 8.286 8.243 HD207288 8.825 8.369 8.315 HD 210427 9.245 8.895 8.852 HD210863 8.590 8.272 8.234 HD212874 9.077 8.921 8.890 HD214497 9.237 8.951 8.906 HD216009 7.988 7.949 7.947 HD218814 9.334 9.242 9.227 HD221462 8.630 8.282 8.219


A1.2 Spectrosocpic Standards
Star K
BS 88 4.88
BS 448 4.28
BS 772 4.26
BS 996 3.27
BS 1006 4.00
BS 1294 4.84
BS 2007 4.45
BS 2290 5.15
BS 2882 5.18
BS 3421 5.16
BS 4013 5.01
BS 4523 3.32
BS 4903 4.51
BS 5384 4.71
BS 5699 4.10
BS 5868 3.00
BS 5996 4.87
BS 6094 3.93
BS 6441 5.18
BS 6748 4.57
BS 7330 4.97
BS 7644 4.57
BS 8477 4.70
BS 8658 5.11


Below are listed the coordinates of all pixels at which reliable data cannot be obtained. The list does not include pixels that are unusually bright or faint at short wavelengths. There are a large number of these and it is not certain whether all are stable enough to flat field out. Those intending to work at J or with the IJ echelle are encouraged to take a series of flats to identify inconsistent pixels. Extra bad pixels are becoming increasingly apparent as time passes.

If you take mode 4 data at very low background (as in IJ spectroscopy) you will encounter many more bright pixels and, in many cases, dark companions to these. The majority of them will subtract off when a dark or sky frame is taken, and many are just pixels with unusually high dark currents. In broad-band imaging they will not be noticed. In preparing this list it was necessary to make a rather arbitrary distinction between pixels that cause regular trouble, and which should not be used under any circumstances, and those which only hurt a little at ultra-low background. Only the former are included here.

The list does not, of course, include the occasional cosmic rays (most of which are removed by the sigma-clipping algorithms) or thermal radiation from dust on the Fabry lens.

The IRIS beauty spot: (104-106, 26-28)

Triplet: (9,21) (9,22) (9,23); (19,66) (19,65) (18,66)

Pairs: (6,36) (6,37); (9,37); (10,37); (24,64) (24,65); (70,80) (71,80);

(86,56) (87,56); (89,58) (90,58); (112,121) (113,121); (120,70); (121,70)

Singles: (1,97); (2,7); (3,4); (5,122); (7,4); (8,63); (11,2); (12,8) (16,110); (17,85); (17,123); (41,4); (41,84); (44,54); (46,16); (49,79); (51,1); (63,112); (63,124); (66,70); (71,3); (78,56); (78,69); (85,119); (86,21); (88,78); (93,5); (101,67); (104,128); (106,7); (107,125); (111,128); (115,3); (115,106); (115,118); (120,26); (121,11); (126,26)

Additional suspect pixels will be found in DISK$USER:[DAA.IRIS]NEW.BAD



**** ORDER 10 ****

19 lines identified

Channel Wavelength Source 3.69 8231.6 xenon 7.50 8264.5 argon 8.98 8280.1 xenon 16.25 8346.8 xenon 22.91 8409.2 xenon 35.15 8521.4 argon 49.95 8667.9 argon 57.02 8739.4 xenon 64.34 8819.4 xenon 76.89 8952.3 xenon 85.46 9045.5 xenon 87.37 9069.4 [S III] (planetary nebula) 92.95 9123.0 argon 96.04 9162.7 xenon 101.44 9224.5 argon 101.41 9229.0 H P 9 (planetary nebula) 112.90 9354.2 argon 126.64 9513.4 xenon RMS error: 1.27, Line width used: 1.00

Order of fit: 3

0.1408376262246686D-05 0.1170093544207408D-01 0.8928788216577548D+01 0.8198285467857754D+04

**** ORDER 9 ****

23 lines identified

Channel Wavelength Source 1.36 9045.5 xenon 3.64 9069.4 [S III] (planetary nebula) 9.62 9123.0 argon 13.18 9162.7 xenon 19.57 9224.5 argon 19.49 9229.0 H P 9 (planetary nebula) 32.06 9354.2 argon 33.78 9374.8 xenon 46.42 9513.4 xenon 47.98 9532.1 [S III] (planetary nebula) 59.75 9657.8 argon 61.90 9685.3 xenon 64.49 9718.2 xenon 70.84 9784.5 argon 71.80 9799.7 xenon 82.26 9923.2 xenon 92.53 10049.4 H P 7 (planetary nebula) 93.25 10052.1 argon 97.46 10107.4 xenon 98.62 10123.6 He I (planetary nebula) 99.86 10139.8 mercury 120.55 10399.8 [N I] (planetary nebula) 126.55 10470.1 argon RMS error: 1.27, Line width used: 1.00

Order of fit: 3

-0.1647519110840891D-04 0.1588969983556325D-01 0.9650871918379314D+01 0.9033470318414614D+04

**** ORDER 8 ****

27 lines identified

Channel Wavelength Source 4.22 10107.4 xenon 5.45 10123.6 He I (planetary nebula) 6.79 10139.8 mercury 17.00 10251.0 xenon 27.50 10373.0 OH airglow 31.43 10418.0 OH airglow 35.98 10470.1 argon 40.66 10527.9 xenon 53.13 10673.6 argon 55.25 10706.8 xenon 59.53 10758.9 xenon 65.18 10830.1 He I (planetary nebula) 65.33 10830.1 OH airglow 65.93 10838.3 xenon 70.42 10895.3 xenon 73.42 10938.1 H P gamma (planetary nebula) 76.16 10972.3 OH airglow 80.02 11026.8 OH airglow 84.94 11078.9 argon 84.95 11085.3 xenon 99.61 11287.4 mercury 110.67 11435.7 OH airglow 114.63 11488.1 argon 117.39 11535.6 OH airglow 121.17 11588.5 OH airglow 125.18 11647.5 OH airglow 127.90 11668.7 argon RMS error: 2.66, Line width used: 1.00

Order of fit: 3

0.2002483012799361D-05 0.1452661417542289D-01 0.1079165882408612D+02 0.1006449807268489D+05

**** ORDER 7 ****

26 lines identified

Channel Wavelength Source 5.67 11435.7 OH airglow 9.68 11488.1 argon 13.38 11535.6 OH airglow 17.46 11588.5 OH airglow 19.38 11614.1 xenon 20.47 11626.4 He I (planetary nebula) 24.06 11668.8 argon 28.08 11719.5 argon 29.44 11742.4 xenon 38.20 11857.5 xenon 44.75 11943.3 argon 50.53 12026.6 argon 54.97 12084.8 xenon 57.65 12118.2 OH airglow 64.82 12225.9 OH airglow 65.66 12235.2 xenon 73.70 12343.6 argon 78.06 12419.9 OH airglow 80.34 12439.5 argon 92.05 12623.3 xenon 97.71 12702.3 argon 104.08 12802.7 argon 104.49 12818.1 H P beta (planetary nebula) 110.23 12901.1 OH airglow 113.92 12956.7 argon 116.91 13008.3 argon RMS error: 2.28, Line width used: 1.00

Order of fit: 3

0.1908196235144369D-04 0.1240175158316125D-01 0.1234167887249386D+02 0.1136759603839835D+05

**** ORDER 6 ****

19 lines identified

Channel Wavelength Source 8.83 13210.0 mercury 13.58 13272.7 argon 19.84 13367.1 argon 24.04 13426.6 mercury 29.23 13504.2 argon 31.72 13544.0 xenon 33.35 13570.2 mercury 36.92 13622.7 argon 39.13 13657.0 xenon 40.07 13673.5 mercury 43.14 13718.6 argon 55.79 13910.7 argon 57.79 13950.6 mercury 67.07 14093.6 argon 69.89 14142.2 xenon 75.80 14240.8 xenon 83.43 14364.8 xenon 104.64 14732.7 xenon 122.46 15046.8 argon RMS error: 2.40, Line width used: 1.00

Order of fit: 3

0.1510861706066055D-04 0.1390327598583656D-01 0.1411569393248962D+02 0.1308230166340575D+05


**** ORDER 8 ****

27 lines identified

Channel Wavelength Source 14.61 14634.5 argon 19.55 14732.8 xenon 35.89 15046.5 argon 36.05 15051.4 OH airglow 38.69 15099.7 xenon 42.26 15172.7 argon 45.33 15236.8 OH airglow 48.27 15296.0 mercury 49.40 15301.9 argon 49.56 15328.2 OH airglow 50.14 15342.0 Eta Car Br 18 54.46 15418.4 xenon 55.15 15439.0 Eta Car Br 17 60.87 15556.0 Eta Car Br 16 67.46 15700.5 Eta Car Br 15 73.96 15828.5 OH airglow 76.10 15880.0 Eta Car Br 14 77.28 15899.7 argon 81.62 15989.5 argon 83.10 16026.4 OH airglow 84.31 16053.3 xenon 86.71 16109.0 Eta Car Br 13 87.42 16124.2 OH airglow 92.13 16230.9 OH airglow 101.88 16436.6 argon 122.59 16920.2 mercury 123.71 16940.6 argon RMS error: 4.88, Line width used: 1.00

Order of fit: 3

-0.9315366572759290D-05 0.2219138849911926D-01 0.1823655146152030D+02 0.1436457844711510D+05

**** ORDER 7 ****

20 lines identified

Channel Wavelength Source 1.79 16230.9 OH airglow 12.33 16436.6 argon 16.71 16519.9 argon 18.15 16547.0 xenon 24.42 16688.5 OH airglow 26.38 16728.2 xenon 26.93 16740.1 argon 34.20 16899.0 OH airglow 35.25 16920.2 mercury 36.29 16941.0 argon 53.70 17325.8 xenon 58.36 17436.2 mercury 58.73 17445.1 argon 60.62 17478.0 mercury 67.65 17648.4 OH airglow 77.03 17875.4 OH airglow 79.03 17914.7 argon 81.68 17989.0 OH airglow 100.08 18428.9 argon 114.26 18788.1 xenon RMS error: 4.03, Line width used: 1.00

Order of fit: 3

-0.6857481572311973D-04 0.3737993755027128D-01 0.1933001829591213D+02 0.1619233098164214D+05

**** ORDER 6 ****

9 lines identified

Channel Wavelength Source 7.52 18697.2 helium 11.67 18788.1 xenon 49.66 19700.2 mercury 54.67 19817.5 argon 71.71 20262.2 xenon 83.80 20581.0 helium 115.58 21470.1 xenon 121.54 21655.0 planetary nebula Br 7 121.69 21655.0 Eta Car Br 7 RMS error: 3.10, Line width used: 1.00

Order of fit: 3

0.6100624227700001D-04 0.1898232760565224D-01 0.2251278662532656D+02 0.1852487945639758D+05

**** ORDER 5 ****

8 lines identified

Channel Wavelength Source 28.86 22406.8 xenon 31.67 22493.3 mercury 57.25 23193.3 xenon 59.13 23253.1 mercury 77.95 23796.5 xenon 98.72 24443.6 xenon 110.79 24824.7 xenon 120.98 25145.8 xenon RMS error: 4.27, Line width used: 1.00

Order of fit: 3

-0.2460352543308514D-04 0.3742134991233701D-01 0.2458863242654278D+02 0.2167069791131954D+05

H GRISM at f/36

24 lines identified

Channel Wavelength Source 2.03 12623.3 xenon 7.15 12956.7 argon 15.01 13504.2 argon 17.17 13657.1 xenon 17.89 13718.6 argon 23.61 14093.6 argon 24.49 14142.2 xenon 32.78 14732.8 xenon 37.38 15046.5 argon 37.75 15051.4 OH airglow 40.87 15296.0 mercury 40.95 15301.9 argon 42.61 15418.4 xenon 48.58 15828.9 OH airglow 51.79 16053.3 xenon 58.00 16519.9 argon 60.82 16687.7 OH airglow 61.22 16728.2 xenon 64.02 16920.2 mercury 64.31 16940.6 argon 68.97 17325.8 xenon 74.17 17648.4 OH airglow 77.87 17914.7 argon 110.79 20262.2 xenon RMS error: 12.06, Line width used: 0.60

Order of fit: 3

-0.2547017999271419D-03 0.6046674349393545D-01 0.6659743726138525D+02 0.1248929236949798D+05

Return to top of this page. |  Return to Documentation Home Page |   Return to AAO Home Page

This page last updated: 23 April 1996 by Chris Tinney