iauExchange.h

00001 /**********************************************************
00002 ***********************************************************
00003 *               European Southern Observatory
00004 *            VLTI MIDI Data Reduction Software
00005 *
00006 * Module name:  iauExchange.h
00007 * Description:  Definitions of data structures, function prototypes for IAU exchange
00008 *
00009 *
00010 * History:      
00011 * 10-Jul-03     (csabet) Created. Derived from John Young <jsy1001@cam.ac.uk>
00012 ***********************************************************
00013 **********************************************************/
00014 #ifndef _IAU_EXCHANGE_H
00015 #define _IAU_EXCHANGE_H
00016 
00017 /******************************************************************************
00018 *   Compiler directives
00019 ******************************************************************************/
00020 
00021 /**********************************************************
00022 *   Include files
00023 **********************************************************/
00024 
00025 /**********************************************************
00026 *   Constant definitions
00027 **********************************************************/
00028 
00029 /**********************************************************
00030 *   Global Variables 
00031 **********************************************************/
00032 
00033 /**********************************************************
00034 *   Type definitions 
00035 **********************************************************/
00036 typedef struct _element // Array element crresponds to one row of an OI_ARRAY FITS table
00037 {
00038     char    *tel_name;
00039     char    *sta_name;
00040     int     sta_index;
00041     float   diameter;
00042     double  *staxyz;    //  Array of 3
00043 } Element;
00044 
00045 typedef struct _oi_array 
00046 {
00047     char    *revision;
00048     char    *arrname;
00049     char    *frame;
00050     double  arrayx, arrayy, arrayz;
00051     int     nelement;
00052     Element *elem;
00053 } OiArray;
00054 
00055 typedef struct _target  // Array target crresponds to one row of an OI_TARGET FITS table
00056 {
00057     int     target_id;
00058     char    *target;
00059     double  raep0;
00060     double  decep0;
00061     float   equinox;
00062     double  ra_err;
00063     double  dec_err;
00064     double  sysvel;
00065     char    *veltyp;
00066     char    *veldef;
00067     double  pmra;
00068     double  pmdec;
00069     double  pmra_err;
00070     double  pmdec_err;
00071     float   parallax;
00072     float   para_err;
00073     char    *spectyp;
00074 } Target;
00075 
00076 typedef struct _oi_target 
00077 {
00078     char    *revision;
00079     int     ntarget;
00080     Target  *targ;
00081 } OiTarget;
00082 
00083 typedef struct _oi_wavelength 
00084 {
00085     char    *revision;
00086     char    *insname;
00087     int     nwave;
00088     float   *eff_wave;
00089     float   *eff_band;
00090 } OiWavelength;
00091 
00092 
00093 typedef struct _oi_vis_record   // Complex visibility record corresponds to one row of an OI_VIS FITS table */
00094 {
00095     int     target_id;
00096     double  time;
00097     double  mjd;
00098     double  int_time;
00099     double  *visamp;
00100     double  *visamperr;
00101     double  *visphi;
00102     double  *visphierr;
00103     double  ucoord;
00104     double  vcoord;
00105     int     *sta_index; // Array of 2
00106     char    *flag;
00107 } OiVisRecord;
00108 
00109 typedef struct _oi_vis 
00110 {
00111     char            *revision;
00112     char            *date_obs;
00113     char            *arrname;   /*  Empty string means "not specified" */
00114     char            *insname;
00115     long            numrec;
00116     int             nwave;
00117     OiVisRecord     *record;
00118 } OiVis;
00119 
00120 
00121 typedef struct _oi_vis2_record  /*  Visibility squared record corresponds to one row of an OI_VIS2 FITS table. */
00122 {
00123     int     target_id;
00124     double  time;
00125     double  mjd;
00126     double  int_time;
00127     double  *vis2data;
00128     double  *vis2err;
00129     double  ucoord;
00130     double  vcoord;
00131     int     *sta_index; // Array of 2
00132     char    *flag;
00133 } OiVis2Record;
00134 
00135 typedef struct _oi_vis2 
00136 {
00137     char            *revision;
00138     char            *date_obs;
00139     char            *arrname;   // Empty string means "not specified"
00140     char            *insname;
00141     long            numrec;
00142     int             nwave;
00143     OiVis2Record    *record;
00144 } OiVis2;
00145 
00146 typedef struct _oi_t3_record    // Triple product record corresponds to one row of an OI_T3 FITS table
00147 {
00148     int     target_id;
00149     double  time;
00150     double  mjd;
00151     double  int_time;
00152     double  *t3amp;
00153     double  *t3amperr;
00154     double  *t3phi;
00155     double  *t3phierr;
00156     double  u1coord;
00157     double  v1coord;
00158     double  u2coord;
00159     double  v2coord;
00160     int     *sta_index; // Array of 3
00161     char    *flag;
00162 } OiT3Record;
00163 
00164 typedef struct _oi_t3 
00165 {
00166     char        *revision;
00167     char        *date_obs;
00168     char        *arrname;   // Empty string means "not specified"
00169     char        *insname;
00170     long        numrec;
00171     int         nwave;
00172     OiT3Record  *record;
00173 } OiT3;
00174 
00175 
00176 /**********************************************************
00177 *   Function Prototypes
00178 **********************************************************/
00179 
00180 /*********************************************************/
00181 #endif
00182 /*********************************************************/

Generated on 15 Mar 2012 for MIDI Pipeline Reference Manual by  doxygen 1.6.1