IHisto.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Array.hpp>
5 #include <opals/HistoMode.hpp>
6 #include <opals/HistoStats.hpp>
7 #include <opals/OdmOrRasterFile.hpp>
8 #include <opals/Path.hpp>
9 #include <opals/String.hpp>
10 #include <opals/Vector.hpp>
11 #include <opals/AbsValueOrQuantile.hpp>
12 
13 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
14  #if defined _DEBUG && !defined OPALS_NO_DEBUG
15  #pragma comment(lib, "opalsHisto_d.lib")
16  #else
17  #pragma comment(lib, "opalsHisto.lib")
18  #endif
19 #endif
20 
21 namespace opals {
22 
23  namespace opts
24  {
25  /// Options of \ref ModuleHisto
26  namespace Histo
27  {
28  /// Options of \ref ModuleHisto
29  using Options =
30  IGroup< Names::_, false,
45  >;
46  }
47  }
48 
49  /// Derives histograms and descriptive statistics (min, max, mean, r.m.s, etc.) for ODM or grid/raster data sets and stores the results graphically (SVG) and numerically (XML).
50  /** The boost::accumulator framework is used to analyze the data, to calculate
51  standard statistics (min max, mean, median, quantiles,...) and to create the
52  histogram itself. Finally, if requested by the user, a plot file in SVG format
53  is generated using boost::svg_plot (not yet part of the boost library). */
54  /// \see \ref ModuleHisto
55  class OPALS_API IHisto : virtual public IModuleBase
56  {
57 
58  public:
59  static IHisto* New();
60  static IHisto* New( IControlObject &controlObject );
61  static IHisto* New( const IModuleBase &parent );
62  static IHisto* New( const IModuleBase &parent, IControlObject &controlObject );
63 
64  virtual ~IHisto() {}
65 
66  /// \name Access to module-specific options.
67  ///@{
69  virtual Options& opts() = 0;
70  virtual const Options& opts() const = 0;
71  ///@}
72 
73  };
74 
75 };
Leaf that holds a read-only value.
Definition: IOption.hpp:63
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
Derives histograms and descriptive statistics (min, max, mean, r.m.s, etc.) for ODM or grid/raster da...
Definition: IHisto.hpp:55
Abstract base class of all opals modules.
Definition: IModuleBase.hpp:13
Interface for retrieving status and progress information from a module run.
Definition: c++_api/inc/opals/IControlObject.hpp:30
A group of options.
Definition: IOption.hpp:108
IGroup< Names::_, false, ILeaf< Names::inFile, false, Vector< OdmOrRasterFile > >, ILeaf< Names::attribute, false, Vector< String > >, ILeaf< Names::histogram, true, Vector< HistoStats > >, ILeaf< Names::nBins, false, unsigned >, ILeaf< Names::binWidth, false, float >, ILeaf< Names::sampleRange, false, Array< opals::AbsValueOrQuantile, 2 > >, ILeaf< Names::densityRange, false, Array< float, 2 > >, ILeaf< Names::limit, false, Array< double, 4 > >, ILeaf< Names::filter, false, String >, ILeaf< Names::plotFile, false, Vector< Path > >, ILeaf< Names::probabilities, false, Vector< double > >, ILeaf< Names::procMode, false, HistoMode >, ILeaf< Names::exactComputation, false, bool >, ILeaf< Names::skipEmptyBins, false, bool > > Options
Options of Module Histo.
Definition: IHisto.hpp:45