ICell.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <DM/StatFeature.hpp>
5 #include <opals/GridLimit.hpp>
6 #include <opals/String.hpp>
7 #include <opals/Path.hpp>
8 #include <opals/Vector.hpp>
9 #include <opals/NoDataType.hpp>
10 #include <opals/HistoMode.hpp>
11 
12 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
13  #if defined _DEBUG && !defined OPALS_NO_DEBUG
14  #pragma comment(lib, "opalsCell_d.lib")
15  #else
16  #pragma comment(lib, "opalsCell.lib")
17  #endif
18 #endif
19 
20 namespace opals {
21 
22  namespace opts
23  {
24  /// Options of \ref ModuleCell
25  namespace Cell
26  {
27  /// Options of \ref ModuleCell
28  using Options =
29  IGroup< Names::_, false,
41  >;
42  }
43  }
44 
45  /// Calculates statistical features of user defined attributes and stores them as raster models or rasterized point clouds.
46  /** Module cell accumulates a certain data attribute within a raster cell derives statistical
47  features like min, mean, median, max, variance, quantiles, etc. The accumulated features are
48  either stored as raster models or as rasterized point clouds. For selective features, referring to
49  a single point within a raster cell (e.g. minimum height), the respective point including all point
50  available point attributes are stored rather then the center point of the cell. In all other cases
51  the cell center serves as representative point of a raster cell. */
52  /// \see \ref ModuleCell
53  class OPALS_API ICell : virtual public IModuleBase
54  {
55 
56  public:
57  static ICell* New();
58  static ICell* New( IControlObject &controlObject );
59  static ICell* New( const IModuleBase &parent );
60  static ICell* New( const IModuleBase &parent, IControlObject &controlObject );
61 
62  virtual ~ICell() {}
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< Path > >, ILeaf< Names::outFile, false, Vector< Path > >, ILeaf< Names::oFormat, false, String >, ILeaf< Names::cellSize, false, Vector< double > >, ILeaf< Names::attribute, false, String >, ILeaf< Names::feature, false, Vector< DM::StatFeature > >, ILeaf< Names::limit, false, GridLimit >, ILeaf< Names::filter, false, String >, ILeaf< Names::noData, false, NoDataType >, ILeaf< Names::procMode, false, HistoMode >, ILeaf< Names::multiBand, false, bool > > Options
Options of Module Cell.
Definition: ICell.hpp:41
Leaf that holds a read-only value.
Definition: IOption.hpp:63
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
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
Calculates statistical features of user defined attributes and stores them as raster models or raster...
Definition: ICell.hpp:53
A group of options.
Definition: IOption.hpp:108