20 static ossimTrace traceExec (
"ossimAdjustmentExecutive:exec");
21 static ossimTrace traceDebug (
"ossimAdjustmentExecutive:debug");
38 theMaxIterExceeded(false),
39 theSolDiverged(false),
40 theSolConverged(false),
44 theNumMeasurements(0),
54 theParInitialValues(0),
55 theParInitialStdDev(0),
57 theObsInitialValues(0),
58 theObsInitialStdDev(0),
64 <<
"\nossimAdjustmentExecutive::ossimAdjustmentExecutive 1 DEBUG:" << std::endl;
83 theMaxIterExceeded(false),
84 theSolDiverged(false),
85 theSolConverged(false),
89 theNumMeasurements(0),
99 theParInitialValues(0),
100 theParInitialStdDev(0),
102 theObsInitialValues(0),
103 theObsInitialStdDev(0),
109 <<
"\nossimAdjustmentExecutive::ossimAdjustmentExecutive 2 DEBUG:" << std::endl;
126 <<
"DEBUG: ~ossimAdjustmentExecutive(): returning..." << std::endl;
141 <<
"\nossimAdjustmentExecutive::initializeSolution DEBUG:" << std::endl;
149 theRep <<
"\nossimAdjustmentExecutive Report ";
151 theRep <<
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
190 <<
"\n\nInitial Parameter Setup....";
197 for (
int cp=0; cp<np; ++cp)
218 NEWMAT::Matrix parCov(np,np);
220 for (
int cp=0; cp<np; ++cp)
236 parCov(cp+1,cp+1) = sig*sig;
239 theAdjParCov.SubMatrix(start,start+np-1,start,start+np-1) = parCov;
252 double latMean = 0.0;
253 double lonMean = 0.0;
254 double hgtMean = 0.0;
261 latMean += gpt.
latr();
262 lonMean += gpt.
lonr();
295 for (
int i=1; i<=3; ++i)
301 int start = (cMeas-1)*2 + 1;
328 <<
"\ntheObjImgXref multimap Obs/Img ....\n";
333 <<
" "<<it->first<<
" "<<it->second<<endl;
336 <<
"\ntheImgNumparXref map Img/Numpar ....\n";
341 <<
" "<<it->first<<
" "<<it->second<<endl;
346 theRep <<
"\n Iteration 0...";
356 <<
"\n theObjPartials\n" 396 <<
"\nossimAdjustmentExecutive::runSolution DEBUG:" << std::endl;
410 theRep <<
"\n Iteration "<<iter<<
"...";
558 theRep <<
"\nossimAdjustmentExecutive Summary..."<<std::endl;
564 theRep <<
" -------------------------"<<std::endl;
572 theRep <<
"\n SEUW Trace...";
575 theRep <<
"\n"<<setw(7)<<iter<<setw(12)<<setprecision(3)<<
theSEUW[iter];
581 theRep <<
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
598 for (
int n=1;
n<=res.Nrows();++
n)
612 theRep<<
" ______________Mean:";
638 NEWMAT::ColumnVector tc(3);
639 NEWMAT::Matrix cov(3,3);
644 for (
int i=1; i<=3; ++i)
646 vuw += tc(i)*tc(i)/cov(i,i);
650 NEWMAT::RowVector res(2);
651 NEWMAT::Matrix cov(2,2);
653 int start = (cMeas-1)*2 + 1;
655 for (
int i=1; i<=2; ++i)
657 vuw += res(i)*res(i)/cov(i,i);
677 double seuw = sqrt(vuw/df);
692 out<<
"\nParameter Corrections...";
693 out<<
"\n n im parameter a_priori total_corr last_corr initial_std prop_std";
696 out<<
"\n "<<setprecision(5)<<setw(2)<<pc;
718 out<<
"\nObservation Corrections...";
719 out<<
"\n n observation a_priori total_corr last_corr initial_std prop_std";
722 out<<
"\n "<<setprecision(5)<<setw(2)<<obs+1;
728 for (
int k=0; k<3; ++k)
762 out<<
"\nMeasurement Residuals...";
763 out<<
"\n observation image samp line initial_meas";
768 for (
int meas=0; meas<numMeasPerObs; ++meas)
774 out<<setw(8)<<imIdx+1;
NEWMAT::Matrix theImagePtCov
std::vector< double > theSEUW
NEWMAT::UpperTriangularMatrix theFullCovMatrix
std::ostream & print(std::ostream &os) const
text output : header + tab separated tie points
NEWMAT::Matrix theAdjParCov
bool computeResidualStatistics(NEWMAT::Matrix &res)
compute mean and RMS error of residuals
std::ostream & printParameterCorrectionSummary(std::ostream &out) const
Print parameter correction method.
ImgNumparMap_t theImgNumparXref
int imIndex(const int &i) const
int adjParCount(const int &i) const
std::vector< ossimString > theParDesc
std::vector< double > theParInitialStdDev
ossimImageGeometry * getImageGeom(const int index)
ossim_uint32 numImages() const
ossim_uint32 numObs() const
std::vector< double > theObsInitialStdDev
ossim_uint32 numMeas() const
std::vector< int > theImgs
std::ostream & printObservationCorrectionSummary(std::ostream &out) const
Print observation correction method.
ossim_uint32 getNumberOfAdjustableParameters() const
NEWMAT::ColumnVector theLastCorrections
ossimString getParameterDescription(ossim_uint32 idx) const
NEWMAT::Matrix theObjectPtCov
double computeSEUW()
compute SEUW
virtual ossimAdjustableParameterInterface * getAdjustableParameterInterface()
ossimUnitType getParameterUnit(ossim_uint32 idx) const
bool initializeSolution(ossimObservationSet &obsSet)
initialize adjustment solution
OSSIM_DLL void getFormattedTime(const std::string &format, bool gmtFlag, std::string &result)
Gets the current time.
os2<< "> n<< " > nendobj n
NEWMAT::Matrix theObjPartials
double lonr() const
Returns the longitude in radian measure.
unsigned int ossim_uint32
ImgNumparMap_t::iterator ImgNumparMapIter_t
NEWMAT::Matrix theObjPartials
bool isParameterLocked(ossim_uint32 idx) const
ossim_uint32 numAdjPar() const
ossimObservationSet * theObsSet
std::vector< double > theParInitialValues
bool runSolution()
run adjustment solution
void summarizeSolution() const
summarize solution
NEWMAT::Matrix theParPartials
NEWMAT::Matrix theMeasResiduals
ObjImgMap_t theObjImgXref
bool run(ossimAdjSolutionAttributes *solAttributes)
Run solution.
ossimAdjSolutionAttributes * theSolAttributes
ossimWLSBundleSolution * theSol
bool updateParameters()
Update adjustable parameters.
double latr() const
latr().
ossimAdjustmentExecutive(std::ostream &report)
constructor
ObjImgMap_t::iterator ObjImgMapIter_t
ossimFilename imageFile(const int index) const
std::vector< double > theObsInitialValues
std::ostream & printResidualSummary(std::ostream &out) const
Print residuals method.
NEWMAT::ColumnVector theTotalCorrections
bool updateObservations()
Update observatin.
void setParameterCenter(ossim_uint32 idx, double center, bool notify=false)
double getParameterCenter(ossim_uint32 idx) const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.
ossimRefPtr< ossimPointObservation > observ(const int &i) const
~ossimAdjustmentExecutive()
destructor
bool evaluate(NEWMAT::Matrix &measResiduals, NEWMAT::Matrix &objPartials, NEWMAT::Matrix &parPartials)
standard evaluation [1] measResiduals: [x,y] residuals (numMeas X 2) [2] objPartials: object point pa...
double getParameterSigma(ossim_uint32 idx) const
NEWMAT::Matrix theParPartials
NEWMAT::Matrix theMeasResiduals