65#define MODULE_ID "XSH_EXTRACT"
73 {
"debug", required_argument, 0,
DEBUG_OPT},
80 puts(
"Unitary test of xsh_extract");
81 puts(
"Usage: test_xsh_extract [options] <input_files>");
84 puts(
" --method=<n> : method for extraction LOCALIZATION | FULL | NOD");
85 puts(
" --debug=<n> : Level of debug LOW | MEDIUM | HIGH [MEDIUM]" );
86 puts(
" --help : What you see" ) ;
87 puts(
"\nInput Files" ) ;
88 puts(
"The input files argument MUST be in this order:" ) ;
89 puts(
" 1. Rectified frame 2D" ) ;
90 puts(
" 2. Localization table");
101 while (( opt = getopt_long (argc, argv,
"slit_position:slit_height:method",
116 xsh_msg(
"WRONG method %s", optarg);
121 if ( strcmp( optarg,
"LOW")==0){
124 else if ( strcmp( optarg,
"HIGH")==0){
147 const char* rec_name = NULL;
153 check( rec_name = cpl_frame_get_filename( rec_frame));
155 printf(
"RECTIFY frame : %s\n", rec_name);
158 for(iorder=0; iorder< rec_list->
size; iorder++){
159 int order = 0, ilambda = 0;
163 double *lambda = NULL;
165 FILE* datfile = NULL;
173 sprintf( name,
"extract_order%d.dat",
order);
175 datfile = fopen( name,
"w");
177 for(ilambda=0; ilambda < nlambda; ilambda++){
178 fprintf( datfile,
"%f %f\n",lambda[ilambda],flux[ilambda]);
182 sprintf( name,
"extract_err_order%d.dat",
order);
184 datfile = fopen( name,
"w");
186 for(ilambda=0; ilambda < nlambda; ilambda++){
187 fprintf( datfile,
"%f %f\n",lambda[ilambda],err[ilambda]);
203int main(
int argc,
char **argv)
209 cpl_propertylist *header= NULL;
210 const char *tag = NULL;
211 cpl_frame* result = NULL;
212 cpl_frame* result_eso = NULL;
214 char* rec_name = NULL;
215 cpl_frame* rec_frame = NULL;
216 char* loc_name = NULL;
217 cpl_frame* loc_frame = NULL;
223 cpl_msg_set_level(CPL_MSG_DEBUG);
229 if ( (argc - optind) > 0 ) {
230 rec_name = argv[optind];
231 if ( (argc - optind) > 1){
232 loc_name = argv[optind+1];
238 rec_frame = cpl_frame_new();
240 cpl_frame_set_filename( rec_frame, rec_name) ;
242 check( header = cpl_propertylist_load( rec_name, 0));
246 cpl_frame_set_level( rec_frame, CPL_FRAME_LEVEL_TEMPORARY);
247 cpl_frame_set_group( rec_frame, CPL_FRAME_GROUP_RAW ) ;
248 cpl_frame_set_tag( rec_frame, tag);
256 if ( loc_name != NULL){
257 loc_frame = cpl_frame_new();
258 cpl_frame_set_filename( loc_frame, loc_name);
259 cpl_frame_set_level( rec_frame, CPL_FRAME_LEVEL_TEMPORARY);
260 cpl_frame_set_group( rec_frame, CPL_FRAME_GROUP_RAW );
265 xsh_msg(
"Rectified frame : %s", rec_name);
266 if (loc_name != NULL){
267 xsh_msg(
"Localization table : %s", loc_name);
271 &extract_obj,&result_eso,
"test"));
285 if (cpl_error_get_code() != CPL_ERROR_NONE) {
int main()
Unit test of xsh_bspline_interpol.
static xsh_instrument * instrument
double * xsh_rec_list_get_lambda(xsh_rec_list *list, int idx)
xsh_rec_list * xsh_rec_list_load(cpl_frame *frame, xsh_instrument *instrument)
load an rec list from a frame
float * xsh_rec_list_get_data1(xsh_rec_list *list, int idx)
float * xsh_rec_list_get_errs1(xsh_rec_list *list, int idx)
int xsh_rec_list_get_order(xsh_rec_list *list, int idx)
int xsh_rec_list_get_nlambda(xsh_rec_list *list, int idx)
void xsh_rec_list_free(xsh_rec_list **list)
free memory associated to a rec_list
#define xsh_error_dump(level)
#define XSH_ASSURE_NOT_NULL(pointer)
void xsh_instrument_set_mode(xsh_instrument *i, XSH_MODE mode)
Set a mode on instrument structure.
void xsh_instrument_set_arm(xsh_instrument *i, XSH_ARM arm)
Set an arm on instrument structure.
void xsh_instrument_set_lamp(xsh_instrument *i, XSH_LAMP lamp)
Set a lamp on instrument structure.
void xsh_instrument_free(xsh_instrument **instrument)
free an instrument structure
xsh_instrument * xsh_instrument_new(void)
create new instrument structure
#define xsh_msg(...)
Print a message on info level.
XSH_ARM xsh_pfits_get_arm(const cpl_propertylist *plist)
const char * xsh_pfits_get_pcatg(const cpl_propertylist *plist)
find out the pcatg
void xsh_free_frame(cpl_frame **f)
Deallocate a frame and set the pointer to NULL.
int xsh_debug_level_set(int level)
set debug level
void xsh_free_propertylist(cpl_propertylist **p)
Deallocate a property list and set the pointer to NULL.
#define TESTS_INIT(DRL_ID)
#define EXTRACT_METHOD_PRINT(method)