Sinfoni Pipeline

NOTICE: SINFONI has the science grade detector installed now instead of the engineering grade detector, which was used during the science verification. You should not use the calibration database from engineering grade detector for the new detector, and visa versa.

NOTICE: The optimally extracted spectrum from si_rec_stdstar seems to be incorrect by a large factor (~100). We recommend extracting the spectrum manually with si_utl_cube2spectrum and op = sum

Major differences to 0.5.x

  • All si_step_* recipes are now removed.
  • Utility binaries have been replaced by recipe plugins (si_utl_*), which can be executed like the other recipes either through esorex or gasgano. Many of the utility routines combine the functionality of several binaries in previous releases. Use esorex --recipes to see the full listing of the utility recipes. The recipes have not been tested much, so not all of them may work as planned - your reports are most welcome!
  • Older versions of the FAQ pages:
    SINFONI Pipeline 0.5.0 FAQ
    SINFONI Pipeline 0.5.2 FAQ

Supported systems

  • The pipeline is supported on RedHat 9 and Solaris 5.8 for now. In principle it should be possible to compile and use it in any POSIX complient operating system. Reports on using the pipeline on other systems/distributions are welcome!
  • The pipeline compiles under Fedora Core 3 and based on minimal testing appears to work correctly
  • Currenty the pipeline does not work in Macs due to issues with CPL.

Reduction in nutshell

  • At the very least you should reduce for each day
    • Darks if you use them. Unless you are using OH lines in stacking phase to track the instrumental flexure, you do not need darks
    • Wavelength calibration
    • Flat fields
    • Telluric standards
    • Science frames
  • If you reduce nothing else than these and use calibration database solutions for the rest of the input frames, you are already reasonably close to the optimal quality. In many (most) cases this is good enough

Basic usage of the recipes

  • The recipes can be invoked with:
    esorex <esorex parameters> recipe_name <recipe parameters>
  • All recipes display a short help message when invoked with:
    esorex --help si_rec_stdstar
  • if you need to overwrite the default band-dependant parameters used by the SINFONI pipeline, generate configuration file for the recipe:
    esorex --create-config si_rec_stdstar.
    After this edit si_rec_stdstar.rc in .esorex directory under your home directory and run the recipe with
    esorex si_rec_stdstar --gen-overpar=no example.list
    Alternatively, you can simply run the task with e.g.
    esorex si_rec_stdstar --objnod-jit-ind=FALSE example_sof
  • Generally a recipe will generate several output files, all named out_*.fits. If you are unable to tell what each file is, check the PRO.CATG keyword stored in the fits headers e.g.
    dfits out*.fits | fitsort PRO.CATG
  • All recipes also save intermediate result file, e.g. si_rec_objnod produces the following files:
    1. Sky-subtracted, distortion corrected, bad-pixel interpolated frames (a.k.a. "stacked" frames). One for each object frame
    2. Reconstructed cubes. One for each object frame
    3. Combined cube (offsets stored in SEQ.CUMOFFSETX and SEQ.CUMOFFSETY are used)
    4. Combined cube with median filtering which hopefully removes cosmic rays
    5. Mask cube showing the total on-source integration time on each pixel of the combined cube
  • It's also possible change the current naming scheme. Change esorex.caller.suppress-prefix=TRUE in .esorex/esorex.rc, and the resulting files are not renamed to out_*.fits; instead you will end up with output filenames specified in rc files (e.g. wavemap_ima.fits)

Input frames

  • Slitlet Positions are the positions of the left and right edges of each of 32 slitlets on the array. The are given relative to the left edge of the array (0 column). Reference solutions obtainable from the calibration database should be accurate enough for typical science projects.
  • Slitlet Distances are the distances from the left edge of a slitlet to the left edge of the next slitlet. There are always 31 data points in slitlet distance file - together with the first column position they describe the positions of the slitlets. Slitlet distances are derived from North-South Test frames; typically you can use the files from calibration database since no significant evolution is expected
  • First column position a single number describing the position of the left edge of the first slitlet on the array. Currently the first column position should be set to 0.0 during the distortion correction, and calibration database contains a FIRST_COL file with this number.

