33#include "moo_fibres_table.h"
57moo_fibres_table_get_spectro(
int num)
60 return MOO_FIBRES_TABLE_SPECTRO_1;
63 return MOO_FIBRES_TABLE_SPECTRO_2;
79 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, NULL);
81 cpl_propertylist *slitorder = cpl_propertylist_new();
82 cpl_propertylist_append_bool(slitorder, MOO_FIBRES_TABLE_SPECTRO,
84 cpl_propertylist_append_bool(slitorder, MOO_FIBRES_TABLE_INDEX, CPL_FALSE);
85 cpl_table_sort(table, slitorder);
86 cpl_propertylist_delete(slitorder);
88 const int spectro_name = moo_fibres_table_get_spectro(num);
89 cpl_table_unselect_all(table);
90 cpl_table_or_selected_int(table, MOO_FIBRES_TABLE_SPECTRO, CPL_EQUAL_TO,
93 cpl_array *res = cpl_table_where_selected(table);
111 cpl_array *res = NULL;
112 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, NULL);
113 cpl_errorstate prestate = cpl_errorstate_get();
115 const int spectro_name = moo_fibres_table_get_spectro(num);
117 cpl_propertylist *slitorder = NULL;
119 slitorder = cpl_propertylist_new();
120 cpl_propertylist_append_bool(slitorder, MOO_FIBRES_TABLE_SPECTRO,
123 moo_try_check(cpl_propertylist_append_bool(slitorder,
124 MOO_FIBRES_TABLE_INDEXEXT,
127 moo_try_check(cpl_table_sort(table, slitorder),
" ");
129 moo_try_check(cpl_table_unselect_all(table),
" ");
130 moo_try_check(cpl_table_or_selected_int(table, MOO_FIBRES_TABLE_SPECTRO,
131 CPL_EQUAL_TO, spectro_name),
134 moo_try_check(res = cpl_table_where_selected(table),
" ");
137 if (!cpl_errorstate_is_equal(prestate)) {
138 cpl_array_delete(res);
141 cpl_propertylist_delete(slitorder);
158 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, NULL);
159 const int spectro_name = moo_fibres_table_get_spectro(num);
160 cpl_table_unselect_all(table);
161 cpl_table_or_selected_int(table, MOO_FIBRES_TABLE_SPECTRO, CPL_EQUAL_TO,
163 cpl_table *selected = cpl_table_extract_selected(table);
180 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, -1);
181 const int spectro_name = moo_fibres_table_get_spectro(num);
182 cpl_table_unselect_all(table);
183 return cpl_table_or_selected_int(table, MOO_FIBRES_TABLE_SPECTRO,
184 CPL_EQUAL_TO, spectro_name);
202 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
204 cpl_error_code status = CPL_ERROR_NONE;
206 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_GOODPTSFRAC_RI,
208 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_GOODPTSFRAC_YJ,
210 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_GOODPTSFRAC_H,
212 int nrow = cpl_table_get_nrow(table);
213 for (
int i = 0; i < nrow; i++) {
214 cpl_table_set_float(table, MOO_FIBRES_TABLE_GOODPTSFRAC_RI, i, 0.0);
215 cpl_table_set_float(table, MOO_FIBRES_TABLE_GOODPTSFRAC_YJ, i, 0.0);
216 cpl_table_set_float(table, MOO_FIBRES_TABLE_GOODPTSFRAC_H, i, 0.0);
236 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
238 cpl_error_code status = CPL_ERROR_NONE;
240 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MEDSNR_RI_EXT,
242 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MEDSNR_YJ_EXT,
244 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MEDSNR_H_EXT,
246 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DERSNR_RI_EXT,
248 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DERSNR_YJ_EXT,
250 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DERSNR_H_EXT,
253 cpl_table_new_column(table, MOO_FIBRES_TABLE_INDEXEXT, CPL_TYPE_INT);
254 int nrow = cpl_table_get_nrow(table);
255 for (
int i = 0; i < nrow; i++) {
256 cpl_table_set_int(table, MOO_FIBRES_TABLE_INDEXEXT, i, -1);
276 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
278 cpl_error_code status = CPL_ERROR_NONE;
281 cpl_table_new_column(table, MOO_FIBRES_TABLE_TRANS_RI, CPL_TYPE_FLOAT);
283 cpl_table_new_column(table, MOO_FIBRES_TABLE_TRANS_YJ, CPL_TYPE_FLOAT);
285 cpl_table_new_column(table, MOO_FIBRES_TABLE_TRANS_H, CPL_TYPE_FLOAT);
304 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
306 cpl_error_code status = CPL_ERROR_NONE;
309 cpl_table_new_column(table, MOO_FIBRES_TABLE_INDEXRBN, CPL_TYPE_INT);
310 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MEDSNR_RI_RBN,
312 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MEDSNR_YJ_RBN,
314 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MEDSNR_H_RBN,
316 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_RI,
318 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_YJ,
320 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_H,
322 int nrow = cpl_table_get_nrow(table);
324 for (
int i = 0; i < nrow; i++) {
325 cpl_table_set_int(table, MOO_FIBRES_TABLE_INDEXRBN, i, 0);
326 cpl_table_set_int(table, MOO_FIBRES_TABLE_MONOTONOUS_RI, i, 1);
327 cpl_table_set_int(table, MOO_FIBRES_TABLE_MONOTONOUS_YJ, i, 1);
328 cpl_table_set_int(table, MOO_FIBRES_TABLE_MONOTONOUS_H, i, 1);
348 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
350 cpl_error_code status = CPL_ERROR_NONE;
353 cpl_table_new_column(table, MOO_FIBRES_TABLE_TYPE_NOD, CPL_TYPE_STRING);
354 int nrow = cpl_table_get_nrow(table);
356 for (
int i = 0; i < nrow; i++) {
357 cpl_table_set_string(table, MOO_FIBRES_TABLE_TYPE_NOD, i,
"");
377 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
379 cpl_error_code status = CPL_ERROR_NONE;
381 status = cpl_table_erase_column(table, MOO_FIBRES_TABLE_MEDSNR_RI_EXT);
382 status = cpl_table_erase_column(table, MOO_FIBRES_TABLE_MEDSNR_YJ_EXT);
383 status = cpl_table_erase_column(table, MOO_FIBRES_TABLE_MEDSNR_H_EXT);
406 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
407 cpl_ensure_code(guess != NULL, CPL_ERROR_NULL_INPUT);
408 int nrow = cpl_table_get_nrow(table);
409 int guess_nrow = cpl_table_get_nrow(guess);
410 cpl_ensure_code(guess_nrow == nrow, CPL_ERROR_ILLEGAL_INPUT);
411 cpl_error_code status = CPL_ERROR_NONE;
412 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MATCHLINE_RI,
414 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MODELLINE_RI,
416 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DETECTLINE_RI,
418 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_FAILEDFIT_RI,
421 cpl_table_new_column(table, MOO_FIBRES_TABLE_FITLINE_RI, CPL_TYPE_INT);
422 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_REJECTLINE_RI,
424 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_XDIFF_MEDIAN_RI,
427 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MATCHLINE_YJ,
429 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MODELLINE_YJ,
431 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DETECTLINE_YJ,
433 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_FAILEDFIT_YJ,
436 cpl_table_new_column(table, MOO_FIBRES_TABLE_FITLINE_YJ, CPL_TYPE_INT);
437 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_REJECTLINE_YJ,
439 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_XDIFF_MEDIAN_YJ,
443 cpl_table_new_column(table, MOO_FIBRES_TABLE_MATCHLINE_H, CPL_TYPE_INT);
445 cpl_table_new_column(table, MOO_FIBRES_TABLE_MODELLINE_H, CPL_TYPE_INT);
446 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DETECTLINE_H,
449 cpl_table_new_column(table, MOO_FIBRES_TABLE_FAILEDFIT_H, CPL_TYPE_INT);
451 cpl_table_new_column(table, MOO_FIBRES_TABLE_FITLINE_H, CPL_TYPE_INT);
452 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_REJECTLINE_H,
454 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_XDIFF_MEDIAN_H,
457 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_RI,
459 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_YJ,
461 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_H,
465 cpl_table_get_data_string_const(table, MOO_FIBRES_TABLE_FIBRE);
466 const char **guess_names =
467 cpl_table_get_data_string_const(guess, MOO_FIBRES_TABLE_FIBRE);
469 for (
int i = 0; i < nrow; i++) {
470 const char *ext_name = names[i];
471 cpl_table_set_int(table, MOO_FIBRES_TABLE_MONOTONOUS_RI, i, -1);
472 cpl_table_set_int(table, MOO_FIBRES_TABLE_MONOTONOUS_YJ, i, -1);
473 cpl_table_set_int(table, MOO_FIBRES_TABLE_MONOTONOUS_H, i, -1);
474 for (
int j = 0; j < guess_nrow; j++) {
475 const char *guess_name = guess_names[j];
476 if (strcmp(ext_name, guess_name) == 0) {
477 for (
int k = 0; k < 3; k++) {
480 moo_try_check(nmatched =
516 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
518 cpl_error_code status = CPL_ERROR_NONE;
520 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DETECTLINE_RI,
522 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_FAILEDFIT_RI,
525 cpl_table_new_column(table, MOO_FIBRES_TABLE_FITLINE_RI, CPL_TYPE_INT);
526 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MATCHLINE_RI,
528 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_REJECTLINE_RI,
531 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DETECTLINE_YJ,
533 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_FAILEDFIT_YJ,
536 cpl_table_new_column(table, MOO_FIBRES_TABLE_FITLINE_YJ, CPL_TYPE_INT);
537 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MATCHLINE_YJ,
539 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_REJECTLINE_YJ,
542 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_DETECTLINE_H,
545 cpl_table_new_column(table, MOO_FIBRES_TABLE_FAILEDFIT_H, CPL_TYPE_INT);
547 cpl_table_new_column(table, MOO_FIBRES_TABLE_FITLINE_H, CPL_TYPE_INT);
549 cpl_table_new_column(table, MOO_FIBRES_TABLE_MATCHLINE_H, CPL_TYPE_INT);
550 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_REJECTLINE_H,
552 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_RI,
554 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_YJ,
556 status = cpl_table_new_column(table, MOO_FIBRES_TABLE_MONOTONOUS_H,
574 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, NULL);
576 const char *res[] = { MOO_FIBRES_TABLE_MEDSNR_RI_EXT,
577 MOO_FIBRES_TABLE_MEDSNR_YJ_EXT,
578 MOO_FIBRES_TABLE_MEDSNR_H_EXT };
580 return cpl_table_get_data_float(table, res[type]);
600 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
602 const char *res[] = { MOO_FIBRES_TABLE_DETECTLINE_RI,
603 MOO_FIBRES_TABLE_DETECTLINE_YJ,
604 MOO_FIBRES_TABLE_DETECTLINE_H };
606 cpl_error_code status = CPL_ERROR_NONE;
607 int *data = cpl_table_get_data_int(table, res[type]);
629 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
631 const char *res[] = { MOO_FIBRES_TABLE_FAILEDFIT_RI,
632 MOO_FIBRES_TABLE_FAILEDFIT_YJ,
633 MOO_FIBRES_TABLE_FAILEDFIT_H };
634 cpl_error_code status = CPL_ERROR_NONE;
635 int *data = cpl_table_get_data_int(table, res[type]);
657 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
659 const char *res[] = { MOO_FIBRES_TABLE_FITLINE_RI,
660 MOO_FIBRES_TABLE_FITLINE_YJ,
661 MOO_FIBRES_TABLE_FITLINE_H };
663 cpl_error_code status = CPL_ERROR_NONE;
664 int *data = cpl_table_get_data_int(table, res[type]);
686 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
688 const char *res[] = { MOO_FIBRES_TABLE_MATCHLINE_RI,
689 MOO_FIBRES_TABLE_MATCHLINE_YJ,
690 MOO_FIBRES_TABLE_MATCHLINE_H };
691 cpl_error_code status = CPL_ERROR_NONE;
692 status = cpl_table_set_int(table, res[type], row, value);
713 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
715 const char *res[] = { MOO_FIBRES_TABLE_MODELLINE_RI,
716 MOO_FIBRES_TABLE_MODELLINE_YJ,
717 MOO_FIBRES_TABLE_MODELLINE_H };
719 return cpl_table_set_int(table, res[type], row, value);
739 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
741 const char *res[] = { MOO_FIBRES_TABLE_REJECTLINE_RI,
742 MOO_FIBRES_TABLE_REJECTLINE_YJ,
743 MOO_FIBRES_TABLE_REJECTLINE_H };
745 cpl_error_code status = CPL_ERROR_NONE;
746 status = cpl_table_set_int(table, res[type], row, value);
767 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
769 const char *res[] = { MOO_FIBRES_TABLE_XDIFF_MEDIAN_RI,
770 MOO_FIBRES_TABLE_XDIFF_MEDIAN_YJ,
771 MOO_FIBRES_TABLE_XDIFF_MEDIAN_H };
773 return cpl_table_set_double(table, res[type], row, value);
791 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, 0);
794 const char *res[] = { MOO_FIBRES_TABLE_MATCHLINE_RI,
795 MOO_FIBRES_TABLE_MATCHLINE_YJ,
796 MOO_FIBRES_TABLE_MATCHLINE_H };
798 return cpl_table_get_int(table, res[type], row, &rej);
816 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, 0);
819 const char *res[] = { MOO_FIBRES_TABLE_REJECTLINE_RI,
820 MOO_FIBRES_TABLE_REJECTLINE_YJ,
821 MOO_FIBRES_TABLE_REJECTLINE_H };
823 return cpl_table_get_int(table, res[type], row, &rej);
841 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, 0);
844 const char *res[] = { MOO_FIBRES_TABLE_XDIFF_MEDIAN_RI,
845 MOO_FIBRES_TABLE_XDIFF_MEDIAN_YJ,
846 MOO_FIBRES_TABLE_XDIFF_MEDIAN_H };
848 return cpl_table_get_double(table, res[type], row, &rej);
862 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, 0);
863 return cpl_table_and_selected_int(table, MOO_FIBRES_TABLE_HEALTH,
865 MOO_FIBRES_TABLE_HEALTH_BROKEN);
879 cpl_table *res = NULL;
880 cpl_ensure(frame != NULL, CPL_ERROR_NULL_INPUT, NULL);
882 const char *filename = cpl_frame_get_filename(frame);
883 cpl_ensure(filename != NULL, CPL_ERROR_NULL_INPUT, NULL);
885 cpl_size qnum = cpl_fits_find_extension(filename, MOO_FIBRES_TABLE_EXTNAME);
887 res = cpl_table_load(filename, qnum, 0);
904 const char *res = NULL;
905 cpl_ensure(table != NULL, CPL_ERROR_NULL_INPUT, NULL);
907 cpl_table_unselect_all(table);
908 cpl_table_or_selected_string(table, MOO_FIBRES_TABLE_TYPE, CPL_EQUAL_TO,
909 MOO_FIBRES_TABLE_TYPE_STD_FLUX);
910 cpl_table_or_selected_string(table, MOO_FIBRES_TABLE_TYPE, CPL_EQUAL_TO,
911 MOO_FIBRES_TABLE_TYPE_STD_TELL);
913 cpl_array *indexes = cpl_table_where_selected(table);
916 cpl_table_get_data_string_const(table, MOO_FIBRES_TABLE_TARGNAME);
917 int size = cpl_array_get_size(indexes);
919 int idx = cpl_array_get_cplsize(indexes, 0, NULL);
923 cpl_error_set_message(cpl_func, CPL_ERROR_ILLEGAL_INPUT,
924 "Wrong number (%d) of STD found", size);
926 cpl_array_delete(indexes);
947 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
948 cpl_ensure_code(indexext != NULL, CPL_ERROR_NULL_INPUT);
949 cpl_ensure_code(num != NULL, CPL_ERROR_NULL_INPUT);
950 cpl_table_select_all(table);
951 int size = cpl_table_and_selected_int(table, MOO_FIBRES_TABLE_INDEXRBN,
952 CPL_EQUAL_TO, indexrbn);
955 cpl_array *sel = cpl_table_where_selected(table);
956 int idx = cpl_array_get_cplsize(sel, 0, NULL);
957 cpl_array_delete(sel);
959 cpl_table_get_int(table, MOO_FIBRES_TABLE_INDEXEXT, idx, NULL);
961 cpl_table_get_int(table, MOO_FIBRES_TABLE_SPECTRO, idx, NULL);
962 if (str == MOO_FIBRES_TABLE_SPECTRO_1) {
973 return CPL_ERROR_NONE;
987 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
989 cpl_propertylist *order = cpl_propertylist_new();
990 cpl_propertylist_append_bool(order, MOO_FIBRES_TABLE_INDEXRBN, CPL_FALSE);
991 cpl_table_sort(table, order);
992 cpl_propertylist_delete(order);
994 return CPL_ERROR_NONE;
1008 cpl_ensure_code(table != NULL, CPL_ERROR_NULL_INPUT);
1010 cpl_propertylist *order = cpl_propertylist_new();
1011 cpl_propertylist_append_bool(order, MOO_FIBRES_TABLE_SPECTRO, CPL_FALSE);
1012 cpl_propertylist_append_bool(order, MOO_FIBRES_TABLE_INDEX, CPL_FALSE);
1013 cpl_table_sort(table, order);
1014 cpl_propertylist_delete(order);
1016 return CPL_ERROR_NONE;
enum _moo_detector_type_ moo_detector_type
The type code type.
int moo_fibres_table_filter_health(cpl_table *table)
Filter bad health data in fibre table.
cpl_error_code moo_fibres_table_add_wavecalguess_cols(cpl_table *table)
add wavecal additional columns
cpl_table * moo_fibre_table_load(cpl_frame *frame)
Load a fibre table from a file.
cpl_error_code moo_fibres_table_by_index(cpl_table *table)
Order fibres table by INDEX (ASC)
cpl_error_code moo_fibres_table_add_wavecal_cols(cpl_table *table, cpl_table *guess, const char *model)
add wavecal additional columns
cpl_error_code moo_fibres_table_set_matchline(cpl_table *table, moo_detector_type type, cpl_size row, int value)
set the number of match lines for the given detector type
int moo_fibres_table_get_spectro_nrow(cpl_table *table, int num)
get the number of rows of a spectro in the fibre table
cpl_error_code moo_fibres_table_set_failedfit(cpl_table *table, moo_detector_type type, cpl_size row, int value)
set the number od failedfit lines for the given detector type
float * moo_fibres_table_get_median_snr(cpl_table *table, moo_detector_type type)
get the data of median_snr for the given detector type
cpl_array * moo_fibres_table_get_spectro_indexext(cpl_table *table, int num)
get the index of a spectro in the fibre table sort by spetcro,indexext
cpl_error_code moo_fibres_table_set_fitline(cpl_table *table, moo_detector_type type, cpl_size row, int value)
set the number of fit lines for the given detector type
cpl_error_code moo_fibres_table_set_modelline(cpl_table *table, moo_detector_type type, cpl_size row, int value)
set the number of model lines for the given detector type
cpl_table * moo_fibres_table_get_spectro_table(cpl_table *table, int num)
get the selection of a spectro in the fibre table
int moo_fibres_table_get_matchline(cpl_table *table, moo_detector_type type, cpl_size row)
Get the number of matched lines for the given detector type.
int moo_fibres_table_get_rejectline(cpl_table *table, moo_detector_type type, cpl_size row)
Get the number of rejected lines for the given detector type.
double moo_fibres_table_get_xdiff(cpl_table *table, moo_detector_type type, cpl_size row)
Get xdiff for the given detector type.
cpl_error_code moo_fibres_table_set_xdiff(cpl_table *table, moo_detector_type type, cpl_size row, double value)
set the xdiff for the given fibre and detector type
cpl_error_code moo_fibres_table_add_extract_cols(cpl_table *table)
add extract additional columns
const char * moo_fibres_table_get_std_name(cpl_table *table)
get the object name of the STD type in the fibre table
cpl_error_code moo_fibres_table_set_detectline(cpl_table *table, moo_detector_type type, cpl_size row, int value)
set the number od detectline for the given detector type
cpl_error_code moo_fibres_table_add_f2f_cols(cpl_table *table)
add f2f additional columns
cpl_array * moo_fibres_table_get_spectro_index(cpl_table *table, int num)
get the index of a spectro in the fibre table sort by index on the slit
cpl_error_code moo_fibres_table_by_indexrbn(cpl_table *table)
Order fibres table by INDEXRBN (ASC)
cpl_error_code moo_fibres_table_add_nod_cols(cpl_table *table)
add nod additional columns
cpl_error_code moo_fibres_table_rbn_to_ext(cpl_table *table, int indexrbn, int *indexext, int *num)
get from indexrbn the corresponding indexext and num
cpl_error_code moo_fibres_table_add_locguess_cols(cpl_table *table)
add localise guess additional columns
cpl_error_code moo_fibres_table_add_rebin_cols(cpl_table *table)
add rebin additional columns
cpl_error_code moo_fibres_table_set_rejectline(cpl_table *table, moo_detector_type type, cpl_size row, int value)
set the number of rejected lines for the given detector type
cpl_error_code moo_fibres_table_erase_extract_cols(cpl_table *table)
erase extract additional columns