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 
39 namespace OdimH5v20
40 {
41 
42 /*===========================================================================*/
43 /* METADATA GROUP */
44 /*===========================================================================*/
45 
53 class RADAR_API MetadataGroup
54 {
55 public:
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 
962 private:
963  H5::Group* group;
964 };
965 
966 /*===========================================================================*/
967 /* WHAT METADATA */
968 /*===========================================================================*/
969 
975 class RADAR_API WHATRootMetadata
976 {
977 public:
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 
1034 class RADAR_API WHATDatasetMetadata : public WHATRootMetadata
1035 {
1036 public:
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;
1078  virtual VILHeights getProdParVIL () = 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 
1173 class RADAR_API WHERERootMetadata
1174 {
1175 public:
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 
1210 class RADAR_API WHEREScanMetadata : public WHERERootMetadata
1211 {
1212 public:
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 
1284 class RADAR_API WHERESectorMetadata : public WHEREScanMetadata
1285 {
1286 public:
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 
1314 class RADAR_API WHEREVPMetadata : public WHERERootMetadata
1315 {
1316 public:
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 
1366 class RADAR_API WHEREImageMetadata //: public WHERERootMetadata
1367 {
1368 public:
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 
1521 class RADAR_API WHEREXSECMetadata //: public WHERERootMetadata
1522 {
1523 public:
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 
1595 class RADAR_API WHERERhiMetadata // : public WHERE_XSEC_DatasetMetadata
1596 {
1597 public:
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 
1659 class RADAR_API WHEREPanelMetadata // : public WHERE_XSEC_DatasetMetadata
1660 {
1661 public:
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 
1715 class RADAR_API HOWRootMetadata
1716 {
1717 public:
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 
1844 class RADAR_API HOWDatasetMetadata : public HOWRootMetadata
1845 {
1846 public:
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 
1954 class RADAR_API HOWPolarMetadata : public HOWDatasetMetadata
1955 {
1956 public:
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 {
2310 public:
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 {
2375 public:
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 
static std::string getStr(H5::H5Object *obj, const char *name)
Get the value of a string attribute.
Definition: odimh5v20_hdf5.cpp:382
static void set(H5::H5Object *obj, const char *name, int64_t value)
Set the value of an attribute.
Definition: odimh5v20_hdf5.cpp:169
Interface fot HOW dataset attributes methods for cartesian images.
Definition: odimh5v20_metadata.hpp:2309
virtual std::vector< Arotation > getArotation()=0
Get the 'aroration' attribute values.
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 void setAngles(const std::vector< Angles > &val, int precision=0)=0
Set 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 std::vector< Angles > getAngles()=0
Get the 'angles' attribute values.
virtual int getACCnum()=0
Get the 'ACCnum' attribute value.
virtual std::vector< Nodes > getNodes()=0
Get the 'nodes' attribute values.
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::string getAzimuthMethod()=0
Get the 'azmethod' attribute value.
virtual void setAzimuthMethod(const std::string &val)=0
Set the 'azmethod' attribute value.
virtual std::vector< AZTimes > getAzimuthTimes()=0
Get the 'aztimes' attribute values.
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 std::vector< double > getElevationAngles()=0
Get the 'elangles' attribute values.
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 std::vector< std::string > getDClutter()=0
Get the 'Dclutter' 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 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 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 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.
virtual std::vector< AZAngles > getAzimuthAngles()=0
Get the 'azangles' attribute values.
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 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
virtual std::vector< Angles > getAngles()=0
Get the 'Angles' 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.