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 /* the name of the fits file with the polynom for the shift 00082 * due atmospheric refraction */ 00083 char polyshiftname[FILE_NAME_SZ] ; 00084 00085 /*------ Resampling ------*/ 00086 /* number of coefficients for the polynomial 00087 interpolation (order + 1) */ 00088 int ncoeffs ; 00089 /* number of rows in the resulting resampled 00090 image = number of spectral bins */ 00091 int nrows ; 00092 00093 /*------ Calibration ------*/ 00094 /* indicates if the halogen lamp feature from 00095 flatfielding should be corrected for or not */ 00096 int halocorrectInd ; 00097 /* name of the fits file of the calibrated halogen lamp spectrum */ 00098 char halospectrum[FILE_NAME_SZ] ; 00099 00100 /*------ CubeCreation ------*/ 00101 /* indicates if the slitlet distances are determined 00102 by a north-south test (1) 00103 or slitlet edge fits (0) */ 00104 int northsouthInd ; 00105 /* name of the ASCII list of the distances of the slitlets */ 00106 char distlist[FILE_NAME_SZ] ; 00107 /* name of the ASCII list of the fitted slitlet sinfo_edge positions */ 00108 char poslist[FILE_NAME_SZ] ; 00109 /* number of slitlets (32) */ 00110 int nslits ; 00111 /* sub pixel position of the column position of the left sinfo_edge of 00112 the first slitlet needed if the slitlet distances were determined 00113 by a north south test */ 00114 char firstCol[FILE_NAME_SZ] ; 00115 00116 /*------ FineTuning ------*/ 00117 /* indicator for the shifting method to use */ 00118 char method[1] ; 00119 /* order of polynomial if the polynomial interpolation shifting 00120 method is used */ 00121 int order ; 00122 00123 /*------ SkyExtraction ------*/ 00124 /* percentage of rejected low value pixels when averaging the 00125 sky spectra */ 00126 float loReject ; 00127 /* percentage of rejected high value pixels when averaging the 00128 sky spectra */ 00129 float hiReject ; 00130 /* pixel distance tolerance to the dividing diagonal line, 00131 these pixels are not considered to be sure to get only 00132 "clean" sky pixels */ 00133 int tolerance ; 00134 } object_config ; 00135 00136 /*--------------------------------------------------------------------------- 00137 Function prototypes 00138 ---------------------------------------------------------------------------*/ 00146 object_config * 00147 sinfo_object_cfg_create(void); 00148 00149 00156 void 00157 sinfo_object_cfg_destroy(object_config * cc); 00158 00159 #endif