HAZE
haze is a drop-in replacement to process water vapor to be used with FORCE
Loading...
Searching...
No Matches
types.h
1
12#ifndef TYPES_H
13#define TYPES_H
14
15#include <stddef.h>
16#include <stdlib.h>
17#include <geos_c.h>
18#include <gdal/gdal.h>
19
20#define MAXYEAR 100
21#define MAXMONTH 12
22#define MAXDAY 31
23#define MAXHOUR 24
24
25// from gdal-ops
26typedef enum
27{
28 CRS_GEOGRAPHIC,
29 CRS_PROJECTED,
30 CRS_UNKNOWN
31} CRS_TYPE;
32
33// from haze
34struct rawData
35{
36 size_t bands;
37 size_t rows;
38 size_t columns;
39 double *data;
40};
41
43{
44 size_t rows;
45 size_t columns;
46 double *data;
47};
48
55{
56 double xOrigin;
57 double pixelWidth;
59 double yOrigin;
62};
63
64typedef struct mean
65{
66 double x;
67 double y;
68 double value;
69 struct mean *next;
70} mean_t;
71
72struct m
73{
74 double x;
75 double y;
76 double value;
77};
78
79typedef struct
80{
81 struct m *entries;
82 size_t size;
83 size_t capcity;
85
86// from strtree
88{
89 GEOSGeometry *mbr;
90 GEOSGeometry *geometry;
91 OGRGeometryH OGRGeometry;
92 GIntBig id;
95};
96
102
109
111{
112 GEOSGeometry *geometry;
113 double value;
114};
115
121
122typedef struct intersection
123{
124 OGRGeometryH reference;
128 struct intersection *next;
130
141
142typedef struct
143{
144 struct i *entries;
145 size_t size;
146 size_t capacity;
148
149typedef struct userdata
150{
151 const GEOSPreparedGeometry *queryGeometry;
154} userdata_t;
155
161void freeVectorGeometry(struct vectorGeometry *node);
162
168void freeVectorGeometryList(vectorGeometryVector *vector);
169
175void freeCellGeometry(struct cellGeometry *node);
176
184void freeCellGeometryList(cellGeometryList *list);
185
194void freeIntersections(intersectionVector *vector);
195
201void freeWeightedMeans(meanVector *vector);
202
203// options
204typedef struct options
205{
207 int years[MAXYEAR];
209 int months[MAXMONTH];
211 int days[MAXDAY];
213 int hours[MAXHOUR];
216 char *logFile;
217 bool global;
219 char *aoiName;
226} option_t;
227
233void freeOption(option_t *options);
234
235// API communication etc
236typedef struct curlString
237{
238 char *string;
239 size_t length;
240} curlString;
241
242typedef enum
243{
244 ACCEPTED,
245 SUCCESSFUL,
246 RUNNING,
247 FAILED,
248 ERROR
249} productStatus;
250
251typedef struct stringList
252{
253 char *string;
254 char *status;
256} stringList;
257
263void freeStringList(stringList *list);
264
265#endif //TYPES_H
Definition types.h:43
double * data
Definition types.h:46
size_t rows
Definition types.h:44
size_t columns
Definition types.h:45
Definition types.h:117
struct cellGeometry * entry
Definition types.h:118
struct cellGeometryList * next
Definition types.h:119
Definition types.h:111
GEOSGeometry * geometry
Definition types.h:112
double value
Definition types.h:113
Definition types.h:237
char * string
Definition types.h:238
size_t length
Definition types.h:239
This structs associates GDAL's geotransfomration information from a raster dataset with easy to inter...
Definition types.h:55
double colRotation
Definition types.h:60
double xOrigin
Definition types.h:56
double pixelHeight
Definition types.h:61
double yOrigin
Definition types.h:59
double pixelWidth
Definition types.h:57
double rowRotation
Definition types.h:58
Definition types.h:132
cellGeometryList * intersectingCells
Definition types.h:136
GIntBig referenceFID
Definition types.h:135
const GEOSGeometry * referenceASGEOS
Definition types.h:134
double precomputedLatitude
Definition types.h:139
OGRGeometryH reference
Definition types.h:133
size_t intersectionCount
Definition types.h:137
double precomutedLongitude
Definition types.h:138
Definition types.h:143
struct i * entries
Definition types.h:144
size_t capacity
Definition types.h:146
size_t size
Definition types.h:145
Definition types.h:123
size_t intersectionCount
Definition types.h:127
GIntBig referenceFID
Definition types.h:125
OGRGeometryH reference
Definition types.h:124
struct intersection * next
Definition types.h:128
cellGeometryList * intersectingCells
Definition types.h:126
Definition types.h:73
double x
Definition types.h:74
double value
Definition types.h:76
double y
Definition types.h:75
Definition types.h:80
size_t capcity
Definition types.h:83
struct m * entries
Definition types.h:81
size_t size
Definition types.h:82
Definition types.h:65
struct mean * next
Definition types.h:69
double value
Definition types.h:68
double y
Definition types.h:67
double x
Definition types.h:66
Definition types.h:205
bool global
Definition types.h:217
char * authenticationToken
Definition types.h:221
bool downloadByDay
Definition types.h:215
bool download
Definition types.h:222
size_t hoursElements
Definition types.h:214
bool process
Definition types.h:223
char * aoiName
Definition types.h:219
int years[MAXYEAR]
Definition types.h:207
char * outputDirectory
Definition types.h:220
size_t yearsElements
Definition types.h:208
size_t monthsElements
Definition types.h:210
char * areaOfInterest
Definition types.h:218
int months[MAXMONTH]
Definition types.h:209
bool usePrecomputedCentroid
Definition types.h:225
size_t daysElements
Definition types.h:212
char * logFile
Definition types.h:216
int days[MAXDAY]
Definition types.h:211
bool footprint
Definition types.h:224
bool printHelp
Definition types.h:206
int hours[MAXHOUR]
Definition types.h:213
Definition types.h:35
size_t rows
Definition types.h:37
size_t bands
Definition types.h:36
double * data
Definition types.h:39
size_t columns
Definition types.h:38
Definition types.h:252
char * status
Definition types.h:254
char * string
Definition types.h:253
struct stringList * next
Definition types.h:255
Definition types.h:150
size_t intersectionCount
Definition types.h:153
cellGeometryList * intersectingCells
Definition types.h:152
const GEOSPreparedGeometry * queryGeometry
Definition types.h:151
Definition types.h:98
struct vectorGeometry * entry
Definition types.h:99
struct vectorGeometryList * next
Definition types.h:100
Definition types.h:104
size_t size
Definition types.h:106
size_t capacity
Definition types.h:107
struct vectorGeometry * entries
Definition types.h:105
Definition types.h:88
double precomutedLongitude
Definition types.h:93
GEOSGeometry * geometry
Definition types.h:90
GEOSGeometry * mbr
Definition types.h:89
double precomputedLatitude
Definition types.h:94
GIntBig id
Definition types.h:92
OGRGeometryH OGRGeometry
Definition types.h:91