RAVE
rave_types.h
Go to the documentation of this file.
1/* --------------------------------------------------------------------
2Copyright (C) 2009 Swedish Meteorological and Hydrological Institute, SMHI,
3
4This file is part of RAVE.
5
6RAVE is free software: you can redistribute it and/or modify
7it under the terms of the GNU Lesser General Public License as published by
8the Free Software Foundation, either version 3 of the License, or
9(at your option) any later version.
10
11RAVE is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU Lesser General Public License for more details.
15
16You should have received a copy of the GNU Lesser General Public License
17along with RAVE. If not, see <http://www.gnu.org/licenses/>.
18------------------------------------------------------------------------*/
25#ifndef RAVE_TYPES_H
26#define RAVE_TYPES_H
27
28#ifdef _MSC_VER
29#ifndef _CRT_SECURE_NO_DEPRECATE
30#define _CRT_SECURE_NO_DEPRECATE
31#endif
32#ifndef _CRT_NONSTDC_NO_DEPRECATE
33#define _CRT_NONSTDC_NO_DEPRECATE
34#endif
35#ifndef _USE_MATH_DEFINES
36#define _USE_MATH_DEFINES
37#endif
38#endif
39
51
52#ifndef RAVEIO_API_ODIM_VERSION
53#define RAVEIO_API_ODIM_VERSION RaveIO_ODIM_Version_2_3
54#endif
55
67
78
97
125
126
144
156
179
180typedef struct PolarObservation {
182 double v;
183 double distance;
184 double height;
185 double range;
186 double elangle;
188
196
203
211
218
226
233
239
247
255PolarObservation* RaveTypes_FilterPolarObservationDataValues(PolarObservation* observations, int nobservations, int* ndataobservations);
256
262void RaveTypes_SortPolarObservations(PolarObservation* observations, int nobservations);
263
264#endif /* RAVE_TYPES_H */
RaveTransformationMethod
Transformation methods.
Definition rave_types.h:148
@ NEAREST
Nearest.
Definition rave_types.h:149
@ BILINEAR
Bilinear.
Definition rave_types.h:150
@ UNIFORM
Uniform.
Definition rave_types.h:153
@ INVERSE
Inverse.
Definition rave_types.h:154
@ CUBIC
Cubic.
Definition rave_types.h:151
@ CRESSMAN
Cressman.
Definition rave_types.h:152
RaveIO_ODIM_Version
The /Conventions version in a ODIM HDF5 file.
Definition rave_types.h:43
@ RaveIO_ODIM_Version_2_2
ODIM 2.2.
Definition rave_types.h:47
@ RaveIO_ODIM_Version_2_0
ODIM 2.0.
Definition rave_types.h:45
@ RaveIO_ODIM_Version_2_1
ODIM 2.1.
Definition rave_types.h:46
@ RaveIO_ODIM_Version_UNDEFINED
Undefined.
Definition rave_types.h:44
@ RaveIO_ODIM_Version_2_4
ODIM 2.4, The default version.
Definition rave_types.h:49
@ RaveIO_ODIM_Version_2_3
ODIM 2.3.
Definition rave_types.h:48
Rave_ProductType
Product types that defines the <datasetX>/what/product in the ODIM format.
Definition rave_types.h:101
@ Rave_ProductType_UNDEFINED
Undefined.
Definition rave_types.h:102
@ Rave_ProductType_VP
Vertical profile.
Definition rave_types.h:112
@ Rave_ProductType_XSEC
Arbitrary vertical slice.
Definition rave_types.h:114
@ Rave_ProductType_PMAX
Pseudo-MAX.
Definition rave_types.h:120
@ Rave_ProductType_HSP
Horizontal side panel.
Definition rave_types.h:116
@ Rave_ProductType_VIL
Vertically integrated liquid water.
Definition rave_types.h:110
@ Rave_ProductType_SCAN
A scan of polar data.
Definition rave_types.h:103
@ Rave_ProductType_QUAL
Quality metric.
Definition rave_types.h:119
@ Rave_ProductType_VSP
Vertical side panel.
Definition rave_types.h:115
@ Rave_ProductType_RAY
Ray.
Definition rave_types.h:117
@ Rave_ProductType_PCAPPI
Pseudo-CAPPI.
Definition rave_types.h:106
@ Rave_ProductType_PPI
Plan position indicator.
Definition rave_types.h:104
@ Rave_ProductType_CAPPI
Constant altitude PPI.
Definition rave_types.h:105
@ Rave_ProductType_ETOP
Echo top.
Definition rave_types.h:107
@ Rave_ProductType_AZIM
Azimuthal type product.
Definition rave_types.h:118
@ Rave_ProductType_ENDOFTYPES
Last entry.
Definition rave_types.h:123
@ Rave_ProductType_MAX
Maximum.
Definition rave_types.h:108
@ Rave_ProductType_EBASE
Echo base.
Definition rave_types.h:122
@ Rave_ProductType_COMP
Composite.
Definition rave_types.h:111
@ Rave_ProductType_RHI
Range height indicator.
Definition rave_types.h:113
@ Rave_ProductType_SURF
Surface type.
Definition rave_types.h:121
@ Rave_ProductType_RR
Accumulation.
Definition rave_types.h:109
void RaveTypes_SortPolarObservations(PolarObservation *observations, int nobservations)
Sorts the array of observations.
Definition rave_types.c:309
const char * RaveTypes_getStringFromProductType(Rave_ProductType type)
Returns the string representation of the product type.
Definition rave_types.c:185
RaveDataType
Different data types that are supported during transformation.
Definition rave_types.h:130
@ RaveDataType_UCHAR
unsigned char
Definition rave_types.h:133
@ RaveDataType_ULONG
unsigned long
Definition rave_types.h:139
@ RaveDataType_CHAR
char
Definition rave_types.h:132
@ RaveDataType_SHORT
short
Definition rave_types.h:134
@ RaveDataType_UINT
unisgned int
Definition rave_types.h:137
@ RaveDataType_USHORT
unsigned short
Definition rave_types.h:135
@ RaveDataType_UNDEFINED
Undefined data type.
Definition rave_types.h:131
@ RaveDataType_INT
int
Definition rave_types.h:136
@ RaveDataType_FLOAT
float
Definition rave_types.h:140
@ RaveDataType_DOUBLE
double
Definition rave_types.h:141
@ RaveDataType_LAST
Always has to be at end and is not a real datatype.
Definition rave_types.h:142
@ RaveDataType_LONG
long
Definition rave_types.h:138
void RaveTypes_FreePolarObservationLinkedList(PolarObservationLinkedList *obs)
Deallocates this linked list and all its children.
Definition rave_types.c:226
const char * RaveTypes_getStringFromObjectType(Rave_ObjectType type)
Returns the string representation of the object type.
Definition rave_types.c:214
PolarObservation * RaveTypes_FilterPolarObservationDataValues(PolarObservation *observations, int nobservations, int *ndataobservations)
Removes all items that are not data-values in the observation array.
Definition rave_types.c:261
PolarObservation * RaveTypes_PolarObservationLinkedListToArray(PolarObservationLinkedList *obs, int *nritems)
Creates an array of PolarObservations from a PolarObservationLinkedList.
Definition rave_types.c:234
int get_ravetype_size(RaveDataType type)
Returns the size of the datatype.
Definition rave_types.c:140
Rave_ObjectType RaveTypes_getObjectTypeFromString(const char *name)
Translates the string representation of the object type into the enum.
Definition rave_types.c:197
struct PolarObservationLinkedList PolarObservationLinkedList
Linked list version of the PolarObservation.
Rave_ObjectType
Object types that defines the /what/object in the ODIM format.
Definition rave_types.h:82
@ Rave_ObjectType_PVOL
Polar volume.
Definition rave_types.h:84
@ Rave_ObjectType_XSEC
2-D vertical cross section(s)
Definition rave_types.h:92
@ Rave_ObjectType_ENDOFTYPES
Last entry.
Definition rave_types.h:95
@ Rave_ObjectType_CVOL
Cartesian volume.
Definition rave_types.h:85
@ Rave_ObjectType_IMAGE
2-D cartesian image
Definition rave_types.h:90
@ Rave_ObjectType_ELEV
Elevational object.
Definition rave_types.h:89
@ Rave_ObjectType_VP
1-D vertical profile
Definition rave_types.h:93
@ Rave_ObjectType_RAY
Single polar ray.
Definition rave_types.h:87
@ Rave_ObjectType_AZIM
Azimuthal object.
Definition rave_types.h:88
@ Rave_ObjectType_COMP
Cartesian composite image(s)
Definition rave_types.h:91
@ Rave_ObjectType_SCAN
Polar scan.
Definition rave_types.h:86
@ Rave_ObjectType_PIC
Embedded graphical image.
Definition rave_types.h:94
RaveIO_ODIM_H5rad_Version
The /what/version in a ODIM HDF5 file.
Definition rave_types.h:59
@ RaveIO_ODIM_H5rad_Version_UNDEFINED
undefined
Definition rave_types.h:60
@ RaveIO_ODIM_H5rad_Version_2_1
ODIM 2.1.
Definition rave_types.h:62
@ RaveIO_ODIM_H5rad_Version_2_0
ODIM 2.0.
Definition rave_types.h:61
@ RaveIO_ODIM_H5rad_Version_2_4
ODIM 2.4, The default version.
Definition rave_types.h:65
@ RaveIO_ODIM_H5rad_Version_2_3
ODIM 2.3.
Definition rave_types.h:64
@ RaveIO_ODIM_H5rad_Version_2_2
ODIM 2.2.
Definition rave_types.h:63
RaveValueType
Different value types.
Definition rave_types.h:72
@ RaveValueType_UNDEFINED
undefined, i.e.
Definition rave_types.h:73
@ RaveValueType_NODATA
nodata
Definition rave_types.h:75
@ RaveValueType_UNDETECT
undetect
Definition rave_types.h:74
@ RaveValueType_DATA
data
Definition rave_types.h:76
Rave_ProductType RaveTypes_getProductTypeFromString(const char *name)
Translates the string representation of the product type into the enum.
Definition rave_types.c:168
struct PolarNavigationInfo PolarNavigationInfo
Provides user with navigation information.
Provides user with navigation information.
Definition rave_types.h:160
double range
rays range
Definition rave_types.h:166
double azimuth
azimutal offset in radians
Definition rave_types.h:168
Rave_ObjectType otype
specifies if the data is from a scan or volume (default Rave_ObjectType_UNDEFINED)
Definition rave_types.h:174
double actual_height
actual height above sea surface in meters
Definition rave_types.h:164
double distance
surface distance in meters
Definition rave_types.h:165
double elevation
elevation angle in radians
Definition rave_types.h:170
double height
height above sea surface in meters
Definition rave_types.h:163
double actual_azimuth
actual azimutal offset in radians
Definition rave_types.h:169
int ei
elevation index in case of volumes (-1 meaning no elevation index found/calculated)
Definition rave_types.h:175
double lat
latitude
Definition rave_types.h:162
double actual_range
actual rays range
Definition rave_types.h:167
double lon
longitude
Definition rave_types.h:161
int ai
azimuth index (-1 meaning no azimuth index found/calculated or out of bounds)
Definition rave_types.h:177
double beamwV
horizontal beamwidth
Definition rave_types.h:172
double beamwH
horizontal beamwidth
Definition rave_types.h:171
int ri
range index (-1 meaning no range index found/calculated or out of bounds)
Definition rave_types.h:176
Linked list version of the PolarObservation.
Definition rave_types.h:192
struct PolarObservationLinkedList * next
the next observation in this set
Definition rave_types.h:194
Definition rave_types.h:180
double v
the corrected value
Definition rave_types.h:182
double distance
the distance along ground to the radar
Definition rave_types.h:183
double elangle
the elevation angle
Definition rave_types.h:186
RaveValueType vt
the value type
Definition rave_types.h:181
double range
range the range along the ray until we come to this bin
Definition rave_types.h:185
double height
height above ground (center position)
Definition rave_types.h:184