MOONS Pipeline Reference Manual 0.13.2
moo_sky_lines_list.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_SKY_LINES_LIST_H
21#define MOO_SKY_LINES_LIST_H
22
23
24/*-----------------------------------------------------------------------------
25 Includes
26 -----------------------------------------------------------------------------*/
27
28#include <cpl.h>
29#include <hdrl.h>
30#include "moo_detector.h"
31/*-----------------------------------------------------------------------------
32 Types
33 -----------------------------------------------------------------------------*/
34
35#define MOO_SKY_LINES_LIST_LINECAT_HR_TNAME "LINE_CATALOG_HR"
36#define MOO_SKY_LINES_LIST_FREEZONE_TNAME "OH_FREE_ZONES"
37
38#define MOO_SKY_LINES_LIST_WAVE_COLNAME "WAVE"
39#define MOO_SKY_LINES_LIST_NAME_COLNAME "NAME"
40#define MOO_SKY_LINES_LIST_FLUX_COLNAME "FLUX"
41#define MOO_SKY_LINES_LIST_BAND_COLNAME "BAND"
42
43#define MOO_SKY_LINES_LIST_WMIN_COLNAME "WAVE_MIN"
44#define MOO_SKY_LINES_LIST_WMAX_COLNAME "WAVE_MAX"
45
46typedef struct
47{
48 char *filename;
49 cpl_table *linecat;
50 cpl_table *free_zones;
51
52} moo_sky_lines_list;
53
54
55/*-----------------------------------------------------------------------------
56 Functions prototypes
57 -----------------------------------------------------------------------------*/
58moo_sky_lines_list *moo_sky_lines_list_new(void);
59
60moo_sky_lines_list *moo_sky_lines_list_load(const cpl_frame *frame);
61
62cpl_error_code moo_sky_lines_list_get_free_zones(moo_sky_lines_list *self,
63 double wmin,
64 double wmax,
65 double **zwmin,
66 double **zwmax,
67 cpl_array **sel);
68
69void moo_sky_lines_list_delete(moo_sky_lines_list *self);
70
71#endif
cpl_error_code moo_sky_lines_list_get_free_zones(moo_sky_lines_list *self, double wmin, double wmax, double **zwmin, double **zwmax, cpl_array **sel)
Get free zones for a specific wave range.
moo_sky_lines_list * moo_sky_lines_list_load(const cpl_frame *frame)
Load a SKY_LINES_LIST frame and create a moo_sky_lines_list.
void moo_sky_lines_list_delete(moo_sky_lines_list *self)
Delete a moo_sky_lines_list.
moo_sky_lines_list * moo_sky_lines_list_new(void)
Create a new moo_sky_lines_list.