RAVE
acqvafeaturemap.h
Go to the documentation of this file.
1/* --------------------------------------------------------------------
2Copyright (C) 2025 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------------------------------------------------------------------------*/
26#ifndef ACQVA_FEATURE_MAP_H
27#define ACQVA_FEATURE_MAP_H
28
29#include "rave_object.h"
30#include "raveobject_list.h"
31#include "rave_datetime.h"
32#include "rave_types.h"
33
38
44
49
54
59
64
70AcqvaFeatureMap_t* AcqvaFeatureMap_load(const char* filename);
71
78int AcqvaFeatureMap_save(AcqvaFeatureMap_t* self, const char* filename);
79
86int AcqvaFeatureMap_setNod(AcqvaFeatureMap_t* self, const char* source);
87
94
100void AcqvaFeatureMap_setLongitude(AcqvaFeatureMap_t* self, double lon);
101
108
114void AcqvaFeatureMap_setLatitude(AcqvaFeatureMap_t* self, double lat);
115
122
128void AcqvaFeatureMap_setHeight(AcqvaFeatureMap_t* self, double height);
129
136
143int AcqvaFeatureMap_setStartdate(AcqvaFeatureMap_t* self, const char* date);
144
151
158int AcqvaFeatureMap_setEnddate(AcqvaFeatureMap_t* self, const char* date);
159
166
177
186
194
201
208
216
223
232AcqvaFeatureMapField_t* AcqvaFeatureMap_findField(AcqvaFeatureMap_t* self, long nbins, long nrays, double elangle);
233
241
249
256
264
271
279
287
296
304int AcqvaFeatureMapElevation_has(AcqvaFeatureMapElevation_t* self, long nbins, long nrays);
305
313
320
326
332
338
347int AcqvaFeatureMapField_createData(AcqvaFeatureMapField_t* self, long nbins, long nrays, RaveDataType type);
348
352int AcqvaFeatureMapField_setData(AcqvaFeatureMapField_t* self, long nbins, long nrays, void* data, RaveDataType type);
353
358
366
375int AcqvaFeatureMapField_setValue(AcqvaFeatureMapField_t* self, int bin, int ray, double v);
376
385int AcqvaFeatureMapField_getValue(AcqvaFeatureMapField_t* self, int bin, int ray, double* v);
386
391
392#endif
RaveCoreObjectType AcqvaFeatureMap_TYPE
Type definition to use when creating a rave object.
Definition acqvafeaturemap.c:1114
RaveCoreObjectType AcqvaFeatureMapField_TYPE
Type definition to use when creating a rave object.
Definition acqvafeaturemap.c:1130
RaveCoreObjectType AcqvaFeatureMapElevation_TYPE
Type definition to use when creating a rave object.
Definition acqvafeaturemap.c:1122
void AcqvaFeatureMap_removeElevation(AcqvaFeatureMap_t *self, int index)
Removes the elevation group at specified index.
Definition acqvafeaturemap.c:870
void AcqvaFeatureMap_setLongitude(AcqvaFeatureMap_t *self, double lon)
The longitude for this source.
Definition acqvafeaturemap.c:706
void AcqvaFeatureMapElevation_remove(AcqvaFeatureMapElevation_t *self, int index)
Returns field at index.
Definition acqvafeaturemap.c:964
const char * AcqvaFeatureMap_getStartdate(AcqvaFeatureMap_t *self)
Returns the start date of the period this map represents.
Definition acqvafeaturemap.c:748
int AcqvaFeatureMap_getNumberOfElevations(AcqvaFeatureMap_t *self)
Returns the number of elevation groups in the feature map.
Definition acqvafeaturemap.c:858
int AcqvaFeatureMap_setStartdate(AcqvaFeatureMap_t *self, const char *date)
Sets the start date of the period this map represents.
Definition acqvafeaturemap.c:742
AcqvaFeatureMapField_t * AcqvaFeatureMap_findField(AcqvaFeatureMap_t *self, long nbins, long nrays, double elangle)
Locates a matching field that is very close to elangle < 1e-4 with wanted nrays & nbins.
Definition acqvafeaturemap.c:877
int AcqvaFeatureMapField_setValue(AcqvaFeatureMapField_t *self, int bin, int ray, double v)
Sets a value in the data field.
Definition acqvafeaturemap.c:1071
AcqvaFeatureMapElevation_t * AcqvaFeatureMap_findElevation(AcqvaFeatureMap_t *self, double elangle)
Locates a matching field that is very close to elangle < 1e-4.
Definition acqvafeaturemap.c:891
int AcqvaFeatureMapElevation_add(AcqvaFeatureMapElevation_t *self, AcqvaFeatureMapField_t *field)
Adds a field to the elevation group.
Definition acqvafeaturemap.c:922
long AcqvaFeatureMapField_getNrays(AcqvaFeatureMapField_t *self)
Definition acqvafeaturemap.c:1022
AcqvaFeatureMapElevation_t * AcqvaFeatureMap_createElevation(AcqvaFeatureMap_t *self, double elangle)
Creates an elevation group in the feature map unless it already exists (same elangle) which will inst...
Definition acqvafeaturemap.c:811
double AcqvaFeatureMap_getLongitude(AcqvaFeatureMap_t *self)
The longitude for this source.
Definition acqvafeaturemap.c:712
AcqvaFeatureMapElevation_t * AcqvaFeatureMap_getElevation(AcqvaFeatureMap_t *self, int index)
Returns the elevation group at given index.
Definition acqvafeaturemap.c:864
void AcqvaFeatureMap_setHeight(AcqvaFeatureMap_t *self, double height)
The height for this source.
Definition acqvafeaturemap.c:730
const char * AcqvaFeatureMap_getNod(AcqvaFeatureMap_t *self)
Returns the nod for this feature map.
Definition acqvafeaturemap.c:700
double AcqvaFeatureMapElevation_getElangle(AcqvaFeatureMapElevation_t *self)
Gets the elevation angle for this group.
Definition acqvafeaturemap.c:916
RaveDataType AcqvaFeatureMapField_getDatatype(AcqvaFeatureMapField_t *self)
Definition acqvafeaturemap.c:1028
void * AcqvaFeatureMapField_getData(AcqvaFeatureMapField_t *self)
Returns the data.
Definition acqvafeaturemap.c:1059
int AcqvaFeatureMap_addElevation(AcqvaFeatureMap_t *self, AcqvaFeatureMapElevation_t *elevation)
Adds an elevation group in the feature map unless it already exists.
Definition acqvafeaturemap.c:836
AcqvaFeatureMap_t * AcqvaFeatureMap_load(const char *filename)
Loads a ACQVA feature map.
Definition acqvafeaturemap.c:547
const char * AcqvaFeatureMap_getEnddate(AcqvaFeatureMap_t *self)
Returns the start date of the period this map represents.
Definition acqvafeaturemap.c:760
void AcqvaFeatureMap_setLatitude(AcqvaFeatureMap_t *self, double lat)
The latitude for this source.
Definition acqvafeaturemap.c:718
int AcqvaFeatureMapElevation_size(AcqvaFeatureMapElevation_t *self)
Returns number of fields in this elevation group.
Definition acqvafeaturemap.c:952
AcqvaFeatureMapField_t * AcqvaFeatureMapElevation_find(AcqvaFeatureMapElevation_t *self, long nbins, long nrays)
Locates a field that matches the nbins and nrays.
Definition acqvafeaturemap.c:970
double AcqvaFeatureMapField_getElangle(AcqvaFeatureMapField_t *self)
Gets the elevation angle for this field.
Definition acqvafeaturemap.c:1010
int AcqvaFeatureMap_addField(AcqvaFeatureMap_t *self, AcqvaFeatureMapField_t *field)
Adds a field (scan) to the feature map.
Definition acqvafeaturemap.c:788
struct _AcqvaFeatureMapField_t AcqvaFeatureMapField_t
Defines a feature map field.
Definition acqvafeaturemap.h:48
int AcqvaFeatureMap_setEnddate(AcqvaFeatureMap_t *self, const char *date)
Sets the end date of the period this map represents.
Definition acqvafeaturemap.c:754
struct _AcqvaFeatureMap_t AcqvaFeatureMap_t
Defines a feature map.
Definition acqvafeaturemap.h:37
AcqvaFeatureMapField_t * AcqvaFeatureMapElevation_get(AcqvaFeatureMapElevation_t *self, int index)
Returns field at index.
Definition acqvafeaturemap.c:958
AcqvaFeatureMapField_t * AcqvaFeatureMapField_createField(long nbins, long nrays, RaveDataType type, double elangle)
Creates a feature map field with wanted dimensions, type and elangle.
Definition acqvafeaturemap.c:1091
int AcqvaFeatureMap_setNod(AcqvaFeatureMap_t *self, const char *source)
Sets the nod for this feature map.
Definition acqvafeaturemap.c:682
long AcqvaFeatureMapField_getNbins(AcqvaFeatureMapField_t *self)
Definition acqvafeaturemap.c:1016
int AcqvaFeatureMapField_getValue(AcqvaFeatureMapField_t *self, int bin, int ray, double *v)
Gets a value from the data field.
Definition acqvafeaturemap.c:1077
int AcqvaFeatureMap_save(AcqvaFeatureMap_t *self, const char *filename)
Saves the ACQVA feature map.
Definition acqvafeaturemap.c:621
int AcqvaFeatureMapField_fill(AcqvaFeatureMapField_t *self, double value)
Fills the complete array with wanted value.
Definition acqvafeaturemap.c:1065
int AcqvaFeatureMapElevation_has(AcqvaFeatureMapElevation_t *self, long nbins, long nrays)
Locates a field that matches the nbins and nrays and returns true or false depending on if it exists.
Definition acqvafeaturemap.c:987
double AcqvaFeatureMap_getLatitude(AcqvaFeatureMap_t *self)
The latitude for this source.
Definition acqvafeaturemap.c:724
struct _AcqvaFeatureMapElevation_t AcqvaFeatureMapElevation_t
Defines a feature map elevation.
Definition acqvafeaturemap.h:43
int AcqvaFeatureMapElevation_setElangle(AcqvaFeatureMapElevation_t *self, double elangle)
Sets the elevation angle for this group.
Definition acqvafeaturemap.c:909
double AcqvaFeatureMap_getHeight(AcqvaFeatureMap_t *self)
The height for this source.
Definition acqvafeaturemap.c:736
int AcqvaFeatureMapField_createData(AcqvaFeatureMapField_t *self, long nbins, long nrays, RaveDataType type)
Creates a data field with specified geometry and type and will be initialized to 0.
Definition acqvafeaturemap.c:1034
AcqvaFeatureMapField_t * AcqvaFeatureMap_createField(AcqvaFeatureMap_t *self, long nbins, long nrays, RaveDataType type, double elangle)
Creates a field in the feature map with wanted elevation angle and the geometry (nrays,...
Definition acqvafeaturemap.c:766
int AcqvaFeatureMapField_setData(AcqvaFeatureMapField_t *self, long nbins, long nrays, void *data, RaveDataType type)
Sets a data field with specified data, geometry and type.
Definition acqvafeaturemap.c:1047
int AcqvaFeatureMapField_setElangle(AcqvaFeatureMapField_t *self, double elangle)
Sets the elevation angle for this field.
Definition acqvafeaturemap.c:1003
Object for managing date and time.
Generic implementation of an object that is used within rave.
struct _raveobjecttype RaveCoreObjectType
The rave object type definition.
Type definitions for RAVE.
RaveDataType
Different data types that are supported during transformation.
Definition rave_types.h:130
Implementation of a rave object list that ensures that the objects contained within the list are rele...
Definition acqvafeaturemap.c:46
Definition acqvafeaturemap.c:52
double elangle
the elangle
Definition acqvafeaturemap.c:55
RAVE_OBJECT_HEAD RaveData2D_t * data
Always on top.
Definition acqvafeaturemap.c:54
Definition acqvafeaturemap.c:35