radarlib 1.4.6
odimh5v20_metadata.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_ODIMH5V20_METADATA_HPP__
28#define __RADAR_ODIMH5V20_METADATA_HPP__
29
30#include <string>
31#include <sstream>
32
33#include <radarlib/defs.h>
38
39namespace OdimH5v20
40{
41
42/*===========================================================================*/
43/* METADATA GROUP */
44/*===========================================================================*/
45
53class RADAR_API MetadataGroup
54{
55public:
59 MetadataGroup(H5::Group* group);
60 virtual ~MetadataGroup();
61
65 int getCount();
71 bool exists (const char* name);
77 void remove (const char* name);
85 H5::Attribute* getH5Attribute (const char* name, bool mandatory = false);
86
87 /* --- set valori scalari --- */
88
97 void set (const char* name, bool value);
104 void set (const char* name, char value);
113 void set (const char* name, unsigned char value);
122 void set (const char* name, short value);
131 void set (const char* name, unsigned short value);
140 void set (const char* name, int value);
149 void set (const char* name, unsigned int value);
158 void set (const char* name, int64_t value);
159
160 /* NOTA: inzialmente pensavo di mettere un metodo specifico per i time_t, ma in realta' cade automaticamente negli altri set visto che e' solo un typedef */
161
170 void set (const char* name, float value);
177 void set (const char* name, double value);
184 void set (const char* name, const char* value);
191 void set (const char* name, const std::string& value);
192
193 /* --- sequenze di scalari ---*/
194
203 void set (const char* name, const std::vector<bool>& value);
212 void set (const char* name, const std::vector<char>& value);
221 void set (const char* name, const std::vector<unsigned char>& value);
230 void set (const char* name, const std::vector<short>& value);
239 void set (const char* name, const std::vector<unsigned short>& value);
248 void set (const char* name, const std::vector<int>& value);
257 void set (const char* name, const std::vector<unsigned int>& value);
266 void set (const char* name, const std::vector<int64_t>& value);
276 void set (const char* name, const std::vector<float>& value, int precision = 0);
286 void set (const char* name, const std::vector<double>& value, int precision = 0);
296 void set (const char* name, const std::vector<char*>& value);
306 void set (const char* name, const std::vector<std::string>& value);
307
308 /* --- set sequenze di coppie --- */
309
318 void set (const char* name, const std::vector<std::pair<short,short> >& value);
327 void set (const char* name, const std::vector<std::pair<int,int> >& value);
336 void set (const char* name, const std::vector<std::pair<int64_t,int64_t> >& value);
346 void set (const char* name, const std::vector<std::pair<float,float> >& value, int precision = 0);
356 void set (const char* name, const std::vector<std::pair<double,double> >& value, int precision = 0);
365 void set (const char* name, const std::vector<std::pair<std::string,std::string> >& value);
366
367 /* --- set di sequenze di valori odim --- */
368
378 void set (const char* name, const std::vector<AZTimes>& value);
388 void set (const char* name, const std::vector<AZAngles>& value);
399 void set (const char* name, const std::vector<AZAngles>& value, int precision);
406 void set (const char* name, const VILHeights& value);
407
417 void set (const char* name, const std::vector<Angles>& value);
428 void set (const char* name, const std::vector<Angles>& value, int precision);
438 void set (const char* name, const std::vector<Arotation>& value);
449 void set (const char* name, const std::vector<Arotation>& value, int precision);
458 void set (const char* name, const std::vector<Nodes>& value);
459
460 /* --- set di altri tipi --- */
461
466 void set (const char* name, const std::stringstream& value);
471 void set (const char* name, const std::ostringstream& value);
472
473 /* --- get valori scalari --- */
474
482 bool getBool (const char* name);
490 bool getBool (const char* name, bool value);
498 char getChar (const char* name);
506 char getChar (const char* name, char value);
514 unsigned char getUChar (const char* name);
522 unsigned char getUChar (const char* name, unsigned char value);
530 short getShort (const char* name);
538 short getShort (const char* name, short value);
546 unsigned short getUShort (const char* name);
554 unsigned short getUShort (const char* name, unsigned short value);
562 int getInt (const char* name);
571 int getInt (const char* name, int value);
579 unsigned int getUInt (const char* name);
588 unsigned int getUInt (const char* name, unsigned int value);
596 int64_t getLong (const char* name);
605 int64_t getLong (const char* name, int64_t value);
613 time_t getTimeT (const char* name);
622 time_t getTimeT (const char* name, time_t value);
630 float getFloat (const char* name);
639 float getFloat (const char* name, float value);
647 double getDouble (const char* name);
655 double getDouble (const char* name, double value);
663 std::string getStr (const char* name);
671 std::string getStr (const char* name, const std::string& value);
672
673 /* --- get sequenze di scalari --- */
674
684 std::vector<bool> getBools (const char* name, bool mandatory = false);
694 std::vector<char> getChars (const char* name, bool mandatory = false);
704 std::vector<unsigned char> getUChars (const char* name, bool mandatory = false);
714 std::vector<short> getShorts (const char* name, bool mandatory = false);
724 std::vector<unsigned short> getUShorts (const char* name, bool mandatory = false);
734 std::vector<int> getInts (const char* name, bool mandatory = false);
744 std::vector<unsigned int> getUInts (const char* name, bool mandatory = false);
754 std::vector<int64_t> getLongs (const char* name, bool mandatory = false);
764 std::vector<time_t> getTimes (const char* name, bool mandatory = false);
774 std::vector<float> getFloats (const char* name, bool mandatory = false);
784 std::vector<double> getDoubles (const char* name, bool mandatory = false);
794 std::vector<std::string> getStrings (const char* name, bool mandatory = false);
795
796 /* --- get sequenze di coppie --- */
797
807 std::vector<std::pair<short,short> > getShortPairs (const char* name, bool mandatory = false);
817 std::vector<std::pair<int,int> > getIntPairs (const char* name, bool mandatory = false);
827 std::vector<std::pair<int64_t,int64_t> > getLongPairs (const char* name, bool mandatory = false);
837 std::vector<std::pair<float,float> > getFloatPairs (const char* name, bool mandatory = false);
847 std::vector<std::pair<double,double> > getDoublePairs (const char* name, bool mandatory = false);
857 const std::vector<std::pair<std::string,std::string> > getStrPairs (const char* name, bool mandatory = false);
858
859 /* --- get casi particolari --- */
860
869 std::vector<AZTimes> getAZTimes (const char* name);
878 std::vector<AZAngles> getAZAngles (const char* name);
887 VILHeights getVILHeights (const char* name);
888
897 std::vector<Angles> getAngles (const char* name);
898
907 std::vector<Arotation> getArotation (const char* name);
908
917 std::vector<Nodes> getNodes (const char* name);
918
919 /* --- altre funzioni --- */
920
927 void import(MetadataGroup* group);
935 void import(MetadataGroup* group, const std::set<std::string>& names);
936
937
941 H5::Group* getH5Object () const { return group; }
942
943 /*==============================================================*/
944
949 static void setConventions(H5::Group* root)
950 {
951 HDF5Attribute::set(root, OdimH5v20::ATTRIBUTE_ROOT_CONVENTIONS, OdimH5v20::CONVENTIONS_ODIM_H5_V2_0);
952 }
957 static std::string getConventions(H5::Group* root)
958 {
959 return HDF5Attribute::getStr(root, OdimH5v20::ATTRIBUTE_ROOT_CONVENTIONS);
960 }
961
962private:
963 H5::Group* group;
964};
965
966/*===========================================================================*/
967/* WHAT METADATA */
968/*===========================================================================*/
969
975class RADAR_API WHATRootMetadata
976{
977public:
982 virtual std::string getObject () = 0;
988 virtual void setObject (const std::string& val) = 0;
993 virtual std::string getVersion () = 0;
999 virtual void setVersion (const std::string& val) = 0;
1007 virtual void setDateTime (const time_t val) = 0;
1014 virtual time_t getDateTime () = 0;
1020 virtual SourceInfo getSource () = 0;
1028 virtual void setSource (const SourceInfo& val) = 0;
1029};
1030
1035{
1036public:
1041 virtual std::string getProduct () = 0;
1047 virtual void setProduct (const std::string& val) = 0;
1055 virtual void setProdPar (double val) = 0;
1064 virtual void setProdPar (const VILHeights& val) = 0;
1071 virtual double getProdPar () = 0;
1083 virtual std::string getQuantity () = 0;
1089 virtual void setQuantity (const std::string& val) = 0;
1097 virtual void setStartDateTime (time_t val) = 0;
1104 virtual time_t getStartDateTime () = 0;
1112 virtual void setEndDateTime (time_t val) = 0;
1119 virtual time_t getEndDateTime () = 0;
1124 virtual double getGain () = 0;
1130 virtual void setGain (double val) = 0;
1135 virtual double getOffset () = 0;
1141 virtual void setOffset (double val) = 0;
1146 virtual double getNodata () = 0;
1152 virtual void setNodata (double val) = 0;
1157 virtual double getUndetect () = 0;
1163 virtual void setUndetect (double val) = 0;
1164};
1165
1166/*===========================================================================*/
1167/* WHERE METADATA */
1168/*===========================================================================*/
1169
1173class RADAR_API WHERERootMetadata
1174{
1175public:
1176 virtual double getLongitude () = 0;
1182 virtual void setLongitude (double val) = 0;
1187 virtual double getLatitude () = 0;
1193 virtual void setLatitude (double val) = 0;
1198 virtual double getAltitude () = 0;
1204 virtual void setAltitude (double val) = 0;
1205};
1206
1210class RADAR_API WHEREScanMetadata : public WHERERootMetadata
1211{
1212public:
1217 virtual double getEAngle () = 0;
1223 virtual void setEAngle (double val) = 0;
1228 virtual int getNumBins () = 0;
1234 virtual void setNumBins (int val) = 0;
1239 virtual double getRangeStart () = 0;
1245 virtual void setRangeStart (double val) = 0;
1250 virtual double getRangeScale () = 0;
1256 virtual void setRangeScale (double val) = 0;
1261 virtual int getNumRays () = 0;
1267 virtual void setNumRays (int val) = 0;
1272 virtual int getA1Gate () = 0;
1278 virtual void setA1Gate (int val) = 0;
1279};
1280
1285{
1286public:
1291 virtual double getStartAzimuth () = 0;
1297 virtual void setStartAzimuth (double val) = 0;
1302 virtual double setStopAzimuth () = 0;
1308 virtual void setStopAzimuth (double val) = 0;
1309};
1310
1314class RADAR_API WHEREVPMetadata : public WHERERootMetadata
1315{
1316public:
1321 virtual int getLevels () = 0;
1327 virtual void setLevels (int val) = 0;
1332 virtual double getInterval () = 0;
1338 virtual void setInterval (double val) = 0;
1343 virtual double getMinAltitude () = 0;
1349 virtual void setMinAltitude (double val) = 0;
1354 virtual double getMaxAltitude () = 0;
1360 virtual void setMaxAltitude (double val) = 0;
1361};
1362
1366class RADAR_API WHEREImageMetadata //: public WHERERootMetadata
1367{
1368public:
1373 virtual std::string getProjectionArguments () = 0;
1379 virtual void setProjectionArguments (const std::string& val) = 0;
1380
1385 virtual int getXSize () = 0;
1391 virtual void setXSize (int val) = 0;
1396 virtual int getYSize () = 0;
1402 virtual void setYSize (int val) = 0;
1407 virtual double getXScale () = 0;
1413 virtual void setXScale (double val) = 0;
1418 virtual double getYScale () = 0;
1424 virtual void setYScale (double val) = 0;
1425
1430 virtual double getLL_Longitude () = 0;
1436 virtual void setLL_Longitude (double val) = 0;
1441 virtual double getLL_Latitude () = 0;
1447 virtual void setLL_Latitude (double val) = 0;
1452 virtual double getUL_Longitude () = 0;
1458 virtual void setUL_Longitude (double val) = 0;
1463 virtual double getUL_Latitude () = 0;
1469 virtual void setUL_Latitude (double val) = 0;
1470
1475 virtual double getUR_Longitude () = 0;
1481 virtual void setUR_Longitude (double val) = 0;
1486 virtual double getUR_Latitude () = 0;
1492 virtual void setUR_Latitude (double val) = 0;
1493
1498 virtual double getLR_Longitude () = 0;
1504 virtual void setLR_Longitude (double val) = 0;
1509 virtual double getLR_Latitude () = 0;
1515 virtual void setLR_Latitude (double val) = 0;
1516};
1517
1521class RADAR_API WHEREXSECMetadata //: public WHERERootMetadata
1522{
1523public:
1528 virtual int getXSize () = 0;
1534 virtual void setXSize (int val) = 0;
1539 virtual int getYSize () = 0;
1545 virtual void setYSize (int val) = 0;
1550 virtual double getXScale () = 0;
1556 virtual void setXScale (double val) = 0;
1561 virtual double getYScale () = 0;
1567 virtual void setYScale (double val) = 0;
1572 virtual double getMinHeight () = 0;
1578 virtual void setMinHeight (double val) = 0;
1583 virtual double getMaxHeight () = 0;
1589 virtual void setMaxHeight (double val) = 0;
1590};
1591
1595class RADAR_API WHERERhiMetadata // : public WHERE_XSEC_DatasetMetadata
1596{
1597public:
1602 virtual double getRHILon () = 0;
1608 virtual void setRHILon (double val) = 0;
1613 virtual double getRHILat () = 0;
1619 virtual void setRHILat (double val) = 0;
1624 virtual double getAzimuthAngle () = 0;
1630 virtual void setAzimuthAngle (double val) = 0;
1635 virtual std::vector<Angles> getAngles () = 0;
1642 virtual void setAngles (const std::vector<Angles>& val, int precision = 0) = 0;
1647 virtual double getRange () = 0;
1653 virtual void setRange (double val) = 0;
1654};
1655
1659class RADAR_API WHEREPanelMetadata // : public WHERE_XSEC_DatasetMetadata
1660{
1661public:
1666 virtual double getStartLongitude () = 0;
1672 virtual void setStartLongitude (double val) = 0;
1677 virtual double getStartLatitude () = 0;
1683 virtual void setStartLatitude (double val) = 0;
1688 virtual double getStopLongitude () = 0;
1694 virtual void setStopLongitude (double val) = 0;
1699 virtual double getStopLatitude () = 0;
1705 virtual void setStopLatitude (double val) = 0;
1706};
1707
1708/*===========================================================================*/
1709/* HOW METADATA */
1710/*===========================================================================*/
1711
1715class RADAR_API HOWRootMetadata
1716{
1717public:
1722 virtual std::string getTaskOrProdGen () = 0;
1728 virtual void setTaskOrProdGen (const std::string& val) = 0;
1733 virtual time_t getStartEpochs () = 0;
1739 virtual void setStartEpochs (time_t val) = 0;
1744 virtual time_t getEndEpochs () = 0;
1750 virtual void setEndEpochs (time_t val) = 0;
1755 virtual std::string getSystem () = 0;
1761 virtual void setSystem (const std::string& val) = 0;
1766 virtual std::string getSoftware () = 0;
1772 virtual void setSoftware (const std::string& val) = 0;
1777 virtual std::string getSoftwareVer () = 0;
1783 virtual void setSoftwareVer (const std::string& val) = 0;
1788 virtual double getZR_A () = 0;
1794 virtual void setZR_A (double val) = 0;
1799 virtual double getZR_B () = 0;
1805 virtual void setZR_B (double val) = 0;
1810 virtual double getKR_A () = 0;
1816 virtual void setKR_A (double val) = 0;
1821 virtual double getKR_B () = 0;
1827 virtual void setKR_B (double val) = 0;
1832 virtual bool getSimulated () = 0;
1838 virtual void setSimulated (bool val) = 0;
1839};
1840
1844class RADAR_API HOWDatasetMetadata : public HOWRootMetadata
1845{
1846public:
1851 virtual double getBeamWidth () = 0;
1857 virtual double getBeamWidth (double defaultValue) = 0;
1863 virtual void setBeamWidth (double val) = 0;
1868 virtual double getWaveLength () = 0;
1874 virtual double getWaveLength (double defaultValue) = 0;
1880 virtual void setWaveLength (double val) = 0;
1885 virtual double getRPM () = 0;
1891 virtual double getRPM (double defaultValue) = 0;
1897 virtual void setRPM (double val) = 0;
1902 virtual double getPulseWidth () = 0;
1908 virtual double getPulseWidth (double defaultValue) = 0;
1914 virtual void setPulseWidth (double val) = 0;
1919 virtual int getLowPRF () = 0;
1925 virtual int getLowPRF (int defaultValue) = 0;
1931 virtual void setLowPRF (int val) = 0;
1936 virtual int getHighPRF () = 0;
1942 virtual int getHighPRF (int defaultValue) = 0;
1948 virtual void setHighPRF (int val) = 0;
1949};
1950
1954class RADAR_API HOWPolarMetadata : public HOWDatasetMetadata
1955{
1956public:
1961 virtual std::string getAzimuthMethod () = 0;
1967 virtual void setAzimuthMethod (const std::string& val) = 0;
1972 virtual std::string getBinMethod () = 0;
1978 virtual void setBinMethod (const std::string& val) = 0;
1983 virtual std::vector<AZAngles> getAzimuthAngles () = 0;
1990 virtual void setAzimuthAngles (const std::vector<AZAngles>& val, int precision = 0) = 0;
1995 virtual std::vector<double> getElevationAngles () = 0;
2002 virtual void setElevationAngles (const std::vector<double>& val, int precision = 0) = 0;
2007 virtual std::vector<AZTimes> getAzimuthTimes () = 0;
2013 virtual void setAzimuthTimes (const std::vector<AZTimes>& val) = 0;
2018 virtual double getPointAccEl () = 0;
2024 virtual void setPointAccEl (double val) = 0;
2029 virtual double getPointAccAZ () = 0;
2035 virtual void setPointAccAZ (double val) = 0;
2040 virtual bool getMalfunc () = 0;
2046 virtual void setMalfunc (bool val) = 0;
2051 virtual std::string getRadarMsg () = 0;
2057 virtual void setRadarMsg (const std::string& val) = 0;
2062 virtual double getRadarHorizon () = 0;
2068 virtual void setRadarHorizon (double val) = 0;
2073 virtual double getMDS () = 0;
2079 virtual void setMDS (double val) = 0;
2084 virtual double getOUR () = 0;
2090 virtual void setOUR (double val) = 0;
2091
2096 virtual std::vector<std::string> getDClutter () = 0;
2102 virtual void setDClutter (const std::vector<std::string>& val) = 0;
2103
2108 virtual std::string getComment () = 0;
2114 virtual void setComment (const std::string& val) = 0;
2119 virtual double getSQI () = 0;
2125 virtual void setSQI (double val) = 0;
2130 virtual double getCSR () = 0;
2136 virtual void setCSR (double val) = 0;
2141 virtual double getLOG () = 0;
2147 virtual void setLOG (double val) = 0;
2152 virtual bool getVPRCorr () = 0;
2158 virtual void setVPRCorr (bool val) = 0;
2163 virtual double getFreeze () = 0;
2169 virtual void setFreeze (double val) = 0;
2174 virtual double getMin () = 0;
2180 virtual void setMin (double val) = 0;
2185 virtual double getMax () = 0;
2191 virtual void setMax (double val) = 0;
2196 virtual double getStep () = 0;
2202 virtual void setStep (double val) = 0;
2207 virtual int getLevels () = 0;
2213 virtual void setLevels (int val) = 0;
2218 virtual double getPeakPwr () = 0;
2224 virtual void setPeakPwr (double val) = 0;
2229 virtual double getAvgPwr () = 0;
2235 virtual void setAvgPwr (double val) = 0;
2240 virtual double getDynRange () = 0;
2246 virtual void setDynRange (double val) = 0;
2251 virtual double getRAC () = 0;
2257 virtual void setRAC (double val) = 0;
2262 virtual bool getBBC () = 0;
2268 virtual void setBBC (bool val) = 0;
2273 virtual double getPAC () = 0;
2279 virtual void setPAC (double val) = 0;
2284 virtual double getS2N () = 0;
2290 virtual void setS2N (double val) = 0;
2295 virtual std::string getPolarization () = 0;
2301 virtual void setPolarization (const std::string& val) = 0;
2302
2303};
2304
2309{
2310public:
2315 virtual std::vector<Angles> getAngles () = 0;
2322 virtual void setAngles (const std::vector<Angles>& val, int precision = 0) = 0;
2327 virtual std::vector<Arotation> getArotation () = 0;
2334 virtual void setArotation (const std::vector<Arotation>& val, int precision = 0) = 0;
2339 virtual std::string getCAMethod () = 0;
2345 virtual void setCAMethod (const std::string& val) = 0;
2350 virtual std::vector<Nodes>getNodes () = 0;
2356 virtual void setNodes (const std::vector<Nodes>& val) = 0;
2361 virtual int getACCnum () = 0;
2367 virtual void setCCnum (int val) = 0;
2368};
2369
2374{
2375public:
2380 virtual double getMinRange () = 0;
2386 virtual void setMinRange (double val) = 0;
2391 virtual double getMaxRange () = 0;
2397 virtual void setMaxRange (double val) = 0;
2402 virtual double getNI () = 0;
2408 virtual void setNI (double val) = 0;
2413 virtual int getDealiased () = 0;
2419 virtual void setDealiased (int val) = 0;
2420};
2421
2422/*===========================================================================*/
2423
2424}
2425
2426
2427#endif
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
Interface fot HOW dataset attributes methods for cartesian images.
Definition: odimh5v20_metadata.hpp:2309
virtual std::string getCAMethod()=0
Get the 'camethod' attribute values.
virtual void setNodes(const std::vector< Nodes > &val)=0
Set the 'nodes' attribute values.
virtual void setCAMethod(const std::string &val)=0
Set the 'camethod' attribute values.
virtual std::vector< Nodes > getNodes()=0
Get the 'nodes' attribute values.
virtual void setAngles(const std::vector< Angles > &val, int precision=0)=0
Set the 'angles' attribute values.
virtual std::vector< Arotation > getArotation()=0
Get the 'aroration' attribute values.
virtual std::vector< Angles > getAngles()=0
Get the 'angles' attribute values.
virtual void setArotation(const std::vector< Arotation > &val, int precision=0)=0
Set the 'aroration' attribute values.
virtual void setCCnum(int val)=0
Set the 'ACCnum' attribute value.
virtual int getACCnum()=0
Get the 'ACCnum' attribute value.
Interface fot HOW dataset attributes methods.
Definition: odimh5v20_metadata.hpp:1845
virtual double getPulseWidth(double defaultValue)=0
Get the 'pulsewidth' attribute value.
virtual int getLowPRF()=0
Get the 'lowprf' attribute value.
virtual double getRPM()=0
Get the 'prm' attribute value.
virtual int getHighPRF(int defaultValue)=0
Get the 'highprf' attribute value.
virtual int getHighPRF()=0
Get the 'highprf' attribute value.
virtual void setPulseWidth(double val)=0
Get the 'pulsewidth' attribute value.
virtual double getBeamWidth(double defaultValue)=0
Get the 'beamwidth' attribute value.
virtual void setBeamWidth(double val)=0
Set the 'beamwidth' attribute value.
virtual double getWaveLength(double defaultValue)=0
Get the 'wavelength' attribute value.
virtual void setRPM(double val)=0
Get the 'rpm' attribute value.
virtual double getPulseWidth()=0
Get the 'pulsewidth' attribute value.
virtual double getWaveLength()=0
Get the 'wavelength' attribute value.
virtual int getLowPRF(int defaultValue)=0
Get the 'lowprf' attribute value.
virtual double getBeamWidth()=0
Get the 'beamwidth' attribute value.
virtual double getRPM(double defaultValue)=0
Get the 'rpm' attribute value.
virtual void setLowPRF(int val)=0
Get the 'lowprf' attribute value.
virtual void setWaveLength(double val)=0
Get the 'wavelength' attribute value.
virtual void setHighPRF(int val)=0
Get the 'highprf' attribute value.
Interface for HOW dataset attributes methods for polar data.
Definition: odimh5v20_metadata.hpp:1955
virtual std::string getBinMethod()=0
Get the 'binmethod' attribute value.
virtual std::string getPolarization()=0
Get the 'polarization' attribute value.
virtual std::vector< AZAngles > getAzimuthAngles()=0
Get the 'azangles' attribute values.
virtual std::string getAzimuthMethod()=0
Get the 'azmethod' attribute value.
virtual void setAzimuthMethod(const std::string &val)=0
Set the 'azmethod' attribute value.
virtual void setLOG(double val)=0
Set the 'LOG' attribute value.
virtual double getFreeze()=0
Get the 'freeze' attribute value.
virtual bool getMalfunc()=0
Get the 'malfunc' attribute value.
virtual double getDynRange()=0
Get the 'dynrange' attribute value.
virtual double getRadarHorizon()=0
Get the 'radhoriz' attribute value.
virtual double getS2N()=0
Get the 'S2N' attribute value.
virtual std::string getComment()=0
Get the 'comment' attribute value.
virtual void setCSR(double val)=0
Set the 'CSR' attribute value.
virtual void setAzimuthAngles(const std::vector< AZAngles > &val, int precision=0)=0
Set the 'azangles' attribute values.
virtual void setLevels(int val)=0
Set the 'levels' attribute value.
virtual double getCSR()=0
Get the 'CSR' attribute value.
virtual double getStep()=0
Get the 'step' attribute value.
virtual void setDynRange(double val)=0
Set the 'dynrange' attribute value.
virtual double getAvgPwr()=0
Get the 'avgpwr' attribute value.
virtual double getMDS()=0
Get the 'MDS' attribute value.
virtual void setOUR(double val)=0
Set the 'OUR' attribute value.
virtual void setS2N(double val)=0
Set the 'S2N' attribute value.
virtual void setAvgPwr(double val)=0
Set the 'awgpwr' attribute value.
virtual void setBBC(bool val)=0
Set the 'BBC' attribute value.
virtual void setVPRCorr(bool val)=0
Set the 'VPRCoor' attribute value.
virtual void setRadarMsg(const std::string &val)=0
Set the 'radarmsg' attribute value.
virtual double getSQI()=0
Get the 'SQI' attribute value.
virtual void setSQI(double val)=0
Set the 'SQI' attribute value.
virtual double getOUR()=0
Get the 'OUR' attribute value.
virtual void setBinMethod(const std::string &val)=0
Set the 'binmethod' attribute value.
virtual void setRAC(double val)=0
Set the 'RAC' attribute value.
virtual bool getVPRCorr()=0
Get the 'VPRCoor' attribute value.
virtual double getPAC()=0
Get the 'PAC' attribute value.
virtual bool getBBC()=0
Get the 'BBC' attribute value.
virtual double getMin()=0
Get the 'min' attribute value.
virtual void setPointAccAZ(double val)=0
Set the 'pointaccAZ' attribute values.
virtual void setRadarHorizon(double val)=0
Set the 'radhoriz' attribute value.
virtual void setMalfunc(bool val)=0
Set the 'malfunc' attribute value.
virtual int getLevels()=0
Get the 'levels' attribute value.
virtual double getPointAccEl()=0
Get the 'pointaccEL' attribute values.
virtual double getPointAccAZ()=0
Get the 'pointaccAZ' attribute values.
virtual void setElevationAngles(const std::vector< double > &val, int precision=0)=0
Set the 'elangles' attribute values.
virtual std::vector< AZTimes > getAzimuthTimes()=0
Get the 'aztimes' attribute values.
virtual double getRAC()=0
Get the 'RAC' attribute value.
virtual void setMin(double val)=0
Set the 'min' attribute value.
virtual void setComment(const std::string &val)=0
Set the 'comment' attribute value.
virtual void setMDS(double val)=0
Set the 'MDS' attribute value.
virtual void setPeakPwr(double val)=0
Set the 'peakpwr' attribute value.
virtual void setStep(double val)=0
Set the 'step' attribute value.
virtual std::vector< double > getElevationAngles()=0
Get the 'elangles' attribute values.
virtual void setPAC(double val)=0
Set the 'PAC' attribute value.
virtual double getPeakPwr()=0
Get the 'peakpwr' attribute value.
virtual void setDClutter(const std::vector< std::string > &val)=0
Set the 'Dclutter' attribute value.
virtual void setPolarization(const std::string &val)=0
Set the 'polarization' attribute value.
virtual double getLOG()=0
Get the 'LOG' attribute value.
virtual double getMax()=0
Get the 'max' attribute value.
virtual void setPointAccEl(double val)=0
Set the 'pointaccEL' attribute values.
virtual std::vector< std::string > getDClutter()=0
Get the 'Dclutter' attribute value.
virtual void setMax(double val)=0
Set the 'max' attribute value.
virtual void setAzimuthTimes(const std::vector< AZTimes > &val)=0
Set the 'aztimes' attribute values.
virtual void setFreeze(double val)=0
Set the 'freeze' attribute value.
virtual std::string getRadarMsg()=0
Get the 'radarmsg' attribute value.
Interface fot HOW root attributes methods.
Definition: odimh5v20_metadata.hpp:1716
virtual void setSoftwareVer(const std::string &val)=0
Set the 'sw_version' attribute value.
virtual void setSystem(const std::string &val)=0
Set the 'system' attribute value.
virtual std::string getTaskOrProdGen()=0
Get the 'task' attribute value.
virtual void setTaskOrProdGen(const std::string &val)=0
Set the 'task' attribute value.
virtual bool getSimulated()=0
Get the 'simulated' attribute value.
virtual time_t getStartEpochs()=0
Get the 'startepochs' attribute value.
virtual time_t getEndEpochs()=0
Get the 'endepochs' attribute value.
virtual void setEndEpochs(time_t val)=0
Set the 'endepochs' attribute value.
virtual std::string getSystem()=0
Get the 'system' attribute value.
virtual void setStartEpochs(time_t val)=0
Set the 'startepochs' attribute value.
virtual double getZR_A()=0
Get the 'zr_a' attribute value.
virtual void setKR_A(double val)=0
Set the 'kr_a' attribute value.
virtual std::string getSoftwareVer()=0
Get the 'sw_version' attribute value.
virtual void setSimulated(bool val)=0
Set the 'simulated' attribute value.
virtual void setZR_B(double val)=0
Set the 'zr_b' attribute value.
virtual void setZR_A(double val)=0
Set the 'zr_a' attribute value.
virtual void setSoftware(const std::string &val)=0
Set the 'software' attribute value.
virtual void setKR_B(double val)=0
Set the 'kr_b' attribute value.
virtual double getZR_B()=0
Get the 'zr_b' attribute value.
virtual double getKR_B()=0
Get the 'kr_b' attribute value.
virtual double getKR_A()=0
Get the 'kr_a' attribute value.
virtual std::string getSoftware()=0
Get the 'software' attribute value.
Interface fot HOW dataset attributes methods for vertical profiles.
Definition: odimh5v20_metadata.hpp:2374
virtual void setMinRange(double val)=0
Set the 'minrange' attribute value.
virtual void setMaxRange(double val)=0
Set the 'maxrange' attribute value.
virtual int getDealiased()=0
Get the 'dealiased' attribute value.
virtual double getNI()=0
Get the 'NI' attribute value.
virtual double getMinRange()=0
Get the 'minrange' attribute value.
virtual void setDealiased(int val)=0
Set the 'dealiased' attribute value.
virtual void setNI(double val)=0
Set the 'NI' attribute value.
virtual double getMaxRange()=0
Get the 'maxrange' attribute value.
Attribute (odim metadata) group.
Definition: odimh5v20_metadata.hpp:54
void set(const char *name, const std::vector< Angles > &value)
Set or create a sequence attribute with the given elevation angles.
static std::string getConventions(H5::Group *root)
Static method to read OdimH5 Conventions attribute from a given group.
Definition: odimh5v20_metadata.hpp:957
void set(const char *name, const std::vector< Arotation > &value)
Set or create a sequence attribute with the given antenna rotation speeds.
H5::Group * getH5Object() const
Get a reference to the underneath HDF5 group object.
Definition: odimh5v20_metadata.hpp:941
static void setConventions(H5::Group *root)
Static method to write OdimH5 Conventions attribute into given group.
Definition: odimh5v20_metadata.hpp:949
OdimH5 object source informations.
Definition: odimh5v20_support.hpp:111
Bottom and top heights (m) of the integration layer.
Definition: odimh5v20_support.hpp:418
Interface fot WHAT dataset attributes methods.
Definition: odimh5v20_metadata.hpp:1035
virtual void setProdPar(double val)=0
Set the value of 'prodpar' attribute.
virtual double getGain()=0
Get the value of 'gain' attribute.
virtual void setGain(double val)=0
Set the value of 'gain' attribute.
virtual std::string getProduct()=0
Get the value of 'product' attribute.
virtual void setEndDateTime(time_t val)=0
Set the value of 'enddate' and 'endtime' attributes.
virtual void setProduct(const std::string &val)=0
Set the value of 'product' attribute.
virtual void setStartDateTime(time_t val)=0
Set the value of 'startdate' and 'starttime' attributes.
virtual VILHeights getProdParVIL()=0
Get the value of 'prodpar' attribute as VILHeights pair.
virtual time_t getStartDateTime()=0
Get the value of 'startdate' and 'starttime' attributes.
virtual time_t getEndDateTime()=0
Get the value of 'enddate' and 'endtime' attributes.
virtual void setQuantity(const std::string &val)=0
Get the value of 'quantity' attribute.
virtual std::string getQuantity()=0
Set the value of 'quantity' attribute.
virtual double getNodata()=0
Get the value of 'nodata' attribute.
virtual void setNodata(double val)=0
Set the value of 'nodata' attribute.
virtual void setProdPar(const VILHeights &val)=0
Set the value of 'prodpar' attribute using the given VILHeights values.
virtual double getUndetect()=0
Get the value of 'undetect' attribute.
virtual void setUndetect(double val)=0
Set the value of 'undetect' attribute.
virtual void setOffset(double val)=0
Set the value of 'offset' attribute.
virtual double getProdPar()=0
Get the value of 'prodpar' attribute as double value.
virtual double getOffset()=0
Get the value of 'offset' attribute.
Interface fot WHAT root attributes methods.
Definition: odimh5v20_metadata.hpp:976
virtual void setObject(const std::string &val)=0
Set the value of 'object' attribute.
virtual SourceInfo getSource()=0
Get the value of 'source' attribute.
virtual std::string getObject()=0
Get the value of 'object' attribute.
virtual time_t getDateTime()=0
Get the joined value of 'date' and 'time' attributes.
virtual std::string getVersion()=0
Get the value of 'version' attribute.
virtual void setDateTime(const time_t val)=0
Set the value of 'date' and 'time' attributes.
virtual void setSource(const SourceInfo &val)=0
Set the value of 'source' attribute.
virtual void setVersion(const std::string &val)=0
Set the value of 'version' attribute.
Interface fot WHERE dataset attributes methods for images.
Definition: odimh5v20_metadata.hpp:1367
virtual void setLR_Latitude(double val)=0
Set the 'LowerRight Latitude' attribute value.
virtual void setLL_Longitude(double val)=0
Set the 'LowerLeft Longitude' attribute value.
virtual void setUR_Longitude(double val)=0
Set the 'UpperRight Longitude' attribute value.
virtual int getXSize()=0
Get the 'X size' attribute value.
virtual std::string getProjectionArguments()=0
Get the 'projection arguments' attribute value.
virtual void setUL_Longitude(double val)=0
Set the 'UpperLeft Longitude' attribute value.
virtual double getXScale()=0
Get the 'X scale' attribute value.
virtual void setXSize(int val)=0
Set the 'X size' attribute value.
virtual void setProjectionArguments(const std::string &val)=0
Set the 'projection arguments' attribute value.
virtual double getLL_Longitude()=0
Get the 'LowerLeft Longitude' attribute value.
virtual double getUL_Latitude()=0
Get the 'UpperLeft Latitude' attribute value.
virtual void setYSize(int val)=0
Set the 'Y size' attribute value.
virtual void setUR_Latitude(double val)=0
Set the 'UpperRight Latitude' attribute value.
virtual double getLR_Longitude()=0
Get the 'LowerRight Longitude' attribute value.
virtual int getYSize()=0
Get the 'Y size' attribute value.
virtual double getYScale()=0
Get the 'Y scale' attribute value.
virtual double getUR_Longitude()=0
Get the 'UpperRight Longitude' attribute value.
virtual double getLL_Latitude()=0
Get the 'LowerLeft Latitude' attribute value.
virtual double getUR_Latitude()=0
Get the 'UpperRight Latitude' attribute value.
virtual void setLL_Latitude(double val)=0
Set the 'LowerLeft Latitude' attribute value.
virtual void setLR_Longitude(double val)=0
Set the 'LowerRight Longitude' attribute value.
virtual void setXScale(double val)=0
Set the 'X scale' attribute value.
virtual void setUL_Latitude(double val)=0
Set the 'UpperLeft Latitude' attribute value.
virtual void setYScale(double val)=0
Set the 'Y scale' attribute value.
virtual double getUL_Longitude()=0
Get the 'UpperLeft Longitude' attribute value.
virtual double getLR_Latitude()=0
Get the 'LowerRight Latitude' attribute value.
Interface for WHERE dataset attributes methods for Panel.
Definition: odimh5v20_metadata.hpp:1660
virtual void setStartLongitude(double val)=0
set the 'StartLongitude' attribute value
virtual void setStartLatitude(double val)=0
set the 'StartLatitude' attribute value
virtual double getStartLongitude()=0
Get the 'StartLongitude' attribute value.
virtual void setStopLatitude(double val)=0
set the 'StopLatitude' attribute value
virtual double getStopLatitude()=0
Get the 'StopLatitude' attribute value.
virtual double getStartLatitude()=0
Get the 'StartLatitide' attribute value.
virtual void setStopLongitude(double val)=0
set the 'StopLongitude' attribute value
virtual double getStopLongitude()=0
Get the 'StopLongitude' attribute value.
Interface for WHERE dataset attributes methods for RHI.
Definition: odimh5v20_metadata.hpp:1596
virtual void setAzimuthAngle(double val)=0
set the 'Azimuth Angles' attribute value
virtual void setRHILon(double val)=0
set the 'RHI Longitude' attribute value
virtual std::vector< Angles > getAngles()=0
Get the 'Angles' attribute value.
virtual double getAzimuthAngle()=0
Get the 'Azimuth Angles' attribute value.
virtual double getRange()=0
Get the 'Range' attribute value.
virtual double getRHILon()=0
Get the 'RHI longitude' attribute value.
virtual double getRHILat()=0
Get the 'RHI Latitude' attribute value.
virtual void setAngles(const std::vector< Angles > &val, int precision=0)=0
set the 'Angles' attribute value
virtual void setRange(double val)=0
set the 'Range' attribute value
virtual void setRHILat(double val)=0
set the 'RHI Latitude' attribute value
Interface fot WHERE root attributes methods.
Definition: odimh5v20_metadata.hpp:1174
virtual void setLatitude(double val)=0
Set the value of 'latitude' attribute.
virtual double getLatitude()=0
Get the value of 'longitude' attribute.
virtual void setAltitude(double val)=0
Set the value of 'altitude' attribute.
virtual void setLongitude(double val)=0
Set the value of 'longitude' attribute.
virtual double getAltitude()=0
Get the value of 'altitude' attribute.
Interface fot WHERE dataset attributes methods for polar scan.
Definition: odimh5v20_metadata.hpp:1211
virtual void setEAngle(double val)=0
Set the 'elangle' attribute value.
virtual int getNumBins()=0
Get the 'numbins' attribute value.
virtual int getNumRays()=0
Get the 'numrays' attribute value.
virtual double getRangeScale()=0
Get the 'rscale' attribute value.
virtual void setRangeScale(double val)=0
Set the 'rscale' attribute value.
virtual void setNumRays(int val)=0
Set the 'numrays' attribute value.
virtual void setA1Gate(int val)=0
Set the 'a1gate' attribute value.
virtual double getEAngle()=0
Get the 'elangle' attribute value.
virtual void setRangeStart(double val)=0
Set the 'rstart' attribute value.
virtual void setNumBins(int val)=0
Set the 'numbins' attribute value.
virtual double getRangeStart()=0
Get the 'rstart' attribute value.
virtual int getA1Gate()=0
Get the 'a1gate' attribute value.
Interface fot WHERE dataset attributes methods for sector scan.
Definition: odimh5v20_metadata.hpp:1285
virtual void setStopAzimuth(double val)=0
Set the 'stopaz' attribute value.
virtual void setStartAzimuth(double val)=0
Set the 'startaz' attribute value.
virtual double setStopAzimuth()=0
Get the 'stopaz' attribute value.
virtual double getStartAzimuth()=0
Get the 'startaz' attribute value.
Interface fot WHERE dataset attributes methods for vertical profile.
Definition: odimh5v20_metadata.hpp:1315
virtual void setLevels(int val)=0
Set the 'levels' attribute value.
virtual double getInterval()=0
Get the 'interval' attribute value.
virtual int getLevels()=0
Get the 'levels' attribute value.
virtual double getMaxAltitude()=0
Get the 'maxheight' attribute value.
virtual double getMinAltitude()=0
Set the 'minheight' attribute value.
virtual void setMinAltitude(double val)=0
Get the 'minheight' attribute value.
virtual void setInterval(double val)=0
Set the 'interval' attribute value.
virtual void setMaxAltitude(double val)=0
Set the 'maxheight' attribute value.
Interface for WHERE dataset attributes methods for XSEC.
Definition: odimh5v20_metadata.hpp:1522
virtual double getXScale()=0
get the 'X scale' attribute value
virtual int getYSize()=0
Get the 'Y size' attribute value.
virtual double getMaxHeight()=0
Get the 'Max Height' attribute value.
virtual void setMaxHeight(double val)=0
set the 'Max Height' attribute value
virtual double getYScale()=0
Get the 'Y scale' attribute value.
virtual int getXSize()=0
Get the 'X size' attribute value.
virtual void setMinHeight(double val)=0
set the 'Min Height' attribute value
virtual void setXSize(int val)=0
set the 'X size' attribute value
virtual double getMinHeight()=0
Get the 'Min Height' attribute value.
virtual void setYSize(int val)=0
set the 'Y size' attribute value
virtual void setXScale(double val)=0
set the 'X scale' attribute value
virtual void setYScale(double val)=0
set the 'Y scale' attribute value
Internal library macros.
Namespace related to ODIMH5 version 2.0.
Definition: odimh5v20.hpp:46
Constants and values used by OdimH5 library.
OdimH5 exceptions.
Interface classes between OdimH5 objects and HDF5 library.
Classes and struct used by main OdimH5 classes.