![]() |
|
Tool for selecting datasets based on paths, quantities and min/max elevations. More...
#include <DataSelector.h>


Public Types | |
| enum | Prf { SINGLE =1 , DOUBLE =2 , ANY =3 } |
| Pulse repetition frequency mode. | |
Public Types inherited from BeanLike | |
| typedef ReferenceMap | map_t |
| Reference map type used to store this bean's parameters (name -> linked variable). | |
Public Member Functions | |
| DataSelector (const std::string &path, const std::string &quantity, unsigned int count=1000, drain::Range< double > elangle={-90.0, 90.0}, DataSelector::Prf prf=Prf::ANY) | |
| Constructor. | |
| DataSelector (const std::string ¶meters="") | |
| Default constructor. Optionally takes a parameter string. | |
| template<typename ... T> | |
| DataSelector (const ODIMPathElem &elem, const T &... args) | |
| Inits pathmatcher. | |
| template<typename ... T> | |
| DataSelector (ODIMPathElem::group_t e, const T &... args) | |
| Constructor initializing path matcher from group type(s). | |
| DataSelector (const DataSelector &selector) | |
| Copy constructor. | |
| bool | consumeParameters (std::string &args) |
| Sets parameters in predefined order or sets specified parameters. (Python style calling alternatives.) | |
| template<typename ... TT> | |
| void | setPathMatcher (TT... args) |
| const ODIMPathMatcher & | getPathMatcher () const |
| void | trimPathMatcher () |
| "Drop leading slashes", ie. remove leading empty elements. | |
| void | setQuantities (const std::string &s) |
| Sets basic quantities and quality quantities. These sets are separated by '/'. | |
| bool | quantityIsSet () const |
| const std::string & | getQuantity () const |
| Retrieve quantity list and regular expression, if defined. | |
| const QuantitySelector & | getQuantitySelector () const |
| void | setMaxCount (unsigned int i) |
| unsigned int | getMaxCount () const |
| void | setPrf (const std::string &s) |
| void | setPrf (Prf prf) |
| template<typename ... TT> | |
| void | setOrder (const TT &... args) |
| const DataOrder & | getOrder () const |
| void | reset () |
| Collect paths with all the criteria: path, elevation(range), PRF, quantity... | |
| void | getPaths (const Hi5Tree &src, std::list< ODIMPath > &pathContainer) const |
| Sets given parameters and implicitly determines missing parameters. | |
| bool | getPath (const Hi5Tree &src, ODIMPath &path) const |
| Returns the first path encountered with selector attributes and given groupFilter . | |
| bool | getLastPath (const Hi5Tree &src, ODIMPath &path, ODIMPathElem::group_t group=ODIMPathElem::DATA) const |
| Returns the last path encountered with selector attributes and given groupFilter . | |
| bool | getNextPath (const Hi5Tree &src, ODIMPath &path, ODIMPathElem::group_t group=ODIMPathElem::DATA) const |
| Returns the a path with index one greater than the retrieved last path. | |
| void | ensureDataGroup () |
| In path, ensure trailing DATA or QUANTITY element. | |
Public Member Functions inherited from BeanLike | |
| BeanLike (const BeanLike &b) | |
Copy constructor. Re-links parameters to the member variables of this (new) instance. | |
| BeanLike (const std::string &name, const std::string &description="") | |
| Constructor. | |
| virtual const std::string & | getName () const |
| Return the name of an instance. | |
| virtual const std::string & | getDescription () const |
| Return a brief description. | |
| bool | hasParameters () const |
| Tells if any parameters have been linked (registered) for this bean. | |
| template<class F > | |
| F | getParameter (const std::string &p) const |
| Gets a single parameter. | |
| const map_t & | getParameters () const |
| Returns the parameter map (const access). | |
| map_t & | getParameters () |
| Returns the parameter map. | |
| template<class F > | |
| void | setParametersFromEntries (const F &args) |
| Sets several parameters at once from a sequence of key-value pairs. | |
| void | setParameters (std::initializer_list< Variable::init_pair_t > args) |
| Grants access to (if above hidden) | |
| virtual void | setParameters (const std::string &p, char assignmentSymbol='=', char separatorSymbol=0) |
| Sets comma-separated parameters in a predetermined order "a,b,c" or by specifing them "b=2". | |
| template<class T > | |
| void | setParameters (const std::map< std::string, T > &args) |
| Set parameters. | |
| template<class T > | |
| void | setParameters (const SmartMap< T > &args) |
| Set parameters. | |
| void | setParameter (const std::string &p, const Castable &value) |
| Sets a single parameter. | |
| template<class T > | |
| void | setParameter (const std::string &p, const VariableT< T > &value) |
| template<class F > | |
| void | setParameter (const std::string &p, const F &value) |
| Sets a single parameter. | |
| template<class F > | |
| void | setParameter (const std::string &p, std::initializer_list< F > value) |
| Sets a single parameter. | |
| BeanLike & | operator= (const BeanLike &b) |
| Assigns the parameter values of another bean (by key) to this one's own parameters. | |
| virtual std::ostream & | toStream (std::ostream &ostr, bool compact=true) const |
| Prints the name, description and current parameter values. | |
Static Public Member Functions | |
| static void | swapData (Hi5Tree &src, const ODIMPathElem &srcElem, Hi5Tree &dst) |
| Swap branches such that dst gets a /dataset or /data with a new index. | |
| static void | swapData (Hi5Tree &srcGroup, Hi5Tree &dst, ODIMPathElem::group_t groupType) |
| Like swapData(Hi5Tree & src,const ODIMPathElem &srcElem, Hi5Tree & dst), but src already at the level. | |
| static void | getTimeMap (const Hi5Tree &srcRoot, ODIMPathElemMap &m) |
Protected Member Functions | |
| virtual void | updateBean () const override |
| Traverses the parameters and updates the corresponding member objects. | |
| void | updateQuantities () const |
| Continue path matching started with getMainPaths() | |
| void | init () |
| Sets the default values and sets references. | |
| bool | collectPaths (const Hi5Tree &src, std::list< ODIMPath > &pathContainer, const ODIMPath &basepath=ODIMPath(), const std::string &parentQuantity="", ODIMPathElem::group_t filter=ODIMPathElem::ALL_GROUPS) const |
| Collect paths (only) with criteria: path, elevation(range), PRF, quantity. | |
| void | prunePaths (const Hi5Tree &src, std::list< ODIMPath > &pathContainer) const |
Use DataOrder::criterion DATA , TIME or ELANGLE and #DataOrder::order MIN or MAX to sort paths. | |
Protected Member Functions inherited from BeanLike | |
| virtual void | storeLastArguments (const std::string &p) |
| Called after setParameters() | |
Protected Attributes | |
| std::string | path |
| Regular expression of accepted paths, for example ".*‍/data$". Deprecated. | |
| ODIMPathMatcher | pathMatcher |
| std::string | quantities |
| Comma-separated list of conventional quantities, optionally followed by '/', and quality quantities. | |
| QuantitySelector | quantitySelector |
| unsigned int | count |
| The maximum length of the list of matching keys. | |
| drain::Range< double > | elangle |
| The minimum and maximum elevation angle (applicable with volume scan data only). | |
| DataOrder | order |
| std::string | prf |
| Reject or accept VRAD(VH) | |
| drain::EnumFlagger< drain::SingleFlagger< Prf > > | prfSelector |
| drain::Range< int > | timespan |
| Time in seconds, compared to nominal time. | |
Protected Attributes inherited from BeanLike | |
| const std::string | name |
| Name of this bean, typically also the name of the (derived) class. | |
| const std::string | description |
| Brief, human-readable description of this bean. | |
| map_t | parameters |
| Parameters (name -> linked variable), typically linked to member variables of the derived class. | |
Friends | |
| class | drain::ReferenceMap |
Tool for selecting datasets based on paths, quantities and min/max elevations.
|
inline |
Inits pathmatcher.
Constructor initializing path matcher from path element(s).
|
protected |
Collect paths (only) with criteria: path, elevation(range), PRF, quantity.
ALERT! NEW; EXPERIMENTAL! Does not use separate qualitySelector object but single, with DBHZ|QIND style.
Easy example:
Then:
Or:
|
inline |
Sets parameters in predefined order or sets specified parameters. (Python style calling alternatives.)
Using some of the syntaxes:
path,quantity,index,count>,elangleMin,elangleMax (complete or partial list of parameter values, in this order)parameter1=value1,parameter2=value2,parameter3=value3 (specific assignments as a list) The regular expressions should not contain comma (,). Set parameters if args not empty then clear args. return - true, if args were non empty and hence, parameters were set.Note that args is always empty after invoking this function.
| void ensureDataGroup | ( | ) |
In path, ensure trailing DATA or QUANTITY element.
Typically used by image selectors
| bool getLastPath | ( | const Hi5Tree & | src, |
| ODIMPath & | path, | ||
| ODIMPathElem::group_t | group = ODIMPathElem::DATA |
||
| ) | const |
Returns the last path encountered with selector attributes and given groupFilter .
Retrieves paths using current selection criteria and an additional group selector. Returns the first path encountered with selector attributes and given groupFilter .
Returns the first path encountered with selector attributes and given groupFilter .
| src | - HDF5 data structure |
| path | - resulting path, if found; othewise intact |
Consider changing loop order, and just quantitySelector.test(q);
Sets given parameters and implicitly determines missing parameters.
\param parameters - string containing parameters, like "dataset=1:3,quantity=DBZH" \param clear - first reset to default state // groups set, if not given in \c parameters
virtual void deriveParameters(const std::string & parameters, bool clear=true);// , ODIMPathElem::group_t defaultGroups = (ODIMPathElem::DATA | ODIMPathElem::QUALITY)); //, char assignmentSymbol='=', char separatorSymbol=0); Retrieves paths using current selection criteria. Selects paths down to dataset and data group level. Uses metadata of what , where and how but does not include them in the result (pathContainer).
Each retrieved path starts with root element (ODIMPathElem::ROOT), corresponding to empty string ("").
| src | - the data structure searched for paths |
| pathContainer | - container for found paths |
Use DataOrder::criterion DATA , TIME or ELANGLE and #DataOrder::order MIN or MAX to sort paths.
Using criterion TIME and order (MIN or MAX)
Future C++20 option: template <DataOrder E> class SuperElemLess { inline bool operator()(const SuperElem & e1, const SuperElem & e2) const { } }
| void reset | ( | ) |
Collect paths with all the criteria: path, elevation(range), PRF, quantity...
Restore default values. The values set maximally accepting ie. all the groups are returned with getPaths() call.
Sets basic quantities and quality quantities. These sets are separated by '/'.
| s | - a comma-separated list of quantities - literals or regExps |
Examples:
|
static |
Swap branches such that dst gets a /dataset or /data with a new index.
Contents of src[srcElem] will be swapped with dst[dstElem] such that dstElem has an index greater than any index prior to the operation.
After the operation src[srcElem] contains an empty object that was created under dst for swapping.
Stylistic note: semantically this should belong to DataTools, but essentially calls getNextChild() hence is kept here. Also, DataTools stays independent from DataSelector.
|
overrideprotectedvirtual |
Traverses the parameters and updates the corresponding member objects.
Traverses (public) parameters and updates the corresponding member objects.
Converts path and quantity strings to pathMatcher and quantity RegExps, respectively.
Reimplemented from BeanLike.
|
protected |
Continue path matching started with getMainPaths()
| src | - HDF5 data structure |
| pathContainer | - container for paths to be found |
| path | - search path, dataset(n) by default |
|
protected |
Regular expression of accepted paths, for example ".*‍/data$". Deprecated.
dataset and data parameters instead
1.9.8