| 
| 
  | RhiODIM (group_t initialize=ODIMPathElem::ALL_LEVELS) | 
|   | 
| 
  | RhiODIM (const RhiODIM &odim) | 
|   | 
| 
template<class T >  | 
|   | RhiODIM (const std::map< std::string, T > &m) | 
|   | 
| 
  | RhiODIM (const drain::image::Image &img, const std::string &quantity="") | 
|   | 
| 
  | VerticalCrossSectionODIM (group_t initialize=ODIMPathElem::ALL_LEVELS) | 
|   | 
| 
  | VerticalCrossSectionODIM (const ODIM &odim) | 
|   | 
| void  | setGeometry (size_t cols, size_t rows) | 
|   | Sets number of columns (nbins) and number of rows (nrays). Does not change resolution.  
  | 
|   | 
| 
  | ODIM (group_t initialize=ODIMPathElem::ALL_LEVELS) | 
|   | 
| 
  | ODIM (const ODIM &odim) | 
|   | 
| 
  | ODIM (const drain::image::Image &image, const std::string &quantity="") | 
|   | 
| 
  | ODIM (drain::image::Image &image, const std::string &quantity="") | 
|   | 
| 
virtual void  | setGeometry (const drain::image::AreaGeometry &g) | 
|   | 
| 
virtual const drain::image::AreaGeometry &  | getGeometry () const | 
|   | 
| 
virtual void  | adjustGeometry (size_t cols, size_t rows) | 
|   | Change geometry and adjust spatial resolution respectively. 
  | 
|   | 
| virtual void  | updateLenient (const ODIM &odim) | 
|   | Updates object, quantity, product and time information.  
  | 
|   | 
| 
void  | completeEncoding (const std::string &encoding) | 
|   | 
| 
bool  | getTime (drain::Time &t) const | 
|   | Retrieves the stored time. Returns true if successful. // consider: throws error if fail. 
  | 
|   | 
| 
bool  | getStartTime (drain::Time &t) const | 
|   | Retrieves the start time. Returns true if successful. // consider: throws error if fail. 
  | 
|   | 
| 
bool  | getEndTime (drain::Time &t) const | 
|   | Retrieves the end time. Returns true if successful. // consider: throws error if fail. 
  | 
|   | 
| 
bool  | setTime (const drain::Time &t) | 
|   | Sets date and time . Returns true if successful, throws error if fail. 
  | 
|   | 
| 
bool  | setTime (const std::string &s) | 
|   | Sets date and time given a string of Returns true if successful, throws error if fail. 
  | 
|   | 
| virtual const drain::image::CoordinatePolicy &  | getCoordinatePolicy () const | 
|   | Returns recommended coordinate policy. Redefined in PolarODIM.  
  | 
|   | 
| bool  | distinguishNodata (const std::string &quantityPrefix="") | 
|   | If nodata==undetect, set nodata=maxValue (hoping its not nodata...)  
  | 
|   | 
| 
  | EncodingODIM (group_t initialize=ODIMPathElem::ALL_LEVELS) | 
|   | Default constructor. 
  | 
|   | 
| 
  | EncodingODIM (const EncodingODIM &odim) | 
|   | Copy constructor. 
  | 
|   | 
|   | EncodingODIM (char type, double scale=1.0, double offset=NAN, double nodata=NAN, double undetect=NAN, const drain::Range< double > &range={0, 0}) | 
|   | Scale driven encoding for brace inits. RISK: group_t confusion?  
  | 
|   | 
|   | EncodingODIM (char type, const drain::Range< double > &range, double scale=0.0, double offset=NAN, double nodata=NAN, double undetect=NAN) | 
|   | Range-driven encoding for brace inits.  
  | 
|   | 
| 
  | EncodingODIM (const drain::image::Image &image) | 
|   | 
| 
  | EncodingODIM (drain::image::Image &image) | 
|   | 
| 
EncodingODIM &  | operator= (const EncodingODIM &odim) | 
|   | 
| 
  | operator drain::ValueScaling & () | 
