General Purpose Geodetic Library
SgEstimator Class Reference

#include <SgEstimator.h>

Classes

struct  RegularSolutionCarrier
 
struct  RPCarrier
 
struct  SmoothCarrier
 
struct  StochasticSolutionCarrier
 

Public Member Functions

 SgEstimator (SgTaskConfig *)
 
 ~SgEstimator ()
 
QList< SgParameter * > * regularParametersList ()
 
QList< SgParameter * > * allRegularParametersList ()
 
QList< SgParameter * > * stochasticParametersList ()
 
QList< SgParameter * > * listPwl ()
 
QList< SgPwlStorage * > * pwlStorage ()
 
QMap< QString, SgPwlStorage * > * pwlStorageByName ()
 
QList< SgArcStorage * > * arcStorage ()
 
SgSymMatrixmPall ()
 
int numOfProcessedObs () const
 
const QMap< QString, StochasticSolutionCarrier > & stcSolutions ()
 
void addParameter (SgParameter *, bool=false)
 
void addParametersList (QList< SgParameter * > *, bool=false)
 
void removeParameter (SgParameter *)
 
void removeParametersList (QList< SgParameter * > *)
 
void prepare2Run (int numOfExpectedObs, const SgMJD &, const SgMJD &, const SgMJD &)
 
void processObs (const SgMJD &t, const SgVector &o_c, const SgVector &sigma)
 
void processConstraint (double o_c, double sigma)
 
void finisRun ()
 
void prepareStochasticSolution4Epoch (const SgMJD &, QList< SgParameter * > *)
 
void clearPartials ()
 
double calcAX (const SgMJD &, bool)
 
double calc_aT_P_a (const SgMJD &)
 
double calc_aT_P_a_opt (const SgMJD &)
 
double calc_aT_P_a_opt (const SgMJD &, const QList< SgParameter * > &)
 
double maxConditionNumber () const
 

Static Public Member Functions

static const QString className ()
 

Private Member Functions

void dataUpdate ()
 
void dataUpdate_th ()
 
void propagateStochasticParameters (double)
 
void propagateStochasticParameters_th (double)
 
void solveStochasticParameters ()
 
void save4Smoothing (const SgMJD &)
 
void saveProcessedParameters (const SgMJD &)
 
void insertNewParameters (const SgMJD &)
 
void deployArcParameters (const SgMJD &, const SgMJD &, const SgMJD &)
 
void propagateArcPartials (const SgMJD &)
 
void deployPwlParameters (const SgMJD &, const SgMJD &, const SgMJD &)
 
void propagatePwlPartials (const SgMJD &)
 
void calcPwlTraces (const QList< SgParameter * > *listX, const SgSymMatrix &mPx)
 
void collectDependentInfArray (const RPCarrier &, SgVector *, SgSymMatrix *)
 
void prepareRegSolution4Epoch (const SgMJD &, QList< SgParameter * > *)
 
void submittSolution2GlobalStore (SgSymMatrix *, QList< SgParameter * > *, SgMatrix *=NULL, QList< SgParameter * > *=NULL)
 
SgVectorsolveEquation (const SgUtMatrix &R, SgVector &x, const SgVector &z)
 
SgSymMatrixcalculateRRT (SgSymMatrix &, const SgUtMatrix &)
 
SgSymMatrix calcQForm (const SgSymMatrix &, const SgMatrix &)
 
SgSymMatrix calcQForm (const SgSymMatrix &, const SgUtMatrix &)
 
void calcConditionNumber (const SgUtMatrix &R, const SgUtMatrix &RInv)
 

Private Attributes

SgTaskConfigconfig_
 
SgMJD tLastProcessed_
 
SgMJD tNextLeft_
 
SgMJD tNextRight_
 
QList< SgParameter * > * listXAll_
 
SgSymMatrixPxAll_
 
QMap< QString, SgParameter * > * xAllByName_
 
unsigned int nX_
 
QList< SgParameter * > * listX_
 
QMap< QString, SgParameter * > * xByName_
 
SgVectorx_
 
SgVectorzx_
 
SgUtMatrixRx_
 
SgSymMatrixPx_
 
QStack< RPCarrierrpStack_
 
unsigned int nP_
 
QList< SgParameter * > * listP_
 
QMap< QString, SgParameter * > * pByName_
 
SgVectorp_
 
SgVectorzp_
 
SgUtMatrixRp_
 
SgMatrixRpx_
 
SgSymMatrixPp_
 
SgMatrixSR_
 
SgUtMatrixRp_s_
 
SgMatrixRpp_s_
 
SgMatrixRpx_s_
 
