VIMOS is an instrument of ESO. Observations can be taken in queue scheduled model without difficulties for most types of astronomical programmes (that we have experience with, at least), although if you do want flux calibration done on exactly the same night as all your observations you will need to request this as a separate target. For observations taken in Service Mode, raw and pipeline reduced files are delivered for both the science and calibration data. Generally the pipeline reduced science files in the service mode package are suitable for most needs but do require further processing in order to reconstruct the data cube and do the sky subtraction.
The VIMOS pipeline released on the ESO website and delivered in the service mode pages do a good job of reducing each quadrant of the F.O.V. corresponding to each of 4 CCDs. However, the pipeline does not currently have any utilities for stitching the 4 quadrants back together and then combining them into a merged data cube.
A new version of the VIMOS pipeline will be released within ~1 month (as of 20/5/09) with a recipe to make a merged data cube. "As VIMOS support astronomer this is one of the most frequent questions I get!" Marina Rejkuba
One way of doing this is to use the tables provided on the ESO VIMOS website about the field to slit mapping in the mode that corresponds to your observations: IFU Tables. You may also have these position tables somewhere in the data-files ESO sends after the observations have been done.
More information can also be found here: VIMOS Pipeline: IFU Reduction
Information on the pipeline procedures from ESO along with tips, tricks, and known problems can be found here: VIMOS IFU PIPELINE, or at the bottom of the VIMOS Service Mode package description on the ESO website.
An external pipeline for reducing VIMOS data is VIPGI, which works well and allows for more user interaction (which may be desirable if you have some doubts about your data), but takes longer to get used to.
Low Resolution data
One important thing to note is for observations needing the low resolution setting. There is contamination from the 2, 0, -1 and -2 order. That at 0 is just a bright blob, but the other orders contain the whole spectrum, at a reduced flux and with a spatial offset determined by the optics (of course). In the low resolution setting because the spectra are "mulitplexed" — that is, there are 4 "slits" directing the light to the CCD, each slit containing up to a few hundred fibres/spectra vertically arranged on the CCD — the result is that the two ends of most of the spectra are overlapped by these other orders. Whether this is a problem for your observations naturally depends on your programme.
For the aperture tracing and extraction it is a problem (at least at present, Dec 2008). The aperture tracing is done from the flat-field exposures, but on the flat-fields the spectra are also overlapped at their ends by the contamination orders. The result of this is that, using either gasgano or vipgi, the ends of the apertures are incorrectly traced, where the true spectrum blends with the slightly offset contamination. Thus, here you will be extracting the wrong spectra. Tests (by KME) have shown that in this case the PSF is badly affected: the FWHM (and slightly the wavelengths) of the emission lines are wrong and vary over the CCD/FoV. If your target has emission lines, and you need to subtract from these emission lines from an emission-line background, these results of the mis-extraction can be a real problem.
A way around this could be to reduce these data yourself in IRAF (e.g. apall), making the aperture tracing and extraction stop where the contamination becomes a problem (e.g. by first cutting up the images to separate out only the parts of the apertures that suffer no contamination, or by fiddling this into apall).
Assembling the quadrants
Currently (2008) the ESO pipeline gives you single-quadrant output fits files. To assemble the 4 quadrants of VIMOS IFS fits images into 1 fits image, with accompanying position table, you can do the following:
The images are added together with Q1 at the bottom (i.e. spectrum 1 is at the bottom and numbers increasing upwards in the new fits image) and Q4 at the top. This can be done simply in iraf, idl, sm….
An idl example is:
IDL> fxread,"Q1.fits",q1,hq1 (or whichever fits reading idl task you like to use) IDL> fxread,"Q2.fits",q2,hq2 IDL> fxread,"Q3.fits",q3,hq3 IDL> fxread,"Q4.fits",q4,hq4 IDL> help, q1 reply: Q1 FLOAT = Array[4259,400]
They must have the same dimensions as each other, and contain the number of spectra that each quadrant has in total, i.e. any spectra missing during the DR stage must be herein faked. (e.g. for the HR grating with 0.67" spaxels there should be 400 spectra per quadrant, for the LR grating, 1600 per quadrant.)
IDL> qall=fltarr(4259,1600) IDL> qall[*,0:399]=q1[*,0:399] IDL> qall[*,400:799]=q2[*,0:399] IDL> qall[*,800:1199]=q3[*,0:399] IDL> qall[*,1200:1599]=q4[*,0:399] IDL> hqall=hq1 IDL> fxaddpar,hqall,"NAXIS2",1600 IDL> fxwrite,"Qall.fits",hqall,qall
Next you need to make one big position table for Q1allfits that is in the same order. This is simply a matter of taking the positions table appropriate for your particular observation setup and concatenating them.
If you wish to modify the code snippets provided here, note that this code requires the position tables to be space-separated columns of:
spec_num xpos ypos
with x/ypos in any units (e.g. arcsec or pixel).
The position tables for the HR and LR gratings with the IFU of 0.67" and 0.33", valid in 2008, are provided here in a tarfile. In this tarfile vimosHRQ1a.pos is in arcsec and vimosHRQ1p.pos in pixels. vimosLRQ1.pos is in arcsec. tabHR.1.dat is what I got originally from ESO, tabHR.1.as.dat is the same but in arcsec for 0.67" spaxels.
The last column for all is the id column, but here doesn't really contain any information.
Turning the RSS-format fits files into a cube
One way you can turn an all-quadrant RSS-format VIMOS fits file into a cube is (using the files referenced to above):
IDL> fxread,"Qall.fits",img,hdr IDL> help,img IMG FLOAT = Array[4259, 1600] IDL> cube=fltarr(40,40,4259) IDL> readcol,"tabHR.all.dat",n,n,a,b (format is spectrum number, aperture number, spaxel x position, spaxel y position the positions here are not in sky coordinates, rather in spaxel coordinates, however this will also work with sky coordinates as long as they are simple ascii numbers) IDL> a=a-21 IDL> b=b-21 (subtract 21 because of the way the VIMOS IFU spaxels are arranged on the CCD see the VIMOS IFU manual and/or data reduction manual to learn more about this. It is possible the number 21 is not valid for the LR setting with 1600 spectra per quadrant. If so, I'm guessing it should be 41.) IDL> fxaddpar,hdr,"NAXIS",3 IDL> fxaddpar,hdr,"NAXIS1",40 IDL> fxaddpar,hdr,"NAXIS2",40 IDL> fxaddpar,hdr,"NAXIS3",4259 IDL> for i=0,1599 do begin cube( a(i), b(i), *)=img(*,i)
Naturally if your data are for an IFU setting of different dimensions, you may need to edit this code snippets.
Note that for this cube the units of the two spatial axes here are not in arcsec, rather in spaxel increments (i.e. 1 2 3…). To put in the proper RA Dec units you will need to edit the CRVAL1/2, CDELT1/2, CTYPE1/2 fits headers according to what is appropriate for your observations.