|   | 
| 
  | operator const drain::ValueScaling & () const | 
|   | 
| 
EncodingODIM &  | setScaling (double gain, double offset=NAN) | 
|   | 
| 
EncodingODIM &  | setScaling (double gain, double offset, double undetect, double nodata) | 
|   | 
| 
bool  | isSet () const | 
|   | 
| 
void  | setRange (double min, double max) | 
|   | 
| 
void  | setType (const std::type_info &type) | 
|   | Complete with setTypeDefaults() 
  | 
|   | 
| 
template<class T >  | 
| void  | setTypeDefaults (const T &type, const std::string &values="") | 
|   | Sets gain=1, offset=0, undetect=type_min, nodata=type_max. Note: sets type only if unset. 
  | 
|   | 
| 
void  | setTypeDefaults () | 
|   | 
| 
bool  | isValue (double x) const | 
|   | Returns true for a valid measurement value, false for undetect and nodata marker values. 
  | 
|   | 
| 
double  | scaleForward (double x) const | 
|   | Converts a quantity from storage scale: y = offset + gain*y . 
  | 
|   | 
| 
double  | scaleInverse (double y) const | 
|   | Converts a quantity to storage scale: x = (y-offset)/gain . 
  | 
|   | 
| 
double  | getMin () const | 
|   | Returns the minimum physical value that can be returned using current storage type, gain and offset. 
  | 
|   | 
| 
double  | getMax () const | 
|   | Returns the minimum physical value that can be returned using current storage type, gain and offset. 
  | 
|   | 
| 
double  | operator() (double y) const | 
|   | Functor (why inverse?) 
  | 
|   | 
| void  | clear () | 
|   | Resets the values.  
  | 
|   | 
| virtual void  | updateLenient (const EncodingODIM &odim) | 
|   | Todo: keep the function, but move implementation to (future single-exec) register ?  
  | 
|   | 
| 
void  | grantShortKeys (drain::ReferenceMap &ref) | 
|   | Creates a short alias (attrib) for each (group):(attrib). Example: "gain" => "what:gain". 
  | 
|   | 
| 
void  | addShortKeys () | 
|   | Creates a short alias (attrib) for each (group):(attrib). Example: "gain" => "what:gain". 
  | 
|   | 
| void  | copyFrom (const drain::image::Image &data) | 
|   | Copies image attributes and type . Experimental.  
  | 
|   | 
|   | ReferenceMap (char separator=',') | 
|   | Default constructor.  
  | 
|   | 
|   | ReferenceMap (const ReferenceMap &rmap) | 
|   | Copy constructor copies only the separators; does not copy the items.  
  | 
|   | 
| 
template<class F >  | 
| Reference &  | link (const std::string &key, Range< F > &x, const std::string &unit=std::string()) | 
|   | 
| template<class F >  | 
| Reference &  | link (const std::string &key, F &x, const std::string &unit=std::string()) | 
|   | Associates a map entry with a variable.  
  | 
|   | 
| 
Reference &  | link (const std::string &key, Reference &x, const std::string &unit=std::string()) | 
|   | 
| 
Reference &  | link (const std::string &key, void *ptr, const std::type_info &type, size_t count, const std::string &unit=std::string()) | 
|   | For arrays. 
  | 
|   | 
| 
Reference &  | link (const std::string &key, void *ptr, const std::type_info &type, const std::string &unit=std::string()) | 
|   | Convenience: create a reference to a scalar. For arrays, use the. 
  | 
|   | 
| template<class F >  | 
| Reference &  | referenceTop (const std::string &key, F &x, const std::string &unit=std::string()) | 
|   | Associates a map entry with a variable, adding key in the beginning of key list.  
  | 
|   | 
| 
void  | append (ReferenceMap &rMap, bool replace=true) | 
|   | Adopts the references of r. If replace==false, only new entries are appended. 
  | 