SgVectorzp_s_
 
QStack< SmoothCarrierscStack_
 
QMap< QString, StochasticSolutionCarrierstcSolutions_
 
QList< SgParameter * > * listA_
 
QMap< QString, SgParameter * > * aByName_
 
QList< SgArcStorage * > * arcStorage_
 
QList< SgParameter * > * listPwl_
 
QMap< QString, SgParameter * > * pwlParByName_
 
QMap< QString, SgPwlStorage * > * pwlStorageByName_
 
QList< SgPwlStorage * > * pwlStorage_
 
unsigned int nZ_
 
SgVectorz_
 
SgMatrixAp_
 
SgMatrixAx_
 
SgVectoru_
 
int numOfProcessedObs_
 
double maxConditionNumber_
 
int numOfThreads_
 
pthread_attr_t pthreadAttr_
 
SgMatrixu4pth_
 
struct arg4Prc_01args4Prc_01_
 
pthread_t * th4Prc_01_
 
pthread_mutex_t * pthMutexes4Prc_01_
 
pthread_mutex_t pthMutL4Prc_01_
 
int lastPrcColumn4Prc_01_
 
struct arg4Prc_02args4Prc_02_
 
pthread_t * th4Prc_02_
 
pthread_mutex_t * pthMutexes4Prc_02_
 
pthread_mutex_t pthMutL4Prc_02_
 
int lastPrcColumn4Prc_02_
 
SgMJD tWall0_
 
SgMJD tWall_
 
SgMJD tWall4ProcObs0_
 
SgMJD tWall4ProcObs_
 
double time4DataUpdate_
 
double time4PropagateStc_
 
double time4SaveStc_
 
double time4ProcObs_
 

Detailed Description

SgEstimator – an estimator. ====================================================================================================

Definition at line 64 of file SgEstimator.h.

Constructor & Destructor Documentation

◆ SgEstimator()

◆ ~SgEstimator()

Member Function Documentation

◆ addParameter()

◆ addParametersList()

◆ allRegularParametersList()

QList< SgParameter * > * SgEstimator::allRegularParametersList ( )
inline

Definition at line 380 of file SgEstimator.h.

References listXAll_.

Referenced by SgSolutionReporter::absorbInfo(), and SgSingleSessionTaskManager::run().

◆ arcStorage()

QList< SgArcStorage * > * SgEstimator::arcStorage ( )
inline

Definition at line 420 of file SgEstimator.h.

References arcStorage_.

Referenced by SgSolutionReporter::absorbInfo().

◆ calc_aT_P_a()

double SgEstimator::calc_aT_P_a ( const SgMJD t)

◆ calc_aT_P_a_opt() [1/2]

◆ calc_aT_P_a_opt() [2/2]

◆ calcAX()

double SgEstimator::calcAX ( const SgMJD t,
bool  isWorkingBand 
)

◆ calcConditionNumber()

void SgEstimator::calcConditionNumber ( const SgUtMatrix R,
const SgUtMatrix RInv 
)
private

◆ calcPwlTraces()

void SgEstimator::calcPwlTraces ( const QList< SgParameter * > *  listX,
const SgSymMatrix mPx 
)
private

Definition at line 2870 of file SgEstimator.cpp.

References pwlStorage_.

Referenced by finisRun().

◆ calcQForm() [1/2]

◆ calcQForm() [2/2]

◆ calculateRRT()

SgSymMatrix & SgEstimator::calculateRRT ( SgSymMatrix M,
const SgUtMatrix R 
)
private

◆ className()

◆ clearPartials()

void SgEstimator::clearPartials ( )

Definition at line 2725 of file SgEstimator.cpp.

References listA_, listP_, listPwl_, listXAll_, and nP_.

Referenced by SgVlbiObservation::evaluateResiduals().

◆ collectDependentInfArray()

◆ dataUpdate()

◆ dataUpdate_th()

◆ deployArcParameters()

void SgEstimator::deployArcParameters ( const SgMJD tFirst,
const SgMJD tLast,
const SgMJD tRefer 
)
private

◆ deployPwlParameters()

◆ finisRun()

◆ insertNewParameters()

◆ listPwl()

QList< SgParameter * > * SgEstimator::listPwl ( )
inline

Definition at line 396 of file SgEstimator.h.

References listPwl_.

◆ maxConditionNumber()

double SgEstimator::maxConditionNumber ( ) const
inline

◆ mPall()

SgSymMatrix * SgEstimator::mPall ( )
inline

Definition at line 428 of file SgEstimator.h.

References PxAll_.

Referenced by SgSolutionReporter::absorbInfo().

