00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifdef HAVE_CONFIG_H
00027 # include <config.h>
00028 #endif
00029
00030
00036
00039
00040
00041
00042
00043 #include <tests.h>
00044
00045 #include <xsh_data_pre.h>
00046 #include <xsh_error.h>
00047 #include <xsh_msg.h>
00048 #include <xsh_data_instrument.h>
00049 #include <xsh_data_rec.h>
00050 #include <xsh_data_localization.h>
00051 #include <xsh_drl.h>
00052 #include <xsh_pfits.h>
00053
00054 #include <xsh_badpixelmap.h>
00055
00056 #include <cpl.h>
00057 #include <math.h>
00058
00059 #include <getopt.h>
00060
00061
00062
00063
00064
00065 #define MODULE_ID "XSH_FLAT_MERGE"
00066
00067 #define SYNTAX "Test the flat merge function\n"\
00068 "use : ./test_xsh_flat_merge QTH_FRAME QTH_ORDER_TAB D2_FRAME D2_ORDER_TAB"\
00069 " SPECTRAL_TAB\n"\
00070 "QTH_FRAME => the qth flat frame\n"\
00071 "QTH_ORDER_TAB => the qth order table\n"\
00072 "D2_FRAME => the d2 flat frame\n"\
00073 "D2_ORDER_TAB => the d2 order table\n"\
00074
00075
00076
00077
00078
00086 int main( int argc, char **argv)
00087 {
00088
00089 int ret = 0 ;
00090 xsh_instrument* instrument = NULL;
00091 XSH_INSTRCONFIG* iconfig = NULL;
00092
00093 char* qth_name = NULL;
00094 cpl_frame* qth_frame = NULL;
00095 char* qth_order_tab_name = NULL;
00096 cpl_frame* qth_order_tab_frame = NULL;
00097 char* d2_name = NULL;
00098 char* d2_bkg_name = NULL;
00099 char* qth_bkg_name = NULL;
00100 cpl_frame* d2_frame = NULL;
00101 cpl_frame* d2_bkg_frame = NULL;
00102 cpl_frame* qth_bkg_frame = NULL;
00103
00104 char* d2_order_tab_name = NULL;
00105 cpl_frame* d2_order_tab_frame = NULL;
00106
00107 cpl_frame *qth_d2_flat_frame = NULL;
00108 cpl_frame *qth_d2_bkg_frame = NULL;
00109 cpl_frame *qth_d2_order_tab_frame = NULL;
00110
00111
00112 TESTS_INIT( MODULE_ID);
00113
00114 cpl_msg_set_level( CPL_MSG_DEBUG);
00115 xsh_debug_level_set( XSH_DEBUG_LEVEL_MEDIUM) ;
00116
00117
00118
00119 if ( argc > 4 ) {
00120 qth_name = argv[1];
00121 qth_bkg_name = argv[2];
00122 qth_order_tab_name = argv[3];
00123 d2_name = argv[4];
00124 d2_bkg_name = argv[5];
00125 d2_order_tab_name = argv[6];
00126 xsh_msg(" %s %s %s %s %s %s",
00127 qth_name,qth_bkg_name,qth_order_tab_name,
00128 d2_name, d2_bkg_name, d2_order_tab_name);
00129 }
00130 else{
00131 printf(SYNTAX);
00132 exit(0);
00133 }
00134
00135 qth_frame = cpl_frame_new();
00136 cpl_frame_set_filename( qth_frame, qth_name) ;
00137 cpl_frame_set_level( qth_frame, CPL_FRAME_LEVEL_TEMPORARY);
00138 cpl_frame_set_group( qth_frame, CPL_FRAME_GROUP_RAW ) ;
00139 cpl_frame_set_tag( qth_frame, "MASTER_FLAT_SLIT_UVB_QTH");
00140
00141
00142
00143 qth_bkg_frame = cpl_frame_new();
00144 cpl_frame_set_filename( qth_bkg_frame, qth_name) ;
00145 cpl_frame_set_level( qth_bkg_frame, CPL_FRAME_LEVEL_TEMPORARY);
00146 cpl_frame_set_group( qth_bkg_frame, CPL_FRAME_GROUP_RAW ) ;
00147 cpl_frame_set_tag( qth_bkg_frame, "BKG_FLAT_SLIT_UVB_QTH");
00148
00149 qth_order_tab_frame = cpl_frame_new();
00150 cpl_frame_set_filename( qth_order_tab_frame, qth_order_tab_name) ;
00151 cpl_frame_set_level( qth_order_tab_frame, CPL_FRAME_LEVEL_TEMPORARY);
00152 cpl_frame_set_group( qth_order_tab_frame, CPL_FRAME_GROUP_RAW ) ;
00153
00154 d2_frame = cpl_frame_new();
00155 cpl_frame_set_filename( d2_frame, d2_name) ;
00156 cpl_frame_set_level( d2_frame, CPL_FRAME_LEVEL_TEMPORARY);
00157 cpl_frame_set_group( d2_frame, CPL_FRAME_GROUP_RAW ) ;
00158 cpl_frame_set_tag( d2_frame, "MASTER_FLAT_SLIT_UVB_D2");
00159
00160
00161 d2_bkg_frame = cpl_frame_new();
00162 cpl_frame_set_filename( d2_bkg_frame, qth_name) ;
00163 cpl_frame_set_level( d2_bkg_frame, CPL_FRAME_LEVEL_TEMPORARY);
00164 cpl_frame_set_group( d2_bkg_frame, CPL_FRAME_GROUP_RAW ) ;
00165 cpl_frame_set_tag( d2_bkg_frame, "BKG_FLAT_SLIT_UVB_D2");
00166
00167
00168 d2_order_tab_frame = cpl_frame_new();
00169 cpl_frame_set_filename( d2_order_tab_frame, d2_order_tab_name) ;
00170 cpl_frame_set_level( d2_order_tab_frame, CPL_FRAME_LEVEL_TEMPORARY);
00171 cpl_frame_set_group( d2_order_tab_frame, CPL_FRAME_GROUP_RAW ) ;
00172
00173
00174 instrument = xsh_instrument_new() ;
00175
00176 instrument = xsh_instrument_new();
00177 xsh_instrument_set_arm( instrument, XSH_ARM_UVB);
00178
00179 xsh_instrument_set_mode( instrument, XSH_MODE_SLIT ) ;
00180 xsh_instrument_set_lamp( instrument, XSH_LAMP_QTH_D2) ;
00181 iconfig = xsh_instrument_get_config( instrument);
00182
00183 check( xsh_flat_merge_qth_d2( qth_frame,qth_order_tab_frame,
00184 d2_frame,d2_order_tab_frame,
00185 qth_bkg_frame,d2_bkg_frame,
00186 &qth_d2_flat_frame,&qth_d2_bkg_frame,
00187 &qth_d2_order_tab_frame, instrument));
00188
00189 cleanup:
00190 if (cpl_error_get_code() != CPL_ERROR_NONE) {
00191 xsh_error_dump(CPL_MSG_ERROR);
00192 return 1;
00193 }
00194 else return ret ;
00195 }
00196