|   | 
| 
void  | delink (const std::string &key) | 
|   | Removes an entry from the map. 
  | 
|   | 
| void  | reserve (const std::string &key) | 
|   | Adds a null entry, expecting the link later.  
  | 
|   | 
| template<class T >  | 
| void  | copyStruct (const ReferenceMap &m, const T &src, T &dst, extLinkPolicy policy=RESERVE) | 
|   | Experimental. Copies references and values of a structure to another.  
  | 
|   | 
| 
template<class T >  | 
| ReferenceMap &  | operator= (const SmartMap< T > &v) | 
|   | Import map, adopting the element types. 
  | 
|   | 
| virtual mapped_type &  | operator[] (const std::string &key) | 
|   | Return element associated with key.  
  | 
|   | 
| virtual const mapped_type &  | operator[] (const std::string &key) const | 
|   | Calling unreferenced key throws an exception.  
  | 
|   | 
| 
const unitmap_t &  | getUnitMap () const | 
|   | Returns measurement unit information of the actual map entries. 
  | 
|   | 
|   | SmartMap (char separator='\0', char arraySeparator=':') | 
|   | 
| 
  | SmartMap (const SmartMap &smap) | 
|   | 
| 
bool  | hasKey (const std::string &key) const | 
|   | 
| std::string  | get (const std::string &key, const std::string &defaultValue) const | 
|   | Retrieves a value, or default value if value is unset.  
  | 
|   | 
| 
std::string  | get (const std::string &key, const char *defaultValue) const | 
|   | 
| T2  | get (const std::string &key, const T2 &defaultValue) const | 
|   | Retrieves a value, if set, else returns the given default value.  
  | 
|   | 
| 
virtual const keylist_t &  | getKeyList () const | 
|   | Derived versions may produce an ordered set of keys. 
  | 
|   | 
| const map_t &  | getMap () const | 
|   | 
| 
void  | exportMap (std::map< std::string, T2 > &m) const | 
|   | Copies the contents to another map. 
  | 
|   | 
| void  | importEntries (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) | 
|   | Assigns a value to given key; if the entry does not exist, tries to create it with directly with operator[].  
  | 
|   | 
| void  | importEntries (const std::list< std::string > &entries, char assignmentSymbol='=') | 
|   | 
| void  | importMap (const std::map< std::string, S > &m) | 
|   | Assign values from a map, overriding existing entries.  
  | 
|   | 
| void  | importCastableMap (const drain::SmartMap< T2 > &m) | 
|   | Assign values from a map, possibly extending the map.  
  | 
|   | 
| void  | updateFromMap (const std::map< std::string, T2 > &m) | 
|   | Assign values from a map. Updates existing entries only.  
  | 
|   | 
| 
void  | updateFromCastableMap (const drain::SmartMap< T2 > &m) | 
|   | Convenience. 
  | 
|   | 
| 
void  | setValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) | 
|   | Sets values. If strictness==STRICTLY_CLOSED, throws exception if tries to assign a non-existing entry. 
  | 
|   | 
| 
void  | setValues (const char *entries, char assignmentSymbol='=', char separatorSymbol=0) | 
|   | 
| 
void  | setValuesSEQ (const S &sequence) | 
|   | 
| 
void  | updateValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0) | 
|   | Sets applicable values ie. modifies existing entries only. In ordered maps, skips extra entries silently. 
  | 
|   | 
| 
void  | getKeys (std::ostream &ostr) const | 
|   | 
| 
std::string  | getKeys () const | 
|   | Convenience function for std::string output. 
  | 
|   | 
| 
void  | getValues (std::ostream &ostr) const | 
|   | Dumps the values. 
  | 
|   | 
| 
std::string  | getValues () const | 
|   | Convenience function for std::string output. 
  | 
|   | 
| 
std::ostream &  | toStream (std::ostream &ostr, char equal='=', char startChar='{', char endChar='}', char separatorChar=',') const | 
|   | Note: parameters discarded. 
  | 
