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