MIDI Pipeline Reference Manual  2.8.3
iauExchange.h
1 /**********************************************************
2 ***********************************************************
3 * European Southern Observatory
4 * VLTI MIDI Data Reduction Software
5 *
6 * Module name: iauExchange.h
7 * Description: Definitions of data structures, function prototypes for IAU exchange
8 *
9 *
10 * History:
11 * 10-Jul-03 (csabet) Created. Derived from John Young <jsy1001@cam.ac.uk>
12 ***********************************************************
13 **********************************************************/
14 #ifndef _IAU_EXCHANGE_H
15 #define _IAU_EXCHANGE_H
16 
17 /******************************************************************************
18 * Compiler directives
19 ******************************************************************************/
20 
21 /**********************************************************
22 * Include files
23 **********************************************************/
24 
25 /**********************************************************
26 * Constant definitions
27 **********************************************************/
28 
29 /**********************************************************
30 * Global Variables
31 **********************************************************/
32 
33 /**********************************************************
34 * Type definitions
35 **********************************************************/
36 typedef struct _element // Array element crresponds to one row of an OI_ARRAY FITS table
37 {
38  char *tel_name;
39  char *sta_name;
40  int sta_index;
41  float diameter;
42  double *staxyz; // Array of 3
43 } Element;
44 
45 typedef struct _oi_array
46 {
47  char *revision;
48  char *arrname;
49  char *frame;
50  double arrayx, arrayy, arrayz;
51  int nelement;
52  Element *elem;
53 } OiArray;
54 
55 typedef struct _target // Array target crresponds to one row of an OI_TARGET FITS table
56 {
57  int target_id;
58  char *target;
59  double raep0;
60  double decep0;
61  float equinox;
62  double ra_err;
63  double dec_err;
64  double sysvel;
65  char *veltyp;
66  char *veldef;
67  double pmra;
68  double pmdec;
69  double pmra_err;
70  double pmdec_err;
71  float parallax;
72  float para_err;
73  char *spectyp;
74 } Target;
75 
76 typedef struct _oi_target
77 {
78  char *revision;
79  int ntarget;
80  Target *targ;
81 } OiTarget;
82 
83 typedef struct _oi_wavelength
84 {
85  char *revision;
86  char *insname;
87  int nwave;
88  float *eff_wave;
89  float *eff_band;
90 } OiWavelength;
91 
92 
93 typedef struct _oi_vis_record // Complex visibility record corresponds to one row of an OI_VIS FITS table */
94 {
95  int target_id;
96  double time;
97  double mjd;
98  double int_time;
99  double *visamp;
100  double *visamperr;
101  double *visphi;
102  double *visphierr;
103  double ucoord;
104  double vcoord;
105  int *sta_index; // Array of 2
106  char *flag;
107 } OiVisRecord;
108 
109 typedef struct _oi_vis
110 {
111  char *revision;
112  char *date_obs;
113  char *arrname; /* Empty string means "not specified" */
114  char *insname;
115  long numrec;
116  int nwave;
117  OiVisRecord *record;
118 } OiVis;
119 
120 
121 typedef struct _oi_vis2_record /* Visibility squared record corresponds to one row of an OI_VIS2 FITS table. */
122 {
123  int target_id;
124  double time;
125  double mjd;
126  double int_time;
127  double *vis2data;
128  double *vis2err;
129  double ucoord;
130  double vcoord;
131  int *sta_index; // Array of 2
132  char *flag;
133 } OiVis2Record;
134 
135 typedef struct _oi_vis2
136 {
137  char *revision;
138  char *date_obs;
139  char *arrname; // Empty string means "not specified"
140  char *insname;
141  long numrec;
142  int nwave;
143  OiVis2Record *record;
144 } OiVis2;
145 
146 typedef struct _oi_t3_record // Triple product record corresponds to one row of an OI_T3 FITS table
147 {
148  int target_id;
149  double time;
150  double mjd;
151  double int_time;
152  double *t3amp;
153  double *t3amperr;
154  double *t3phi;
155  double *t3phierr;
156  double u1coord;
157  double v1coord;
158  double u2coord;
159  double v2coord;
160  int *sta_index; // Array of 3
161  char *flag;
162 } OiT3Record;
163 
164 typedef struct _oi_t3
165 {
166  char *revision;
167  char *date_obs;
168  char *arrname; // Empty string means "not specified"
169  char *insname;
170  long numrec;
171  int nwave;
172  OiT3Record *record;
173 } OiT3;
174 
175 
176 /**********************************************************
177 * Function Prototypes
178 **********************************************************/
179 
180 /*********************************************************/
181 #endif
182 /*********************************************************/