radarlib  1.4.6
odimh5v20_arpav10_classes.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 
31 #ifndef __RADAR_ODIMH5V20_ARPAV10_CLASES_HPP__
32 #define __RADAR_ODIMH5V20_ARPAV10_CLASES_HPP__
33 
34 #include <radarlib/defs.h>
36 
37 namespace ArpaER { namespace OdimH5v20 {
38 
39 /*===========================================================================*/
40 /* ARPA CONVENTIONS */
41 /*===========================================================================*/
42 
43 /* Arpa E.R. convetions attribute (STRING) */
44 /* used in combination with OdimH5 "/conventions" attribute */
45 extern RADAR_API const char* ATTRIBUTE_WHAT_ARPAER_CONVENTIONS;
46 
47 /* Arpa E.R. conventions values*/
48 /* From now on, if the following attributes change, a new convention constant must be added to this list */
49 extern RADAR_API const char* CONVENTIONS_ODIM_H5_V2_0_ARPA_V0_1;
50 extern RADAR_API const char* CONVENTIONS_ODIM_H5_V2_0_ARPA_V1_0;
51 
52 /*===========================================================================*/
53 /* ORIGINAL FORMAT IDENTIFICATION */
54 /*===========================================================================*/
55 
56 /* Original volume file name attribute (STRING) */
57 /* Store informations about the original file name */
58 extern RADAR_API const char* ATTRIBUTE_WHAT_ARPAER_ORIGINALFILE;
59 
60 /* Original volume format attribute (STRING) */
61 /* Identify the original format of the volume */
62 extern RADAR_API const char* ATTRIBUTE_WHAT_ARPAER_ORIGINALFORMAT;
63 
64 /* original volume format values (new values can be appended to this list)*/
65 extern RADAR_API const char* ORIGINALFORMAT_VME;
66 extern RADAR_API const char* ORIGINALFORMAT_SP20;
67 extern RADAR_API const char* ORIGINALFORMAT_MDB2;
68 
69 /*===========================================================================*/
70 /* SOFTWARE ELABORATION INFORMATIONS */
71 /*===========================================================================*/
72 
73 /* Arpa conversion software attribute (STRING) */
74 /* This attribute is used to identify the software and version used for the conversion from the original format to OdimH5 */
75 /* After few years it could be difficult to remember the software used for the conversion */
76 extern RADAR_API const char* ATTRIBUTE_WHAT_ARPAER_ORIGINALFORMATCONVERTER;
77 
78 /* Arpa E.R. generic elaborations attribute (SEQUENCE OF STRINGS) */
79 /* A common attribute for future use that allows users to store informations about the elaborations applied to the volume */
80 /* Any elaboration description should be appended to the current value */
81 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_ELABORATIONS;
82 
83 /*===========================================================================*/
84 /* VME FORMAT INFORMATIONS */
85 /*===========================================================================*/
86 
87 /* --- Volume level attributes --- */
88 
89 /* volume header (XML STRING) */
90 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMEVOLXML;
91 
92 /* xml VOL/status element value (STRING) */
93 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMEVOLSTATUS;
94 
95 /* --- dataset level attributes --- */
96 
97 /* xml SWEEP element (STRING) */
98 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMESWEEPXML;
99 
100 /* compression used (INT) */
101 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMESWEEPCOMPRESSION;
102 
103 /* original number of bins in rays (there is a bug so nominal bins can be more than real bins) */
104 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMEREALNUMBINS;
105 
106 /* original rays data flags (SEQUENCE OF HEX STRINGS) */
107 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMERAYDATAFLAGS;
108 
109 /* original rays num pulses (SEQUENCE OF INTEGERS AS STRING) */
110 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMERAYNUMPULSES;
111 
112 /* original rays tx_pow (SEQUENCE OF DOUBLE AS STRING) */
113 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMERAYTXPOWS;
114 
115 /* original rays elevation angles (SEQUENCE OF DOUBLE AS STRING) */
116 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMERAYELANGLES;
117 
118 /* original discarted rays (SERIALIZED RAYS ENCODED AS BASE64 STRING) */
119 /* See conveters documentation for further details */
120 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMEDISCARDEDRAYS;
121 
122 /* says if a ray is a fake ray created by the converter (SEQUENCE OF BOOLS AS STRING)*/
123 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMERAYFAKE;
124 
125 /* non starndard odimh5 quantity, created for VME values */
126 extern RADAR_API const char* PRODUCT_QUANTITY_VMESTAT1;
127 
128 //tern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_VMESURPLUSRAYS; /* sequence, VME original surplus rays */
129 
130 /*===========================================================================*/
131 /* SP20 FORMAT INFORMATIONS */
132 /*===========================================================================*/
133 
134 /* --- volume level attributes --- */
135 
136 /* volume header (binary header serialized and BASE64 encoded) */
137 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_SP20VOLHEADER;
138 
139 /* --- dataset level attributes --- */
140 
141 /* original SP20 ray headers (BASE64 STRING) */
142 /* Headers are serialized as a one big buffer */
143 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_SP20RAYHEADERS;
144 
145 /* SP20 rays validity flag (SEQUENCE OF BOOLS AS STRING) */
146 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_SP20RAYVALIDITY;
147 
148 /* says if a ray is a fake ray created by the converter (SEQUENCE OF BOOLS AS STRING */
149 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_SP20RAYFAKE;
150 
151 /* original discarted rays (SERIALIZED RAYS ENCODED AS BASE64 STRING) */
152 /* See conveters documentation for further details */
153 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_SP20DISCARDEDRAYS;
154 
155 /*===========================================================================*/
156 /* MDB2 FORMAT INFORMATIONS */
157 /*===========================================================================*/
158 
159 /* --- volume level attributes --- */
160 
161 /* original MDB2 vol header, base64 encoded */
162 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_MDB2VOLHEADER;
163 
164 /* --- dataset level attributes --- */
165 
166 /* original ray azimuth (SEQUENCE OF INT AS STRING)*/
167 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_MDB2RAYAZIMUTH;
168 
169 /* says if a ray is a fake ray created by the converter (SEQUENCE OF BOOLS) */
170 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_MDB2RAYFAKE;
171 
172 /* original discarted rays (SERIALIZED RAYS ENCODED AS BASE64 STRING) */
173 /* See conveters documentation for further details */
174 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_MDB2DISCARDEDRAYS;
175 
176 /* --- data level attributes --- */
177 
178 /* the original num bins for each ray in the quantity matrix (SEQUENCE OF INT AS STRING)*/
179 extern RADAR_API const char* ATTRIBUTE_HOW_ARPAER_MDB2RAYBINS;
180 
181 /*===========================================================================*/
182 
183 class RADAR_API Specification
184 {
185 public:
186  static bool isMethod(const std::string& value);
187  static bool isPolarization(const std::string& value);
188 };
189 
190 /*===========================================================================*/
191 
192 } }
193 
194 #endif
195 
196 
197 
198 
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
216 
217 
218 
219 
OdimH5 factory classes.
Internal library macros.