60#define MODULE_ID "XSH_CREATE_MAP"
67 {
"debug", required_argument, 0,
DEBUG_OPT},
74 puts (
"Unitary test : Create a slitmap and a wavemap from a set of files (SOF)");
75 puts(
"Usage : ./the_xsh_data_wave_tab_2d [options] <SOF>");
78 puts(
" --debug=<n> : Level of debug LOW | MEDIUM | HIGH [MEDIUM]" );
79 puts(
" --help : What you see" ) ;
81 puts(
"The input files argument MUST be in this order:" );
82 puts(
" 1. PRE frame");
83 puts(
" 2. SOF a) MODEL : [XSH_MOD_CFG_TAB_UVB]");
84 puts(
" b) POLYNOMIAL: [DISP_TAB, ORDER_TAB_EDGES]");
95 while( (opt = getopt_long( argc, argv,
"debug:help",
99 if ( strcmp( optarg,
"LOW")==0){
102 else if ( strcmp( optarg,
"HIGH")==0){
127int main(
int argc,
char** argv)
130 cpl_frameset* set = NULL;
131 char *sof_name = NULL;
132 char *pre_name = NULL;
133 cpl_frame *pre_frame = NULL;
134 cpl_propertylist *pre_header = NULL;
135 cpl_frame *model_frame = NULL;
136 cpl_frame *disptab_frame = NULL;
137 cpl_frame *ordertab_frame = NULL;
138 cpl_frame *wavemap_frame = NULL;
139 cpl_frame *slitmap_frame = NULL;
144 char wavemap_name[256];
145 char slitmap_name[256];
149 cpl_msg_set_level( CPL_MSG_DEBUG);
155 if ( (argc-optind) >= 2) {
156 pre_name = argv[optind];
157 sof_name = argv[optind+1];
163 check( pre_header = cpl_propertylist_load( pre_name, 0));
188 if ( model_frame == NULL){
189 xsh_msg(
"Using polynomial solution to produce map");
195 xsh_msg(
"Using model to produce map");
202 xsh_msg(
"PRE binning %dx%d : %s",
binx,
biny, cpl_frame_get_filename( pre_frame));
207 sprintf( wavemap_name,
"model_%dx%d_WAVE_MAP",
binx,
biny);
208 sprintf( slitmap_name,
"model_%dx%d_SLIT_MAP",
binx,
biny);
209 xsh_msg(
"MODEL : %s", cpl_frame_get_filename( model_frame));
213 wavemap_name, slitmap_name,
214 &wavemap_frame, &slitmap_frame,0));
217 xsh_msg(
"DISPERSION TAB : %s", cpl_frame_get_filename( disptab_frame));
218 xsh_msg(
"ORDER TAB : %s", cpl_frame_get_filename( ordertab_frame));
220 sprintf( wavemap_name,
"poly_%dx%d",
binx,
biny);
223 instrument, &wavemap_frame, &slitmap_frame, wavemap_name));
226 xsh_msg(
"Created SLITMAP: %s", cpl_frame_get_filename( slitmap_frame));
227 xsh_msg(
"Created WAVEMAP: %s", cpl_frame_get_filename( wavemap_frame));
236 if (cpl_error_get_code() != CPL_ERROR_NONE) {
int main()
Unit test of xsh_bspline_interpol.
static xsh_instrument * instrument
static struct option LongOptions[]
cpl_frameset * sof_to_frameset(const char *sof_name)
#define xsh_error_dump(level)
#define xsh_error_reset()
XSH_ARM xsh_instrument_get_arm(xsh_instrument *i)
Get an arm on instrument structure.
void xsh_instrument_free(xsh_instrument **instrument)
free an instrument structure
#define xsh_msg(...)
Print a message on info level.
int xsh_pfits_get_binx(const cpl_propertylist *plist)
find out the BINX value
int xsh_pfits_get_biny(const cpl_propertylist *plist)
find out the BINY value
void xsh_free_frame(cpl_frame **f)
Deallocate a frame and set the pointer to NULL.
void xsh_free_frameset(cpl_frameset **f)
Deallocate a frame set 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.
static void HandleOptions(int argc, char **argv)
#define TESTS_XSH_FRAME_CREATE(frame, tag, name)
#define TESTS_INIT(DRL_ID)
void xsh_create_map(cpl_frame *dispsol_frame, cpl_frame *ordertab_frame, cpl_frame *pre_frame, xsh_instrument *instrument, cpl_frame **wavemap_frame, cpl_frame **slitmap_frame, const char *rec_prefix)
void xsh_create_model_map(cpl_frame *model_frame, xsh_instrument *instrument, const char *wtag, const char *stag, cpl_frame **wavemap_frame, cpl_frame **slitmap_frame, const int save_tmp)
cpl_frame * xsh_find_disp_tab(cpl_frameset *frames, xsh_instrument *instr)
Find Dispersol tab frame. The frame returned should not be free by the caller.
cpl_frame * xsh_find_order_tab_edges(cpl_frameset *frames, xsh_instrument *instr)
Find an order tab EDGES.
xsh_instrument * xsh_dfs_set_groups(cpl_frameset *set)
Set the group as RAW or CALIB in a frameset and return the instrument detected.
cpl_frame * xsh_find_frame_with_tag(cpl_frameset *frames, const char *tag, xsh_instrument *instr)
Find frame with a given tag.
#define XSH_MOD_CFG_OPT_2D
cpl_error_code xsh_model_temperature_update_frame(cpl_frame **model_config_frame, cpl_frame *ref_frame, xsh_instrument *instrument, int *found_temp)