Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.mrao.cam.ac.uk/~jsy1001/resources/exchange/html/exchange_8h-source.html
Дата изменения: Mon Apr 7 14:22:22 2003 Дата индексирования: Mon Feb 4 03:03:28 2013 Кодировка: Поисковые слова: nebula |
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);