TiePointsLocatorInputParameters.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/rp/TiePointsLocatorInputParameters.h
22  \brief TiePointsLocator input parameters.
23  */
24 
25 #ifndef __TERRALIB_RP_INTERNAL_TIEPOINTSLOCATORINPUTPARAMETERS_H
26 #define __TERRALIB_RP_INTERNAL_TIEPOINTSLOCATORINPUTPARAMETERS_H
27 
28 #include "Config.h"
29 #include "Exception.h"
32 #include "../geometry/GeometricTransformation.h"
33 #include "../raster/Raster.h"
34 #include "../raster/Interpolator.h"
35 
36 #include <vector>
37 #include <string>
38 #include <memory>
39 
40 namespace te
41 {
42  namespace rp
43  {
44  /*!
45  \class TiePointsLocatorInputParameters
46  \brief TiePointsLocator input parameters
47  */
49  {
50  public:
51 
52  std::string m_interesPointsLocationStrategyName; //!< The strategy used to locate interest points (default:Moravec).
53 
54  te::rst::Raster const* m_inRaster1Ptr; //!< Input raster 1.
55 
56  te::rst::Raster const* m_inMaskRaster1Ptr; //!< Optional one band input mask raster 1 (tie-points will not be generated inside mask image areas marked with zeroes).
57 
58  std::vector< unsigned int > m_inRaster1Bands; //!< Bands to be used from the input raster 1.
59 
60  unsigned int m_raster1TargetAreaLineStart; //!< The first line of the raster 1 target area to process (default:0 - The entire raster will be considered).
61 
62  unsigned int m_raster1TargetAreaColStart; //!< The first column of the raster 2 target area to process (default:0 - The entire raster will be considered).
63 
64  unsigned int m_raster1TargetAreaWidth; //!< The raster 1 target area width (default:0 - The entire raster will be considered).
65 
66  unsigned int m_raster1TargetAreaHeight; //!< The raster 1 target area height (default:0 - The entire raster will be considered).
67 
68  te::rst::Raster const* m_inRaster2Ptr; //!< Input raster 2.
69 
70  te::rst::Raster const* m_inMaskRaster2Ptr; //!< Optional one band input mask raster 2 (tie-points will not be generated inside mask image areas marked with zeroes).
71 
72  std::vector< unsigned int > m_inRaster2Bands; //!< Bands to be used from the input raster 2.
73 
74  unsigned int m_raster2TargetAreaLineStart; //!< The first line of the raster 2 target area to process (default:0 - The entire raster will be considered).
75 
76  unsigned int m_raster2TargetAreaColStart; //!< The first column of the raster 2 target area to process (default:0 - The entire raster will be considered).
77 
78  unsigned int m_raster2TargetAreaWidth; //!< The raster 2 target area width (default:0 - The entire raster will be considered).
79 
80  unsigned int m_raster2TargetAreaHeight; //!< The raster 2 target area height (default:0 - The entire raster will be considered).
81 
82  bool m_enableMultiThread; //!< Enable/Disable the use of multi-threads (default:true).
83 
84  bool m_enableProgress; //!< Enable/Disable the progress interface (default:false).
85 
86  unsigned int m_maxTiePoints; //!< The maximum number of tie-points to generate (0:Automatically calculated, default:2500).
87 
88  double m_pixelSizeXRelation; //!< The pixel resolution relation m_pixelSizeXRelation = raster1_pixel_res_x / raster2_pixel_res_x (default=1.0).
89 
90  double m_pixelSizeYRelation; //!< The pixel resolution relation m_pixelSizeYRelation = raster1_pixel_res_y / raster2_pixel_res_y (default=1.0).
91 
92  std::string m_geomTransfName; //!< The name of the geometric transformation used to ensure tie-points consistency (see each te::gm::GTFactory inherited classes to find each factory key/name, default:Affine).
93 
94  double m_geomTransfMaxError; //!< The maximum allowed transformation error (pixel units, default:2).
95 
96  bool m_enableGeometryFilter; //!< Enable/disable the geometry filter/outliers remotion (default:true).
97 
98  double m_subSampleOptimizationRescaleFactor; //!< Sub-sampled optimization tie-points search rescale factor (Tie-ponts will be searched into a subsabmpled image and refined before using the original image - Defaul: 1 - subsample optimization disabled, valid range: non-zero positive values).
99 
100  double m_subSampleOptimizationMinTPAreaCoverage; //!< Sub-sampled optimization - mininumum required tie-points covered area percent of each raster area - valid range [0,100] (default:25).
101 
102  double m_subSampleOptimizationMinTPNumberFactor; //!< Sub-sampled optimization - mininumum required tie-points number factor - valid range [1,inf] (default:2).
103 
104  te::rst::Interpolator::Method m_interpMethod; //!< The raster interpolator method (default:NearestNeighbor).
105 
106  unsigned int m_tiePointsSubSectorsSplitFactor; //!< The algorithm will try to generate tie-points distributed over image sectors ( Default: 3 - 3x3 sub-sectors, minimum: 1).
107 
109 
111 
113 
114  //overload
115  void reset() throw( te::rp::Exception );
116 
117  //overload
119 
120  //overload
121  AbstractParameters* clone() const;
122 
123  /*!
124  \brief Set specific tie-points locator strategy parameters.
125  \param specStratParams The specific tie-points locator strategy parameters.
126  */
127  void setSpecStrategyParams(
128  const TiePointsLocatorStrategyParameters& specStratParams );
129 
130  /*!
131  \brief Returns a pointer to the internal specific tie-points locator strategy parameters.
132  \return A pointer to the internal specific tie-points locator strategy parameters, or
133  null if no parameters are present.
134  */
135  TiePointsLocatorStrategyParameters const* getSpecStrategyParams() const;
136 
137  /*!
138  \brief Returns a pointer to the internal specific tie-points locator strategy parameters.
139  \return A pointer to the internal specific tie-points locator strategy parameters, or
140  null if no parameters are present.
141  */
142  TiePointsLocatorStrategyParameters* getSpecStrategyParams();
143 
144  protected :
145 
146  /*!
147  \brief A pointer to the internal specific segmenter strategy parameters or
148  NULL if no parameters are present.
149  */
150  std::unique_ptr< TiePointsLocatorStrategyParameters > m_specStratParamsPtr;
151  };
152 
153  } // end namespace rp
154 } // end namespace te
155 
156 #endif
157 
te::rp::TiePointsLocatorInputParameters::m_pixelSizeYRelation
double m_pixelSizeYRelation
The pixel resolution relation m_pixelSizeYRelation = raster1_pixel_res_y / raster2_pixel_res_y (defau...
Definition: TiePointsLocatorInputParameters.h:90
te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaLineStart
unsigned int m_raster1TargetAreaLineStart
The first line of the raster 1 target area to process (default:0 - The entire raster will be consider...
Definition: TiePointsLocatorInputParameters.h:60
te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaHeight
unsigned int m_raster2TargetAreaHeight
The raster 2 target area height (default:0 - The entire raster will be considered).
Definition: TiePointsLocatorInputParameters.h:80
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::rp::TiePointsLocatorInputParameters::m_enableMultiThread
bool m_enableMultiThread
Enable/Disable the use of multi-threads (default:true).
Definition: TiePointsLocatorInputParameters.h:82
te::rp::TiePointsLocatorInputParameters::m_subSampleOptimizationMinTPAreaCoverage
double m_subSampleOptimizationMinTPAreaCoverage
Sub-sampled optimization - mininumum required tie-points covered area percent of each raster area - v...
Definition: TiePointsLocatorInputParameters.h:100
te::rp::TiePointsLocatorInputParameters::m_geomTransfName
std::string m_geomTransfName
The name of the geometric transformation used to ensure tie-points consistency (see each te::gm::GTFa...
Definition: TiePointsLocatorInputParameters.h:92
te::rp::TiePointsLocatorInputParameters::m_inRaster1Ptr
te::rst::Raster const * m_inRaster1Ptr
Input raster 1.
Definition: TiePointsLocatorInputParameters.h:54
te::rst::Raster
An abstract class for raster data strucutures.
Definition: Raster.h:72
te::rp::AlgorithmInputParameters
Raster Processing algorithm input parameters base interface.
Definition: AlgorithmInputParameters.h:40
te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaWidth
unsigned int m_raster1TargetAreaWidth
The raster 1 target area width (default:0 - The entire raster will be considered).
Definition: TiePointsLocatorInputParameters.h:64
te::rp::TiePointsLocatorInputParameters::m_inMaskRaster1Ptr
te::rst::Raster const * m_inMaskRaster1Ptr
Optional one band input mask raster 1 (tie-points will not be generated inside mask image areas marke...
Definition: TiePointsLocatorInputParameters.h:56
te::rp::TiePointsLocatorInputParameters::m_inMaskRaster2Ptr
te::rst::Raster const * m_inMaskRaster2Ptr
Optional one band input mask raster 2 (tie-points will not be generated inside mask image areas marke...
Definition: TiePointsLocatorInputParameters.h:70
te::rp::TiePointsLocatorInputParameters::reset
void reset()
Clear all internal allocated resources and reset the parameters instance to its initial state.
te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaColStart
unsigned int m_raster2TargetAreaColStart
The first column of the raster 2 target area to process (default:0 - The entire raster will be consid...
Definition: TiePointsLocatorInputParameters.h:76
te::rp::TiePointsLocatorInputParameters::m_enableProgress
bool m_enableProgress
Enable/Disable the progress interface (default:false).
Definition: TiePointsLocatorInputParameters.h:84
te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaWidth
unsigned int m_raster2TargetAreaWidth
The raster 2 target area width (default:0 - The entire raster will be considered).
Definition: TiePointsLocatorInputParameters.h:78
te::rst::InterpolationMethod
InterpolationMethod
Allowed interpolation methods.
Definition: Enums.h:93
te::rp::TiePointsLocatorInputParameters::m_interpMethod
te::rst::Interpolator::Method m_interpMethod
The raster interpolator method (default:NearestNeighbor).
Definition: TiePointsLocatorInputParameters.h:104
Exception.h
An exception class for the XML module.
TiePointsLocatorStrategyParameters.h
Tie Points Locator strategy parameters.
te::Exception
Base exception class for plugin module.
Definition: Exception.h:42
te::rp::TiePointsLocatorInputParameters::m_inRaster2Bands
std::vector< unsigned int > m_inRaster2Bands
Bands to be used from the input raster 2.
Definition: TiePointsLocatorInputParameters.h:72
TERPEXPORT
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:139
te::rp::TiePointsLocatorInputParameters::~TiePointsLocatorInputParameters
~TiePointsLocatorInputParameters()
te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaColStart
unsigned int m_raster1TargetAreaColStart
The first column of the raster 2 target area to process (default:0 - The entire raster will be consid...
Definition: TiePointsLocatorInputParameters.h:62
te::rp::TiePointsLocatorStrategyParameters
TiePointsLocator strategy parameters.
Definition: TiePointsLocatorStrategyParameters.h:39
te::rp::TiePointsLocatorInputParameters::m_subSampleOptimizationRescaleFactor
double m_subSampleOptimizationRescaleFactor
Sub-sampled optimization tie-points search rescale factor (Tie-ponts will be searched into a subsabmp...
Definition: TiePointsLocatorInputParameters.h:98
te::rp::TiePointsLocatorInputParameters::TiePointsLocatorInputParameters
TiePointsLocatorInputParameters()
te::rp::TiePointsLocatorInputParameters::m_inRaster2Ptr
te::rst::Raster const * m_inRaster2Ptr
Input raster 2.
Definition: TiePointsLocatorInputParameters.h:68
te::rp::TiePointsLocatorInputParameters::m_pixelSizeXRelation
double m_pixelSizeXRelation
The pixel resolution relation m_pixelSizeXRelation = raster1_pixel_res_x / raster2_pixel_res_x (defau...
Definition: TiePointsLocatorInputParameters.h:88
te::rp::TiePointsLocatorInputParameters::m_inRaster1Bands
std::vector< unsigned int > m_inRaster1Bands
Bands to be used from the input raster 1.
Definition: TiePointsLocatorInputParameters.h:58
te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaLineStart
unsigned int m_raster2TargetAreaLineStart
The first line of the raster 2 target area to process (default:0 - The entire raster will be consider...
Definition: TiePointsLocatorInputParameters.h:74
Config.h
Proxy configuration file for TerraView (see terraview_config.h).
te::rp::TiePointsLocatorInputParameters
TiePointsLocator input parameters.
Definition: TiePointsLocatorInputParameters.h:49
te::rp::TiePointsLocatorInputParameters::m_maxTiePoints
unsigned int m_maxTiePoints
The maximum number of tie-points to generate (0:Automatically calculated, default:2500).
Definition: TiePointsLocatorInputParameters.h:86
te::rp::TiePointsLocatorInputParameters::m_geomTransfMaxError
double m_geomTransfMaxError
The maximum allowed transformation error (pixel units, default:2).
Definition: TiePointsLocatorInputParameters.h:94
AlgorithmInputParameters.h
Raster Processing algorithm input parameters base interface.
te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaHeight
unsigned int m_raster1TargetAreaHeight
The raster 1 target area height (default:0 - The entire raster will be considered).
Definition: TiePointsLocatorInputParameters.h:66
te::rp::TiePointsLocatorInputParameters::TiePointsLocatorInputParameters
TiePointsLocatorInputParameters(const TiePointsLocatorInputParameters &)
te::rp::TiePointsLocatorInputParameters::m_tiePointsSubSectorsSplitFactor
unsigned int m_tiePointsSubSectorsSplitFactor
The algorithm will try to generate tie-points distributed over image sectors ( Default: 3 - 3x3 sub-s...
Definition: TiePointsLocatorInputParameters.h:106
te::rp::TiePointsLocatorInputParameters::m_interesPointsLocationStrategyName
std::string m_interesPointsLocationStrategyName
The strategy used to locate interest points (default:Moravec).
Definition: TiePointsLocatorInputParameters.h:52
te::rp::TiePointsLocatorInputParameters::m_subSampleOptimizationMinTPNumberFactor
double m_subSampleOptimizationMinTPNumberFactor
Sub-sampled optimization - mininumum required tie-points number factor - valid range [1,...
Definition: TiePointsLocatorInputParameters.h:102
te::rp::TiePointsLocatorInputParameters::m_enableGeometryFilter
bool m_enableGeometryFilter
Enable/disable the geometry filter/outliers remotion (default:true).
Definition: TiePointsLocatorInputParameters.h:96