OSSIM - Open Source Software Image Map
Version 1.9.0 (20180803)
|
#include <ossimPositionQualityEvaluator.h>
Public Member Functions | |
ossimPositionQualityEvaluator () | |
default constructor More... | |
ossimPositionQualityEvaluator (const ossimEcefPoint &pt, const NEWMAT::Matrix &covMat) | |
covariance matrix-based constructor More... | |
ossimPositionQualityEvaluator (const ossimEcefPoint &pt, const ossim_float64 &errBiasLOS, const ossim_float64 &errRandLOS, const ossim_float64 &elevAngleLOS, const ossim_float64 &azimAngleLOS, const ossimColumnVector3d &surfN=ossimColumnVector3d(0, 0, 1), const NEWMAT::Matrix &surfCovMat=ossimMatrix3x3::createZero()) | |
LOS error/geometry-based constructor. More... | |
ossimPositionQualityEvaluator (const ossimEcefPoint &pt, const ossim_float64 &errBiasLOS, const ossim_float64 &errRandLOS, const pqeRPCModel &rpc, const ossimColumnVector3d &surfN=ossimColumnVector3d(0, 0, 1), const NEWMAT::Matrix &surfCovMat=ossimMatrix3x3::createZero()) | |
LOS error/coefficient-based constructor. More... | |
~ossimPositionQualityEvaluator () | |
virtual destructor More... | |
bool | addContributingCovariance (NEWMAT::Matrix &covMat) |
Add contributing covariance matrix. More... | |
bool | addContributingCE_LE (const ossim_float64 &cCE, const ossim_float64 &cLE) |
Add contributing CE/LE. More... | |
bool | subtractContributingCovariance (NEWMAT::Matrix &covMat) |
Subtract contributing covariance matrix. More... | |
bool | subtractContributingCE_LE (const ossim_float64 &cCE, const ossim_float64 &cLE) |
Subtract contributing CE/LE. More... | |
bool | getCovMatrix (NEWMAT::Matrix &covMat) const |
Covariance matrix access. More... | |
bool | computeCE_LE (const pqeProbLev_t pLev, ossim_float64 &CE, ossim_float64 &LE) const |
Compute circular/linear error (CE/LE). More... | |
bool | extractErrorEllipse (const pqeProbLev_t pLev, pqeErrorEllipse &ellipse) |
Extract error ellipse parameters. More... | |
bool | extractErrorEllipse (const pqeProbLev_t pLev, const ossim_float64 &angularIncrement, pqeErrorEllipse &ellipse, pqeImageErrorEllipse_t &ellImage) |
Extract error ellipse parameters; valid only with RPC parameters. More... | |
bool | isValid () const |
State accessor. More... | |
std::ostream & | print (std::ostream &out) const |
Print method. More... | |
Private Member Functions | |
bool | decomposeMatrix () |
bool | constructMatrix (const ossim_float64 &errBiasLOS, const ossim_float64 &errRandLOS, const ossim_float64 &elevAngleLOS, const ossim_float64 &azimAngleLOS, const ossimColumnVector3d &surfN, const NEWMAT::Matrix &surfCovMat) |
bool | formCovMatrixFromCE_LE (const ossim_float64 &CE, const ossim_float64 &LE, NEWMAT::Matrix &covMat) const |
double | compute90PCE () const |
bool | computeElevAzim (const pqeRPCModel rpc, ossim_float64 &elevAngleLOS, ossim_float64 &azimAngleLOS) const |
double | polynomial (const double &nlat, const double &nlon, const double &nhgt, const double *coeffs) const |
double | dPoly_dLat (const double &nlat, const double &nlon, const double &nhgt, const double *coeffs) const |
double | dPoly_dLon (const double &nlat, const double &nlon, const double &nhgt, const double *coeffs) const |
double | dPoly_dHgt (const double &nlat, const double &nlon, const double &nhgt, const double *coeffs) const |
ossimColumnVector3d | vperp (const ossimColumnVector3d &v1, const ossimColumnVector3d &v2) const |
double | atan3 (const ossim_float64 y, const ossim_float64 x) const |
Private Attributes | |
bool | theEvaluatorValid |
ossimGpt | thePtG |
NEWMAT::Matrix | theCovMat |
ossimLsrSpace | theLocalFrame |
pqeErrorEllipse | theEllipse |
NEWMAT::Matrix | theEigenvectors |
pqeRPCModel | theRpcModel |
Definition at line 67 of file ossimPositionQualityEvaluator.h.
ossimPositionQualityEvaluator::ossimPositionQualityEvaluator | ( | ) |
default constructor
Definition at line 56 of file ossimPositionQualityEvaluator.cpp.
ossimPositionQualityEvaluator::ossimPositionQualityEvaluator | ( | const ossimEcefPoint & | pt, |
const NEWMAT::Matrix & | covMat | ||
) |
covariance matrix-based constructor
pt | Current ECF ground estimate. |
covMat | 3X3 ECF covariance matrix. |
Definition at line 80 of file ossimPositionQualityEvaluator.cpp.
ossimPositionQualityEvaluator::ossimPositionQualityEvaluator | ( | const ossimEcefPoint & | pt, |
const ossim_float64 & | errBiasLOS, | ||
const ossim_float64 & | errRandLOS, | ||
const ossim_float64 & | elevAngleLOS, | ||
const ossim_float64 & | azimAngleLOS, | ||
const ossimColumnVector3d & | surfN = ossimColumnVector3d(0,0,1) , |
||
const NEWMAT::Matrix & | surfCovMat = ossimMatrix3x3::createZero() |
||
) |
LOS error/geometry-based constructor.
pt | Current ECF ground estimate. |
errBiasLOS | 0.68p LOS bias component. |
errRandLOS | 0.68p LOS random component. |
elevAngleLOS | target elevation angle. |
azimAngleLOS | target azimuth angle. |
surfN | surface normal unit vector (defaults to unit Z). |
surfCovMat | surface ENU 3X3 covariance matrix (defaults to zero). |
Definition at line 117 of file ossimPositionQualityEvaluator.cpp.
ossimPositionQualityEvaluator::ossimPositionQualityEvaluator | ( | const ossimEcefPoint & | pt, |
const ossim_float64 & | errBiasLOS, | ||
const ossim_float64 & | errRandLOS, | ||
const pqeRPCModel & | rpc, | ||
const ossimColumnVector3d & | surfN = ossimColumnVector3d(0,0,1) , |
||
const NEWMAT::Matrix & | surfCovMat = ossimMatrix3x3::createZero() |
||
) |
LOS error/coefficient-based constructor.
pt | Current ECF ground estimate. |
errBiasLOS | 0.68p LOS bias component. |
errRandLOS | 0.68p LOS random component. |
rpc | RPC coefficients. |
surfN | surface normal unit vector (defaults to unit Z). |
surfCovMat | surface ENU 3X3 covariance matrix (defaults to zero). |
Definition at line 165 of file ossimPositionQualityEvaluator.cpp.
ossimPositionQualityEvaluator::~ossimPositionQualityEvaluator | ( | ) |
virtual destructor
Definition at line 216 of file ossimPositionQualityEvaluator.cpp.
bool ossimPositionQualityEvaluator::addContributingCE_LE | ( | const ossim_float64 & | cCE, |
const ossim_float64 & | cLE | ||
) |
Add contributing CE/LE.
cCE | contributing 90% circular error (m). |
cLE | contributing 90% linear error (m). |
Definition at line 297 of file ossimPositionQualityEvaluator.cpp.
References addContributingCovariance(), and formCovMatrixFromCE_LE().
bool ossimPositionQualityEvaluator::addContributingCovariance | ( | NEWMAT::Matrix & | covMat | ) |
Add contributing covariance matrix.
covMat | 3X3 covariance matrix. |
Definition at line 274 of file ossimPositionQualityEvaluator.cpp.
References decomposeMatrix(), theCovMat, and theEvaluatorValid.
Referenced by addContributingCE_LE().
|
private |
Definition at line 989 of file ossimPositionQualityEvaluator.cpp.
References M_PI, ossim::sgn(), TWO_PI, x, and y.
|
private |
Definition at line 810 of file ossimPositionQualityEvaluator.cpp.
References nMultiplier, table90, theEllipse, pqeErrorEllipse::theSemiMajorAxis, and pqeErrorEllipse::theSemiMinorAxis.
Referenced by computeCE_LE().
bool ossimPositionQualityEvaluator::computeCE_LE | ( | const pqeProbLev_t | pLev, |
ossim_float64 & | CE, | ||
ossim_float64 & | LE | ||
) | const |
Compute circular/linear error (CE/LE).
pLev | Probability level. |
CE | pLev% circular error (m). |
LE | pLev% linear error (m). |
Definition at line 354 of file ossimPositionQualityEvaluator.cpp.
References compute90PCE(), Fac1D, Fac2D90, theCovMat, and theEvaluatorValid.
|
private |
Definition at line 841 of file ossimPositionQualityEvaluator.cpp.
References ossimGpt::datum(), DEG_PER_RAD, dPoly_dHgt(), dPoly_dLat(), dPoly_dLon(), ossimLsrSpace::ecefToLsrRotMatrix(), ossimDatum::ellipsoid(), ossimGpt::hgt, ossim::isnan(), ossimEllipsoid::jacobianWrtEcef(), ossimGpt::lat, ossimGpt::lon, polynomial(), pqeRPCModel::theHgtOffset, pqeRPCModel::theHgtScale, pqeRPCModel::theLatOffset, pqeRPCModel::theLatScale, pqeRPCModel::theLineDenCoef, pqeRPCModel::theLineNumCoef, pqeRPCModel::theLineScale, theLocalFrame, pqeRPCModel::theLonOffset, pqeRPCModel::theLonScale, thePtG, pqeRPCModel::theSampDenCoef, pqeRPCModel::theSampNumCoef, pqeRPCModel::theSampScale, ossimDpt::u, and ossimDpt::v.
|
private |
Definition at line 541 of file ossimPositionQualityEvaluator.cpp.
|
private |
Definition at line 500 of file ossimPositionQualityEvaluator.cpp.
References theCovMat.
Referenced by addContributingCovariance(), and subtractContributingCovariance().
|
private |
Definition at line 1122 of file ossimPositionQualityEvaluator.cpp.
References theRpcModel, and pqeRPCModel::theType.
Referenced by computeElevAzim().
|
private |
Definition at line 1065 of file ossimPositionQualityEvaluator.cpp.
References theRpcModel, and pqeRPCModel::theType.
Referenced by computeElevAzim().
|
private |
Definition at line 1094 of file ossimPositionQualityEvaluator.cpp.
References theRpcModel, and pqeRPCModel::theType.
Referenced by computeElevAzim().
bool ossimPositionQualityEvaluator::extractErrorEllipse | ( | const pqeProbLev_t | pLev, |
pqeErrorEllipse & | ellipse | ||
) |
Extract error ellipse parameters.
pLev | Probability level. |
ellipse | pLev% error ellipse. |
Definition at line 376 of file ossimPositionQualityEvaluator.cpp.
References Fac2D, pqeErrorEllipse::theAzimAngle, pqeErrorEllipse::theCenter, theEllipse, theEvaluatorValid, thePtG, pqeErrorEllipse::theSemiMajorAxis, and pqeErrorEllipse::theSemiMinorAxis.
Referenced by extractErrorEllipse().
bool ossimPositionQualityEvaluator::extractErrorEllipse | ( | const pqeProbLev_t | pLev, |
const ossim_float64 & | angularIncrement, | ||
pqeErrorEllipse & | ellipse, | ||
pqeImageErrorEllipse_t & | ellImage | ||
) |
Extract error ellipse parameters; valid only with RPC parameters.
pLev | Probability level. |
angularIncrement | Angular increment for ellipse point spacing (deg) |
ellipse | pLev% error ellipse. |
ellImage | pLev% image space error ellipse. |
Definition at line 404 of file ossimPositionQualityEvaluator.cpp.
References extractErrorEllipse(), ossimGpt::height(), ossim::isnan(), ossimGpt::latd(), ossimGpt::lond(), M_PI, polynomial(), pqeErrorEllipse::theAzimAngle, theEvaluatorValid, pqeRPCModel::theHgtOffset, pqeRPCModel::theHgtScale, pqeRPCModel::theLatOffset, pqeRPCModel::theLatScale, pqeRPCModel::theLineDenCoef, pqeRPCModel::theLineNumCoef, pqeRPCModel::theLineOffset, pqeRPCModel::theLineScale, theLocalFrame, pqeRPCModel::theLonOffset, pqeRPCModel::theLonScale, theRpcModel, pqeRPCModel::theSampDenCoef, pqeRPCModel::theSampNumCoef, pqeRPCModel::theSampOffset, pqeRPCModel::theSampScale, pqeErrorEllipse::theSemiMajorAxis, pqeErrorEllipse::theSemiMinorAxis, pqeRPCModel::theType, TWO_PI, x, and y.
|
private |
Definition at line 788 of file ossimPositionQualityEvaluator.cpp.
Referenced by addContributingCE_LE(), and subtractContributingCE_LE().
bool ossimPositionQualityEvaluator::getCovMatrix | ( | NEWMAT::Matrix & | covMat | ) | const |
Covariance matrix access.
covMat | 3X3 covariance matrix. |
Definition at line 256 of file ossimPositionQualityEvaluator.cpp.
References theCovMat, and theEvaluatorValid.
|
inline |
State accessor.
Definition at line 224 of file ossimPositionQualityEvaluator.h.
|
private |
Definition at line 1030 of file ossimPositionQualityEvaluator.cpp.
References theRpcModel, and pqeRPCModel::theType.
Referenced by computeElevAzim(), and extractErrorEllipse().
std::ostream & ossimPositionQualityEvaluator::print | ( | std::ostream & | out | ) | const |
Print method.
Definition at line 230 of file ossimPositionQualityEvaluator.cpp.
References DEG_PER_RAD, pqeErrorEllipse::theAzimAngle, theCovMat, theEllipse, theEvaluatorValid, thePtG, pqeErrorEllipse::theSemiMajorAxis, and pqeErrorEllipse::theSemiMinorAxis.
bool ossimPositionQualityEvaluator::subtractContributingCE_LE | ( | const ossim_float64 & | cCE, |
const ossim_float64 & | cLE | ||
) |
Subtract contributing CE/LE.
cCE | contributing 90% circular error (m). |
cLE | contributing 90% linear error (m). |
Definition at line 337 of file ossimPositionQualityEvaluator.cpp.
References formCovMatrixFromCE_LE(), and subtractContributingCovariance().
bool ossimPositionQualityEvaluator::subtractContributingCovariance | ( | NEWMAT::Matrix & | covMat | ) |
Subtract contributing covariance matrix.
covMat | 3X3 covariance matrix. |
Definition at line 314 of file ossimPositionQualityEvaluator.cpp.
References decomposeMatrix(), theCovMat, and theEvaluatorValid.
Referenced by subtractContributingCE_LE().
|
private |
Definition at line 971 of file ossimPositionQualityEvaluator.cpp.
References ossimColumnVector3d::dot().
|
private |
Definition at line 240 of file ossimPositionQualityEvaluator.h.
Referenced by addContributingCovariance(), computeCE_LE(), decomposeMatrix(), getCovMatrix(), print(), and subtractContributingCovariance().
|
private |
Definition at line 243 of file ossimPositionQualityEvaluator.h.
|
private |
Definition at line 242 of file ossimPositionQualityEvaluator.h.
Referenced by compute90PCE(), extractErrorEllipse(), and print().
|
private |
Definition at line 238 of file ossimPositionQualityEvaluator.h.
Referenced by addContributingCovariance(), computeCE_LE(), extractErrorEllipse(), getCovMatrix(), print(), and subtractContributingCovariance().
|
private |
Definition at line 241 of file ossimPositionQualityEvaluator.h.
Referenced by computeElevAzim(), and extractErrorEllipse().
|
private |
Definition at line 239 of file ossimPositionQualityEvaluator.h.
Referenced by computeElevAzim(), extractErrorEllipse(), and print().
|
private |
Definition at line 244 of file ossimPositionQualityEvaluator.h.
Referenced by dPoly_dHgt(), dPoly_dLat(), dPoly_dLon(), extractErrorEllipse(), and polynomial().