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_badsky_cfg.h 00022 Author : Juergen Schreiber 00023 Created on : October 2001 00024 Description : bad_ini definitions + handling prototypes 00025 00026 ---------------------------------------------------------------------------*/ 00027 #ifndef SINFO_BADSKY_CFG_H 00028 #define SINFO_BADSKY_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 bad pixels search blackboard container 00043 00044 This structure holds all information related to the bad pixels search 00045 routine. It is used as a container for the flux of ancillary data, 00046 computed values, and algorithm status. Pixel flux is separated from 00047 the blackboard. 00048 */ 00049 00050 typedef struct badsky_config { 00051 /*-------General---------*/ 00052 char inFile[FILE_NAME_SZ] ; /* file name of the 00053 file containing the list of 00054 all input frames */ 00055 char sinfo_dark[FILE_NAME_SZ] ; /* Input sinfo_dark */ 00056 char outName[FILE_NAME_SZ] ; /* output name of resulting 00057 bad pixel mask (fits file)*/ 00058 char ** framelist ; /* list of frames */ 00059 int nframes ; /* number of frames in frame list */ 00060 00061 /*------ BadPix ------*/ 00062 /* factor of noise within which the pixels are used to fit a 00063 straight line to the column intensity */ 00064 float sigmaFactor ; 00065 /* factor of calculated standard deviation beyond 00066 which the deviation of a pixel value from the 00067 median of the 8 nearest neighbors declares a pixel as bad */ 00068 float factor ; 00069 /* number of iterations of sinfo_median filter */ 00070 int iterations ; 00071 /* percentage of extreme pixel value to reject 00072 when calculating the mean and stdev */ 00073 float loReject ; 00074 float hiReject ; 00075 /* pixel coordinate of lower left sinfo_edge of a 00076 rectangle zone from which image statistics are computed */ 00077 int llx ; 00078 int lly ; 00079 /* pixel coordinate of upper right sinfo_edge of a rectangle 00080 zone from which image statistics are computed */ 00081 int urx ; 00082 int ury ; 00083 /*------ Thresh ------*/ 00084 /* indicates if the values beyond threshold values should be 00085 marked as bad before proceeding 00086 to sinfo_median filtering */ 00087 int threshInd ; 00088 /* factor to the clean standard deviation to define the 00089 threshold deviation from the clean mean */ 00090 float meanfactor ; 00091 /* minimum vlaue of good data */ 00092 float mincut ; 00093 /* maximum vlaue of good data */ 00094 float maxcut ; 00095 /* indicates which method will be used */ 00096 int methodInd ; 00097 } badsky_config ; 00098 /*--------------------------------------------------------------------------- 00099 Function prototypes 00100 ---------------------------------------------------------------------------*/ 00101 00109 badsky_config * 00110 sinfo_badsky_cfg_create(void); 00117 void 00118 sinfo_badsky_cfg_destroy(badsky_config * sc); 00119 00120 #endif