00001
00002 /*---------------------------------------------------------------------------
00003
00004 File name : object_cfg.h
00005 Author : Juergen Schreiber
00006 Created on : April 2002
00007 Description : object_ini definitions + handling prototypes
00008
00009 ---------------------------------------------------------------------------*/
00010
00011
00012 #ifndef _OBJECT_CFG_H_
00013 #define _OBJECT_CFG_H_
00014
00015 /*---------------------------------------------------------------------------
00016 Includes
00017 ---------------------------------------------------------------------------*/
00018
00019 /*
00020 #include <stdio.h>
00021 */
00022 #include <stdlib.h>
00023 #include "static_sz.h"
00024
00025
00026 /*---------------------------------------------------------------------------
00027 Defines
00028 ---------------------------------------------------------------------------*/
00029
00030
00031 /*---------------------------------------------------------------------------
00032 New types
00033 ---------------------------------------------------------------------------*/
00034
00035
00036 /*
00037 data cube creation blackboard container
00038
00039 This structure holds all information related to the object
00040 data cube creation routine. It is used as a container for the flux of ancillary data,
00041 computed values, and algorithm status. Pixel flux is separated from
00042 the blackboard.
00043 */
00044
00045 /*<python>*/
00046 typedef struct object_config {
00047 /*-------General---------*/
00048 char inFile[FILENAMESZ] ; /* input file of reduced jittered data cubes of a standard star */
00049 char ** framelist ; /* input averaged, bad pixel corrected, sky subtracted, \
00050 flatfielded and interleaved jittered frame list */
00051 char wavemap[FILENAMESZ] ; /* input wavelength calibration map */
00052 char mflat[FILENAMESZ] ; /* input master flat field */
00053 char outName[FILENAMESZ] ; /* output name of resulting fits data cube(s) */
00054 char sky_dist[FILENAMESZ] ; /* master flat corrected for distortion */
00055 char mflat_dist[FILENAMESZ] ; /* master flat corrected for distortion */
00056 char mflat_dither_dist[FILENAMESZ] ; /* master flat dithered corrected for distortion */
00057 int nframes ; /* number of jittered frames */
00058
00059 /*------ jittering ------*/
00060 /* jitter mode indicator: 0 for user jittering mode, 1 for auto jittering mode */
00061 int jitterind ;
00062 /* x-pixel size of the final combined data cube */
00063 int size_x ;
00064 /* y-pixel size of the final combined data cube */
00065 int size_y ;
00066 /* the name of the interpolation kernel */
00067 char kernel_type[FILENAMESZ] ;
00068 /* the name of the final image median of cube */
00069 char med_cube_name[FILENAMESZ] ;
00070 /* the name of the final mask cube */
00071 char maskname[FILENAMESZ] ;
00072
00073 /*------ Resampling ------*/
00074 /* number of coefficients for the polynomial interpolation (order + 1) */
00075 int ncoeffs ;
00076 /* number of rows in the resulting resampled image = number of spectral bins */
00077 int nrows ;
00078
00079 /*------ Calibration ------*/
00080 /* indicates if the halogen lamp feature from flatfielding should be corrected for or not */
00081 int halocorrectInd ;
00082 /* name of the fits file of the calibrated halogen lamp spectrum */
00083 char halospectrum[FILENAMESZ] ;
00084
00085 /*------ CubeCreation ------*/
00086 /* indicates if the slitlet distances are determined by a north-south test (1)
00087 or slitlet edge fits (0) */
00088 int northsouthInd ;
00089 /* name of the ASCII list of the distances of the slitlets */
00090 char distlist[FILENAMESZ] ;
00091 /* name of the ASCII list of the fitted slitlet edge positions */
00092 char poslist[FILENAMESZ] ;
00093 /* number of slitlets (32) */
00094 int nslits ;
00095 /* sub pixel position of the column position of the left edge of
00096 the first slitlet needed if the slitlet distances were determined by a north
00097 south test */
00098 char firstCol[FILENAMESZ] ;
00099
00100 /*------ FineTuning ------*/
00101 /* indicator for the shifting method to use */
00102 char method[1] ;
00103 /* order of polynomial if the polynomial interpolation shifting method is used */
00104 int order ;
00105
00106 /*------ SkyExtraction ------*/
00107 /* percentage of rejected low value pixels when averaging the sky spectra */
00108 float loReject ;
00109 /* percentage of rejected high value pixels when averaging the sky spectra */
00110 float hiReject ;
00111 /* pixel distance tolerance to the dividing diagonal line, these pixels are not considered
00112 to be sure to get only "clean" sky pixels */
00113 int tolerance ;
00114 } object_config ;
00115 /*</python>*/
00116
00117
00118
00119 /*---------------------------------------------------------------------------
00120 Function prototypes
00121 ---------------------------------------------------------------------------*/
00122
00123
00124 /*---------------------------------------------------------------------------
00125 Function : object_cfg_create()
00126 In : void
00127 Out : pointer to allocated base object_cfg structure
00128 Job : allocate memory for a object_cfg struct
00129 Notice : only the main (base) structure is allocated
00130 ---------------------------------------------------------------------------*/
00131
00132 object_config * object_cfg_create(void);
00133
00134
00135 /*---------------------------------------------------------------------------
00136 Function : object_cfg_destroy()
00137 In : object_config to deallocate
00138 Out : void
00139 Job : deallocate all memory associated with a object_config data structure
00140 Notice :
00141 ---------------------------------------------------------------------------*/
00142 /*<python>*/
00143 void object_cfg_destroy(object_config * cc);
00144 /*</python>*/
00145
00146 #endif
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001