|   | 
| 
std::string  | toStr (char equal='=', char start=0, char end=0, char separator=0) const | 
|   | 
| void  | dump (std::ostream &ostr=std::cout) const | 
|   | Write map as a JSON code.  
  | 
|   | 
 | 
| enum   | Version {  
  KILOMETRES = 1
, RACK_EXTENSIONS = 8
, ODIM_2_2 = 16 | KILOMETRES
, ODIM_2_3 = 32 | KILOMETRES
,  
  ODIM_2_4 = 64
 
 } | 
|   | 
| 
typedef drain::EnumFlagger< drain::MultiFlagger< Version > >  | VersionFlagger | 
|   | 
| 
typedef std::set< std::string >  | nameSet | 
|   | 
| enum   | ExplicitSetting { NONE =0
, SCALING =1
, RANGE =2
 } | 
|   | 
| 
typedef ODIMPathElem::group_t  | group_t | 
|   | 
| enum   | extLinkPolicy { LINK
, RESERVE
, SKIP
, ERROR
 } | 
|   | 
| 
typedef std::map< std::string, std::string >  | unitmap_t | 
|   | 
| 
typedef SmartMap< Reference >  | smap_t | 
|   | 
| 
typedef std::map< std::string, Reference >  | map_t | 
|   | 
| 
typedef map_t::key_type  | key_t | 
|   | 
| 
typedef map_t::mapped_type  | value_t | 
|   | 
| 
typedef map_t::value_type  | entry_t | 
|   | 
| 
typedef std::list< std::string >  | keylist_t | 
|   | 
| 
typedef map_t::iterator  | iterator | 
|   | Needed? 
  | 
|   | 
| 
typedef map_t::const_iterator  | const_iterator | 
|   | 
| template<group_t G, class T >  | 
| static void  | updateH5AttributeGroups (const T &odim, Hi5Tree &dst) | 
|   | Write ODIM metadata to WHAT, WHERE and HOW groups.  
  | 
|   | 
| 
template<group_t G, class T >  | 
| static void  | updateH5AttributeGroups (const T &odim, const Hi5Tree &dst) | 
|   | 
| 
static bool  | getTime (drain::Time &t, const std::string &dateStr, const std::string &timeStr) | 
|   | Retrieves the stored time. Returns true if successful, throws error if fail. 
  | 
|   | 
| 
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). 
  | 
|   | 
| static void  | checkType (Hi5Tree &dst) | 
|   | Traverses recursively subtrees and checks the types of PolarODIM variables.  
  | 
|   | 
| 
static VersionFlagger  | versionFlagger | 
|   | 
| 
static const nameSet  | timeKeys = {"what:time", "what:starttime", "what:endtime", "time", "starttime", "endtime"} | 
|   | 
| 
static const nameSet  | dateKeys = {"what:date", "what:startdate", "what:enddate", "date", "startdate", "enddate"} | 
|   | 
| 
static const nameSet  | locationKeys = {"where:site", "where:src", "where:lat", "where:lon", "PLC", "NOD", "WMO", "site", "src", "lat", "lon"} | 
|   | 
| 
static const std::string  | dateformat | 
|   | Applied 8-digit date format, "%Y%m%d". 
  | 
|   | 
| 
static const std::string  | timeformat | 
|   | Applied 6-digit date format, "%H%M%S". 
  | 
|   | 
| static const drain::FlagResolver::dict_t  | settingDict | 
|   | 
| static const ODIMPathElemSeq &  | attributeGroups | 
|   | Copies contents of this to a h5 group.  
  | 
|   | 
| static void  | checkType (Hi5Tree &dst, EncodingODIM &odim) | 
|   | 
| 
static const ODIMPathElemSeq &  | getAttributeGroups () | 
|   | 
| unitmap_t  | unitMap | 
|   | Creating a common segment for.  
  | 
|   | 
| std::list< std::string >  | keyList | 
|   | Assigns values from std::string of type "value,value2,...valueN".  
  | 
|   |