MOONS Pipeline Reference Manual 0.13.1
moo_line_table.h
1/*
2 * This file is part of the MOONS Pipeline
3 * Copyright (C) 2002-2016 European Southern Observatory
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20#ifndef MOO_LINE_TABLE_H
21#define MOO_LINE_TABLE_H
22
23
24/*-----------------------------------------------------------------------------
25 Includes
26 -----------------------------------------------------------------------------*/
27
28#include <cpl.h>
29#include <hdrl.h>
30#include "moo_detector.h"
31
32#define MOO_PPM_TABLE_WAVE "WAVE"
33#define MOO_PPM_TABLE_X "X"
34#define MOO_PPM_TABLE_INDEXEXT "INDEXEXT"
35#define MOO_PPM_TABLE_DISP "DISP"
36
37#define MOO_LINE_TABLE_EXTNAME "LINE_TABLE"
38#define MOO_LINE_TABLE_NAME "NAME"
39#define MOO_LINE_TABLE_WAVE "WAVE"
40#define MOO_LINE_TABLE_FLUX "FLUX"
41#define MOO_LINE_TABLE_XGUESS "XGUESS"
42#define MOO_LINE_TABLE_SPECTRO "SPECTRO"
43#define MOO_LINE_TABLE_DETECTOR "DETECTOR"
44#define MOO_LINE_TABLE_SLITLET "SLITLET"
45#define MOO_LINE_TABLE_INDEXEXT "INDEXEXT"
46#define MOO_LINE_TABLE_INDEXRBN "INDEXRBN"
47#define MOO_LINE_TABLE_INTENSITY "INTENSITY"
48#define MOO_LINE_TABLE_XGAUSS "XGAUSS"
49#define MOO_LINE_TABLE_XBARY "XBARY"
50#define MOO_LINE_TABLE_DISP "DISP"
51#define MOO_LINE_TABLE_XDIFF "XDIFF"
52#define MOO_LINE_TABLE_WAVEDIFF "WAVEDIFF"
53#define MOO_LINE_TABLE_YLOC "YLOC"
54#define MOO_LINE_TABLE_FWHM "FWHM"
55#define MOO_LINE_TABLE_AMPLITUDE "AMPLITUDE"
56#define MOO_LINE_TABLE_BACKGROUND "BACKGROUND"
57#define MOO_LINE_TABLE_FIT_CHI2 "FIT_CHI2"
58#define MOO_LINE_TABLE_FIT_MSE "FIT_MSE"
59#define MOO_LINE_TABLE_FIT_FLUX "FIT_FLUX"
60#define MOO_LINE_TABLE_FIT_ERR "FIT_ERR"
61#define MOO_LINE_TABLE_GFITTED "GFITTED"
62#define MOO_LINE_TABLE_FILTERED "FILTERED"
63#define MOO_LINE_TABLE_MATCHED "MATCHED"
64#define MOO_LINE_TABLE_MFITTED "MFITTED"
65#define MOO_LINE_TABLE_WAVEFIT "WAVEFIT"
66#define MOO_LINE_TABLE_RESOLUTION "RESOLUTION"
67
68#define MOO_DETECTED_TABLE_MIN "MIN"
69#define MOO_DETECTED_TABLE_MAX "MAX"
70#define MOO_DETECTED_TABLE_TRESHOLD "THRESHOLD"
71#define MOO_DETECTED_TABLE_NITER "NITER"
72#define MOO_DETECTED_TABLE_WIN_MIN "WIN_MIN"
73#define MOO_DETECTED_TABLE_WIN_MAX "WIN_MAX"
74#define MOO_DETECTED_TABLE_WIN_CEN "WIN_CEN"
75#define MOO_DETECTED_TABLE_BADDETECT "BADDETECT"
76#define MOO_DETECTED_TABLE_NGOOD "NGOOD"
77#define MOO_DETECTED_TABLE_WAVETH "WAVETH"
78#define MOO_DETECTED_TABLE_BADFIT "BADFIT"
79#define MOO_DETECTED_TABLE_FIT_MSE "FIT_MSE"
80#define MOO_DETECTED_TABLE_FIT_CHI2 "FIT_CHI2"
81#define MOO_DETECTED_TABLE_FIT_FLUX "FIT_FLUX"
82#define MOO_DETECTED_TABLE_FIT_ERR "FIT_ERR"
83#define MOO_DETECTED_TABLE_FIT_BACKGROUND "FIT_BACKGROUND"
84#define MOO_DETECTED_TABLE_NOT_IN_RANGE "BADRANGE"
85
86#define MOO_SLITLET_SHIFT_TABLE_SLITLET "SLITLET"
87#define MOO_SLITLET_SHIFT_TABLE_WAVE "WAVE"
88#define MOO_SLITLET_SHIFT_TABLE_XDIFF "XDIFF"
89
90cpl_table *moo_slitlet_shift_table_new(int size);
91cpl_table *moo_detected_table_new(int size, int isGuess);
92
93cpl_table *moo_line_table_new(int isGuess);
94cpl_table *moo_line_table_load(cpl_frame *wmap);
95cpl_error_code
96moo_table_append(cpl_table *global_line_table, cpl_table *line_table);
97#endif
cpl_table * moo_line_table_new(int isGuess)
create a line table