GIRAFFE Pipeline Reference Manual

gifov.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 GIFOV_H
21 #define GIFOV_H
22 
23 #include <cxslist.h>
24 
25 #include <cpl_macros.h>
26 #include <cpl_array.h>
27 #include <cpl_parameterlist.h>
28 
29 #include <giimage.h>
30 #include <gitable.h>
31 #include <gicube.h>
32 #include <girebinning.h>
33 
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 
40  enum GiFieldOfViewCubeFormat {
41  GIFOV_FORMAT_SINGLE = 1 << 0,
42  GIFOV_FORMAT_ESO3D = 1 << 1
43  };
44 
45  typedef enum GiFieldOfViewCubeFormat GiFieldOfViewCubeFormat;
46 
47 
48  struct GiFieldOfViewConfig {
49  cxdouble minimum;
50  cxdouble maximum;
51  cxbool cube;
52 
53  GiFieldOfViewCubeFormat format;
54  };
55 
56  typedef struct GiFieldOfViewConfig GiFieldOfViewConfig;
57 
58 
59  struct GiFieldOfView {
60  GiInstrumentMode mode;
61 
62  cpl_array* ssn;
63 
64  struct {
65  GiImage* spectra;
66  GiImage* errors;
67  } fov;
68 
69  struct {
70  cx_slist* spectra;
71  cx_slist* errors;
72  } images;
73 
74  struct {
75  cx_slist* spectra;
76  cx_slist* errors;
77  } cubes;
78  };
79 
80  typedef struct GiFieldOfView GiFieldOfView;
81 
82 
83  /*
84  * Spectrum localization
85  */
86 
87  cxint giraffe_fov_build(GiFieldOfView* result,
88  GiRebinning* rebinning, GiTable* fibers,
89  GiTable* wsolution, GiTable* grating,
90  GiTable* slitgeometry,
91  GiFieldOfViewConfig* config);
92 
93 
94  /*
95  * Convenience functions
96  */
97 
98  GiFieldOfView* giraffe_fov_new(void);
99  void giraffe_fov_delete(GiFieldOfView* self);
100  void giraffe_fov_clear(GiFieldOfView* self);
101 
102  cxint giraffe_fov_save_cubes(const GiFieldOfView* self,
103  cpl_propertylist* properties,
104  const cxchar* filename, cxptr data);
105 
106  cxint giraffe_fov_save_cubes_eso3d(const GiFieldOfView* self,
107  cpl_propertylist* properties,
108  const cxchar* filename, cxptr data);
109 
110  GiFieldOfViewConfig* giraffe_fov_config_create(cpl_parameterlist* list);
111  void giraffe_fov_config_destroy(GiFieldOfViewConfig* config);
112  void giraffe_fov_config_add(cpl_parameterlist* list);
113 
114 
115 #ifdef __cplusplus
116 }
117 #endif
118 
119 #endif /* GIFOV_H */
void giraffe_fov_clear(GiFieldOfView *self)
Delete the contents of a field of view object.
Definition: gifov.c:1427
void giraffe_fov_config_destroy(GiFieldOfViewConfig *config)
Destroys a field of view setup structure.
Definition: gifov.c:2067
GiFieldOfView * giraffe_fov_new(void)
Create an empty container for the results of the field of view reconstruction.
Definition: gifov.c:1393
GiFieldOfViewConfig * giraffe_fov_config_create(cpl_parameterlist *list)
Creates a setup structure for the field of view reconstruction.
Definition: gifov.c:2012
cxint giraffe_fov_save_cubes_eso3d(const GiFieldOfView *self, cpl_propertylist *properties, const cxchar *filename, cxptr data)
Write the cube components of a field-of-view object to a file.
Definition: gifov.c:1673
void giraffe_fov_delete(GiFieldOfView *self)
Deallocate a field of view object and its contents.
Definition: gifov.c:1494
cxint giraffe_fov_build(GiFieldOfView *result, GiRebinning *rebinning, GiTable *fibers, GiTable *wsolution, GiTable *grating, GiTable *slitgeometry, GiFieldOfViewConfig *config)
Create and image and a data cube from extracted and rebinned spectra.
Definition: gifov.c:428
cxint giraffe_fov_save_cubes(const GiFieldOfView *self, cpl_propertylist *properties, const cxchar *filename, cxptr data)
Write the cube components of a field-of-view object to a file.
Definition: gifov.c:1530
void giraffe_fov_config_add(cpl_parameterlist *list)
Adds parameters for the image and data cube construction.
Definition: gifov.c:2089

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