24 int numMeasures = controlPoint->GetNumMeasures();
25 for (
int i = 0; i < numMeasures; i++) {
27 if (controlMeasure->IsIgnored()) {
81 int numMeasures = src.size();
83 for (
int i = 0; i < numMeasures; i++)
106 append(bundleMeasure);
108 return bundleMeasure;
167 double globalLatitudeAprioriSigma = settings->globalLatitudeAprioriSigma();
168 double globalLongitudeAprioriSigma = settings->globalLongitudeAprioriSigma();
169 double globalRadiusAprioriSigma = settings->globalRadiusAprioriSigma();
178 if (!
IsSpecial(globalLatitudeAprioriSigma)) {
180 d = globalLatitudeAprioriSigma*metersToRadians;
184 if (!
IsSpecial(globalLongitudeAprioriSigma)) {
186 d = globalLongitudeAprioriSigma*metersToRadians;
190 if (!settings->solveRadius()) {
194 if (!
IsSpecial(globalRadiusAprioriSigma)) {
196 d = globalRadiusAprioriSigma*0.001;
206 else if (!
IsSpecial(globalLatitudeAprioriSigma)) {
208 d = globalLatitudeAprioriSigma*metersToRadians;
217 else if (!
IsSpecial(globalLongitudeAprioriSigma)) {
219 d = globalLongitudeAprioriSigma*metersToRadians;
224 if (!settings->solveRadius()) {
232 else if (!
IsSpecial(globalRadiusAprioriSigma)) {
234 d = globalRadiusAprioriSigma*0.001;
427 QString output = QString(
"%1%2%3 of %4%5%6%7%8%9%10%11\n")
455 bool solveRadius)
const {
475 latInit = lat - cor_lat_dd;
481 lonInit = lon - cor_lon_dd;
493 output = QString(
" Label: %1\nStatus: %2\n Rays: %3 of %4\n")
499 QString labels =
"\n Point Initial Total Total "
500 " Final Initial Final\n"
501 "Coordinate Value Correction Correction "
502 " Value Accuracy Accuracy\n"
503 " (dd/dd/km) (dd/dd/km) (Meters) "
504 " (dd/dd/km) (Meters) (Meters)\n";
507 output += QString(
" LATITUDE%1%2%3%4%5%6\n")
515 output += QString(
" LONGITUDE%1%2%3%4%5%6\n")
523 output += QString(
" RADIUS%1%2%3%4%5%6\n\n")
548 output = QString(
"%1").arg(
"Null", fieldWidth) :
549 output = QString(
"%1").arg(value, fieldWidth,
'f', precision);
566 int precision,
bool solveRadius)
const {
567 QString aprioriSigmaStr;
569 if (pointType ==
"CONSTRAINED"||!solveRadius) {
574 aprioriSigmaStr = QString(
"%1").arg(pointType, fieldWidth);
577 aprioriSigmaStr = QString(
"%1").arg(sigma, fieldWidth,
'f', precision);
579 return aprioriSigmaStr;
594 int precision)
const {
610 int precision)
const {
627 bool solveRadius)
const {
646 bool errorPropagation)
const {
647 QString adjustedSigmaStr;
649 if (!errorPropagation) {
650 adjustedSigmaStr = QString(
"%1").arg(
"N/A",fieldWidth);
664 adjustedSigmaStr = QString(
"%1").arg(
"N/A",fieldWidth);
667 adjustedSigmaStr = QString(
"%1").arg(sigma, fieldWidth,
'f', precision);
671 return adjustedSigmaStr;
687 bool errorPropagation)
const {
704 bool errorPropagation)
const {
721 bool errorPropagation)
const {
This class defines a body-fixed surface point.
PointType GetType() const
void ZeroNumberOfRejectedMeasures()
Initialize the number of rejected measures to 0.
int numberOfRejectedMeasures() const
Accesses the number of rejected measures for this BundleControlPoint.
const double Null
Value for an Isis Null pixel.
QSharedPointer< BundleSettings > BundleSettingsQsp
Definition for a BundleSettingsQsp, a shared pointer to a BundleSettings object.
void SetNumberOfRejectedMeasures(int numRejected)
Set (update) the number of rejected measures for the control point.
boost::numeric::ublas::bounded_vector< double, 3 > m_adjustedSigmas
adjusted sigmas for point parameters
QString formatAprioriSigmaString(int type, int fieldWidth, int precision, bool solveRadius=false) const
Formats the apriori sigma value indicated by the given type code.
QString formatLatitudeAprioriSigmaString(int fieldWidth, int precision) const
Formats the apriori latitude sigma value.
A Constrained point is a Control Point whose lat/lon/radius is somewhat established and should not be...
A Fixed point is a Control Point whose lat/lon is well established and should not be changed...
double degrees() const
Get the angle in units of Degrees.
Distance GetLocalRadius() const
Return the radius of the surface point.
BundleControlPoint(ControlPoint *point)
Constructs a BundleControlPoint object from a ControlPoint.
void setRejected(bool reject)
Sets this BundleControlPoint to rejected or not rejected.
BundleMeasureQsp addMeasure(ControlMeasure *controlMeasure)
Creates a BundleMeasure from the given ControlMeasure and appends it to this BundleControlPoint's mea...
QString formatLatitudeAdjustedSigmaString(int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted latitude sigma value.
double GetLatWeight() const
Return latitude weight for bundle adjustment Units are 1/(radians)^2.
void copy(const BundleControlPoint &src)
Copies given BundleControlPoint to this BundleControlPoint.
PointType
These are the valid 'types' of point.
const double DEG2RAD(0.017453292519943295769237)
Multiplier for converting from degrees to radians.
void computeResiduals()
Computes the residuals for this BundleControlPoint.
boost::numeric::ublas::bounded_vector< double, 3 > & weights()
Accesses the 3 dimensional ordered vector of weight values associated with latitude, longitude, and radius.
int numberOfMeasures() const
Accesses number of measures associated with this BundleControlPoint.
boost::numeric::ublas::bounded_vector< double, 3 > & aprioriSigmas()
Accesses the 3 dimenstional ordered vector of apriori sigmas (apriori latitude, apriori longitude...
A container class for a ControlMeasure.
ControlPoint * rawControlPoint() const
Accessor for the raw ControlPoint object used for this BundleControlPoint.
QString formatBundleOutputSummaryString(bool errorPropagation) const
Formats an output summary string for this BundleControlPoint.
boost::numeric::ublas::bounded_vector< double, 3 > & adjustedSigmas()
Accesses the 3 dimenstional ordered vector of adjusted sigmas (adjusted latitude, adjusted longitude...
Longitude GetLongitude() const
Return the body-fixed longitude for the surface point.
Status SetAdjustedSurfacePoint(SurfacePoint newSurfacePoint)
Set or update the surface point relating to this control point.
boost::numeric::ublas::bounded_vector< double, 3 > & corrections()
Accesses the 3 dimensional ordered vector of correction values associated with latitude, longitude, and radius.
A Free point is a Control Point that identifies common measurements between two or more cubes...
Distance GetLonSigmaDistance() const
Return the longiitude sigma in meters.
boost::numeric::ublas::bounded_vector< double, 3 > & nicVector()
Accesses the 3 dimensional ordered NIC vector.
boost::numeric::ublas::bounded_vector< double, 3 > m_nicVector
array of NICs (see Brown, 1976)
ControlPoint * m_controlPoint
< pointer to the control point object this represents
SurfacePoint adjustedSurfacePoint() const
Accesses the adjusted SurfacePoint associated with this BundleControlPoint.
double meters() const
Get the distance in meters.
boost::numeric::ublas::bounded_vector< double, 3 > m_aprioriSigmas
apriori sigmas for point parameters
QString GetId() const
Return the Id of the control point.
double GetLonWeight() const
Return longitude weight for bundle adjustment Units are 1/(radians)^2.
Latitude GetLatitude() const
Return the body-fixed latitude for the surface point.
void zeroNumberOfRejectedMeasures()
Resets the number of rejected measures for this BundleControlPoint to zero.
void setAdjustedSurfacePoint(SurfacePoint surfacePoint)
Sets the adjusted surface point for this BundleControlPoint.
bool isRejected() const
Method used to determine whether this control point is rejected.
boost::numeric::ublas::bounded_vector< double, 3 > m_weights
weights for point parameters
ControlPoint::PointType type() const
Accesses BundleControlPoint's type.
This class holds information about a control point that BundleAdjust needs to run corretly...
~BundleControlPoint()
Destructor for BundleControlPoint.
bool IsSpecial(const double d)
Returns if the input pixel is special.
double residualRms() const
Gets the root-mean-square (rms) of the BundleControlPoint's residuals.
boost::numeric::ublas::bounded_vector< double, 3 > m_corrections
corrections to point parameters
QString formatValue(double value, int fieldWidth, int precision) const
Formats the given double precision value using the specified field width and precision.
Status SetRejected(bool rejected)
Set the jigsawRejected state.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
double GetResidualRms() const
Get rms of residuals.
QString formatRadiusAprioriSigmaString(int fieldWidth, int precision, bool solveRadius=false) const
Formats the apriori radius sigma value.
QString formatLongitudeAprioriSigmaString(int fieldWidth, int precision) const
Formats the apriori longitude sigma value.
void setWeights(const BundleSettingsQsp settings, double metersToRadians)
Sets the weights using the given BundleSettings QSharedPointer and a conversion value for meters to r...
int GetNumberOfRejectedMeasures() const
Get the number of rejected measures on the control point.
QSharedPointer< BundleMeasure > BundleMeasureQsp
Definition for BundleMeasureQsp, a shared pointer to a BundleMeasure.
Distance GetLatSigmaDistance() const
Return the latitude sigma in meters.
QString formatRadiusAdjustedSigmaString(int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted radius sigma value.
SparseBlockRowMatrix m_cholmodQMatrix
The CholMod matrix associated with this point.
double kilometers() const
Get the distance in kilometers.
QString formatLongitudeAdjustedSigmaString(int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted longitude sigma value.
QString id() const
Accesses the Point ID associated with this BundleControlPoint.
QString formatAdjustedSigmaString(int type, int fieldWidth, int precision, bool errorPropagation) const
Formats the adjusted sigma value indicated by the given type code.
QString formatBundleOutputDetailString(bool errorPropagation, double RTM, bool solveRadius=false) const
Formats a detailed output string table for this BundleControlPoint.
void setNumberOfRejectedMeasures(int numRejected)
Sets the number of rejected measures for this BundleControlPoint.
const ControlMeasure * GetMeasure(QString serialNumber) const
Get a control measure based on its cube's serial number.
SparseBlockRowMatrix & cholmodQMatrix()
Accesses the CholMod matrix associated with this BundleControlPoint.
const double RAD2DEG(57.29577951308232087679815481)
Multiplier for converting from radians to degrees.
double GetLocalRadiusWeight() const
Return radius weight for bundle adjustment Units are 1/(meters)^2.
static QString PointTypeToString(PointType type)
Obtain a string representation of a given PointType.
Status ComputeResiduals()
This method computes the BundleAdjust residuals for a point.
Unless noted otherwise, the portions of Isis written by the USGS are public domain.