31#ifndef ODIM_QUANTITY_MAP
32#define ODIM_QUANTITY_MAP
35#include <drain/Type.h>
41#include <drain/util/ReferenceMap.h>
71 typedef std::map<std::string, Quantity> map_t;
83 QuantityMap(
const std::initializer_list<std::pair<std::string, Quantity> > &
inits);
98 QuantityMap & operator=(
const std::initializer_list<std::pair<std::string, Quantity> > &
inits){
103 void assign(
const std::initializer_list<std::pair<std::string, Quantity> > &
inits);
110 bool hasKey(
const std::string & key)
const {
111 return find(key) != end();
132 iterator
retrieve(
const std::string & key);
142 const_iterator
retrieve(
const std::string & key)
const;
144 const Quantity & get(
const std::string & key)
const;
146 Quantity & get(
const std::string & key);
181 if (
dstData.odim.quantity.empty()){
186 mout.warn(
"quantity neither predefined nor supplied" );
191 mout.warn(
"conf for " , quantity ,
"[" ,
dstData.odim.type ,
"] not found" );
202 dstData.data.getScaling().setPhysicalRange(0.0, 1.0);
212 if (
dstData.data.getName().empty())
215 mout.debug2(
"final scaling for " ,
dstData.odim.quantity ,
'[' , quantity ,
']' ,
dstData.data.getScaling() );
227 mout.warn(
"no default type for quantity:" , odim.quantity );
234 std::ostream &
toStream(std::ostream & ostr)
const;
240std::ostream &
operator<<(std::ostream & ostr,
const QuantityMap & map){
241 return map.toStream(ostr);
LogSourc e is the means for a function or any program segment to "connect" to a Log.
Definition Log.h:326
A map of radar data, indexed by quantity code (DBZH, VRAD, etc).
Definition Data.h:1293
Structure for data storage type, scaling and marker codes. Does not contain quantity.
Definition EncodingODIM.h:70
static bool haveSimilarEncoding(const EncodingODIM &odim1, const EncodingODIM &odim2)
Checks if data encoding is similar (storage type, gain, offset, undetect and nodata are the same).
Definition EncodingODIM.h:175
ODIM metadata (quantity, gain, offset, undetect, nodata, date, time)
Definition ODIM.h:79
std::string quantity
dataX/what (obligatory)
Definition ODIM.h:192
Registry for regular quantities appearing in weather radar.
Definition QuantityMap.h:67
bool setQuantityDefaults(PlainData< D > &dstData, const std::string &quantity="", const std::string &values="") const
Definition QuantityMap.h:173
bool setQuantityDefaults(EncodingODIM &dst, const std::string &quantity, const std::string &values="") const
Sets default values of given quantity without assigning the quantity. Optionally overrides with user ...
Definition QuantityMap.cpp:210
bool isNormalized(const M odim) const
Checks if data.
Definition QuantityMap.h:223
QuantityMap()
Default constructor.
Definition QuantityMap.cpp:39
bool hasQuantity(const std::string &key) const
Checks if an exact match or a variant, is found.
Definition QuantityMap.h:119
bool hasKey(const std::string &key) const
Checks if an exact match, without checking variants, is found.
Definition QuantityMap.h:110
std::ostream & toStream(std::ostream &ostr) const
Output.
Definition QuantityMap.cpp:99
iterator retrieve(const std::string &key)
Tries to find a quantity, first by exact match, or then among variants.
Definition QuantityMap.cpp:145
Structure for defining quantity.
Definition Quantity.h:51
Definition AltitudeOp.cpp:42
std::ostream & operator<<(std::ostream &ostr, const PlainData< DT > &d)
Definition Data.h:631
QuantityMap & getQuantityMap()
Definition QuantityMap.cpp:282