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
00037
00040
00041
00042
00043
00044
00045 #include <xsh_data_order.h>
00046 #include <xsh_data_dispersol.h>
00047 #include <xsh_data_pre.h>
00048 #include <xsh_error.h>
00049 #include <xsh_msg.h>
00050 #include <xsh_data_instrument.h>
00051 #include <xsh_dfs.h>
00052 #include <xsh_pfits.h>
00053 #include <tests.h>
00054 #include <xsh_utils_table.h>
00055 #include <cpl.h>
00056 #include <math.h>
00057
00058
00059
00060
00061 #define MODULE_ID "XSH_DATA_DISPERSOL"
00062
00063 #define SYNTAX "Test the dispersion file by producing WAVEMAP and SLITMAP\n"\
00064 "usage : ./the_xsh_data_dispersol DISPERSOL_TAB ORDER_TAB PRE\n"\
00065 "DISPERSOL_TAB => the dispersol table\n"\
00066 "ORDER_TAB => the order table\n"\
00067 "PRE => the pre image\n"
00068
00069
00070
00071
00072
00073
00080
00081 int main( int argc, char** argv)
00082 {
00083 int ret = 0;
00084 xsh_instrument * instrument = NULL ;
00085 XSH_INSTRCONFIG* iconfig = NULL;
00086
00087 const char* order_tab_name = NULL;
00088 const char* dispersol_tab_name = NULL;
00089 const char* pre_name = NULL;
00090 cpl_frame *order_tab_frame = NULL;
00091 cpl_frame *dispersol_tab_frame = NULL;
00092 cpl_frame *pre_frame = NULL;
00093 cpl_table* table = NULL;
00094 cpl_frame *wavemap_frame = NULL;
00095 cpl_frame *slitmap_frame = NULL;
00096 int nbcol, ny;
00097
00098
00099 TESTS_INIT( MODULE_ID);
00100 cpl_msg_set_level( CPL_MSG_DEBUG);
00101 xsh_debug_level_set( XSH_DEBUG_LEVEL_MEDIUM) ;
00102
00103
00104 if ( argc > 3) {
00105 dispersol_tab_name = argv[1];
00106 order_tab_name = argv[2];
00107 pre_name = argv[3];
00108 }
00109 else{
00110 printf(SYNTAX);
00111 TEST_END();
00112 return 0;
00113 }
00114 xsh_msg("Dispersol tab file %s", dispersol_tab_name);
00115 xsh_msg("Order tab file %s", order_tab_name);
00116 xsh_msg("Pre file %s", pre_name);
00117
00118
00119
00120 instrument = xsh_instrument_new() ;
00121 xsh_instrument_set_arm( instrument, XSH_ARM_UVB);
00122
00123 XSH_ASSURE_NOT_NULL( pre_name);
00124 pre_frame = cpl_frame_new();
00125 cpl_frame_set_filename( pre_frame, pre_name) ;
00126 cpl_frame_set_level( pre_frame, CPL_FRAME_LEVEL_TEMPORARY);
00127 cpl_frame_set_group( pre_frame, CPL_FRAME_GROUP_RAW);
00128 cpl_frame_set_tag( pre_frame, "BIAS_UVB");
00129
00130 XSH_ASSURE_NOT_NULL( order_tab_name);
00131 order_tab_frame = cpl_frame_new();
00132 cpl_frame_set_filename( order_tab_frame, order_tab_name) ;
00133 cpl_frame_set_level( order_tab_frame, CPL_FRAME_LEVEL_TEMPORARY);
00134 cpl_frame_set_group( order_tab_frame, CPL_FRAME_GROUP_RAW );
00135
00136 XSH_TABLE_LOAD( table, order_tab_name);
00137 check( nbcol = cpl_table_get_nrow(table));
00138
00139 XSH_ASSURE_NOT_NULL( instrument);
00140
00141 check (iconfig = xsh_instrument_get_config( instrument));
00142 iconfig->orders = nbcol;
00143 ny = iconfig->ny;
00144
00145 XSH_ASSURE_NOT_NULL( dispersol_tab_name);
00146 dispersol_tab_frame = cpl_frame_new();
00147 cpl_frame_set_filename( dispersol_tab_frame, dispersol_tab_name) ;
00148 cpl_frame_set_level( dispersol_tab_frame, CPL_FRAME_LEVEL_TEMPORARY);
00149 cpl_frame_set_group( dispersol_tab_frame, CPL_FRAME_GROUP_RAW);
00150
00151 xsh_msg("Create wavemap and slitmap");
00152 check( xsh_create_map( dispersol_tab_frame, order_tab_frame,
00153 pre_frame, instrument,
00154 &wavemap_frame, &slitmap_frame,"test"));
00155 cleanup:
00156 if (cpl_error_get_code() != CPL_ERROR_NONE) {
00157 xsh_error_dump(CPL_MSG_ERROR);
00158 ret = 1;
00159 }
00160 XSH_TABLE_FREE( table);
00161 xsh_instrument_free( &instrument);
00162 xsh_free_frame( &pre_frame);
00163 xsh_free_frame( &order_tab_frame);
00164 xsh_free_frame( &dispersol_tab_frame);
00165 xsh_free_frame( &wavemap_frame);
00166 xsh_free_frame( &slitmap_frame);
00167 TEST_END();
00168 return ret ;
00169 }
00170