The SNIFS instrument is a lenslet-based integral field spectrograph developped at CRAL-Observatoire de Lyon, with an optical concept very similar to the one used in the previous 3D spectrographs TIGER (Bacon et al.,
1995A&AS..113..347B), OASIS (e.g. Bacon et al.,
2001A&A...371..409B) and SAURON (Bacon et al.,
As a consequence, the SNURP implements reduction algorithms very similar to the SAURON ones (see e.g. Copin, PhD). Once the CCD frames have been properly preprocessed (e.g. with E. Gangler's project
Ccd), the main steps are:
Ccdpackage is supposed to remove the detector signature from the CCD frames, the SNURP take cares of the data reduction up to the fully calibrated (including flux) datacube, i.e. removes all the SNIFS instrumental signatures. Note the computation of the precise flux calibration curve (including use of the photometric channel) is not supposed to be part of the SNURP; however, a crude extract_flux program (simple aperture photometry without ADR correction) is provided.
The cube is then ready to be used as input to other pieces of analysis softwares (e.g. supernova/galaxy separation and analysis), which are not part of the SNURP.
Snifs-0-7(26/10/05): flux calibration, cosmic rays, quick_pipeline, wavelength reference tables and calibration
Snifs-0-6(19/07/05): switch to IFU_C_iolibs-6.2, flux calibration, quick scripts (quick_cube, quick_calib, quick_extract, etc.), DISLIN output handler, fit_background, new spatial orientation, corrected exposure time, post-march'05 engineering run masks, documentation
Snifs-0-5(23/11/04): switch to IFU_C_iolibs-6.1, quick_subsky, center_gauss
Snifs-0-4(23/08/04): Secon-generation masks
Snifs-0-3(31/03/04): This is a bugfix release to comply with gcc 2.9x compilers (
Snifs-0-2(26/03/04): Include optimal extraction.
Snifs-0-1: Raw extraction.
setcvs.plscript (http://supernova.in2p3.fr/doc/ccin2p3/help_user/cvs_1.html.en), but you need special privileges to commit it back.
For a typical front-end user (anonymous access) who wants to get taggued release
SNIFS-0-1 in directory
eval `setcvs.pl -a IFU` cvs export -d Snifs-oldies -r Snifs-0-1 Snifs
cvs checkout -d Snifs-tmp Snifs/ChangeLog cvs status -v Snifs-tmp/ChangeLog cvs release -d Snifs-tmp/
If you feel brave, you can use the latest version (
cvs checkout Snifs
cvs update -d -P Snifs
IFU_C_iolibs(providing an 3D-oriented I/O library, see The IFU/Euro3D-LCL libraries) and the
IFU_C_mathlibs(including the GNU Scientific Library, http://sources.redhat.com/gsl/). Both are downloadable from the main CVS repository (https://cvs.in2p3.fr/snovae-IFU/). Please read the specific documentation for installation and setup procedures.
Snifs-xxx/directory (hereafter called
TOPDIR), you can proceed with the compilation. The project is built upon
autoconf, so that it should be pretty portable.
The first command to issue in
configure script accepts some non-standard options:
--with-dislin=DIR prefix to DISLIN graphical library (use \$DISLIN) --enable-debug[=format] debug mode compilation (e.g. stabs+) --enable-profile profiling mode compilation (gprof) --enable-verbose mega-verbose mode compilation --with-optim=level optimized compilation (level=1,2,3)
$DISLINset to the proper path), you can compile the SNIFS project with the DISLIN support. See Graphical output for the list of programs with a graphical output, and the list of available devices.
-g). Note that the DWARF debug information generated by
gcc3.x (at least up to 3.3.2) is flaky. As a way-out, you can specify your own debugging information format (e.g.
|-h|help||Print-out a complete list of possible options (specific and standard)|
|-version||Print-out version (|
|-debug||Run the program in DEBUG mode, i.e. with a higher level of verbosity and/or intermediate steps. The standard and error outputs are also copied in a |
|-quiet||Run the level with a minimum level of verbosity|
|-noask||Don't ask confirmation for overwriting existing files|
|-outputformat||Specify input/output format, overring the default format set by the environment variable |
|-tk||Arrange standard output to be used by the GUI.|
These programs have a device option
-dev, which default is
ASCII (text output written to standard output). If compiled with DISLIN, the device can be:
PNG, etc.: file device, the output file is named
toto.pdf) which extension has to match a standard DISLIN file device.
Snifsproject provides some standard calibrations under
LbdaRef_R.fitsfor reference wavelengthes
MK_extinction.fitsfor Mauna-Kea standard atmospheric extinction.
You can produce your own reference flux correction spectrum from quick_flux on your favorite photometric standard star (wrapper to quick_cube + quick_calib
-x + quick_extract
-x). If photometric precision is not (yet) your goal, the default quick_calib use the standard
quick_scripts) to be used as the building blocks of a quick & dirty pipeline. Each script has its own documentation (e.g. quick_cube) under the Quick scripts module.
These quick scripts are the basic elements of the pythonic
pythonscripts are also present in the SNURP. They need a recent version of python (from 2.2) to import the
OptionParsermodule. They also have special requirements:
dislin.pymodule (in the standard DISLIN distribution), optionally the IFU IO-library python-wrapper
pyfits.py(http://www.stsci.edu/resources/software_hardware/pyfits) and its dependancies, in particular
check_wcalib) moslty use
doxygenprogram is recent enough (check out the
./configureoutput), a voluminous cross-referenced manual is produced in the
Doc/directory of the
TOPDIR, both in LaTeX/PDF (
latex/refman.pdf) and in plain HTML (
Furthermore, for the
emacs addicts, a
TAGS file is produced for the project, including info from the two IFU libraries, providing you have Exuberant ctags (http://ctags.sourceforge.net).
Some extra info (on-line documentation, metrics, sample files, etc.) is available at http://snfactory.in2p3.fr/soft/snifs/
Here are some tools that could be useful to help you to debug the code:
valgrind --leak-check=yes [--show-reachable=yes] executable -usual-args
--skin=addrcheck(don't test for uninitialized memory)
You can also add some Valgrind macros to the code. E.g. to check if the particular variable
xsup is defined at a given point, include
memcheck.h and use the macro
VALGRIND_CHECK_DEFINED(xsup); where Valgrind thinks there is a problem.
efencelibrary, thanks to the
LD_PRELOADenvironment variable. Use the
efscript provided along with the
efencelibrary, or just set
LD_PRELOAD=libefence.so.0.0before lauching your executable.
extract_spec.c, one can use:
splint -weak -nestcomment -fixedformalarray +relaxtypes \ -I ../incl -I ../../incl \ -I ../../../../IFU_C_iolibs-6.2/incl -I ../../../../IFU_C_mathlibs-6.2/incl \ extract_spec.c
cvs tag Snifs-0-1
2004AN....325..163P) is the official Euro3D I/O library, implementing the Euro3D data format (Kissler-Patig et al.,
2004AN....325..159K) and offering a variety of tools for efficient and portable programming (option parsing, session handling, standard and error I/O, etc.). It is based on the so-called IFU library, developped over the years at the CRAL-Observatoire de Lyon (hence the LCL name, for `Lyon C Library') by the TIGER team, and mainly by Arlette Rousset-Pecontal, and heavily used and tested in various integral field spectrography projects (TIGRE, OASIS, SAURON).
The latest stable release of the library can be found on the `Official' Euro3D-LCL I/O library webpage, while the latest (unsupported, potentially unstable) release can be found on the Lyon Euro3D-LCL website. If you are new in the Euro3D/IFU programmation, this page also provides: