RAVE
cartesianvolume.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------------------------------------------------------------------------*/
27#ifndef CARTESIANVOLUME_H
28#define CARTESIANVOLUME_H
29#include "projection.h"
30#include "rave_object.h"
31#include "rave_types.h"
32#include "raveobject_list.h"
33#include "cartesian.h"
34
39
44
51int CartesianVolume_setTime(CartesianVolume_t* cvol, const char* value);
52
59
66int CartesianVolume_setDate(CartesianVolume_t* cvol, const char* value);
67
74
81int CartesianVolume_setSource(CartesianVolume_t* cvol, const char* value);
82
89
97
104
111
119
126
133
140
147
154
161
168
175
182
189
196
203
212void CartesianVolume_setAreaExtent(CartesianVolume_t* cvol, double llX, double llY, double urX, double urY);
213
222void CartesianVolume_getAreaExtent(CartesianVolume_t* cvol, double* llX, double* llY, double* urX, double* urY);
223
232
240
247
261
278
286
296
303int CartesianVolume_hasAttribute(CartesianVolume_t* cvol, const char* name);
304
311
320
327
336
337#endif /* CARTESIANVOLUME_H */
Defines the functions available when working with cartesian products.
const char * CartesianVolume_getSource(CartesianVolume_t *cvol)
Returns the source.
Definition cartesianvolume.c:196
int CartesianVolume_setDate(CartesianVolume_t *cvol, const char *value)
Sets the nominal date.
Definition cartesianvolume.c:164
RaveAttribute_t * CartesianVolume_getAttribute(CartesianVolume_t *cvol, const char *name)
Returns the rave attribute that is named accordingly.
Definition cartesianvolume.c:459
const char * CartesianVolume_getProjectionString(CartesianVolume_t *cvol)
Returns the projection string defining this cartesian volume.
Definition cartesianvolume.c:233
long CartesianVolume_getZSize(CartesianVolume_t *cvol)
Returns the zsize, should be same as number of images in volume.
Definition cartesianvolume.c:290
int CartesianVolume_setSource(CartesianVolume_t *cvol, const char *value)
Sets the source.
Definition cartesianvolume.c:176
double CartesianVolume_getYScale(CartesianVolume_t *cvol)
Returns the yscale.
Definition cartesianvolume.c:260
Rave_ObjectType CartesianVolume_getObjectType(CartesianVolume_t *cvol)
Returns the object type this cartesian volume represents.
Definition cartesianvolume.c:212
double CartesianVolume_getZStart(CartesianVolume_t *cvol)
Returns the zstart.
Definition cartesianvolume.c:302
int CartesianVolume_addAttribute(CartesianVolume_t *cvol, RaveAttribute_t *attribute)
Adds a rave attribute to the volume.
Definition cartesianvolume.c:421
RaveCoreObjectType CartesianVolume_TYPE
Type definition to use when creating a rave object.
Definition cartesianvolume.c:507
void CartesianVolume_getAreaExtent(CartesianVolume_t *cvol, double *llX, double *llY, double *urX, double *urY)
Gets the area extent for this cartesian product.
Definition cartesianvolume.c:317
RaveList_t * CartesianVolume_getAttributeNamesVersion(CartesianVolume_t *cvol, RaveIO_ODIM_Version version)
Returns a list of attribute names for specified version.
Definition cartesianvolume.c:487
int CartesianVolume_getNumberOfImages(CartesianVolume_t *cvol)
Returns the number of images.
Definition cartesianvolume.c:415
Cartesian_t * CartesianVolume_getImage(CartesianVolume_t *cvol, int index)
Returns the image at given index.
Definition cartesianvolume.c:409
int CartesianVolume_hasAttribute(CartesianVolume_t *cvol, const char *name)
Returns if the specified attribute exists in the how-attributes or not.
Definition cartesianvolume.c:475
RaveObjectList_t * CartesianVolume_getAttributeValues(CartesianVolume_t *cvol)
Returns a list of attribute values that should be stored for this volume.
Definition cartesianvolume.c:493
long CartesianVolume_getXSize(CartesianVolume_t *cvol)
Returns the xsize.
Definition cartesianvolume.c:278
double CartesianVolume_getXScale(CartesianVolume_t *cvol)
Returns the xscale.
Definition cartesianvolume.c:248
void CartesianVolume_setProjection(CartesianVolume_t *cvol, Projection_t *projection)
Sets the projection that defines this cartesian volume.
Definition cartesianvolume.c:218
Projection_t * CartesianVolume_getProjection(CartesianVolume_t *cvol)
Returns a copy of the projection that is used for this cartesian volume.
Definition cartesianvolume.c:227
double CartesianVolume_getZScale(CartesianVolume_t *cvol)
Returns the zscale.
Definition cartesianvolume.c:272
RaveAttribute_t * CartesianVolume_getAttributeVersion(CartesianVolume_t *cvol, const char *name, RaveIO_ODIM_Version version)
Returns the rave attribute that is named accordingly.
Definition cartesianvolume.c:465
long CartesianVolume_getYSize(CartesianVolume_t *cvol)
Returns the ysize.
Definition cartesianvolume.c:284
int CartesianVolume_setObjectType(CartesianVolume_t *cvol, Rave_ObjectType type)
Sets the object type this cartesian volume should represent.
Definition cartesianvolume.c:202
RaveObjectList_t * CartesianVolume_getAttributeValuesVersion(CartesianVolume_t *cvol, RaveIO_ODIM_Version version)
Returns a list of attribute values in specified version for this volume.
Definition cartesianvolume.c:499
void CartesianVolume_setXScale(CartesianVolume_t *cvol, double xscale)
Sets the xscale.
Definition cartesianvolume.c:242
int CartesianVolume_setTime(CartesianVolume_t *cvol, const char *value)
Sets the nominal time.
Definition cartesianvolume.c:152
void CartesianVolume_setZScale(CartesianVolume_t *cvol, double zscale)
Sets the zscale.
Definition cartesianvolume.c:266
int CartesianVolume_addAttributeVersion(CartesianVolume_t *cvol, RaveAttribute_t *attribute, RaveIO_ODIM_Version version)
Adds a rave attribute to the volume of specified version.
Definition cartesianvolume.c:428
int CartesianVolume_addImage(CartesianVolume_t *cvol, Cartesian_t *image)
Adds a cartesian image to the volume.
Definition cartesianvolume.c:334
void CartesianVolume_setAreaExtent(CartesianVolume_t *cvol, double llX, double llY, double urX, double urY)
Sets the area extent for this cartesian product.
Definition cartesianvolume.c:308
void CartesianVolume_setYScale(CartesianVolume_t *cvol, double yscale)
Sets the yscale.
Definition cartesianvolume.c:254
const char * CartesianVolume_getTime(CartesianVolume_t *cvol)
Returns the nominal time.
Definition cartesianvolume.c:158
void CartesianVolume_setZStart(CartesianVolume_t *cvol, double zstart)
Sets the zstart.
Definition cartesianvolume.c:296
RaveList_t * CartesianVolume_getAttributeNames(CartesianVolume_t *cvol)
Returns a list of attribute names.
Definition cartesianvolume.c:481
const char * CartesianVolume_getDate(CartesianVolume_t *cvol)
Returns the nominal date.
Definition cartesianvolume.c:170
Wrapper around PROJ.4.
Generic implementation of an object that is used within rave.
Type definitions for RAVE.
RaveIO_ODIM_Version
The /Conventions version in a ODIM HDF5 file.
Definition rave_types.h:43
Rave_ObjectType
Object types that defines the /what/object in the ODIM format.
Definition rave_types.h:82
Implementation of a rave object list that ensures that the objects contained within the list are rele...
Represents the cartesian volume.
Definition cartesianvolume.c:39
double zstart
Height in meters above mean sea level of the lowest pixel in the Z dimension, introduced with ODIM 2....
Definition cartesianvolume.c:50
double llY
lower left y-coordinate
Definition cartesianvolume.c:52
Projection_t * projection
this volumes projection definition
Definition cartesianvolume.c:46
double yscale
y scale
Definition cartesianvolume.c:48
double llX
lower left x-coordinate
Definition cartesianvolume.c:51
double xscale
x scale
Definition cartesianvolume.c:47
double zscale
z scale, introduced with ODIM 2.3, marked for DEPRECATION in 2.4
Definition cartesianvolume.c:49
double urY
upper right x-coordinate
Definition cartesianvolume.c:54
double urX
upper right x-coordinate
Definition cartesianvolume.c:53
Represents the cartesian product.
Definition cartesian.c:41
Represents one projection.
Definition projection.c:55
Represents one scan in a volume.
Definition rave_attribute.c:45
Represents a list.
Definition rave_list.c:36
Represents a list.
Definition raveobject_list.c:35
The rave object type definition.
Definition rave_object.h:52