8 #ifndef UFO_UTILS_PRIMITIVEVARIABLES_H_
9 #define UFO_UTILS_PRIMITIVEVARIABLES_H_
15 #include "ioda/ObsDataVector.h"
21 template <
typename DATATYPE>
class ObsDataVector;
40 const std::vector<float> &
values)
131 std::unique_ptr<ioda::ObsDataVector<float>>
vector_;
Utility class used in overloads of operator-> in forward iterators.
ObsFilterData provides access to all data related to an ObsFilter.
const std::vector< float > & values_
const std::vector< float > & values() const
Return the values of the primitive variable at all observation locations.
const std::string & group() const
Return the group of the primitive variable.
const Variable & variable_
Variable variable() const
Return a Variable object representing the primitive variable.
PrimitiveVariable(const Variable &variable, size_t channelIndex, const std::vector< float > &values)
std::string name() const
Return the name of the primitive variable.
A range covering all "primitive" (single-channel) variables in a Variables object.
PrimitiveVariablesIterator end() const
PrimitiveVariablesIterator begin() const
const ObsFilterData & data_
PrimitiveVariables(const Variables &variables, const ObsFilterData &data)
const Variables & variables_
Iterator over the names and values of primitive variables held in a Variables object.
std::unique_ptr< ioda::ObsDataVector< float > > vector_
const Variables & variables_
PrimitiveVariablesIterator(const Variables &variables, const ObsFilterData &data, BeginTag)
Create an iterator pointing to the first primitive variable in variables.
ArrowProxy< PrimitiveVariable > operator->() const
std::forward_iterator_tag iterator_category
PrimitiveVariable operator*() const
Dereference the iterator, returning a proxy object whose methods such as name(), group() and values()...
void loadCurrentVariable()
ArrowProxy< PrimitiveVariable > pointer
PrimitiveVariablesIterator & operator++()
PrimitiveVariable value_type
bool operator==(const PrimitiveVariablesIterator &other) const
PrimitiveVariablesIterator(const Variables &variables, const ObsFilterData &data, EndTag)
Create an iterator pointing past the range of primitive variables in variables.
const ObsFilterData & data_
bool operator!=(const PrimitiveVariablesIterator &other) const
PrimitiveVariable reference
ptrdiff_t difference_type
const std::string & variable() const
const std::string & group() const
size_t size() const
Return the number of constituent Variable objects (some of which may contain multiple channels).