GIRAFFE Pipeline Reference Manual

gifov.h

00001 /* $Id$
00002  *
00003  * This file is part of the GIRAFFE Pipeline
00004  * Copyright (C) 2002-2006 European Southern Observatory
00005  *
00006  * This program is free software; you can redistribute it and/or modify
00007  * it under the terms of the GNU General Public License as published by
00008  * the Free Software Foundation; either version 2 of the License, or
00009  * (at your option) any later version.
00010  *
00011  * This program is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with this program; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00019  */
00020 
00021 /*
00022  * $Author$
00023  * $Date$
00024  * $Revision$
00025  * $Name$
00026  */
00027 
00028 #ifndef GIFOV_H
00029 #define GIFOV_H
00030 
00031 #include <cxslist.h>
00032 
00033 #include <cpl_macros.h>
00034 #include <cpl_array.h>
00035 #include <cpl_parameterlist.h>
00036 
00037 #include <giimage.h>
00038 #include <gitable.h>
00039 #include <gicube.h>
00040 #include <girebinning.h>
00041 
00042 
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046 
00047 
00048     enum GiFieldOfViewCubeFormat {
00049         GIFOV_FORMAT_SINGLE = 1 << 0,
00050         GIFOV_FORMAT_ESO3D  = 1 << 1
00051     };
00052 
00053     typedef enum GiFieldOfViewCubeFormat GiFieldOfViewCubeFormat;
00054 
00055 
00056     struct GiFieldOfViewConfig {
00057         cxdouble minimum;
00058         cxdouble maximum;
00059         cxbool cube;
00060 
00061         GiFieldOfViewCubeFormat format;
00062     };
00063 
00064     typedef struct GiFieldOfViewConfig GiFieldOfViewConfig;
00065 
00066 
00067     struct GiFieldOfView {
00068         GiInstrumentMode mode;
00069 
00070         cpl_array* ssn;
00071 
00072         struct {
00073             GiImage* spectra;
00074             GiImage* errors;
00075         } fov;
00076 
00077         struct {
00078             cx_slist* spectra;
00079             cx_slist* errors;
00080         } images;
00081 
00082         struct {
00083             cx_slist* spectra;
00084             cx_slist* errors;
00085         } cubes;
00086     };
00087 
00088     typedef struct GiFieldOfView GiFieldOfView;
00089 
00090 
00091     /*
00092      * Spectrum localization
00093      */
00094 
00095     cxint giraffe_fov_build(GiFieldOfView* result,
00096                             GiRebinning* rebinning, GiTable* fibers,
00097                             GiTable* wsolution, GiTable* grating,
00098                             GiTable* slitgeometry,
00099                             GiFieldOfViewConfig* config);
00100 
00101 
00102     /*
00103      * Convenience functions
00104      */
00105 
00106     GiFieldOfView* giraffe_fov_new(void);
00107     void giraffe_fov_delete(GiFieldOfView* self);
00108     void giraffe_fov_clear(GiFieldOfView* self);
00109 
00110     cxint giraffe_fov_save_cubes(const GiFieldOfView* self,
00111                                  cpl_propertylist* properties,
00112                                  const cxchar* filename, cxptr data);
00113 
00114     cxint giraffe_fov_save_cubes_eso3d(const GiFieldOfView* self,
00115                                        cpl_propertylist* properties,
00116                                        const cxchar* filename, cxptr data);
00117 
00118     GiFieldOfViewConfig* giraffe_fov_config_create(cpl_parameterlist* list);
00119     void giraffe_fov_config_destroy(GiFieldOfViewConfig* config);
00120     void giraffe_fov_config_add(cpl_parameterlist* list);
00121 
00122 
00123 #ifdef __cplusplus
00124 }
00125 #endif
00126 
00127 #endif /* GIFOV_H */

This file is part of the GIRAFFE Pipeline Reference Manual 2.10.
Documentation copyright © 2002-2006 European Southern Observatory.
Generated on Thu Mar 7 14:11:02 2013 by doxygen 1.4.7 written by Dimitri van Heesch, © 1997-2004