radarlib  1.4.6
odimh5v21_const.hpp
Go to the documentation of this file.
1 /*
2  * Radar Library
3  *
4  * Copyright (C) 2009-2010 ARPA-SIM <urpsim@smr.arpa.emr.it>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License along
17  * with this program; if not, write to the Free Software Foundation, Inc.,
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19  *
20  * Author: Guido Billi <guidobilli@gmail.com>
21  */
22 
27 #ifndef __RADAR_ODIMH5V21_CONST_HPP__
28 #define __RADAR_ODIMH5V21_CONST_HPP__
29 
30 #include <string>
31 #include <set>
32 
33 #include "H5public.h"
34 
35 #include <radarlib/defs.h>
36 
37 /*===========================================================================*/
38 
39 namespace OdimH5v21
40 {
41 
42  extern RADAR_API const char* GROUP_WHAT;
43  extern RADAR_API const char* GROUP_WHERE;
44  extern RADAR_API const char* GROUP_HOW;
45  extern RADAR_API const char* GROUP_DATASET;
46  extern RADAR_API const char* GROUP_DATA;
47  extern RADAR_API const char* GROUP_QUALITY;
48  extern RADAR_API const char* DATASET_DATA;
49 
50  extern RADAR_API const char* ATTRIBUTE_ROOT_CONVENTIONS;
51  extern RADAR_API const char* CONVENTIONS_ODIM_H5_V2_1;
52 
53  extern RADAR_API const char* ATTRIBUTE_WHAT_OBJECT;
54 
55  extern RADAR_API const char* OBJECT_PVOL;
56  extern RADAR_API const char* OBJECT_CVOL;
57  extern RADAR_API const char* OBJECT_SCAN;
58  extern RADAR_API const char* OBJECT_RAY;
59  extern RADAR_API const char* OBJECT_AZIM;
60  extern RADAR_API const char* OBJECT_IMAGE;
61  extern RADAR_API const char* OBJECT_COMP;
62  extern RADAR_API const char* OBJECT_XSEC;
63  extern RADAR_API const char* OBJECT_VP;
64  extern RADAR_API const char* OBJECT_PIC;
65 
66  extern RADAR_API const char* ATTRIBUTE_WHAT_VERSION;
67  extern RADAR_API const char* ATTRIBUTE_WHAT_VERSION_FORMAT;
68 
69  extern RADAR_API const char* ATTRIBUTE_WHAT_DATE;
70 
71  extern RADAR_API const char* ATTRIBUTE_WHAT_DATE_FORMAT;
72 
73  extern RADAR_API const char* ATTRIBUTE_WHAT_TIME;
74 
75  extern RADAR_API const char* ATTRIBUTE_WHAT_TIME_FORMAT;
76 
77  extern RADAR_API const char* ATTRIBUTE_WHAT_SOURCE;
78 
79  extern RADAR_API const char* SOURCE_WMO;
80  extern RADAR_API const char* SOURCE_RAD;
81  extern RADAR_API const char* SOURCE_ORG;
82  extern RADAR_API const char* SOURCE_PLC;
83  extern RADAR_API const char* SOURCE_CTY;
84  extern RADAR_API const char* SOURCE_CMT;
85  extern RADAR_API const char* SOURCE_NOD;
86 
87  extern RADAR_API const char* ATTRIBUTE_WHAT_PRODUCT;
88 
89  extern RADAR_API const char* PRODUCT_SCAN;
90  extern RADAR_API const char* PRODUCT_PPI;
91  extern RADAR_API const char* PRODUCT_CAPPI;
92  extern RADAR_API const char* PRODUCT_PCAPPI;
93  extern RADAR_API const char* PRODUCT_ETOP;
94  extern RADAR_API const char* PRODUCT_MAX;
95  extern RADAR_API const char* PRODUCT_RR;
96  extern RADAR_API const char* PRODUCT_VIL;
97  extern RADAR_API const char* PRODUCT_COMP;
98  extern RADAR_API const char* PRODUCT_VP;
99  extern RADAR_API const char* PRODUCT_RHI;
100  extern RADAR_API const char* PRODUCT_XSEC;
101  extern RADAR_API const char* PRODUCT_VSP;
102  extern RADAR_API const char* PRODUCT_HSP;
103  extern RADAR_API const char* PRODUCT_RAY;
104  extern RADAR_API const char* PRODUCT_AZIM;
105  extern RADAR_API const char* PRODUCT_QUAL;
106 /*===========================================================================*/
107 /* ADDITIONAL PRODUCT */
108 /*===========================================================================*/
109  extern RADAR_API const char* PRODUCT_LBM_ARPA;
110  extern RADAR_API const char* PRODUCT_POH_ARPA;
111 
112  extern RADAR_API const char* ATTRIBUTE_WHAT_PRODPAR;
113  extern RADAR_API const char* ATTRIBUTE_WHAT_QUANTITY;
114  extern RADAR_API const char* ATTRIBUTE_WHAT_STARTDATE;
115  extern RADAR_API const char* ATTRIBUTE_WHAT_STARTTIME;
116  extern RADAR_API const char* ATTRIBUTE_WHAT_ENDDATE;
117  extern RADAR_API const char* ATTRIBUTE_WHAT_ENDTIME;
118  extern RADAR_API const char* ATTRIBUTE_WHAT_GAIN;
119  extern RADAR_API const char* ATTRIBUTE_WHAT_OFFSET;
120  extern RADAR_API const char* ATTRIBUTE_WHAT_NODATA;
121  extern RADAR_API const char* ATTRIBUTE_WHAT_UNDETECT;
122 
123  extern RADAR_API const char* PRODUCT_QUANTITY_TH;
124  extern RADAR_API const char* PRODUCT_QUANTITY_TV;
125  extern RADAR_API const char* PRODUCT_QUANTITY_DBZH;
126  extern RADAR_API const char* PRODUCT_QUANTITY_DBZV;
127  extern RADAR_API const char* PRODUCT_QUANTITY_ZDR;
128  extern RADAR_API const char* PRODUCT_QUANTITY_RHOHV;
129  extern RADAR_API const char* PRODUCT_QUANTITY_LDR;
130  extern RADAR_API const char* PRODUCT_QUANTITY_PHIDP;
131  extern RADAR_API const char* PRODUCT_QUANTITY_KDP;
132  extern RADAR_API const char* PRODUCT_QUANTITY_SQI;
133  extern RADAR_API const char* PRODUCT_QUANTITY_SNR;
134  extern RADAR_API const char* PRODUCT_QUANTITY_RATE;
135  extern RADAR_API const char* PRODUCT_QUANTITY_ACRR;
136  extern RADAR_API const char* PRODUCT_QUANTITY_HGHT;
137  extern RADAR_API const char* PRODUCT_QUANTITY_VIL;
138  extern RADAR_API const char* PRODUCT_QUANTITY_VRAD;
139  extern RADAR_API const char* PRODUCT_QUANTITY_WRAD;
140  extern RADAR_API const char* PRODUCT_QUANTITY_UWND;
141  extern RADAR_API const char* PRODUCT_QUANTITY_VWND;
142  extern RADAR_API const char* PRODUCT_QUANTITY_BRDR;
143  extern RADAR_API const char* PRODUCT_QUANTITY_QIND;
144  extern RADAR_API const char* PRODUCT_QUANTITY_CLASS;
145 
146  extern RADAR_API const char* PRODUCT_QUANTITY_ff;
147  extern RADAR_API const char* PRODUCT_QUANTITY_dd;
148  extern RADAR_API const char* PRODUCT_QUANTITY_ff_dev;
149  extern RADAR_API const char* PRODUCT_QUANTITY_dd_dev;
150  extern RADAR_API const char* PRODUCT_QUANTITY_n;
151  extern RADAR_API const char* PRODUCT_QUANTITY_dbz;
152  extern RADAR_API const char* PRODUCT_QUANTITY_dbz_dev;
153  extern RADAR_API const char* PRODUCT_QUANTITY_z;
154  extern RADAR_API const char* PRODUCT_QUANTITY_z_dev;
155  extern RADAR_API const char* PRODUCT_QUANTITY_w;
156  extern RADAR_API const char* PRODUCT_QUANTITY_w_dev;
157  extern RADAR_API const char* PRODUCT_QUANTITY_div;
158  extern RADAR_API const char* PRODUCT_QUANTITY_div_dev;
159  extern RADAR_API const char* PRODUCT_QUANTITY_def;
160  extern RADAR_API const char* PRODUCT_QUANTITY_def_dev;
161  extern RADAR_API const char* PRODUCT_QUANTITY_ad;
162  extern RADAR_API const char* PRODUCT_QUANTITY_ad_dev;
163  extern RADAR_API const char* PRODUCT_QUANTITY_chi2;
164  extern RADAR_API const char* PRODUCT_QUANTITY_rhohv;
165  extern RADAR_API const char* PRODUCT_QUANTITY_rhohv_dev;
166 
167  extern RADAR_API const char* ATTRIBUTE_WHERE_LON;
168  extern RADAR_API const char* ATTRIBUTE_WHERE_LAT;
169  extern RADAR_API const char* ATTRIBUTE_WHERE_HEIGHT;
170 
171  extern RADAR_API const char* ATTRIBUTE_WHERE_ELANGLE;
172  extern RADAR_API const char* ATTRIBUTE_WHERE_NBINS;
173  extern RADAR_API const char* ATTRIBUTE_WHERE_RSTART;
174  extern RADAR_API const char* ATTRIBUTE_WHERE_RSCALE;
175  extern RADAR_API const char* ATTRIBUTE_WHERE_NRAYS;
176  extern RADAR_API const char* ATTRIBUTE_WHERE_A1GATE;
177 
178  extern RADAR_API const char* ATTRIBUTE_WHERE_STARTAZ;
179  extern RADAR_API const char* ATTRIBUTE_WHERE_STOPAZ;
180 
181  extern RADAR_API const char* ATTRIBUTE_WHERE_PROJDEF;
182  extern RADAR_API const char* ATTRIBUTE_WHERE_XSIZE;
183  extern RADAR_API const char* ATTRIBUTE_WHERE_YSIZE;
184  extern RADAR_API const char* ATTRIBUTE_WHERE_XSCALE;
185  extern RADAR_API const char* ATTRIBUTE_WHERE_YSCALE;
186  extern RADAR_API const char* ATTRIBUTE_WHERE_LL_LON;
187  extern RADAR_API const char* ATTRIBUTE_WHERE_LL_LAT;
188  extern RADAR_API const char* ATTRIBUTE_WHERE_UL_LON;
189  extern RADAR_API const char* ATTRIBUTE_WHERE_UL_LAT;
190  extern RADAR_API const char* ATTRIBUTE_WHERE_UR_LON;
191  extern RADAR_API const char* ATTRIBUTE_WHERE_UR_LAT;
192  extern RADAR_API const char* ATTRIBUTE_WHERE_LR_LON;
193  extern RADAR_API const char* ATTRIBUTE_WHERE_LR_LAT;
194 
195  extern RADAR_API const char* ATTRIBUTE_WHERE_MINHEIGHT;
196  extern RADAR_API const char* ATTRIBUTE_WHERE_MAXHEIGHT;
197 
198  extern RADAR_API const char* ATTRIBUTE_WHERE_AZ_ANGLE;
199  extern RADAR_API const char* ATTRIBUTE_WHERE_ANGLES;
200  extern RADAR_API const char* ATTRIBUTE_WHERE_RANGE;
201 
202  extern RADAR_API const char* ATTRIBUTE_WHERE_START_LON;
203  extern RADAR_API const char* ATTRIBUTE_WHERE_START_LAT;
204  extern RADAR_API const char* ATTRIBUTE_WHERE_STOP_LON;
205  extern RADAR_API const char* ATTRIBUTE_WHERE_STOP_LAT;
206 
207  extern RADAR_API const char* ATTRIBUTE_WHERE_LEVELS;
208  extern RADAR_API const char* ATTRIBUTE_WHERE_INTERVAL;
209 
210  extern RADAR_API const char* ATTRIBUTE_HOW_TASK;
211  extern RADAR_API const char* ATTRIBUTE_HOW_STARTEPOCHS;
212  extern RADAR_API const char* ATTRIBUTE_HOW_ENDEPOCHS;
213  extern RADAR_API const char* ATTRIBUTE_HOW_SYSTEM;
214  extern RADAR_API const char* ATTRIBUTE_HOW_SOFTWARE;
215 
216  extern RADAR_API const char* SOFTWARE_CASTOR;
217  extern RADAR_API const char* SOFTWARE_EDGE;
218  extern RADAR_API const char* SOFTWARE_FROG;
219  extern RADAR_API const char* SOFTWARE_IRIS;
220  extern RADAR_API const char* SOFTWARE_NORDRAD;
221  extern RADAR_API const char* SOFTWARE_RADARNET;
222  extern RADAR_API const char* SOFTWARE_RAINBOW;
223 
224 
225  extern RADAR_API const char* ATTRIBUTE_HOW_SW_VERSION;
226  extern RADAR_API const char* ATTRIBUTE_HOW_ZR_A;
227  extern RADAR_API const char* ATTRIBUTE_HOW_ZR_B;
228  extern RADAR_API const char* ATTRIBUTE_HOW_KR_A;
229  extern RADAR_API const char* ATTRIBUTE_HOW_KR_B;
230  extern RADAR_API const char* ATTRIBUTE_HOW_SIMULATED;
231 
232  extern RADAR_API const char* ATTRIBUTE_HOW_BEAMWIDTH;
233  extern RADAR_API const char* ATTRIBUTE_HOW_WAVELENGTH;
234  extern RADAR_API const char* ATTRIBUTE_HOW_RPM;
235  extern RADAR_API const char* ATTRIBUTE_HOW_PULSEWIDTH;
236  extern RADAR_API const char* ATTRIBUTE_HOW_RXBANDWIDTH;
237  extern RADAR_API const char* ATTRIBUTE_HOW_LOWPRF;
238  extern RADAR_API const char* ATTRIBUTE_HOW_HIGHPRF;
239  extern RADAR_API const char* ATTRIBUTE_HOW_TXLOSS;
240  extern RADAR_API const char* ATTRIBUTE_HOW_RXLOSS;
241  extern RADAR_API const char* ATTRIBUTE_HOW_ANTGAIN;
242  extern RADAR_API const char* ATTRIBUTE_HOW_BEAMWH;
243  extern RADAR_API const char* ATTRIBUTE_HOW_BEAMWV;
244  extern RADAR_API const char* ATTRIBUTE_HOW_RADOMELOSS;
245  extern RADAR_API const char* ATTRIBUTE_HOW_GASATTN;
246  extern RADAR_API const char* ATTRIBUTE_HOW_RADCONSTH;
247  extern RADAR_API const char* ATTRIBUTE_HOW_RADCONSTV;
248  extern RADAR_API const char* ATTRIBUTE_HOW_NOMTXPOWER;
249  extern RADAR_API const char* ATTRIBUTE_HOW_TXPOWER;
250  extern RADAR_API const char* ATTRIBUTE_HOW_NI;
251  extern RADAR_API const char* ATTRIBUTE_HOW_VSAMPLES;
252 
253  extern RADAR_API const char* ATTRIBUTE_HOW_AZMETHOD;
254  extern RADAR_API const char* ATTRIBUTE_HOW_BINMETHOD;
255 // extern RADAR_API const char* ATTRIBUTE_HOW_AZANGLES; removed in ODIMh5 v2.1
256  extern RADAR_API const char* ATTRIBUTE_HOW_ELANGLES;
257  extern RADAR_API const char* ATTRIBUTE_HOW_STARTAZA;
258  extern RADAR_API const char* ATTRIBUTE_HOW_STOPAZA;
259  extern RADAR_API const char* ATTRIBUTE_HOW_STARTAZT;
260  extern RADAR_API const char* ATTRIBUTE_HOW_STOPAZT;
261 
262  extern RADAR_API const char* METHOD_NEAREST;
263  extern RADAR_API const char* METHOD_INTERPOL;
264  extern RADAR_API const char* METHOD_AVERAGE;
265  extern RADAR_API const char* METHOD_RANDOM;
266  extern RADAR_API const char* METHOD_MDE;
267  extern RADAR_API const char* METHOD_LATEST;
268  extern RADAR_API const char* METHOD_MAXIMUM;
269  extern RADAR_API const char* METHOD_DOMAIN;
270  extern RADAR_API const char* METHOD_VAD;
271  extern RADAR_API const char* METHOD_VVP;
272  extern RADAR_API const char* METHOD_RGA;
273 
274 // extern RADAR_API const char* ATTRIBUTE_HOW_AZTIMES; removed in ODIMh5 v2.1
275 
276  extern RADAR_API const char* ATTRIBUTE_HOW_ANGLES;
277  extern RADAR_API const char* ATTRIBUTE_HOW_AROTATION;
278  extern RADAR_API const char* ATTRIBUTE_HOW_CAMETHOD;
279  extern RADAR_API const char* ATTRIBUTE_HOW_NODES;
280  extern RADAR_API const char* ATTRIBUTE_HOW_ACCNUM;
281 
282  extern RADAR_API const char* ATTRIBUTE_HOW_MINRANGE;
283  extern RADAR_API const char* ATTRIBUTE_HOW_MAXRANGE;
284 // extern RADAR_API const char* ATTRIBUTE_HOW_NI; removed in ODIMh5 v2.1
285  extern RADAR_API const char* ATTRIBUTE_HOW_DEALIASED;
286 
287  extern RADAR_API const char* ATTRIBUTE_HOW_POINTACCEL;
288  extern RADAR_API const char* ATTRIBUTE_HOW_POINTACCAZ;
289  extern RADAR_API const char* ATTRIBUTE_HOW_MALFUNC;
290  extern RADAR_API const char* ATTRIBUTE_HOW_RADAR_MSG;
291  extern RADAR_API const char* ATTRIBUTE_HOW_RADHORIZ;
292  extern RADAR_API const char* ATTRIBUTE_HOW_NEZ;
293 // extern RADAR_API const char* ATTRIBUTE_HOW_MDS; removed in ODIMh5 v2.1
294  extern RADAR_API const char* ATTRIBUTE_HOW_OUR;
295  extern RADAR_API const char* ATTRIBUTE_HOW_DCLUTTER;
296  extern RADAR_API const char* ATTRIBUTE_HOW_COMMENT;
297  extern RADAR_API const char* ATTRIBUTE_HOW_SQI;
298  extern RADAR_API const char* ATTRIBUTE_HOW_CSR;
299  extern RADAR_API const char* ATTRIBUTE_HOW_LOG;
300  extern RADAR_API const char* ATTRIBUTE_HOW_VPRCORR;
301  extern RADAR_API const char* ATTRIBUTE_HOW_FREEZE;
302  extern RADAR_API const char* ATTRIBUTE_HOW_MIN;
303  extern RADAR_API const char* ATTRIBUTE_HOW_MAX;
304  extern RADAR_API const char* ATTRIBUTE_HOW_STEP;
305  extern RADAR_API const char* ATTRIBUTE_HOW_LEVELS;
306  extern RADAR_API const char* ATTRIBUTE_HOW_PEAKPWR;
307  extern RADAR_API const char* ATTRIBUTE_HOW_AVGPWR;
308  extern RADAR_API const char* ATTRIBUTE_HOW_DYNRANGE;
309  extern RADAR_API const char* ATTRIBUTE_HOW_RAC;
310  extern RADAR_API const char* ATTRIBUTE_HOW_BBC;
311  extern RADAR_API const char* ATTRIBUTE_HOW_PAC;
312  extern RADAR_API const char* ATTRIBUTE_HOW_S2N;
313  extern RADAR_API const char* ATTRIBUTE_HOW_POLARIZATION;
314 
315  extern RADAR_API const char* POLARIZATION_H;
316  extern RADAR_API const char* POLARIZATION_V;
317 
318  extern RADAR_API const char* ATTRIBUTE_CLASS;
319  extern RADAR_API const char* CLASS_IMAGE;
320 
321  extern RADAR_API const char* ATTRIBUTE_IMAGE_VERSION;
322  extern RADAR_API const char* IMAGE_VERSION_1_2;
323 
324  extern RADAR_API const char* ATTRIBUTE_PAL_VERSION;
325 
326  const char SEQUENCE_SEPARATOR = ',';
327  const char PAIR_SEPARATOR = ':';
328 
329  extern RADAR_API const char* TRUESTR;
330  extern RADAR_API const char* FALSESTR;
331 
337  class RADAR_API Specification
338  {
339  public:
343  static bool isObject(const std::string& value);
347  static bool isSoftware(const std::string& value);
351  static bool isMethod(const std::string& value);
355  static bool isPolarization(const std::string& value);
356 
361  static void getStandardAttributes(std::set<std::string>& names);
366  static void getStandardQuantities(std::set<std::string>& names);
367  };
368 
369 }
370 
371 /*===========================================================================*/
372 
373 #endif
Generic OdimH5 specification functions.
Definition: odimh5v21_const.hpp:338
Internal library macros.
Namespace related to ODIMH5 version 2.1.
Definition: odimh5v21.hpp:46