Loading [MathJax]/extensions/tex2jax.js
IStripAdjust.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Filter.hpp>
5 #include <opals/Hemisphere.hpp>
6 #include <opals/Path.hpp>
7 #include <opals/ScannerOrientation.hpp>
8 #include <opals/StripAdjustStage.hpp>
9 #include <opals/TrajectoryCorrectionModel.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, "opalsStripAdjust_d.lib")
15  #else
16  #pragma comment(lib, "opalsStripAdjust.lib")
17  #endif
18 #endif
19 
20 namespace opals
21 {
22 
23  namespace opts
24  {
25  /// Options of \ref ModuleStripAdjust
26  namespace StripAdjust
27  {
28  /// Options of \ref ModuleStripAdjust
29  using Options =
30  IGroup< Names::_,
37  >,
41  >,
47  >,
49  IVector< Names::strips, false,
60  >,
67  >,
71  >,
75  >,
79  >,
83  >,
87  >,
91  >
92  >
93  >,
97  >,
100  >,
107  >,
110  >,
114  IGroup< Names::X,
116  >,
117  IGroup< Names::Y,
119  >,
120  IGroup< Names::Z,
122  >,
124  >,
128  >,
130  IVector< Names::images, false,
135  IGroup< Names::X0,
138  >,
139  IGroup< Names::Y0,
142  >,
143  IGroup< Names::Z0,
146  >,
150  >,
154  >,
158  >
159  >,
164  >,
168  >,
172  >,
176  >,
180  >,
184  >
185  >,
190  >,
193  IGroup< Names::X0,
195  >,
196  IGroup< Names::Y0,
198  >,
199  IGroup< Names::Z0,
201  >,
204  >,
207  >,
210  >
211  >,
215  >,
218  >,
221  >,
224  >,
227  >,
230  >
231  >,
233  IGroup< Names::c,
235  >,
236  IGroup< Names::X0,
238  >,
239  IGroup< Names::Y0,
241  >
242  >,
244  IGroup< Names::a3,
246  >,
247  IGroup< Names::a4,
249  >,
250  IGroup< Names::a5,
252  >,
253  IGroup< Names::a6,
255  >
256  >,
258  IGroup< Names::X,
260  >,
261  IGroup< Names::Y,
263  >,
264  IGroup< Names::Z,
266  >
267  >,
271  >,
274  >,
277  >
278  >,
280  >
281  >,
282  IVector< Names::sessions, false,
287  >,
289  IGroup< Names::X,
292  >,
293  IGroup< Names::Y,
296  >,
297  IGroup< Names::Z,
300  >
301  >,
306  >,
310  >,
314  >
315  >,
321  >,
325  >
326  >,
331  >,
335  >
336  >,
341  >,
345  >
346  >
347  >,
349  IGroup< Names::dX,
352  >,
353  IGroup< Names::dY,
356  >,
357  IGroup< Names::dZ,
360  >
361  >
362  >,
363  IVector< Names::cameras, false,
365  IGroup< Names::c,
368  >,
369  IGroup< Names::X0,
372  >,
373  IGroup< Names::Y0,
376  >
377  >,
379  IGroup< Names::a3,
382  >,
383  IGroup< Names::a4,
386  >,
387  IGroup< Names::a5,
390  >,
391  IGroup< Names::a6,
394  >,
396  >,
398  IGroup< Names::X,
401  >,
402  IGroup< Names::Y,
405  >,
406  IGroup< Names::Z,
409  >
410  >,
415  >,
419  >,
423  >
424  >,
427  >,
436  >,
442  >,
446  >
447  >,
455  >,
461  >,
465  >,
467  >,
472  >
473  >,
479  >,
484  >,
487  >,
489  >
490  >,
495  >,
499  >
500  >;
501  }
502  }
503 
504  /// Improves the geo-referencing of ALS data and aerial images in a rigorous way combining strip adjustment and aerial triangulation.
505  /** This module performs a rigorous strip adjustment of ALS strips.
506  The ALS multisensor system is recalibrated by estimating correction parameters for the original observations.
507  Similar to the ICP algorithm, point-to-plane distances between corresponding points are iteratively minimized. */
508  /// \see \ref ModuleStripAdjust
509  class OPALS_API IStripAdjust : virtual public IModuleBase
510  {
511 
512  public:
513  static IStripAdjust* New();
514  static IStripAdjust* New( IControlObject &controlObject );
515  static IStripAdjust* New( const IModuleBase &parent );
516  static IStripAdjust* New( const IModuleBase &parent, IControlObject &controlObject );
517 
518  virtual ~IStripAdjust() {}
519 
520  /// \name Access to module-specific options.
521  ///@{
523  Options& opts() override = 0;
524  const Options& opts() const override = 0;
525  ///@}
526 
527  };
528 
529 }
@ images
images group (opalsStripAdjust)
@ scale
scanner range scale (opalsStripAdjust)
@ extOri
exterior orientation (opalsStripAdjust)
@ intOri
interior orientation (opalsStripAdjust)
@ dOmega
omega angle offset (opalsStripAdjust)
@ Y0
Projection center's Y-coordinate.
@ boundaryDerivativeIsZero
strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
@ cameras
cameras group (opalsStripAdjust)
@ a5
tangential lens distortion, bilinear in y ORIENT:5 (opalsStripAdjust)
@ adjustment
adjustment group (opalsStripAdjust)
@ weighting
correspondences.strip2strip.weighting group(opalsStripAdjust)
@ omega
sessions.adjustment.misalignment group(opalsStripAdjust)
@ normals
normals group (opalsStripAdjust)
@ dRoll
strip.trajectory group (opalsStripAdjust)
@ image2strip
image-to-strip correspondences group (opalsStripAdjust)
@ Z0
Projection center's Z-coordinate.
@ Y
sessions.adjustment.leverArm group(opalsStripAdjust)
@ phi
sessions.adjustment.misalignment group(opalsStripAdjust)
@ dExtOri
delta exterior orientation (opalsStripAdjust)
A leaf that holds a value.
Definition: IOption.hpp:62
@ trajectory
strip.trajectory group (opalsStripAdjust)
@ correspondences
correspondences group(opalsStripAdjust)
@ kappa
sessions.adjustment.misalignment group(opalsStripAdjust)
@ rejection
correspondences.strip2strip.rejection group(opalsStripAdjust)
@ stages
group to limit the stages to be processed (opalsStripAdjust)
@ workflow
group for workflow control (opalsStripAdjust)
@ a6
tangential lens distortion, bilinear in x ORIENT:6 (opalsStripAdjust)
@ utm
UTM definition group (opalsStripAdjust)
@ dY
strip.trajectory group (opalsStripAdjust)
@ strip2strip
correspondences.strip2strip group(opalsStripAdjust)
@ Z
sessions.adjustment.leverArm group(opalsStripAdjust)
@ forwardIntersect
forward intersection of tie points group (opalsStripAdjust)
@ dX0
Projection center's X-coordinate offset (opalsStripAdjust)
@ a4
radial lens distortion, 5th degree ORIENT:4 (opalsStripAdjust)
@ control2strip
correspondences.control2strip group(opalsStripAdjust)
IGroup< Names::_, IValue< Names::outDirectory, false, Path >, IValue< Names::oFilter, false, Filter< DM::IFilter::ReadAccess::coordinatesAttributes, DM::IFilter::WriteAccess::full > >, IGroup< Names::tempData, IValue< Names::directory, false, Path >, IValue< Names::cleanup, false, bool >, IValue< Names::compress, false, bool > >, IGroup< Names::utm, IValue< Names::zone, false, unsigned >, IValue< Names::hemisphere, false, Hemisphere > >, IGroup< Names::adjustment, IValue< Names::voxelSize, false, double >, IValue< Names::maxIter, false, unsigned >, IValue< Names::robustIter, false, unsigned >, IValue< Names::covariance, false, bool > >, IGroup< Names::strips, IVector< Names::strips, false, IValue< Names::inFile, false, Path >, IValue< Names::iFormat, false, String >, IValue< Names::outFile, false, Path >, IValue< Names::calcScanAngle, false, bool >, IValue< Names::oFormat, false, String >, IValue< Names::scannerOrientation, false, ScannerOrientation >, IValue< Names::session, false, unsigned >, IGroup< Names::filter, IValue< Names::gridMask, false, Path >, IValue< Names::iFilter, false, Filter< DM::IFilter::ReadAccess::coordinatesAttributes, DM::IFilter::WriteAccess::coordinatesAttributes > > >, IGroup< Names::trajectory, IValue< Names::correctionModel, false, TrajectoryCorrectionModel >, IValue< Names::samplingInterval, false, double >, IGroup< Names::boundaryDerivativeIsZero, IValue< Names::first, false, bool >, IValue< Names::second, false, bool > >, IGroup< Names::dX, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dY, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dZ, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dRoll, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dPitch, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dYaw, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > > >, IGroup< Names::normals, IValue< Names::searchRadius, false, double >, IValue< Names::neighbours, false, unsigned > >, IValue< Names::subsetRadius, false, double >, IValue< Names::maxPointDensity, false, double > >, IGroup< Names::controlPointClouds, IValue< Names::inFile, false, Vector< Path > >, IValue< Names::iFormat, false, Vector< String > >, IGroup< Names::normals, IValue< Names::searchRadius, false, double >, IValue< Names::neighbours, false, unsigned > >, IValue< Names::subsetRadius, false, double >, IValue< Names::maxPointDensity, false, double > >, IGroup< Names::groundControlPoints, IValue< Names::inFile, false, Path >, IValue< Names::iFormat, false, String >, IGroup< Names::X, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Z, IValue< Names::sigmaApriori, false, double > >, IValue< Names::checkPoints, false, Vector< int > > >, IGroup< Names::groundTiePoints, IValue< Names::inFile, false, Path >, IValue< Names::iFormat, false, String > >, IGroup< Names::images, IVector< Names::images, false, IValue< Names::inFile, false, Path >, IValue< Names::camera, false, unsigned >, IValue< Names::strip, false, unsigned >, IGroup< Names::extOri, IGroup< Names::X0, IValue< Names::value, true, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y0, IValue< Names::value, true, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Z0, IValue< Names::value, true, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::omega, IValue< Names::value, true, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::phi, IValue< Names::value, true, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::kappa, IValue< Names::value, true, double >, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::dExtOri, IGroup< Names::dX0, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dY0, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dZ0, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dOmega, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dPhi, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dKappa, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IValue< Names::oriFile, false, Path >, IValue< Names::oriFormat, false, Path >, IValue< Names::obsFile, false, Path >, IValue< Names::undistort, false, bool > >, IGroup< Names::forwardIntersect, IGroup< Names::extOri, IGroup< Names::X0, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y0, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Z0, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::omega, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::phi, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::kappa, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::dExtOri, IGroup< Names::dX0, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dY0, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dZ0, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dOmega, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dPhi, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dKappa, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::intOri, IGroup< Names::c, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::X0, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y0, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::distortion, IGroup< Names::a3, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::a4, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::a5, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::a6, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::leverArm, IGroup< Names::X, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Z, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::misalignment, IGroup< Names::omega, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::phi, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::kappa, IValue< Names::sigmaApriori, false, double > > >, IValue< Names::maxReprojectionError, false, double > > >, IVector< Names::sessions, false, IGroup< Names::trajectory, IValue< Names::inFile, false, Path >, IValue< Names::iFormat, false, String >, IValue< Names::timeLag, false, double > >, IGroup< Names::leverArm, IGroup< Names::X, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Z, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::misalignment, IGroup< Names::omega, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::phi, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::kappa, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::scanner, IGroup< Names::range, IGroup< Names::offset, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::scale, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::scanAngle, IGroup< Names::offset, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::scale, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::tiltAngle, IGroup< Names::offset, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::scale, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > > >, IGroup< Names::datum, IGroup< Names::dX, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dY, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::dZ, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > > >, IVector< Names::cameras, false, IGroup< Names::intOri, IGroup< Names::c, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::X0, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y0, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::distortion, IGroup< Names::a3, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::a4, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::a5, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::a6, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IValue< Names::rho0, false, double > >, IGroup< Names::leverArm, IGroup< Names::X, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Y, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::Z, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IGroup< Names::misalignment, IGroup< Names::omega, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::phi, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > >, IGroup< Names::kappa, IValue< Names::value, false, double >, IValue< Names::sigmaApriori, false, double > > >, IValue< Names::xSigPriori, false, double >, IValue< Names::ySigPriori, false, double > >, IGroup< Names::correspondences, IGroup< Names::strip2strip, IValue< Names::overlap, false, unsigned >, IGroup< Names::selection, IValue< Names::samplingDist, false, double >, IValue< Names::normalSpaceSampling, false, double >, IValue< Names::maxLeverageSampling, false, double >, IValue< Names::maxRoughness, false, double > >, IGroup< Names::rejection, IValue< Names::maxDist, false, double >, IValue< Names::maxAngleDev, false, double >, IValue< Names::maxSigmaMAD, false, double >, IValue< Names::maxRoughness, false, double > >, IGroup< Names::weighting, IValue< Names::byDeltaAngle, false, bool >, IValue< Names::byRoughness, false, bool > > >, IGroup< Names::control2strip, IValue< Names::overlap, false, unsigned >, IGroup< Names::selection, IValue< Names::samplingDist, false, double >, IValue< Names::normalSpaceSampling, false, double >, IValue< Names::maxLeverageSampling, false, double >, IValue< Names::maxRoughness, false, double > >, IGroup< Names::rejection, IValue< Names::maxDist, false, double >, IValue< Names::maxAngleDev, false, double >, IValue< Names::maxSigmaMAD, false, double >, IValue< Names::maxRoughness, false, double > >, IGroup< Names::weighting, IValue< Names::byDeltaAngle, false, bool >, IValue< Names::byRoughness, false, bool > >, IValue< Names::dpSigPriori, false, double > >, IGroup< Names::image2image, IValue< Names::minImageCount, false, unsigned >, IGroup< Names::selection, IValue< Names::samplingDist, false, double > > >, IGroup< Names::image2strip, IValue< Names::overlap, false, unsigned >, IGroup< Names::selection, IValue< Names::samplingDist, false, double >, IValue< Names::gridMask, false, Path > >, IGroup< Names::rejection, IValue< Names::maxDist, false, double >, IValue< Names::maxSigmaMAD, false, double >, IValue< Names::maxRoughness, false, double > >, IGroup< Names::weighting, IValue< Names::byRoughness, false, bool > >, IValue< Names::dpSigPriori, false, double > > >, IGroup< Names::workflow, IGroup< Names::stages, IValue< Names::first, false, StripAdjustStage >, IValue< Names::last, false, StripAdjustStage > >, IValue< Names::strips, false, Vector< unsigned > >, IValue< Names::controlPointClouds, false, Vector< unsigned > >, IValue< Names::images, false, Vector< unsigned > > > > Options
Options of Module StripAdjust.
Definition: IStripAdjust.hpp:500
@ datum
sessions.adjustment.datum group(opalsStripAdjust)
@ misalignment
sessions.adjustment.misalignment group(opalsStripAdjust)
@ tiltAngle
sessions.adjustment.scanner.tiltAngleOffset group(opalsStripAdjust)
@ scanner
sessions.adjustment.scanner group(opalsStripAdjust)
@ a3
radial lens distortion, 3rd degree ORIENT:3 (opalsStripAdjust)
@ image2image
image-to-image correspondences group (opalsStripAdjust)
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
@ distortion
lens distortion (opalsStripAdjust)
@ leverArm
sessions.adjustment group(opalsStripAdjust)
Abstract base class of all opals modules.
Definition: IModuleBase.hpp:13
@ dKappa
kappa angle offset (opalsStripAdjust)
@ X
sessions.adjustment.leverArm group(opalsStripAdjust)
Interface for retrieving status and progress information from a module run.
Definition: c++_api/inc/opals/IControlObject.hpp:30
@ c
focal length (opalsStripAdjust)
@ filter
string to be parsed in construction of DM::IFilter (various modules)
@ offset
scanner range offset (opalsStripAdjust)
@ controlPointClouds
controlPointClouds group(opalsStripAdjust)
@ range
scanner range group (opalsStripAdjust)
@ dZ
strip.trajectory group (opalsStripAdjust)
@ groundTiePoints
group for tie object points (opalsStripAdjust)
@ dPhi
phi angle offset (opalsStripAdjust)
@ scanAngle
sessions.adjustment.scanner.scanAngleOffset group(opalsStripAdjust)
@ dX
strip.trajectory group (opalsStripAdjust)
@ tempData
Temporary / intermediate data group (opalsStripAdjust)
@ X0
Projection center's X-coordinate.
@ dY0
Projection center's Y-coordinate offset (opalsStripAdjust)
@ dPitch
strip.trajectory group (opalsStripAdjust)
@ selection
correspondences.strip2strip.selection group(opalsStripAdjust)
A group of options.
Definition: IOption.hpp:136
@ strips
strip group (opalsStripAdjust)
@ dYaw
strip.trajectory group (opalsStripAdjust)
@ groundControlPoints
groundControlPoints group(opalsStripAdjust)
A vector of a variable number of options.
Definition: IOption.hpp:144
@ sessions
sessions group (opalsStripAdjust)
@ dZ0
Projection center's Z-coordinate offset (opalsStripAdjust)
Improves the geo-referencing of ALS data and aerial images in a rigorous way combining strip adjustme...
Definition: IStripAdjust.hpp:509