◆ numOfProcessedObs()

int SgEstimator::numOfProcessedObs ( ) const
inline

Definition at line 108 of file SgEstimator.h.

References numOfProcessedObs_.

Referenced by SgSingleSessionTaskManager::run().

◆ prepare2Run()

void SgEstimator::prepare2Run ( int  numOfExpectedObs,
const SgMJD tFirst,
const SgMJD tLast,
const SgMJD tRefer 
)

Prepares the local structures to run process of estimation.

Parameters
numOfExpectedObs– a size of the batch (usually, == number of expected observations).

Definition at line 844 of file SgEstimator.cpp.

References aByName_, Ap_, args4Prc_01_, args4Prc_02_, SgParameter::Attr_IS_SOLVED, Ax_, SgMatrix::base(), SgVector::base(), className(), SgLogger::DBG, SgAttribute::delAttr(), deployArcParameters(), deployPwlParameters(), SgLogger::ERR, SgLogger::ESTIMATOR, SgParameter::getTLeft(), SgParameter::getTRight(), lastPrcColumn4Prc_01_, lastPrcColumn4Prc_02_, arg4Prc_01::lastPrcColumn_, arg4Prc_02::lastPrcColumn_, lessThan4_ParameterByNameSortingOrder(), lessThan4_ParameterByTLeftSortingOrder(), lessThan4_ParameterByTRightSortingOrder(), SgEstimator::StochasticSolutionCarrier::list_, listA_, listP_, listPwl_, listX_, listXAll_, logger, maxConditionNumber_, nP_, numOfProcessedObs_, numOfThreads_, nX_, nZ_, SgEstimator::StochasticSolutionCarrier::P_, pByName_, arg4Prc_01::pU_, arg4Prc_02::pU_, pwlParByName_, PxAll_, arg4Prc_01::pZ_, arg4Prc_02::pZ_, Rp_, Rp_s_, Rpp_s_, rpStack_, Rpx_, Rpx_s_, Rx_, scStack_, SgUtMatrix::setElement(), SgParameter::setIdx(), SR_, stcSolutions_, th4Prc_01_, th4Prc_02_, arg4Prc_01::thread_, arg4Prc_02::thread_, time4DataUpdate_, time4ProcObs_, time4PropagateStc_, time4SaveStc_, tLastProcessed_, tNextLeft_, tNextRight_, tZero, u4pth_, u_, SgLogger::write(), SgEstimator::StochasticSolutionCarrier::x_, xAllByName_, z_, zp_, zp_s_, and zx_.

Referenced by SgVlbiSession::calculateClockBreakParameter(), SgVlbiSession::calculateClockBreaksParameters(), SgSolutionReporter::evaluateUsedErpApriori(), SgVlbiSession::resolveGrAmbigTriangles(), SgSingleSessionTaskManager::run(), and SgTaskManager::run().

◆ prepareRegSolution4Epoch()

void SgEstimator::prepareRegSolution4Epoch ( const SgMJD ,
QList< SgParameter * > *   
)
private

◆ prepareStochasticSolution4Epoch()

void SgEstimator::prepareStochasticSolution4Epoch ( const SgMJD t,
QList< SgParameter * > *  stcPars 
)

◆ processConstraint()

◆ processObs()

◆ propagateArcPartials()

void SgEstimator::propagateArcPartials ( const SgMJD t)
private

Definition at line 2852 of file SgEstimator.cpp.

References arcStorage_.

Referenced by calc_aT_P_a(), calc_aT_P_a_opt(), and processObs().

◆ propagatePwlPartials()

void SgEstimator::propagatePwlPartials ( const SgMJD t)
private

Definition at line 2861 of file SgEstimator.cpp.

References pwlStorage_.

Referenced by calc_aT_P_a(), calc_aT_P_a_opt(), processConstraint(), and processObs().

◆ propagateStochasticParameters()

◆ propagateStochasticParameters_th()

void SgEstimator::propagateStochasticParameters_th ( double  dT)
private

◆ pwlStorage()

QList< SgPwlStorage * > * SgEstimator::pwlStorage ( )
inline

Definition at line 404 of file SgEstimator.h.

References pwlStorage_.

Referenced by SgSolutionReporter::absorbInfo().

◆ pwlStorageByName()

QMap< QString, SgPwlStorage * > * SgEstimator::pwlStorageByName ( )
inline

Definition at line 412 of file SgEstimator.h.

References pwlStorageByName_.

Referenced by SgTaskManager::constrainClocks().

◆ regularParametersList()

QList< SgParameter * > * SgEstimator::regularParametersList ( )
inline

