43 return "SgSingleSessionTaskManager";
52 "::prepare4Run(): preparing to run the task");
67 "::prepare4Run(): there is no VLBI session to process");
72 "::prepare4Run(): too many sessions in the task");
79 "::prepare4Run(): the current sessionInfo object has been adjusted");
85 "::prepare4Run(): the current session object is not defined");
93 "::prepare4Run(): the pointer on observations is NULL");
99 "::prepare4Run(): there is no any observations in the container of observations");
130 "::prepare4Run(): clocks have been reset for " + si->
getKey());
157 "::run(): data analysis procedure initiated",
true);
174 int nDataTypes(useDelays && useRates?2:1);
203 eligibleObservations << obs;
212 (*longOperationStart_)(0, eligibleObservations.size(),
"Processing observations");
213 for (obsIdx=0; obsIdx<eligibleObservations.size(); obsIdx++)
238 (*longOperationStop_)();
239 eligibleObservations.clear();
247 "::run(): the solution is obtained, starting evaluation of residuals and statistics",
true);
319 if (!isRoughAnalysis && sni->numProcessed(
DT_DELAY)<4 &&
324 "::run(): the station " + sni->getKey() +
325 " was deselected from the solution due to a small number of observations");
336 double ra(sni->getRA()), dn(sni->getDN());
339 ra = sni->getRA_ea();
340 dn = sni->getDN_ea();
343 ra+sni->pRA()->getSolution(), dn+sni->pDN()->getSolution()));
352 if (isNeedReweighting &&
357 bni->copySigmas2add(bi);
361 if (!useRates && bni->getSigma2add(
DT_RATE)==0.0)
362 bni->setSigma2add(
DT_RATE, 100.0e-15);
364 bni->copyStatistics(bi);
366 if (!isRoughAnalysis && bni->numProcessed(
DT_DELAY)<4 &&
371 "::run(): the baseline " + bni->getKey() +
372 " was deselected from the solution due to a small number of observations");
441 for (
int i=0; i<si->
sModel().size(); i++)
450 si->
sModel()[i].setKsig(si->
sModel()[i].pK()->getSigma());
451 si->
sModel()[i].setBsig(si->
sModel()[i].pB()->getSigma());
452 si->
sModel()[i].setXsig(si->
sModel()[i].pX()->getSigma());
453 si->
sModel()[i].setYsig(si->
sModel()[i].pY()->getSigma());
456 "::run(): aux parameters for " + si->
getKey() +
457 QString(
"").sprintf(
": X=%.4f (%.4f) Y=%.4f (%.4f) K=%.4f (%.4f) B=%.4f (%.4f) %.3f(ps)",
463 si->
sModel()[i].getKsig(),
465 si->
sModel()[i].getBsig(),
477 if (isNeedReweighting)
487 const char* obsTypeNames[]=
488 {
"None",
"Single Band Delays",
"Group Delays",
"Phase Delays"};
490 "::run(): data analysis procedure finished",
true);
492 "::run(): " + QString(
"").sprintf(
"%d observables were reduced to %d parameters",
498 QString(
"").sprintf(
"(%d/%d/%d) observations of %s on the %s-Band were processed",
503 qPrintable(band->
getKey())),
true);
506 QString(
"").sprintf(
"WRMS= %.2fps with reduced chi2=%.4f, Tmean = ",
517 QString(
"").sprintf(
"(%d/%d/%d) observations of Delay Rates on the %s-Band were processed",
521 qPrintable(band->
getKey())),
true);
524 QString(
"").sprintf(
"WRMS= %.2ffs/s with reduced chi2=%.4f, Tmean = ",
530 "::run(): " + QString(
"").sprintf(
"the largest condition number of the working matrix is %.6E",
533 "::run(): elapsed time for the task is: " +
569 "::finisRun(): ==== baseline length aux. report ====");
594 b_apriori = (s2->
getR() - s1->
getR());
605 str.sprintf(
"length a priori: %14.2f (mm) a posteriori: %14.2f (mm)"
606 " change in length: %10.2f (mm)",
607 l_apriori*1000.0, l*1000.0, (l-l_apriori)*1000.0);
609 "::finisRun(): Baseline " + blName +
": " + str +
614 "::finisRun(): a station pointer is NULL");
620 "::finisRun(): ==== end of aux report ====");
633 "::finisRun(): the task is finished");
646 "::updateParamaterLists(): the list of global parameters (" +
654 "::updateParamaterLists(): the list of arc parameters (" +
655 QString(
"_").setNum(
arcParameters_->size()) +
") has been created");
663 "::updateParamaterLists(): the list of local parameters (" +
672 "::updateParamaterLists(): the list of `picewise linear' parameters (" +
673 QString(
"_").setNum(
pwlParameters_->size()) +
") has been created");
681 "::updateParamaterLists(): the list of stochastic parameters (" +
QString interval2Str(double days)
#define RAD2MAS
radians to ms:
QMap< QString, SgVlbiBaselineInfo * >::iterator BaselinesByName_it
QMap< QString, SgVlbiSourceInfo * >::iterator SourcesByName_it
QMap< QString, SgVlbiStationInfo * >::iterator StationsByName_it
const SgMJD & getT0() const
bool isAttr(uint a) const
double maxConditionNumber() const
int numOfProcessedObs() const
void prepareStochasticSolution4Epoch(const SgMJD &, QList< SgParameter * > *)
void addParametersList(QList< SgParameter * > *, bool=false)
void prepare2Run(int numOfExpectedObs, const SgMJD &, const SgMJD &, const SgMJD &)
QList< SgParameter * > * stochasticParametersList()
QList< SgParameter * > * allRegularParametersList()
void processObs(const SgMJD &t, const SgVector &o_c, const SgVector &sigma)
virtual void write(LogLevel, quint32, const QString &, bool=false)
@ F_Simple
Digits: 2010/04/02 17:02:43.6.
QString toString(Format format=F_Verbose) const
static SgMJD currentMJD()
void calcNormalizedResiduals(const QList< SgVlbiObservable * > &observables, const SgTaskConfig *cfg)
const QString & getKey() const
int numProcessed(DataType dType) const
void recalcSigma2add(const SgTaskConfig *cfg)
int numUsable(DataType) const
double dof(DataType) const
void copyStatistics(SgObjectInfo *)
double wrms(DataType) const
int numTotal(DataType dType) const
double reducedChi2(DataType) const
virtual void prepare4Analysis(SgTaskManager *)=0
virtual void evaluateResiduals(SgTaskManager *)=0
virtual const SgVector & o_c()=0
virtual const SgVector & sigma()=0
virtual bool isEligible(const SgTaskConfig *)
virtual void evaluateTheoreticalValues(SgTaskManager *)=0
@ Attr_PROCESSED
the observation has been processed;
double getSolution() const
@ Attr_IS_SOLVED
for estimator use
SgParameterCfg::PMode getPolusXYMode() const
SgParameterCfg::PMode getStnCooMode() const
SgParameterCfg::PMode getClock0Mode() const
SgParameterCfg::PMode getZenithMode() const
SgParameterCfg::PMode getBlLengthMode() const
SgParameterCfg::PMode getSrcCooMode() const
SgParameterCfg::PMode getPolusUT1Mode() const
SgMJD getTMean(const SgMJD &=tZero) const
void updateParamaterLists()
virtual void run(bool=true)
virtual bool prepare4Run()
virtual const QString className()
OutliersProcessingMode getOpMode() const
bool getUseExtAPrioriSitesPositions() const
VlbiDelayType getUseDelayType() const
bool getDoWeightCorrection() const
CableCalSource getFlybyCableCalSource() const
WeightCorrectionMode getWcMode() const
bool getUseExtAPrioriSourcesPositions() const
VlbiRateType getUseRateType() const
void setDataType(VlbiDataType t)
int getActiveBandIdx() const
QList< SgObservation * > * observations_
QList< SgParameter * > * localParameters_
QList< SgParameter * > * arcParameters_
void(* longOperationMessage_)(const QString &message)
void(* longOperationStart_)(int minStep, int maxStep, const QString &message)
void(* longOperationStop_)()
int constrainTroposphericParameters()
void(* longOperationProgress_)(int step)
void(* longOperationShowStats_)(const QString &label, int numTot, int numPrc, double wrms, double chi2)
SgVlbiSession * currentSession_
int constrainStcPositionsNNR()
SgVlbiSessionInfo * currentSessionInfo_
int constrainStcPositionsNNT()
QList< SgParameter * > * pwlParameters_
QList< SgParameter * > * globalParameters_
int constrainSourcesPositions()
SgRefraction * refraction_
QList< SgParameter * > * stochasticParameters_
bool have2InteractWithGui_
void fillParameterList(QList< SgParameter * > *&, SgParameterCfg::PMode)
SgParametersDescriptor * parameters()
SessionInfosByName & sessionsByName()
QMap< QString, SgVlbiBaselineInfo * > & baselinesByName()
QMap< QString, SgVlbiStationInfo * > & stationsByName()
QList< SgVlbiObservable * > & observables()
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
@ Attr_NOT_VALID
omit the baseline;
@ Attr_SKIP_WC
do not make weight corrections for this baseline;
QList< SgVlbiObservable * > & observables()
@ Attr_FF_WEIGHTS_CORRECTED
weights have been corrected;
@ Attr_FF_PHASE_DEL_USED
station clocks or zenith delays were set.
@ Attr_HAS_IONO_CORR
the theoretical values are available;
const SgMJD & getTMean() const
int numberOfBands() const
const SgAPriories & getApStationVelocities() const
QList< SgVlbiBand * > & bands()
void setNumOfConstraints(int n)
QMap< QString, SgVlbiStationInfo * > & stationsByName()
const SgMJD & tRefer() const
void setNumOfParameters(int n)
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
QMap< QString, SgVlbiBaselineInfo * > & baselinesByName()
QList< StructModelMp > & sModel()
static double arcLength(double ra_1, double dn_1, double ra_2, double dn_2)
@ Attr_APPLY_SSM
apply the source structure model;
@ Attr_NOT_VALID
omit the source;
const Sg3dVector & getV_ea()
void setEstWetZenithDelay(double d, double s)
void prepare2Run(SgTaskConfig::CableCalSource src)
@ Attr_NOT_VALID
omit the station;
const Sg3dVector & getR()
void clearEstClockModel()
SgParameter * pClocks(int i)
SgParameter * pZenithDelay()
double getEstWetZenithDelay() const
const Sg3dVector & getR_ea()
void clearEstWetZenithDelay()
int getClocksModelOrder() const
double getEstClockModel(int idx) const
void setEstClockModel(int idx, double d, double s)