27 #ifndef __RADAR_ODIMH5V20_METADATA_HPP__
28 #define __RADAR_ODIMH5V20_METADATA_HPP__
71 bool exists (
const char* name);
77 void remove (
const char* name);
85 H5::Attribute* getH5Attribute (
const char* name,
bool mandatory =
false);
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);
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);
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);
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);
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);
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);
466 void set (
const char* name,
const std::stringstream& value);
471 void set (
const char* name,
const std::ostringstream& value);
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);
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);
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);
869 std::vector<AZTimes> getAZTimes (
const char* name);
878 std::vector<AZAngles> getAZAngles (
const char* name);
897 std::vector<Angles> getAngles (
const char* name);
907 std::vector<Arotation> getArotation (
const char* name);
917 std::vector<Nodes> getNodes (
const char* name);
935 void import(
MetadataGroup* group,
const std::set<std::string>& names);
951 HDF5Attribute::set(root, OdimH5v20::ATTRIBUTE_ROOT_CONVENTIONS, OdimH5v20::CONVENTIONS_ODIM_H5_V2_0);
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;
1028 virtual void setSource (
const SourceInfo& val) = 0;
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;
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;
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;
1291 virtual double getStartAzimuth () = 0;
1297 virtual void setStartAzimuth (
double val) = 0;
1302 virtual double setStopAzimuth () = 0;
1308 virtual void setStopAzimuth (
double val) = 0;
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;
1373 virtual std::string getProjectionArguments () = 0;
1379 virtual void setProjectionArguments (
const std::string& val) = 0;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
2096 virtual std::vector<std::string> getDClutter () = 0;
2102 virtual void setDClutter (
const std::vector<std::string>& val) = 0;
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;
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;
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;
static std::string getStr(H5::H5Object *obj, const char *name)
Get the value of a string attribute.
Definition: odimh5v20_hdf5.cpp:382
OdimH5 object source informations.
Definition: odimh5v20_support.hpp:110
Bottom and top heights (m) of the integration layer.
Definition: odimh5v20_support.hpp:417
static void set(H5::H5Object *obj, const char *name, int64_t value)
Set the value of an attribute.
Definition: odimh5v20_hdf5.cpp:169
Interface classes between OdimH5 objects and HDF5 library.
Constants and values used by OdimH5 library.
Classes and struct used by main OdimH5 classes.