Definition at line 373 of file SgEstimator.h.

References listX_.

◆ removeParameter()

◆ removeParametersList()

void SgEstimator::removeParametersList ( QList< SgParameter * > *  l)

Removes a list of parameters from the estimation process.

Definition at line 826 of file SgEstimator.cpp.

References className(), SgLogger::ERR, SgLogger::ESTIMATOR, logger, removeParameter(), and SgLogger::write().

◆ save4Smoothing()

◆ saveProcessedParameters()

◆ solveEquation()

SgVector & SgEstimator::solveEquation ( const SgUtMatrix R,
SgVector x,
const SgVector z 
)
private

◆ solveStochasticParameters()

◆ stcSolutions()

const QMap<QString, StochasticSolutionCarrier>& SgEstimator::stcSolutions ( )
inline

Definition at line 110 of file SgEstimator.h.

References stcSolutions_.

Referenced by SgSolutionReporter::absorbInfo().

◆ stochasticParametersList()

QList< SgParameter * > * SgEstimator::stochasticParametersList ( )
inline

Definition at line 388 of file SgEstimator.h.

References listP_.

Referenced by SgSingleSessionTaskManager::run().

◆ submittSolution2GlobalStore()

Member Data Documentation

◆ aByName_

QMap<QString, SgParameter*>* SgEstimator::aByName_
private

Definition at line 265 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), addParameter(), prepare2Run(), and removeParameter().

◆ Ap_

SgMatrix* SgEstimator::Ap_
private

◆ arcStorage_

QList<SgArcStorage*>* SgEstimator::arcStorage_
private

◆ args4Prc_01_

struct arg4Prc_01* SgEstimator::args4Prc_01_
private

Definition at line 289 of file SgEstimator.h.

Referenced by dataUpdate_th(), finisRun(), and prepare2Run().

◆ args4Prc_02_

struct arg4Prc_02* SgEstimator::args4Prc_02_
private

Definition at line 295 of file SgEstimator.h.

Referenced by dataUpdate_th(), finisRun(), and prepare2Run().

◆ Ax_

◆ config_

SgTaskConfig* SgEstimator::config_
private

Definition at line 216 of file SgEstimator.h.

Referenced by SgEstimator(), and deployPwlParameters().

◆ lastPrcColumn4Prc_01_

int SgEstimator::lastPrcColumn4Prc_01_
private

Definition at line 293 of file SgEstimator.h.

Referenced by dataUpdate_th(), and prepare2Run().

◆ lastPrcColumn4Prc_02_

int SgEstimator::lastPrcColumn4Prc_02_
private

Definition at line 299 of file SgEstimator.h.

Referenced by dataUpdate_th(), and prepare2Run().

◆ listA_

◆ listP_

◆ listPwl_

◆ listX_

◆ listXAll_

◆ maxConditionNumber_

double SgEstimator::maxConditionNumber_
private

Definition at line 282 of file SgEstimator.h.

Referenced by SgEstimator(), calcConditionNumber(), maxConditionNumber(), and prepare2Run().

◆ nP_

◆ numOfProcessedObs_

int SgEstimator::numOfProcessedObs_
private

◆ numOfThreads_

int SgEstimator::numOfThreads_
private

◆ nX_

◆ nZ_

unsigned int SgEstimator::nZ_
private

◆ p_

SgVector* SgEstimator::p_
private

Definition at line 242 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), and solveStochasticParameters().

◆ pByName_

QMap<QString, SgParameter*>* SgEstimator::pByName_
private

Definition at line 241 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), addParameter(), prepare2Run(), and removeParameter().

◆ Pp_

SgSymMatrix* SgEstimator::Pp_
private

Definition at line 246 of file SgEstimator.h.

Referenced by SgEstimator(), and solveStochasticParameters().

◆ pthMutexes4Prc_01_

pthread_mutex_t* SgEstimator::pthMutexes4Prc_01_
private

Definition at line 291 of file SgEstimator.h.

Referenced by dataUpdate_th().

◆ pthMutexes4Prc_02_

pthread_mutex_t* SgEstimator::pthMutexes4Prc_02_
private

Definition at line 297 of file SgEstimator.h.

Referenced by dataUpdate_th().

◆ pthMutL4Prc_01_

pthread_mutex_t SgEstimator::pthMutL4Prc_01_
private

Definition at line 292 of file SgEstimator.h.

Referenced by dataUpdate_th().

◆ pthMutL4Prc_02_

pthread_mutex_t SgEstimator::pthMutL4Prc_02_
private

Definition at line 298 of file SgEstimator.h.

Referenced by dataUpdate_th().

