Main Page   Data Structures   File List   Data Fields   Globals  

exchange.h

Go to the documentation of this file.
00001 /* Example code for FITS-based optical interferometry exchange format
00002 
00003    $Id: exchange.h,v 1.6 2003/04/07 10:20:28 jsy1001 Exp $
00004    Definitions of data structures, function prototypes
00005 
00006 
00007    Release 5  7 April 2003
00008 
00009    John Young <jsy1001@cam.ac.uk>
00010 
00011 */
00012 
00013 #include "fitsio.h"
00014 
00015 
00016 /* Data structures */
00017 /* NB must allow for final null when dimensioning character arrays */
00018 
00020 typedef struct _element {
00021   char tel_name[17];
00022   char sta_name[17];
00023   int sta_index;
00024   float diameter;
00025   double staxyz[3];
00026 } element;
00027 
00029 typedef struct _oi_array {
00030   int revision;
00031   char arrname[FLEN_VALUE];
00032   char frame[FLEN_VALUE];
00033   double arrayx, arrayy, arrayz;
00034   int nelement;
00035   element *elem;
00036 } oi_array;
00037 
00042 typedef struct _target {
00043   int target_id;
00044   char target[17];
00045   double raep0, decep0;
00046   float equinox;
00047   double ra_err, dec_err;
00048   double sysvel;
00049   char veltyp[9], veldef[9];
00050   double pmra, pmdec;
00051   double pmra_err, pmdec_err;
00052   float parallax, para_err;
00053   char spectyp[17];
00054 } target;
00055 
00057 typedef struct _oi_target {
00058   int revision;
00059   int ntarget;
00060   target *targ;
00061 } oi_target;
00062 
00064 typedef struct _oi_wavelength {
00065   int revision;
00066   char insname[FLEN_VALUE];
00067   int nwave;
00068   float *eff_wave;
00069   float *eff_band;
00070 } oi_wavelength;
00071 
00073 typedef struct _oi_vis_record {
00074   int target_id;
00075   double time;
00076   double mjd;
00077   double int_time;
00078   double *visamp, *visamperr;
00079   double *visphi, *visphierr;
00080   double ucoord, vcoord;
00081   int sta_index[2];
00082   char *flag;
00083 } oi_vis_record;
00084 
00086 typedef struct _oi_vis {
00087   int revision;
00088   char date_obs[FLEN_VALUE];
00089   char arrname[FLEN_VALUE]; /* empty string "" means not specified */
00090   char insname[FLEN_VALUE];
00091   long numrec;
00092   int nwave;
00093   oi_vis_record *record;
00094 } oi_vis;
00095 
00097 typedef struct _oi_vis2_record {
00098   int target_id;
00099   double time;
00100   double mjd;
00101   double int_time;
00102   double *vis2data, *vis2err;
00103   double ucoord, vcoord;
00104   int sta_index[2];
00105   char *flag;
00106 } oi_vis2_record;
00107 
00109 typedef struct _oi_vis2 {
00110   int revision;
00111   char date_obs[FLEN_VALUE];
00112   char arrname[FLEN_VALUE]; /* empty string "" means not specified */
00113   char insname[FLEN_VALUE];
00114   long numrec;
00115   int nwave;
00116   oi_vis2_record *record;
00117 } oi_vis2;
00118 
00120 typedef struct _oi_t3_record {
00121   int target_id;
00122   double time;
00123   double mjd;
00124   double int_time;
00125   double *t3amp, *t3amperr;
00126   double *t3phi, *t3phierr;
00127   double u1coord, v1coord, u2coord, v2coord;
00128   int sta_index[3];
00129   char *flag;
00130 } oi_t3_record;
00131 
00133 typedef struct _oi_t3 {
00134   int revision;
00135   char date_obs[FLEN_VALUE];
00136   char arrname[FLEN_VALUE]; /* empty string "" means not specified */
00137   char insname[FLEN_VALUE];
00138   long numrec;
00139   int nwave;
00140   oi_t3_record *record;
00141 } oi_t3;
00142 
00143 
00144 /* Function prototypes */
00145 
00146 /* Functions from write_oi_fits.c */
00147 int write_oi_array(fitsfile *fptr, oi_array array, int extver, int *status);
00148 int write_oi_target(fitsfile *fptr, oi_target targets, int *status);
00149 int write_oi_wavelength(fitsfile *fptr, oi_wavelength wave, int extver, 
00150                         int *status);
00151 int write_oi_vis(fitsfile *fptr, oi_vis vis, int extver, int *status);
00152 int write_oi_vis2(fitsfile *fptr, oi_vis2 vis2, int extver, int *status);
00153 int write_oi_t3(fitsfile *fptr, oi_t3 t3, int extver, int *status);
00154 /* Functions from read_oi_fits.c */
00155 int read_oi_array(fitsfile *fptr, char *arrname, oi_array *array, int *status);
00156 int read_oi_target(fitsfile *fptr, oi_target *targets, int *status);
00157 int read_oi_wavelength(fitsfile *fptr, char *insname, oi_wavelength *wave,
00158                        int *status);
00159 int read_next_oi_vis(fitsfile *fptr, oi_vis *vis, int *status);
00160 int read_next_oi_vis2(fitsfile *fptr, oi_vis2 *vis2, int *status);
00161 int read_next_oi_t3(fitsfile *fptr, oi_t3 *t3, int *status);

Generated on Mon Apr 7 11:31:32 2003 for OI FITS Example Code by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002