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 
12 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
13  #if defined _DEBUG && !defined OPALS_NO_DEBUG
14  #pragma comment(lib, "opalsHisto_d.lib")
15  #else
16  #pragma comment(lib, "opalsHisto.lib")
17  #endif
18 #endif
19 
20 namespace opals {
21 
22  namespace opts
23  {
24  /// Options of \ref ModuleHisto
25  namespace Histo
26  {
27  /// Options of \ref ModuleHisto
28  using Options =
29  IGroup< Names::_, false,
43  >;
44  }
45  }
46 
47  /// 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).
48  /** The boost::accumulator framework is used to analyze the data, to calculate
49  standard statistics (min max, mean, median, quantiles,...) and to create the
50  histogram itself. Finally, if requested by the user, a plot file in SVG format
51  is generated using boost::svg_plot (not yet part of the boost library). */
52  /// \see \ref ModuleHisto
53  class OPALS_API IHisto : virtual public IModuleBase
54  {
55 
56  public:
57  static IHisto* New();
58  static IHisto* New( IControlObject &controlObject );
59  static IHisto* New( const IModuleBase &parent );
60  static IHisto* New( const IModuleBase &parent, IControlObject &controlObject );
61 
62  virtual ~IHisto() {}
63 
64  /// \name Access to module-specific options.
65  ///@{
67  virtual Options& opts() = 0;
68  virtual const Options& opts() const = 0;
69  ///@}
70 
71  };
72 
73 };
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< float, 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 > > Options
Options of Module Histo.
Definition: IHisto.hpp:43
Leaf that holds a read-only value.
Definition: IOption.hpp:63
Contains the public interface of OPALS.
Definition: ApplyTrafo.hpp:5
Derives histograms and descriptive statistics (min, max, mean, r.m.s, etc.) for ODM or grid/raster da...
Definition: IHisto.hpp:53
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