◆ pthreadAttr_

pthread_attr_t SgEstimator::pthreadAttr_
private

Definition at line 286 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), and dataUpdate_th().

◆ pwlParByName_

QMap<QString, SgParameter*>* SgEstimator::pwlParByName_
private

Definition at line 269 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), addParameter(), prepare2Run(), and removeParameter().

◆ pwlStorage_

◆ pwlStorageByName_

QMap<QString, SgPwlStorage*>* SgEstimator::pwlStorageByName_
private

◆ Px_

SgSymMatrix* SgEstimator::Px_
private

Definition at line 234 of file SgEstimator.h.

Referenced by SgEstimator(), finisRun(), and solveStochasticParameters().

◆ PxAll_

◆ Rp_

◆ Rp_s_

◆ Rpp_s_

◆ rpStack_

QStack<RPCarrier> SgEstimator::rpStack_
private

Definition at line 235 of file SgEstimator.h.

Referenced by finisRun(), prepare2Run(), and saveProcessedParameters().

◆ Rpx_

◆ Rpx_s_

◆ Rx_

◆ scStack_

QStack<SmoothCarrier> SgEstimator::scStack_
private

Definition at line 253 of file SgEstimator.h.

Referenced by prepare2Run(), save4Smoothing(), and solveStochasticParameters().

◆ SR_

◆ stcSolutions_

QMap<QString, StochasticSolutionCarrier> SgEstimator::stcSolutions_
private

◆ th4Prc_01_

pthread_t* SgEstimator::th4Prc_01_
private

Definition at line 290 of file SgEstimator.h.

Referenced by dataUpdate_th(), finisRun(), and prepare2Run().

◆ th4Prc_02_

pthread_t* SgEstimator::th4Prc_02_
private

Definition at line 296 of file SgEstimator.h.

Referenced by dataUpdate_th(), finisRun(), and prepare2Run().

◆ time4DataUpdate_

double SgEstimator::time4DataUpdate_
private

Definition at line 308 of file SgEstimator.h.

Referenced by finisRun(), prepare2Run(), processConstraint(), and processObs().

◆ time4ProcObs_

double SgEstimator::time4ProcObs_
private

Definition at line 311 of file SgEstimator.h.

Referenced by prepare2Run(), and processObs().

◆ time4PropagateStc_

double SgEstimator::time4PropagateStc_
private

Definition at line 309 of file SgEstimator.h.

Referenced by prepare2Run(), and processObs().

◆ time4SaveStc_

double SgEstimator::time4SaveStc_
private

Definition at line 310 of file SgEstimator.h.

Referenced by prepare2Run(), and processObs().

◆ tLastProcessed_

SgMJD SgEstimator::tLastProcessed_
private

Definition at line 219 of file SgEstimator.h.

Referenced by prepare2Run(), processObs(), and solveStochasticParameters().

◆ tNextLeft_

SgMJD SgEstimator::tNextLeft_
private

◆ tNextRight_

SgMJD SgEstimator::tNextRight_
private

◆ tWall0_

SgMJD SgEstimator::tWall0_
private

Definition at line 303 of file SgEstimator.h.

Referenced by finisRun(), processConstraint(), processObs(), and solveStochasticParameters().

◆ tWall4ProcObs0_

SgMJD SgEstimator::tWall4ProcObs0_
private

Definition at line 305 of file SgEstimator.h.

Referenced by processObs().

◆ tWall4ProcObs_

SgMJD SgEstimator::tWall4ProcObs_
private

Definition at line 306 of file SgEstimator.h.

Referenced by processObs().

◆ tWall_

SgMJD SgEstimator::tWall_
private

Definition at line 304 of file SgEstimator.h.

Referenced by finisRun(), processConstraint(), and processObs().

◆ u4pth_

SgMatrix* SgEstimator::u4pth_
private

Definition at line 287 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), finisRun(), and prepare2Run().

◆ u_

◆ x_

SgVector* SgEstimator::x_
private

Definition at line 231 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), finisRun(), and solveStochasticParameters().

◆ xAllByName_

QMap<QString, SgParameter*>* SgEstimator::xAllByName_
private

Definition at line 226 of file SgEstimator.h.

Referenced by SgEstimator(), ~SgEstimator(), addParameter(), prepare2Run(), and removeParameter().

◆ xByName_

QMap<QString, SgParameter*>* SgEstimator::xByName_
private

Definition at line 230 of file SgEstimator.h.

Referenced by SgEstimator(), and ~SgEstimator().

◆ z_

◆ zp_

◆ zp_s_

◆ zx_


The documentation for this class was generated from the following files: