AttributeDescription.hpp
1 #pragma once
2 
3 #include "opals/config.hpp"
4 #include "opals/String.hpp"
5 
6 namespace opals
7 {
8  /// \brief AttributeDescription provides generic information about a single attribute (used by DataSetStats).
9  ///
10  /// Beside the name, type, storage size (in bytes) and a nodata indicator of the attribute the
11  /// class provides basic statistic information such as min, max, mean and the standard deviation.
12  /// If a specific information is really set, can be retrieved by the corresponding isSet function.
13  /// Depending on the data type a specific no data value is used to indicate unset values.
14  ///
15  /// \author JO
16  /// \date 24.05.2012
17  class OPALS_API AttributeDescription
18  {
19  public:
21  virtual ~AttributeDescription();
22 
23  bool isSetName() const;
24  bool isSetType() const;
25  bool isSetStorageSize() const;
26  bool isSetCount() const;
27  bool isSetMin() const;
28  bool isSetMax() const;
29  bool isSetMean() const;
30  bool isSetStd() const;
31  bool isSetNoDataIndicator() const;
32 
33  String getName() const; ///< get attribute name
34  String getType() const; ///< get attribute type
35  unsigned getStorageSize() const; ///< storage size of attribute in bytes
36  long long getCount() const; ///< number of elements
37  double getMin() const; ///< minimum attribute value
38  double getMax() const; ///< maximum attribute value
39  double getMean() const; ///< mean attribute value
40  double getStd() const; ///< standard deviation
41  double getNoDataIndicator() const; ///< no value indicator
42 
43  void reset();
44  void setAttributeDescription(const String& Name,const String& Type,const unsigned& StorageSize,const long long& Count,
45  const double& Min,const double& Max,const double& Mean,const double& Std, const double& NoData);
46  void setName(const String& Name);
47  void setType(const String& Type);
48  void setStorageSize(const unsigned& StorageSize);
49  void setCount(const long long& Count);
50  void setMin(const double& Min);
51  void setMax(const double& Max);
52  void setMean(const double& Mean);
53  void setStd(const double& Std);
54  void setNoDataIndicator(const double& NoData);
55 
56  // output functions
57  String logAttributeDescription() const; ///< for xml output
58  String printAttributeDescription() const; ///< for log output (in more readable format)
59  static String printAttributeHeader(); ///< for log the header line
60 
61  private:
62  String name;
63  String type;
64  unsigned storageSize;
65  long long count;
66  double min;
67  double max;
68  double mean;
69  double std;
70  double nodataIndicator;
71  };
72 }
AttributeDescription provides generic information about a single attribute (used by DataSetStats).
Definition: AttributeDescription.hpp:17
@ mean
Mean.
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
A dynamic character string whose interface conforms to STL's std::string.
Definition: String.hpp:35