44 return "SgTaskManager";
109 ": preparing to run the task");
154 "::run(): data analysis procerure initiated");
158 int nDataTypes(useDelays && useRates?2:1);
174 ": data analysis procerure finished");
176 ": elapsed time for the task " +
" is: " +
interval2Str(finisDate - startDate) +
177 " (" + QString(
"").sprintf(
"%.2f", finisDate - startDate) +
" sec)");
195 ": the task is finished");
225 ": the list of global parameters (" + QString(
"_").setNum(
globalParameters_->size()) +
226 ") has been created");
234 ": the list of arc parameters (" + QString(
"_").setNum(
arcParameters_->size()) +
235 ") has been created");
244 ": the list of local parameters (" + QString(
"_").setNum(
localParameters_->size()) +
245 ") has been created");
254 ": the list of `picewise linear' parameters (" + QString(
"_").setNum(
pwlParameters_->size()) +
255 ") has been created");
265 ") has been created");
275 for (
int i=0; i<list->size(); i++)
332 list->append(pb->
pA0());
336 "::fillParameterList: an attempt to register clock break parameter for station " +
337 si->
getKey() +
" with turned off clocks");
341 list->append(pb->
pA1());
346 list->append(pb->
pA2());
376 list->append(si->
pRx());
377 list->append(si->
pRy());
378 list->append(si->
pRz());
401 list->append(si->
pRA());
402 list->append(si->
pDN());
462 for (
int i=0; i<si->
sModel().size(); i++)
464 if (si->
sModel()[i].getEstimateRatio())
467 list->append(si->
sModel()[i].pK());
471 if (si->
sModel()[i].getEstimateSpIdx())
474 list->append(si->
sModel()[i].pB());
478 if (si->
sModel()[i].getEstimatePosition())
482 list->append(si->
sModel()[i].pX());
483 list->append(si->
sModel()[i].pY());
503 list->append(bi->
pClock());
512 list->append(bi->
pBx());
513 list->append(bi->
pBy());
514 list->append(bi->
pBz());
559 for (
int i=0; i<list->size(); i++)
570 int numOfConstrainedClocks, numOfConstrains;
572 numOfConstrainedClocks = numOfConstrains = 0;
616 ": the PWL container is NULL: station " + si->
getKey());
619 numOfConstrainedClocks++;
621 ": the clocks of the station " + si->
getKey() +
" have been constrained");
624 if (!numOfConstrainedClocks)
628 ", the solution could fail");
630 if (numOfConstrainedClocks>1)
632 ": more than one station has been used as a 'reference clocks' on the session " +
634 return numOfConstrains;
643 int numOfConstrains=0;
653 key = bi->
getKey().mid(0, 8);
656 key = bi->
getKey().mid(9, 8);
665 si_2->pZenithDelay()->setD(-1.0);
669 ": the trpospheric parameters of the stations " + si_1->
getKey() +
" and " +
670 si_2->getKey() +
" have been binded");
677 ": cannot find in the map the first station of the baseline " + bi->
getKey());
680 ": cannot find in the map the second station of the baseline " + bi->
getKey());
684 return numOfConstrains;
692 int numOfConstrains=0;
693 double sigma = 1.0E-9;
701 stations4constraints.append(si);
704 if (!stations4constraints.size())
710 for (
int i=0; i<stations4constraints.size(); i++)
715 ": TRF No-Net-Translation of Positions Constraints: (X-coord) of the station [" +
721 for (
int i=0; i<stations4constraints.size(); i++)
726 ": TRF No-Net-Translation of Positions Constraints: (Y-coord) of the station [" +
732 for (
int i=0; i<stations4constraints.size(); i++)
737 ": TRF No-Net-Translation of Positions Constraints: (Z-coord) of the station [" +
742 return numOfConstrains;
751 int numOfConstrains=0;
760 stations4constraints.append(si);
763 if (!stations4constraints.size())
770 for (
int i=0; i<stations4constraints.size(); i++)
777 ": TRF No-Net-Rotation of Positions Constraints: (X-coord) of the station [" +
783 for (
int i=0; i<stations4constraints.size(); i++)
790 ": TRF No-Net-Rotation of Positions Constraints: (Y-coord) of the station [" +
796 for (
int i=0; i<stations4constraints.size(); i++)
803 ": TRF No-Net-Rotation of Positions Constraints: (Z-coord) of the station [" +
809 return numOfConstrains;
919 int numOfConstrains=0;
928 sources4constraints.append(si);
931 if (!sources4constraints.size())
935 double s_ra=0.0, c_ra=0.0, s_dn=0.0, c_dn=0.0;
937 for (
int i=0; i<sources4constraints.size(); i++)
940 sincos(si->
getRA(), &s_ra, &c_ra);
941 sincos(si->
getDN(), &s_dn, &c_dn);
943 si->
pRA()->
setD(-s_dn*c_dn*c_ra);
945 ": CRF No Net Source Rotation Position Constraints (1): used the source [" +
951 for (
int i=0; i<sources4constraints.size(); i++)
955 sincos(si->
getRA(), &s_ra, &c_ra);
956 sincos(si->
getDN(), &s_dn, &c_dn);
958 si->
pRA()->
setD(s_dn*c_dn*s_ra);
961 ": CRF No Net Source Rotation Position Constraints (2): used the source [" +
967 for (
int i=0; i<sources4constraints.size(); i++)
970 c_dn = cos(si->
getDN());
974 ": CRF No Net Source Rotation Position Constraints (3): used the source [" +
979 return numOfConstrains;
987 int numOfConstrains=0;
1017 return numOfConstrains;
QString interval2Str(double days)
#define SEC2RAD
radians to arc seconds:
bool lessThan4_ParameterByNameSortingOrder(SgParameter *p1, SgParameter *p2)
QMap< QString, SgVlbiBaselineInfo * >::iterator BaselinesByName_it
bool lessThan4_FirstEpochSortingOrder(SgVlbiSessionInfo *si1, SgVlbiSessionInfo *si2)
QMap< QString, SgVlbiSessionInfo * >::iterator SessionInfosByName_it
QMap< QString, SgVlbiSourceInfo * >::iterator SourcesByName_it
QMap< QString, SgVlbiStationInfo * >::iterator StationsByName_it
double at(DIRECTION i) const
bool isAttr(uint a) const
void prepare2Run(int numOfExpectedObs, const SgMJD &, const SgMJD &, const SgMJD &)
void processConstraint(double o_c, double sigma)
void processObs(const SgMJD &t, const SgVector &o_c, const SgVector &sigma)
QMap< QString, SgPwlStorage * > * pwlStorageByName()
virtual void write(LogLevel, quint32, const QString &, bool=false)
static SgMJD currentMJD()
const QString & getKey() const
virtual void prepare4Analysis(SgTaskManager *)=0
virtual const SgVector & o_c()=0
virtual const SgVector & sigma()=0
virtual bool isEligible(const SgTaskConfig *)
virtual const SgMJD & getMJD() const
@ Attr_DYNAMIC
parameters supposed to be estimated during the common solution;
void setNumOfPolynomials(int)
void tune(const SgParameterCfg &)
SgParameterCfg::PMode getPMode() const
const SgParameterCfg & getBlClock() const
SgParameterCfg::PMode getClock1Mode() const
const SgParameterCfg & getClock1() const
const SgParameterCfg & getZenith() const
const SgParameterCfg & getAxisOffset() const
const SgParameterCfg & getPolusUT1Rate() const
const SgParameterCfg & getSrcSsm() const
const SgParameterCfg & getSrcCoo() const
SgParameterCfg::PMode getPolusXYMode() const
const SgParameterCfg & getPolusNutRate() const
SgParameterCfg::PMode getPolusXYRateMode() const
const SgParameterCfg & getBlLength() const
SgParameterCfg::PMode getSrcSsmMode() const
const SgParameterCfg & getAtmGrad() const
SgParameterCfg::PMode getStnCooMode() const
SgParameterCfg::PMode getPolusNutMode() const
const SgParameterCfg & getPolusUT1() const
SgParameterCfg::PMode getClock0Mode() const
const SgParameterCfg & getPolusXY() const
SgParameterCfg::PMode getAxisOffsetMode() const
SgParameterCfg::PMode getPolusNutRateMode() const
const SgParameterCfg & getPolusNut() const
const SgParameterCfg & getClock0() const
SgParameterCfg::PMode getZenithMode() const
SgParameterCfg::PMode getBlLengthMode() const
SgParameterCfg::PMode getPolusUT1RateMode() const
SgParameterCfg::PMode getAtmGradMode() const
const SgParameterCfg & getPolusXYRate() const
SgParameterCfg::PMode getSrcCooMode() const
const SgParameterCfg & getStnCoo() const
SgParameterCfg::PMode getPolusUT1Mode() const
SgParameterCfg::PMode getBlClockMode() const
const QString & getName() const
int getNumOfPolynomials() const
SgParameter * getP_Ai(int)
VlbiDelayType getUseDelayType() const
VlbiRateType getUseRateType() const
bool getHave2ApplySourceSsm() const
void updateParamaterLists()
QList< SgObservation * > * observations_
QList< SgParameter * > * localParameters_
QList< SgParameter * > * arcParameters_
int constrainTroposphericParameters()
virtual void run(bool=true)
SgVlbiSession * currentSession_
int constrainStcPositionsNNR()
int constrainStcPositionsNNT()
void loadVlbiSession(const QString &)
QList< SgParameter * > * pwlParameters_
QList< SgParameter * > * globalParameters_
int constrainSourcesPositions()
virtual const QString className()
SgRefraction * refraction_
virtual bool prepare4Run()
QList< SgParameter * > * stochasticParameters_
int constrainSourcesTmp()
void fillParameterList(QList< SgParameter * > *&, SgParameterCfg::PMode)
SgParametersDescriptor * parameters()
SessionInfosByName & sessionsByName()
@ Attr_ESTIMATE_CLOCKS
estimate baseline clocks;
@ Attr_NOT_VALID
omit the baseline;
@ Attr_BIND_TROPOSPHERE
the troposphere parameters should be tied between the stations;
const QString & getName() const
@ Attr_NOT_VALID
omit the session;
QMap< QString, SgVlbiStationInfo * > & stationsByName()
SgParameter * pPolusYRate()
const SgMJD & tRefer() const
SgParameter * pNutYRate()
SgParameter * pPolusXRate()
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
SgParameter * pNutXRate()
QMap< QString, SgVlbiBaselineInfo * > & baselinesByName()
bool getIsSsModelEstimating() const
QList< StructModelMp > & sModel()
void setIsSsModelEstimating(bool is)
@ Attr_APPLY_SSM
apply the source structure model;
@ Attr_CONSTRAIN_COO
constrain source position in estimation;
@ Attr_NOT_VALID
omit the source;
@ Attr_ESTIMATE_COO
estimate source position;
SgParameter * pAtmGradN()
@ Attr_ESTIMATE_AXO
estimate axis offset;
@ Attr_NOT_VALID
omit the station;
@ Attr_CONSTRAIN_COO
constrain station position in estimation;
@ Attr_REFERENCE_CLOCKS
the clocks are the reference ones;
@ Attr_DONT_ESTIMATE_TRPS
do not estimate parameters of troposphere delay for station;
@ Attr_ESTIMATE_COO
estimate station position;
@ Attr_USE_LOCAL_ZENITH
use its own setup for the zenith delay parameter;
@ Attr_USE_LOCAL_CLOCKS
use its own setup for the clock parameter;
const SgParameterCfg & getPcClocks() const
const Sg3dVector & getR()
SgParameter * pClocks(int i)
const SgParameterCfg & getPcZenith() const
SgParameter * pAtmGradE()
SgParameter * pZenithDelay()
SgBreakModel & clockBreaks()
int getClocksModelOrder() const
SgParameter * pAxisOffset()