Isis 3 Programmer Reference
BundleLidarRangeConstraint.h
1#ifndef BundleLidarRangeConstraint_h
2#define BundleLidarRangeConstraint_h
8/* SPDX-License-Identifier: CC0-1.0 */
9// Qt Library
10#include <QSharedPointer>
11
12// Isis Library
13#include "BundleLidarControlPoint.h"
14#include "BundleMeasure.h"
15#include "BundleObservation.h"
16#include "LinearAlgebra.h"
17#include "SparseBlockMatrix.h"
18
19namespace Isis {
41 public:
42 // constructor
44
45 // copy constructor
47
48 // destructor
50
51 // Assignment operator
53
54 bool applyConstraint(SparseBlockMatrix &normalsMatrix,
59
60 double vtpv();
61 void errorPropagation();
62
63 void computeRange();
64 double rangeObserved();
65 double rangeComputed();
66 double rangeObservedSigma();
67 double rangeAdjustedSigma();
68
69 QString formatBundleOutputString(bool errorProp=false);
70
71 private:
74
75 BundleMeasureQsp m_simultaneousMeasure;
87 double m_dX, m_dY, m_dZ;
94 double m_vtpv;
95 };
96
98 typedef QSharedPointer<BundleLidarRangeConstraint> BundleLidarRangeConstraintQsp;
99}
100
101#endif
Implements range constraint between image position and lidar point acquired simultaneously with the i...
double rangeObservedSigma()
Return sigma of range observation.
double m_rangeObserved
! deltas between spacecraft & lidar point in body-fixed coordinates
double m_dX
! 2D image point corresponding to 3D lidar point on surface.
double m_vtpv
Weighted sum-of-squares of residual.
QString formatBundleOutputString(bool errorProp=false)
Creates & returns formatted QString for lidar range constraint to output to bundleout_lidar....
BundleLidarRangeConstraint(LidarControlPointQsp lidarControlPoint, BundleMeasureQsp measure)
constructor
BundleLidarRangeConstraint & operator=(const BundleLidarRangeConstraint &src)
Assignment operator.
double rangeComputed()
Return computed lidar range.
LidarControlPointQsp m_lidarControlPoint
Parent lidar control point.
BundleObservationQsp m_bundleObservation
BundleObservation associated with measure.
double m_rangeObservedSigma
Uncertainty of observed range.
bool applyConstraint(SparseBlockMatrix &normalsMatrix, LinearAlgebra::MatrixUpperTriangular &N22, SparseBlockColumnMatrix &N12, LinearAlgebra::VectorCompressed &n1, LinearAlgebra::Vector &n2)
Computes partial derivatives of range condition equation and adds contribution into the bundle adjust...
double m_rangeObservedWeightSqrt
Square-root of observed range weight.
void errorPropagation()
TODO: to be completed.
double vtpv()
Return current value of weighted sum-of-squares of residual.
double m_adjustedSigma
Adjusted uncertainty of range.
double rangeObserved()
Return observed lidar range.
double rangeAdjustedSigma()
Return adjusted sigma of range observation.
double m_rangeComputed
Computed range from distance condition.
void computeRange()
Compute range between spacecraft & lidar point on surface given the current values of the spacecraft ...
boost::numeric::ublas::compressed_vector< double > VectorCompressed
Definition for an Isis::LinearAlgebra::VectorCompressed of doubles.
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > MatrixUpperTriangular
Definition for an Isis::LinearAlgebra::MatrixUpperTriangular of doubles with an upper configuration.
SparseBlockColumnMatrix.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QSharedPointer< BundleLidarRangeConstraint > BundleLidarRangeConstraintQsp
Typdef for BundleLidarRangeConstraint QSharedPointer.