GIRAFFE Pipeline Reference Manual

giframe.h
1/*
2 * This file is part of the GIRAFFE Pipeline
3 * Copyright (C) 2002-2019 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 St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20#ifndef GIFRAME_H
21#define GIFRAME_H
22
23#include <cpl_macros.h>
24#include <cpl_propertylist.h>
25#include <cpl_frame.h>
26#include <cpl_frameset.h>
27
28#include <giimage.h>
29#include <gitable.h>
30
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36/*
37 * Technical frames
38 */
39
40#define GIFRAME_LINEARITY_FLAT "LINEARITY_FLAT"
41#define GIFRAME_LINEARITY_BIAS "LINEARITY_BIAS"
42
43
44/*
45 * Raw frames
46 */
47
48#define GIFRAME_BIAS "BIAS"
49#define GIFRAME_DARK "DARK"
50#define GIFRAME_FIBER_FLAT "FIBER_FLAT"
51#define GIFRAME_ARC_SPECTRUM "ARC_SPECTRUM"
52#define GIFRAME_SCIENCE "SCIENCE"
53#define GIFRAME_STANDARD "STD"
54
55/*
56 * Calibration data
57 */
58
59#define GIFRAME_BADPIXEL_MAP "BAD_PIXEL_MAP"
60#define GIFRAME_GRATING "GRATING_DATA"
61#define GIFRAME_SLITGEOMETRY "SLIT_GEOMETRY"
62#define GIFRAME_SLITMASTER "SLIT_GEOMETRY_MASTER"
63#define GIFRAME_SLITSETUP "SLIT_GEOMETRY_SETUP"
64#define GIFRAME_LINE_MASK "LINE_MASK"
65#define GIFRAME_LINE_CATALOG "LINE_CATALOG"
66#define GIFRAME_EXTINCTION "ATMOSPHERIC_EXTINCTION"
67#define GIFRAME_FLUX_STANDARDS "FLUX_STANDARDS"
68
69/*
70 * Products
71 */
72
73#define GIFRAME_BIAS_MASTER "MASTER_BIAS"
74#define GIFRAME_DARK_MASTER "MASTER_DARK"
75
76#define GIFRAME_FIBER_FLAT_MASTER "MASTER_FIBER_FLAT"
77#define GIFRAME_FIBER_FLAT_EXTSPECTRA "FF_EXTSPECTRA"
78#define GIFRAME_FIBER_FLAT_EXTERRORS "FF_EXTERRORS"
79#define GIFRAME_FIBER_FLAT_EXTPIXELS "FF_EXTPIXELS"
80#define GIFRAME_FIBER_FLAT_EXTTRACE "FF_EXTTRACES"
81#define GIFRAME_FIBER_FLAT_EXTMODEL "FF_EXTMODEL"
82
83#define GIFRAME_LOCALIZATION_CENTROID "FF_LOCCENTROID"
84#define GIFRAME_LOCALIZATION_WIDTH "FF_LOCWIDTH"
85#define GIFRAME_LOCALIZATION_FIT "FF_LOCFIT"
86
87#define GIFRAME_PSF_CENTROID "FF_PSFCENTROID"
88#define GIFRAME_PSF_WIDTH "FF_PSFWIDTH"
89#define GIFRAME_PSF_FIT "FF_PSFFIT"
90
91#define GIFRAME_ARC_LAMP_EXTSPECTRA "ARC_EXTSPECTRA"
92#define GIFRAME_ARC_LAMP_EXTERRORS "ARC_EXTERRORS"
93#define GIFRAME_ARC_LAMP_EXTPIXELS "ARC_EXTPIXELS"
94#define GIFRAME_ARC_LAMP_EXTTRACE "ARC_EXTTRACES"
95#define GIFRAME_ARC_LAMP_EXTMODEL "ARC_EXTMODEL"
96#define GIFRAME_ARC_LAMP_RBNSPECTRA "ARC_RBNSPECTRA"
97#define GIFRAME_ARC_LAMP_RBNERRORS "ARC_RBNERRORS"
98
99#define GIFRAME_WAVELENGTH_SOLUTION "DISPERSION_SOLUTION"
100#define GIFRAME_LINE_DATA "LINE_DATA"
101#define GIFRAME_PSF_DATA "FIBER_PROFILE"
102
103#define GIFRAME_SCIENCE_REDUCED "SCIENCE_REDUCED"
104#define GIFRAME_SCIENCE_EXTSPECTRA "SCIENCE_EXTSPECTRA"
105#define GIFRAME_SCIENCE_EXTERRORS "SCIENCE_EXTERRORS"
106#define GIFRAME_SCIENCE_EXTPIXELS "SCIENCE_EXTPIXELS"
107#define GIFRAME_SCIENCE_EXTTRACE "SCIENCE_EXTTRACES"
108#define GIFRAME_SCIENCE_EXTMODEL "SCIENCE_EXTMODEL"
109#define GIFRAME_SCIENCE_RBNSPECTRA "SCIENCE_RBNSPECTRA"
110#define GIFRAME_SCIENCE_RBNERRORS "SCIENCE_RBNERRORS"
111#define GIFRAME_SCIENCE_RCSPECTRA "SCIENCE_RCSPECTRA"
112#define GIFRAME_SCIENCE_RCERRORS "SCIENCE_RCERRORS"
113#define GIFRAME_SCIENCE_CUBE_SPECTRA "SCIENCE_CUBE_SPECTRA"
114#define GIFRAME_SCIENCE_CUBE_ERRORS "SCIENCE_CUBE_ERRORS"
115#define GIFRAME_SCIENCE_CUBE "SCIENCE_CUBE"
116
117#define GIFRAME_STANDARD_REDUCED "STD_REDUCED"
118#define GIFRAME_STANDARD_EXTSPECTRA "STD_EXTSPECTRA"
119#define GIFRAME_STANDARD_EXTERRORS "STD_EXTERRORS"
120#define GIFRAME_STANDARD_EXTPIXELS "STD_EXTPIXELS"
121#define GIFRAME_STANDARD_EXTTRACE "STD_EXTTRACES"
122#define GIFRAME_STANDARD_EXTMODEL "STD_EXTMODEL"
123#define GIFRAME_STANDARD_RBNSPECTRA "STD_RBNSPECTRA"
124#define GIFRAME_STANDARD_RBNERRORS "STD_RBNERRORS"
125#define GIFRAME_STANDARD_RCSPECTRA "STD_RCSPECTRA"
126#define GIFRAME_STANDARD_RCERRORS "STD_RCERRORS"
127#define GIFRAME_STANDARD_CUBE_SPECTRA "STD_CUBE_SPECTRA"
128#define GIFRAME_STANDARD_CUBE_ERRORS "STD_CUBE_ERRORS"
129#define GIFRAME_STANDARD_CUBE "STD_CUBE"
130
131#define GIFRAME_SCATTERED_LIGHT_MODEL "SCATTERED_LIGHT_MODEL"
132
133#define GIFRAME_INSTRUMENT_RESPONSE "INSTRUMENT_RESPONSE"
134#define GIFRAME_EFFICIENCY_CURVE "EFFICIENCY_CURVE"
135
136
137/*
138 * Miscellaneous
139 */
140
141#define GIFRAME_FIBER_SETUP "FIBER_SETUP"
142
143
144/*
145 * Generic frame creation utilities
146 */
147
148typedef cxint (*GiFrameCreator)(cxcptr, cpl_propertylist*, const cxchar*,
149 cxcptr);
150
151cpl_frame* giraffe_frame_create(const cxchar* tag, cpl_frame_level level,
152 const cpl_propertylist *properties,
153 cxcptr object, cxcptr data,
154 GiFrameCreator creator);
155
156cxint
157giraffe_frame_save(const cpl_frame* frame,
158 const cpl_propertylist* properties,
159 cxcptr object, cxcptr data,
160 GiFrameCreator creator);
161
162
163/*
164 * Special frame creation utilities
165 */
166
167cpl_frame* giraffe_frame_create_image(GiImage* image, const cxchar* tag,
168 cpl_frame_level level, cxbool save,
169 cxbool update);
170cpl_frame* giraffe_frame_create_table(GiTable* table, const cxchar* tag,
171 cpl_frame_level level, cxbool save,
172 cxbool update);
173cxint giraffe_frame_attach_table(cpl_frame* frame, GiTable* table,
174 const cxchar* tag, cxbool update);
175
176/*
177 * Frame retrieval utilities
178 */
179
180cpl_frame* giraffe_get_frame(const cpl_frameset* set, const cxchar* tag,
181 cpl_frame_group group);
182
183cpl_frame* giraffe_get_slitgeometry(const cpl_frameset* set);
184
185
186#ifdef __cplusplus
187}
188#endif
189
190#endif /* GIFRAME_H */
cpl_frame * giraffe_get_frame(const cpl_frameset *set, const cxchar *tag, cpl_frame_group group)
Get a frame from a frame set.
Definition: giframe.c:728
cpl_frame * giraffe_frame_create(const cxchar *tag, cpl_frame_level level, const cpl_propertylist *properties, cxcptr object, cxcptr data, GiFrameCreator creator)
Create a product frame using a provided frame creator.
Definition: giframe.c:237
cxint giraffe_frame_save(const cpl_frame *frame, const cpl_propertylist *properties, cxcptr object, cxcptr data, GiFrameCreator creator)
Save a data object to a frame.
Definition: giframe.c:324
cpl_frame * giraffe_frame_create_image(GiImage *image, const cxchar *tag, cpl_frame_level level, cxbool save, cxbool update)
Create an image product frame.
Definition: giframe.c:393
cxint giraffe_frame_attach_table(cpl_frame *frame, GiTable *table, const cxchar *tag, cxbool update)
Attach a table to a product frame.
Definition: giframe.c:634
cpl_frame * giraffe_get_slitgeometry(const cpl_frameset *set)
Get the slit geometry frame from a frame set.
Definition: giframe.c:775
cpl_frame * giraffe_frame_create_table(GiTable *table, const cxchar *tag, cpl_frame_level level, cxbool save, cxbool update)
Create a table product frame.
Definition: giframe.c:532

This file is part of the GIRAFFE Pipeline Reference Manual 2.16.12.
Documentation copyright © 2002-2006 European Southern Observatory.
Generated on Thu Feb 13 2025 15:21:30 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2004