27 #ifndef __RADAR_ODIMH5V21_METADATA_HPP__
28 #define __RADAR_ODIMH5V21_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);
376 void setSimpleArray (
const char* name,
const std::vector<int64_t>& value);
385 void setSimpleArray (
const char* name,
const std::vector<double>& value);
398 void set (
const char* name,
const std::vector<AZTimes>& value);
407 void set (
const char* name,
const std::vector<AZTimes>& value,
int precision);
417 void set (
const char* name,
const std::vector<AZAngles>& value);
428 void set (
const char* name,
const std::vector<AZAngles>& value,
int precision);
435 void set (
const char* name,
const VILHeights& value);
446 void set (
const char* name,
const std::vector<Angles>& value);
457 void set (
const char* name,
const std::vector<Angles>& value,
int precision);
467 void set (
const char* name,
const std::vector<Arotation>& value);
478 void set (
const char* name,
const std::vector<Arotation>& value,
int precision);
489 void set (
const char* name,
const std::vector<TXpower>& value,
int precision);
499 void set (
const char* name,
const std::vector<Nodes>& value);
507 void set (
const char* name,
const std::stringstream& value);
512 void set (
const char* name,
const std::ostringstream& value);
523 bool getBool (
const char* name);
531 bool getBool (
const char* name,
bool value);
539 char getChar (
const char* name);
547 char getChar (
const char* name,
char value);
555 unsigned char getUChar (
const char* name);
563 unsigned char getUChar (
const char* name,
unsigned char value);
571 short getShort (
const char* name);
579 short getShort (
const char* name,
short value);
587 unsigned short getUShort (
const char* name);
595 unsigned short getUShort (
const char* name,
unsigned short value);
603 int getInt (
const char* name);
612 int getInt (
const char* name,
int value);
620 unsigned int getUInt (
const char* name);
629 unsigned int getUInt (
const char* name,
unsigned int value);
637 int64_t getLong (
const char* name);
646 int64_t getLong (
const char* name, int64_t value);
654 time_t getTimeT (
const char* name);
663 time_t getTimeT (
const char* name, time_t value);
671 float getFloat (
const char* name);
680 float getFloat (
const char* name,
float value);
688 double getDouble (
const char* name);
696 double getDouble (
const char* name,
double value);
704 std::string getStr (
const char* name);
712 std::string getStr (
const char* name,
const std::string& value);
725 std::vector<bool> getBools (
const char* name,
bool mandatory =
false);
735 std::vector<char> getChars (
const char* name,
bool mandatory =
false);
745 std::vector<unsigned char> getUChars (
const char* name,
bool mandatory =
false);
755 std::vector<short> getShorts (
const char* name,
bool mandatory =
false);
765 std::vector<unsigned short> getUShorts (
const char* name,
bool mandatory =
false);
775 std::vector<int> getInts (
const char* name,
bool mandatory =
false);
785 std::vector<unsigned int> getUInts (
const char* name,
bool mandatory =
false);
795 std::vector<int64_t> getLongs (
const char* name,
bool mandatory =
false);
805 std::vector<time_t> getTimes (
const char* name,
bool mandatory =
false);
815 std::vector<float> getFloats (
const char* name,
bool mandatory =
false);
825 std::vector<double> getDoubles (
const char* name,
bool mandatory =
false);
835 std::vector<std::string> getStrings (
const char* name,
bool mandatory =
false);
844 std::vector<int64_t> getSimpleArrayLong (
const char* name,
bool mandatory =
false);
851 std::vector<double> getSimpleArrayDouble (
const char* name,
bool mandatory =
false);
864 std::vector<std::pair<short,short> > getShortPairs (
const char* name,
bool mandatory =
false);
874 std::vector<std::pair<int,int> > getIntPairs (
const char* name,
bool mandatory =
false);
884 std::vector<std::pair<int64_t,int64_t> > getLongPairs (
const char* name,
bool mandatory =
false);
894 std::vector<std::pair<float,float> > getFloatPairs (
const char* name,
bool mandatory =
false);
904 std::vector<std::pair<double,double> > getDoublePairs (
const char* name,
bool mandatory =
false);
914 const std::vector<std::pair<std::string,std::string> > getStrPairs (
const char* name,
bool mandatory =
false);
926 std::vector<AZTimes> getAZTimes (
const char* name);
935 std::vector<AZAngles> getAZAngles (
const char* name);
954 std::vector<Angles> getAngles (
const char* name);
964 std::vector<Arotation> getArotation (
const char* name);
975 std::vector<TXpower> getTXpower (
const char* name);
985 std::vector<Nodes> getNodes (
const char* name);
1003 void import(
MetadataGroup* group,
const std::set<std::string>& names);
1019 HDF5Attribute::set(root, OdimH5v21::ATTRIBUTE_ROOT_CONVENTIONS, OdimH5v21::CONVENTIONS_ODIM_H5_V2_1);
1050 virtual std::string getObject () = 0;
1056 virtual void setObject (
const std::string& val) = 0;
1061 virtual std::string getVersion () = 0;
1067 virtual void setVersion (
const std::string& val) = 0;
1075 virtual void setDateTime (
const time_t val) = 0;
1082 virtual time_t getDateTime () = 0;
1096 virtual void setSource (
const SourceInfo& val) = 0;
1109 virtual std::string getProduct () = 0;
1115 virtual void setProduct (
const std::string& val) = 0;
1123 virtual void setProdPar (
double val) = 0;
1132 virtual void setProdPar (
const VILHeights& val) = 0;
1139 virtual double getProdPar () = 0;
1151 virtual std::string getQuantity () = 0;
1157 virtual void setQuantity (
const std::string& val) = 0;
1165 virtual void setStartDateTime (time_t val) = 0;
1172 virtual time_t getStartDateTime () = 0;
1180 virtual void setEndDateTime (time_t val) = 0;
1187 virtual time_t getEndDateTime () = 0;
1192 virtual double getGain () = 0;
1198 virtual void setGain (
double val) = 0;
1203 virtual double getOffset () = 0;
1209 virtual void setOffset (
double val) = 0;
1214 virtual double getNodata () = 0;
1220 virtual void setNodata (
double val) = 0;
1225 virtual double getUndetect () = 0;
1231 virtual void setUndetect (
double val) = 0;
1244 virtual double getLongitude () = 0;
1250 virtual void setLongitude (
double val) = 0;
1255 virtual double getLatitude () = 0;
1261 virtual void setLatitude (
double val) = 0;
1266 virtual double getAltitude () = 0;
1272 virtual void setAltitude (
double val) = 0;
1285 virtual double getEAngle () = 0;
1291 virtual void setEAngle (
double val) = 0;
1296 virtual int getNumBins () = 0;
1302 virtual void setNumBins (
int val) = 0;
1307 virtual double getRangeStart () = 0;
1313 virtual void setRangeStart (
double val) = 0;
1318 virtual double getRangeScale () = 0;
1324 virtual void setRangeScale (
double val) = 0;
1329 virtual int getNumRays () = 0;
1335 virtual void setNumRays (
int val) = 0;
1340 virtual int getA1Gate () = 0;
1346 virtual void setA1Gate (
int val) = 0;
1359 virtual double getStartAzimuth () = 0;
1365 virtual void setStartAzimuth (
double val) = 0;
1370 virtual double setStopAzimuth () = 0;
1376 virtual void setStopAzimuth (
double val) = 0;
1389 virtual int getLevels () = 0;
1395 virtual void setLevels (
int val) = 0;
1400 virtual double getInterval () = 0;
1406 virtual void setInterval (
double val) = 0;
1411 virtual double getMinAltitude () = 0;
1417 virtual void setMinAltitude (
double val) = 0;
1422 virtual double getMaxAltitude () = 0;
1428 virtual void setMaxAltitude (
double val) = 0;
1441 virtual std::string getProjectionArguments () = 0;
1447 virtual void setProjectionArguments (
const std::string& val) = 0;
1453 virtual int getXSize () = 0;
1459 virtual void setXSize (
int val) = 0;
1464 virtual int getYSize () = 0;
1470 virtual void setYSize (
int val) = 0;
1475 virtual double getXScale () = 0;
1481 virtual void setXScale (
double val) = 0;
1486 virtual double getYScale () = 0;
1492 virtual void setYScale (
double val) = 0;
1498 virtual double getLL_Longitude () = 0;
1504 virtual void setLL_Longitude (
double val) = 0;
1509 virtual double getLL_Latitude () = 0;
1515 virtual void setLL_Latitude (
double val) = 0;
1520 virtual double getUL_Longitude () = 0;
1526 virtual void setUL_Longitude (
double val) = 0;
1531 virtual double getUL_Latitude () = 0;
1537 virtual void setUL_Latitude (
double val) = 0;
1543 virtual double getUR_Longitude () = 0;
1549 virtual void setUR_Longitude (
double val) = 0;
1554 virtual double getUR_Latitude () = 0;
1560 virtual void setUR_Latitude (
double val) = 0;
1566 virtual double getLR_Longitude () = 0;
1572 virtual void setLR_Longitude (
double val) = 0;
1577 virtual double getLR_Latitude () = 0;
1583 virtual void setLR_Latitude (
double val) = 0;
1596 virtual int getXSize () = 0;
1602 virtual void setXSize (
int val) = 0;
1607 virtual int getYSize () = 0;
1613 virtual void setYSize (
int val) = 0;
1618 virtual double getXScale () = 0;
1624 virtual void setXScale (
double val) = 0;
1629 virtual double getYScale () = 0;
1635 virtual void setYScale (
double val) = 0;
1640 virtual double getMinHeight () = 0;
1646 virtual void setMinHeight (
double val) = 0;
1651 virtual double getMaxHeight () = 0;
1657 virtual void setMaxHeight (
double val) = 0;
1670 virtual double getRHILon () = 0;
1676 virtual void setRHILon (
double val) = 0;
1681 virtual double getRHILat () = 0;
1687 virtual void setRHILat (
double val) = 0;
1692 virtual double getAzimuthAngle () = 0;
1698 virtual void setAzimuthAngle (
double val) = 0;
1703 virtual std::vector<Angles> getAngles () = 0;
1709 virtual void setAngles (
const std::vector<Angles>& val) = 0;
1714 virtual double getRange () = 0;
1720 virtual void setRange (
double val) = 0;
1733 virtual double getStartLongitude () = 0;
1739 virtual void setStartLongitude (
double val) = 0;
1744 virtual double getStartLatitude () = 0;
1750 virtual void setStartLatitude (
double val) = 0;
1755 virtual double getStopLongitude () = 0;
1761 virtual void setStopLongitude (
double val) = 0;
1766 virtual double getStopLatitude () = 0;
1772 virtual void setStopLatitude (
double val) = 0;
1789 virtual std::string getTaskOrProdGen () = 0;
1795 virtual void setTaskOrProdGen (
const std::string& val) = 0;
1800 virtual time_t getStartEpochs () = 0;
1806 virtual void setStartEpochs (time_t val) = 0;
1811 virtual time_t getEndEpochs () = 0;
1817 virtual void setEndEpochs (time_t val) = 0;
1822 virtual std::string getSystem () = 0;
1828 virtual void setSystem (
const std::string& val) = 0;
1833 virtual std::string getSoftware () = 0;
1839 virtual void setSoftware (
const std::string& val) = 0;
1844 virtual std::string getSoftwareVer () = 0;
1850 virtual void setSoftwareVer (
const std::string& val) = 0;
1855 virtual double getZR_A () = 0;
1861 virtual void setZR_A (
double val) = 0;
1866 virtual double getZR_B () = 0;
1872 virtual void setZR_B (
double val) = 0;
1877 virtual double getKR_A () = 0;
1883 virtual void setKR_A (
double val) = 0;
1888 virtual double getKR_B () = 0;
1894 virtual void setKR_B (
double val) = 0;
1899 virtual bool getSimulated () = 0;
1905 virtual void setSimulated (
bool val) = 0;
1918 virtual double getBeamWidth () = 0;
1924 virtual double getBeamWidth (
double defaultValue) = 0;
1930 virtual void setBeamWidth (
double val) = 0;
1935 virtual double getWaveLength () = 0;
1941 virtual double getWaveLength (
double defaultValue) = 0;
1947 virtual void setWaveLength (
double val) = 0;
1952 virtual double getRPM () = 0;
1958 virtual double getRPM (
double defaultValue) = 0;
1964 virtual void setRPM (
double val) = 0;
1969 virtual double getPulseWidth () = 0;
1975 virtual double getPulseWidth (
double defaultValue) = 0;
1981 virtual void setPulseWidth (
double val) = 0;
1986 virtual double getRXBandWidth () = 0;
1992 virtual double getRXBandWidth (
double defaultValue) = 0;
1998 virtual void setRXBandWidth (
double val) = 0;
2003 virtual int getLowPRF () = 0;
2009 virtual int getLowPRF (
int defaultValue) = 0;
2015 virtual void setLowPRF (
int val) = 0;
2020 virtual int getHighPRF () = 0;
2026 virtual int getHighPRF (
int defaultValue) = 0;
2032 virtual void setHighPRF (
int val) = 0;
2037 virtual double getTXLoss () = 0;
2043 virtual double getTXLoss (
double defaultValue) = 0;
2049 virtual void setTXLoss (
double val) = 0;
2054 virtual double getRXLoss () = 0;
2060 virtual double getRXLoss (
double defaultValue) = 0;
2066 virtual void setRXLoss (
double val) = 0;
2071 virtual double getRadomeLoss () = 0;
2077 virtual double getRadomeLoss (
double defaultValue) = 0;
2083 virtual void setRadomeLoss (
double val) = 0;
2088 virtual double getAntGain () = 0;
2094 virtual double getAntGain (
double defaultValue) = 0;
2100 virtual void setAntGain (
double val) = 0;
2105 virtual double getBeamWH () = 0;
2111 virtual double getBeamWH (
double defaultValue) = 0;
2117 virtual void setBeamWH (
double val) = 0;
2122 virtual double getBeamWV () = 0;
2128 virtual double getBeamWV (
double defaultValue) = 0;
2134 virtual void setBeamWV (
double val) = 0;
2139 virtual double getGasAttn () = 0;
2145 virtual double getGasAttn (
double defaultValue) = 0;
2151 virtual void setGasAttn (
double val) = 0;
2156 virtual double getRadConstH () = 0;
2162 virtual double getRadConstH (
double defaultValue) = 0;
2168 virtual void setRadConstH (
double val) = 0;
2173 virtual double getRadConstV () = 0;
2179 virtual double getRadConstV (
double defaultValue) = 0;
2185 virtual void setRadConstV (
double val) = 0;
2190 virtual double getNomTXPower () = 0;
2196 virtual double getNomTXPower (
double defaultValue) = 0;
2202 virtual void setNomTXPower (
double val) = 0;
2207 virtual std::vector<double> getTXPower () = 0;
2213 virtual std::vector<double> getTXPower (
double defaultValue) = 0;
2219 virtual void setTXPower (
double val) = 0;
2220 virtual void setTXPower (
const std::vector<double>& val) = 0;
2225 virtual double getNI () = 0;
2231 virtual double getNI (
double defaultValue) = 0;
2237 virtual void setNI (
double val) = 0;
2242 virtual double getVSamples () = 0;
2248 virtual double getVSamples (
double defaultValue) = 0;
2254 virtual void setVSamples (
double val) = 0;
2267 virtual std::string getAzimuthMethod () = 0;
2273 virtual void setAzimuthMethod (
const std::string& val) = 0;
2278 virtual std::string getBinMethod () = 0;
2284 virtual void setBinMethod (
const std::string& val) = 0;
2290 virtual std::vector<AZAngles> getAzimuthAngles () = 0;
2297 virtual void setAzimuthAngles (
const std::vector<AZAngles>& val,
int precision = 0) = 0;
2303 virtual std::vector<double> getElevationAngles () = 0;
2309 virtual void setElevationAngles (
const std::vector<double>& val) = 0;
2315 virtual std::vector<double> getStartAzimuthAngles () = 0;
2321 virtual void setStartAzimuthAngles (
const std::vector<double>& val) = 0;
2326 virtual std::vector<double> getStopAzimuthAngles () = 0;
2332 virtual void setStopAzimuthAngles (
const std::vector<double>& val) = 0;
2337 virtual std::vector<double> getStartAzimuthTimes () = 0;
2343 virtual void setStartAzimuthTimes (
const std::vector<double>& val) = 0;
2348 virtual std::vector<double> getStopAzimuthTimes () = 0;
2354 virtual void setStopAzimuthTimes (
const std::vector<double>& val) = 0;
2361 virtual double getPointAccEl () = 0;
2367 virtual void setPointAccEl (
double val) = 0;
2372 virtual double getPointAccAZ () = 0;
2378 virtual void setPointAccAZ (
double val) = 0;
2383 virtual bool getMalfunc () = 0;
2389 virtual void setMalfunc (
bool val) = 0;
2394 virtual std::string getRadarMsg () = 0;
2400 virtual void setRadarMsg (
const std::string& val) = 0;
2405 virtual double getRadarHorizon () = 0;
2411 virtual void setRadarHorizon (
double val) = 0;
2418 virtual double getNEZ () = 0;
2424 virtual void setNEZ (
double val) = 0;
2429 virtual double getOUR () = 0;
2435 virtual void setOUR (
double val) = 0;
2441 virtual std::vector<std::string> getDClutter () = 0;
2447 virtual void setDClutter (
const std::vector<std::string>& val) = 0;
2453 virtual std::string getComment () = 0;
2459 virtual void setComment (
const std::string& val) = 0;
2464 virtual double getSQI () = 0;
2470 virtual void setSQI (
double val) = 0;
2475 virtual double getCSR () = 0;
2481 virtual void setCSR (
double val) = 0;
2486 virtual double getLOG () = 0;
2492 virtual void setLOG (
double val) = 0;
2497 virtual bool getVPRCorr () = 0;
2503 virtual void setVPRCorr (
bool val) = 0;
2508 virtual double getFreeze () = 0;
2514 virtual void setFreeze (
double val) = 0;
2519 virtual double getMin () = 0;
2525 virtual void setMin (
double val) = 0;
2530 virtual double getMax () = 0;
2536 virtual void setMax (
double val) = 0;
2541 virtual double getStep () = 0;
2547 virtual void setStep (
double val) = 0;
2552 virtual int getLevels () = 0;
2558 virtual void setLevels (
int val) = 0;
2563 virtual double getPeakPwr () = 0;
2569 virtual void setPeakPwr (
double val) = 0;
2574 virtual double getAvgPwr () = 0;
2580 virtual void setAvgPwr (
double val) = 0;
2585 virtual double getDynRange () = 0;
2591 virtual void setDynRange (
double val) = 0;
2596 virtual double getRAC () = 0;
2602 virtual void setRAC (
double val) = 0;
2607 virtual bool getBBC () = 0;
2613 virtual void setBBC (
bool val) = 0;
2618 virtual double getPAC () = 0;
2624 virtual void setPAC (
double val) = 0;
2629 virtual double getS2N () = 0;
2635 virtual void setS2N (
double val) = 0;
2640 virtual std::string getPolarization () = 0;
2646 virtual void setPolarization (
const std::string& val) = 0;
2660 virtual std::vector<Angles> getAngles () = 0;
2666 virtual void setAngles (
const std::vector<Angles>& val) = 0;
2671 virtual std::vector<Arotation> getArotation () = 0;
2677 virtual void setArotation (
const std::vector<Arotation>& val) = 0;
2682 virtual std::string getCAMethod () = 0;
2688 virtual void setCAMethod (
const std::string& val) = 0;
2693 virtual std::vector<Nodes>getNodes () = 0;
2699 virtual void setNodes (
const std::vector<Nodes>& val) = 0;
2704 virtual int getACCnum () = 0;
2710 virtual void setCCnum (
int val) = 0;
2723 virtual double getMinRange () = 0;
2729 virtual void setMinRange (
double val) = 0;
2734 virtual double getMaxRange () = 0;
2740 virtual void setMaxRange (
double val) = 0;
2747 virtual int getDealiased () = 0;
2753 virtual void setDealiased (
int val) = 0;
Interface classes between OdimH5 objects and HDF5 library.
OdimH5 object source informations.
Definition: odimh5v21_support.hpp:110
static void set(H5::H5Object *obj, const char *name, int64_t value)
Set the value of an attribute.
Definition: odimh5v21_hdf5.cpp:170
static std::string getStr(H5::H5Object *obj, const char *name)
Get the value of a string attribute.
Definition: odimh5v21_hdf5.cpp:383
Classes and struct used by main OdimH5 classes.
Bottom and top heights (m) of the integration layer.
Definition: odimh5v21_support.hpp:452
Constants and values used by OdimH5 library.