radolan  1.2.0
radolan_utils.h
1 /* The MIT License (MIT)
2  *
3  * (c) Jürgen Simon 2014 (juergen.simon@uni-bonn.de)
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
6  * of this software and associated documentation files (the "Software"), to deal
7  * in the Software without restriction, including without limitation the rights
8  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9  * copies of the Software, and to permit persons to whom the Software is
10  * furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21  * SOFTWARE.
22  */
23 
24 #ifndef RADOLAN_UTILS_H
25 #define RADOLAN_UTILS_H
26 
27 #include <radolan/types.h>
28 
29 #ifdef __cplusplus
30 
31 #include <ctime>
32 
33 extern "C" {
34 namespace Radolan {
35 #else
36 #include <time.h>
37 #endif
38 
50  void RDPrintPolarStereographic(RDScan *, int, int);
51 
53  void RDPrintHeaderInformation(RDScan *scan);
54 
58  void RDPrintScan(RDScan *scan, int latCount, int lonCount);
59 
61  const char *RDScanTypeToString(RDScanType type);
62 
66  RDScanType RDScanTypeFromString(const char *str);
67 
69  RDDataType RDMinValue(RDScanType t);
70 
72  RDDataType RDMaxValue(RDScanType t);
73 
75  RDDataType RDMissingValue(RDScanType t);
76 
78  RDDataType RDClutterValue(RDScanType t);
79 
84  const char *RDUnits(RDScanType type);
85 
87  RDByteType RDRVP6ToByteValue(float rvp6);
88 
90  float RDByteToRVP6Value(const RDByteType byte_value);
91 
93  int RDIsCleanMeasurement(RDScanType t, RDDataType value);
94 
96  int RDIsCleanMeasurementAndNotMin(RDScanType t, RDDataType value);
97 
99  size_t RDBytesPerPixel(RDScanType type);
100 
102  float RDRainrateFromDezibels(RDDataType dezibels);
103 
109  void RDGridSize(RDScanType t, size_t *width, size_t *height);
110 
116  void RDScanTime(RDScan *scan, struct tm *);
117 
123  time_t RDScanTimeInSecondsSinceEpoch(RDScan *scan);
124 
136  float RDMMPerHour(RDScanType t, RDDataType value);
137 
145  char *RDGuessFilename(RDScanType type, time_t timestamp);
146 
147 
148 #ifdef __cplusplus
149 }
150 }
151 #endif
152 
153 #endif /* Header Guard */