IGridFeature.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/GridFeature.hpp>
5 #include <opals/GridLimit.hpp>
6 #include <opals/KernelShape.hpp>
7 #include <opals/Path.hpp>
8 #include <opals/RasterBand.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, "opalsGridFeature_d.lib")
15  #else
16  #pragma comment(lib, "opalsGridFeature.lib")
17  #endif
18 #endif
19 
20 namespace opals {
21 
22  namespace opts
23  {
24  /// Options of \ref ModuleGridFeature
25  namespace GridFeature
26  {
27  /// Options of \ref ModuleGridFeature
28  using Options =
29  IGroup< Names::_, false,
38  >;
39  }
40  }
41 
42  /// Derives feature models (slope, curvature, roughness, etc.) from grid models based on the local grid neighbourhood defined by a kernel.
43  /** The module opalsGridFeature reads a raster image in GDAL suppurted format and produces
44  one or more output rasters containing specified grid features like slope, expositionm, differenct
45  curvature measures, etc. For each output raster pixel the respective grid feature is calculated
46  based on a kernel neighbourhood. */
47  /// \see \ref ModuleGridFeature
48  class OPALS_API IGridFeature : virtual public IModuleBase
49  {
50 
51  public:
52  static IGridFeature* New();
53  static IGridFeature* New( IControlObject &controlObject );
54  static IGridFeature* New( const IModuleBase &parent );
55  static IGridFeature* New( const IModuleBase &parent, IControlObject &controlObject );
56 
57  virtual ~IGridFeature() {}
58 
59  /// \name Access to module-specific options.
60  ///@{
62  virtual Options& opts() = 0;
63  virtual const Options& opts() const = 0;
64  ///@}
65 
66  };
67 
68 };
Derives feature models (slope, curvature, roughness, etc.) from grid models based on the local grid n...
Definition: IGridFeature.hpp:48
Leaf that holds a read-only value.
Definition: IOption.hpp:63
IGroup< Names::_, false, ILeaf< Names::inFile, false, RasterBand >, ILeaf< Names::outFile, false, Vector< Path > >, ILeaf< Names::oFormat, false, String >, ILeaf< Names::feature, false, Vector< opals::GridFeature::Enum > >, ILeaf< Names::kernelShape, false, KernelShape >, ILeaf< Names::kernelSize, false, int >, ILeaf< Names::limit, false, GridLimit >, ILeaf< Names::noData, false, float > > Options
Options of Module GridFeature.
Definition: IGridFeature.hpp:38
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
A group of options.
Definition: IOption.hpp:108