-
Notifications
You must be signed in to change notification settings - Fork 10
/
structs.h
124 lines (119 loc) · 4.68 KB
/
structs.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#ifndef STRUCTS
#define STRUCTS
typedef struct LC
{
int nlc; /*number of lightcurves*/
int *nobs; /*Array, number of points per lightcurve*/
int *rel; /*Relative or calibrated?*/
int ncalib; /*Number of calibrated lightcurves*/
int calib;
int ntotal; /*Total number of points*/
double **lcs; /*Observations, lcs[n-1] points to observations of nth curve*/
double **E; /*View directions*/
double **E0; /*Illumination directions*/
double **TIME; /*obs times*/
} LCstruct;
typedef struct AO
{
int nao; /*number of AO images*/
int ntotal; /*total number of observation points*/
int *nobs; /*Array, number of points per ao image*/
double **datar; /*Observations, Fourier transform of images*/
double **datai;
double **psfr; /*Fourier transformed psf, optional*/
double **psfi;
double **freqx; /*Frequency points of FT, corresponding to data*/
double **freqy;
double *E; /*view directions, 3*nao array*/
double *E0; /*obs directions 3*nao array*/
double *TIME; /*obs time, nao array*/
double *distance; /*distance in au, nao array*/
double *scalex; /*pixel scale, nao array*/
double *scaley; /*pixel scale, nao array*/
double *up; /*orientation of instrument 3*nao array*/
} AOstruct;
typedef struct RD
{
int nRD;
int ntotal;
int *nobs;
double **datar; /*Observations, Fourier transform of images*/
double **datai;
double **psfr; /*Fourier transformed psf, optional*/
double **psfi;
double **freqx; /*Frequency points of FT, corresponding to data*/
double **freqy;
double *E; /*view directions, 3*nao array*/
double *TIME; /*obs time, nao array*/
double *distance; /*distance in au, nao array*/
double *scalex; /*pixel scale, nao array*/
double *scaley; /*pixel scale, nao array*/
double *rfreq; /*Radar frequency*/
} RDstruct;
typedef struct HF
{
int nhf; /*number of thermal images*/
int ntotal; /*total number of observation points*/
int *nobs; /*Array, number of points per thermal image*/
double **datar; /*Observations, Fourier transform of images*/
double **datai;
double **freqx; /*Frequency points of FT, corresponding to data*/
double **freqy;
double *E; /*view directions, 3*nao array*/
double *E0; /*obs directions 3*nao array*/
double *TIME; /*obs time, nao array*/
double *distance; /*distance in au, nao array*/
double *Hdistance; /*distance to Sun*/
double *scalex; /*pixel scale, nao array*/
double *scaley; /*pixel scale, nao array*/
double *up; /*orientation of instrument 3*nao array*/
double *WL; /* obs wavelength*/
} HFstruct;
typedef struct OC
{
int noc; /*Number of occultations*/
int *nobs; /*Array, number of chords per occultation*/
int ntotal; /*Total number of chords*/
double **data; /*Chords, points to nobsx4 array where coordinates of starting and ending points*/
double **TIME; /*observation times*/
double *E; /*view directions nocx3 array, normalized to unit*/
double *up; /*camera up direction, nocx3 array, normalized to unit*/
double *V; /*Velocity in km/s*/
double *distance; /*distance in km*/
double **etime; /*errors in observation times points to nobsx2 array*/
int **type; /*chord types, points to noc array*/
} OCstruct;
typedef struct CNTR
{
int ncont; /*Number of contours*/
int *nobs; /*Array, number of points per contour*/
int ntotal; /*Total number of points*/
double **datax; /*Points to an array with nobs[index] doubles, x-coordinates of contours*/
double **datay; /*Points to an array with nobs[index] doubles, y-coordinates of contours*/
double *TIME; /*observation times, ncont array*/
double *E; /*view directions ncontx3 array, normalized to unit*/
double *E0; /*sun directions ncontx3 array, normalized to unit*/
double *up; /*camera up direction ncontx3 array, normalized to unit*/
double *distance; /*distance in km*/
} CNTRstruct;
typedef struct NOaAR
{
/*
* Struct to hold normals and areas of facets and their derivatives wrt vertices
*/
double *normal;
double *dndx1; //3*nfac vector
double *dndx2;
double *dndx3;
double *dndy1;
double *dndy2;
double *dndy3;
double *dndz1;
double *dndz2;
double *dndz3;
double *area;
double *dadx; //3*nfac vector
double *dady;
double *dadz;
} NOaARstruct;
#endif