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;
84
85// from strtree
87{
88 GEOSGeometry *mbr;
89 GEOSGeometry *geometry;
90 OGRGeometryH OGRGeometry;
91 GIntBig id;
92};
93
99
105
107{
108 GEOSGeometry *geometry;
109 double value;
110};
111
117
118typedef struct intersection
119{
120 OGRGeometryH reference;
124 struct intersection *next;
126
127struct i
128{
129 OGRGeometryH reference;
130 const GEOSGeometry *referenceASGEOS;
134};
135
136typedef struct
137{
138 struct i *entries;
139 size_t size;
141
142typedef struct userdata
143{
144 const GEOSPreparedGeometry *queryGeometry;
147} userdata_t;
148
154void freeVectorGeometry(struct vectorGeometry *node);
155
161void freeVectorGeometryList(vectorGeometryVector *vector);
162
168void freeCellGeometry(struct cellGeometry *node);
169
177void freeCellGeometryList(cellGeometryList *list);
178
187void freeIntersections(intersectionVector *vector);
188
194void freeWeightedMeans(meanVector *vector);
195
196// options
197typedef struct options
198{
200 int years[MAXYEAR];
202 int months[MAXMONTH];
204 int days[MAXDAY];
206 int hours[MAXHOUR];
209 char *logFile;
210 bool global;
212 char *aoiName;
218} option_t;
219
225void freeOption(option_t *options);
226
227// API communication etc
228typedef struct curlString
229{
230 char *string;
231 size_t length;
232} curlString;
233
234typedef enum
235{
236 ACCEPTED,
237 SUCCESSFUL,
238 RUNNING,
239 FAILED,
240 ERROR
241} productStatus;
242
243typedef struct stringList
244{
245 char *string;
246 char *status;
248} stringList;
249
255void freeStringList(stringList *list);
256
257#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:113
struct cellGeometry * entry
Definition types.h:114
struct cellGeometryList * next
Definition types.h:115
Definition types.h:107
GEOSGeometry * geometry
Definition types.h:108
double value
Definition types.h:109
Definition types.h:229
char * string
Definition types.h:230
size_t length
Definition types.h:231
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:128
cellGeometryList * intersectingCells
Definition types.h:132
GIntBig referenceFID
Definition types.h:131
const GEOSGeometry * referenceASGEOS
Definition types.h:130
OGRGeometryH reference
Definition types.h:129
size_t intersectionCount
Definition types.h:133
Definition types.h:137
struct i * entries
Definition types.h:138
size_t size
Definition types.h:139
Definition types.h:119
size_t intersectionCount
Definition types.h:123
GIntBig referenceFID
Definition types.h:121
OGRGeometryH reference
Definition types.h:120
struct intersection * next
Definition types.h:124
cellGeometryList * intersectingCells
Definition types.h:122
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
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:198
bool global
Definition types.h:210
char * authenticationToken
Definition types.h:214
bool downloadByDay
Definition types.h:208
bool download
Definition types.h:215
size_t hoursElements
Definition types.h:207
bool process
Definition types.h:216
char * aoiName
Definition types.h:212
int years[MAXYEAR]
Definition types.h:200
char * outputDirectory
Definition types.h:213
size_t yearsElements
Definition types.h:201
size_t monthsElements
Definition types.h:203
char * areaOfInterest
Definition types.h:211
int months[MAXMONTH]
Definition types.h:202
size_t daysElements
Definition types.h:205
char * logFile
Definition types.h:209
int days[MAXDAY]
Definition types.h:204
bool footprint
Definition types.h:217
bool printHelp
Definition types.h:199
int hours[MAXHOUR]
Definition types.h:206
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:244
char * status
Definition types.h:246
char * string
Definition types.h:245
struct stringList * next
Definition types.h:247
Definition types.h:143
size_t intersectionCount
Definition types.h:146
cellGeometryList * intersectingCells
Definition types.h:145
const GEOSPreparedGeometry * queryGeometry
Definition types.h:144
Definition types.h:95
struct vectorGeometry * entry
Definition types.h:96
struct vectorGeometryList * next
Definition types.h:97
Definition types.h:101
size_t size
Definition types.h:103
struct vectorGeometry * entries
Definition types.h:102
Definition types.h:87
GEOSGeometry * geometry
Definition types.h:89
GEOSGeometry * mbr
Definition types.h:88
GIntBig id
Definition types.h:91
OGRGeometryH OGRGeometry
Definition types.h:90