00001 /* 00002 * This file is part of the ESO SINFONI Pipeline 00003 * Copyright (C) 2004,2005 European Southern Observatory 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA 00018 */ 00019 /*--------------------------------------------------------------------------- 00020 00021 File name : sinfo_object_cfg.h 00022 Author : Juergen Schreiber 00023 Created on : April 2002 00024 Description : object_ini definitions + handling prototypes 00025 00026 ---------------------------------------------------------------------------*/ 00027 #ifndef SINFO_OBJECT_CFG_H 00028 #define SINFO_OBJECT_CFG_H 00029 /*--------------------------------------------------------------------------- 00030 Includes 00031 ---------------------------------------------------------------------------*/ 00032 #include <stdlib.h> 00033 #include "sinfo_globals.h" 00034 #include <cpl.h> 00035 /*--------------------------------------------------------------------------- 00036 Defines 00037 ---------------------------------------------------------------------------*/ 00038 /*--------------------------------------------------------------------------- 00039 New types 00040 ---------------------------------------------------------------------------*/ 00041 /* 00042 data cube creation blackboard container 00043 00044 This structure holds all information related to the object 00045 data cube creation routine. It is used as a container for the 00046 flux of ancillary data, computed values, and algorithm status. 00047 Pixel flux is separated from the blackboard. 00048 */ 00049 00050 typedef struct object_config { 00051 /*-------General---------*/ 00052 char inFile[FILE_NAME_SZ] ; /* input file of reduced jittered 00053 data cubes of a standard star */ 00054 char ** framelist ; /* input averaged, bad pixel corrected, sky 00055 subtracted, flatfielded and interleaved 00056 jittered frame list */ 00057 char wavemap[FILE_NAME_SZ] ; /* input wavelength calibration map */ 00058 char mflat[FILE_NAME_SZ] ; /* input master flat field */ 00059 char outName[FILE_NAME_SZ] ; /* output name of resulting fits 00060 data cube(s) */ 00061 char sky_dist[FILE_NAME_SZ] ; /* master flat corrected for distortion */ 00062 char mflat_dist[FILE_NAME_SZ] ; /* master flat corrected for distortion */ 00063 char mflat_dither_dist[FILE_NAME_SZ] ; /* master flat dithered 00064 corrected for distortion */ 00065 int nframes ; /* number of jittered frames */ 00066 00067 /*------ jittering ------*/ 00068 /* jitter mode indicator: 0 for user jittering mode, 00069 1 for auto jittering mode */ 00070 int jitterind ; 00071 /* x-pixel size of the final combined data cube */ 00072 int size_x ; 00073 /* y-pixel size of the final combined data cube */ 00074 int size_y ; 00075 /* the name of the interpolation kernel */ 00076 char kernel_type[FILE_NAME_SZ] ; 00077 /* the name of the final image sinfo_median of cube */ 00078 char med_cube_name[FILE_NAME_SZ] ; 00079 /* the name of the final mask cube */ 00080 char maskname[FILE_NAME_SZ] ; 00081 00082 /*------ Resampling ------*/ 00083 /* number of coefficients for the polynomial 00084 interpolation (order + 1) */ 00085 int ncoeffs ; 00086 /* number of rows in the resulting resampled 00087 image = number of spectral bins */ 00088 int nrows ; 00089 00090 /*------ Calibration ------*/ 00091 /* indicates if the halogen lamp feature from 00092 flatfielding should be corrected for or not */ 00093 int halocorrectInd ; 00094 /* name of the fits file of the calibrated halogen lamp spectrum */ 00095 char halospectrum[FILE_NAME_SZ] ; 00096 00097 /*------ CubeCreation ------*/ 00098 /* indicates if the slitlet distances are determined 00099 by a north-south test (1) 00100 or slitlet edge fits (0) */ 00101 int northsouthInd ; 00102 /* name of the ASCII list of the distances of the slitlets */ 00103 char distlist[FILE_NAME_SZ] ; 00104 /* name of the ASCII list of the fitted slitlet sinfo_edge positions */ 00105 char poslist[FILE_NAME_SZ] ; 00106 /* number of slitlets (32) */ 00107 int nslits ; 00108 /* sub pixel position of the column position of the left sinfo_edge of 00109 the first slitlet needed if the slitlet distances were determined 00110 by a north south test */ 00111 char firstCol[FILE_NAME_SZ] ; 00112 00113 /*------ FineTuning ------*/ 00114 /* indicator for the shifting method to use */ 00115 char method[1] ; 00116 /* order of polynomial if the polynomial interpolation shifting 00117 method is used */ 00118 int order ; 00119 00120 /*------ SkyExtraction ------*/ 00121 /* percentage of rejected low value pixels when averaging the 00122 sky spectra */ 00123 float loReject ; 00124 /* percentage of rejected high value pixels when averaging the 00125 sky spectra */ 00126 float hiReject ; 00127 /* pixel distance tolerance to the dividing diagonal line, 00128 these pixels are not considered to be sure to get only 00129 "clean" sky pixels */ 00130 int tolerance ; 00131 } object_config ; 00132 00133 /*--------------------------------------------------------------------------- 00134 Function prototypes 00135 ---------------------------------------------------------------------------*/ 00143 object_config * 00144 sinfo_object_cfg_create(void); 00145 00146 00153 void 00154 sinfo_object_cfg_destroy(object_config * cc); 00155 00156 #endif
1.4.4