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
33 extern "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 
148 typedef cxint (*GiFrameCreator)(cxcptr, cpl_propertylist*, const cxchar*,
149  cxcptr);
150 
151 cpl_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 
156 cxint
157 giraffe_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 
167 cpl_frame* giraffe_frame_create_image(GiImage* image, const cxchar* tag,
168  cpl_frame_level level, cxbool save,
169  cxbool update);
170 cpl_frame* giraffe_frame_create_table(GiTable* table, const cxchar* tag,
171  cpl_frame_level level, cxbool save,
172  cxbool update);
173 cxint giraffe_frame_attach_table(cpl_frame* frame, GiTable* table,
174  const cxchar* tag, cxbool update);
175 
176 /*
177  * Frame retrieval utilities
178  */
179 
180 cpl_frame* giraffe_get_frame(const cpl_frameset* set, const cxchar* tag,
181  cpl_frame_group group);
182 
183 cpl_frame* giraffe_get_slitgeometry(const cpl_frameset* set);
184 
185 
186 #ifdef __cplusplus
187 }
188 #endif
189 
190 #endif /* GIFRAME_H */
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
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
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_get_frame(const cpl_frameset *set, const cxchar *tag, cpl_frame_group group)
Get a frame from a frame set.
Definition: giframe.c:728
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
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_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

This file is part of the GIRAFFE Pipeline Reference Manual 2.16.10.
Documentation copyright © 2002-2006 European Southern Observatory.
Generated on Thu Dec 15 2022 21:18:51 by doxygen 1.9.1 written by Dimitri van Heesch, © 1997-2004