Data reduction sequence

  • Basic data reduction follows the schematic invalid link: /sci/activities/vltsv/sinfonisv/dfs_sinfoni3.epsgraph (for pipeline release 0.5.x) included in the pipeline manual. Print it out on A3 size paper with a color printer!
  • Bad pixel maps
    • Generating good bad pixel mask is not trivial. The problem with them is that the slitlet edges are marked as bad. For the reduction of your science frames this matters little, but wavelength calibration should not be done with these bad bad pixel maps
    • If a bad pixel map has vertical stripes placed at almost constant intervals, it is bad. Bad bad pixel maps are most often generated for 25 mas scale, while bp maps at larger pixel scales should be ok.
  • Dark frames are generated by si_rec_mdark. In principle, one can give raw frames with different DET.DIT as input for it, and the pipeline creates one master dark frame for each DET.DIT. However, DET.DIT of all output frames is same - the one of the first input frame. This is not a bug - according to the new rules defined by DFO and the pipeline team the output frames should inherit the header of the first input frame in order to uniform the FITS header products of CPL based pipelines.
  • Flat fields are produced by si_rec_mflat. The recipe also produces bad pixel maps by default. Since this will take a long time, especially on slow computers with little memory, you may want to set sinfoni.lamp_flats.bad_ind=FALSE
  • North-South test is used to calculate slitlet distances and distortion correction. Typically both of these should be fairly constant, so you can use the files from the Calibration DataBase. You can also try to obtain them yourself with si_rec_distortion, which however requires a lot of memory (~2 GB of RAM+swap) and is fairly slow. si_rec_distortion produces an internal bap pixel mask with very conservative parameters to ensure it's good.
  • Wavelength calibration is done in recipe si_rec_wavecal.
    • Only good bad pixel maps should be used in wavecal. Instead of a bad bp map you might try to use a bp map for different pixel scale or even no bp map. Wavelength calibration may also fail with perfectly good bp maps, but using another bp map or playing with the parameters might work.
    • One of the input frames of si_rec_wavecal is a SLIT_POS file, which is used for bad pixel interpolation and recognization of slitlet edges. If the parameter bootstrap=TRUE, si_rec_wavecal attempts to create this file. However, this is not as robust as setting bootstrap=FALSE and using a SLIT_POS file from calibration database as input frame to si_rec_wavecal
  • si_rec_objnod can be used to reduce the science observations
    • si_rec_objnod can be used to either create separate cubes (one for each stacked input frame) or combine the stacked frames into one result cube.
    • When combining several stacked frames, si_rec_objnod uses SEQ.CUMOFFSETX and SEQ.CUMOFFSETY header keywords for offsets. The values stored in these fields may differ from correct offsets with ~1 pixel. If this is the case with your data, you should measure the offsets manually and use them in si_utl_cube_combine.
    • If you are unable to combine your cubes with si_rec_objnod, you can specify the offsets to be used in recipe si_utl_cube_combine. Typically correct offsets can be found by cross-correlation or measuring the position of a point source in collapsed image produced by si_utl_cube2ima
    • More often than in longslit spectroscopy, sky residuals (OH lines and thermal background) will be present in your SINFONI cubes. If they are unacceptably strong and your cube has some regions free from real astronomical emission, you can use si_utl_cube2spectrum to obtain the sky spectrum and subtract it from the cube with si_utl_cube_arith.
  • Standard stars are reduced by recipe si_rec_stdstar. One of the output products is a 1D spectrum of the star
    • The optimally extracted spectrum from si_rec_stdstar appears to be incorrect by a large factor (~100). We recommend extracting the spectrum manually with si_utl_cube2spectrum and op = sum
    • Before you can apply this to your science frames to remove telluric features, you need to remove the stellar emission lines from it. This can be done with stellar templates (see http://www.eso.org/sci/facilities/paranal/instruments/isaac.htmlISAAC webpages) or in the case of hotter stars, by fitting and removing the absorption lines. This step is analogous to longslit spectroscopy.
    • You should check whether there is some flexure between science cubes and standard spectra. si_utl_spectrum_arith offers the possibility of shifting the spectrum.
    • You can divide the cubes by spectrum with the utility recipe si_utl_cube_arith

Help! The recipe doesn't work!

  • Check all the input files exist and paths to them are correct.
  • Check all the tags for input files are correct
  • Try using the default parameters

Exploring the cubes

  • QFitsView written by Thomas Ott is a simple-to-use tool for displaying the cubes. It can e.g. easily produce continuum-subtracted emission line images.
  • There is nothing exotic in the final data format - it's completely standard 3D fits cube. Any software which can handle 3D fits files (e.g. IRAF) can be used to analyze the data
  • Wavelength information is stored in CDELT3, CRPIX3 and CRVAL3 header keywords - however, not all the programs use them. Especially this concers IRAF. Instead of CDELT3, it expects dispersion to be stored in CD3_3. If you plan to use splot to analyze your cubes, you might also add DISPAXIS keyword with value of 3 to suppress splot prompting for it.

Reporting bugs

  • Andrea Modigliani is maintaining the pipeline: please report any unintentional features you notice to him (cc Markus Kissler-Patig & Juha Reunanen).