27 #include <QtCore/QDataStream>
28 #include <QtCore/QRegExp>
82 corrRootFileName_(
""),
242 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
268 ":addObservable(): the observable for the " + bandKey +
"-band already registered");
284 ":addObservable(): the observable for the " + bandKey +
"-band already registered");
297 QMap<QString, SgVlbiObservable*>::const_iterator it;
315 ": setupIdentities(): cannot find the station #1 (idx= " + QString(
"").setNum(
station1Idx_) +
316 ") in the session's station infos map");
322 ": setupIdentities(): cannot find the station #2 (idx= " + QString(
"").setNum(
station2Idx_) +
323 ") in the session's station infos map");
329 ": setupIdentities(): cannot find the source (idx= " + QString(
"").setNum(
sourceIdx_) +
330 ") in the session's source infos map");
336 ": setupIdentities(): cannot find the baseline (idx= " + QString(
"").setNum(
baselineIdx_) +
337 ") in the session's baseline infos map");
348 ": setupIdentities(): cannot find the auxObs_1 for the scan " +
scanId_ +
", station: " +
357 ": setupIdentities(): cannot find the auxObs_2 for the scan " +
scanId_ +
", station: " +
361 QMap<QString, SgVlbiObservable*>::iterator it;
371 ": setupIdentities(): cannot find the station #1 (idx= " + QString(
"").setNum(
station1Idx_) +
372 ") in the band's station infos map",
true);
378 ": setupIdentities(): cannot find the station #2 (idx= " + QString(
"").setNum(
station2Idx_) +
379 ") in the band's station infos map",
true);
385 ": setupIdentities(): cannot find the source (idx= " + QString(
"").setNum(
sourceIdx_) +
386 ") in the band's source infos map",
true);
392 ": setupIdentities(): cannot find the baseline (idx= " + QString(
"").setNum(
baselineIdx_) +
393 ") in the band's baseline infos map",
true);
404 ": setupIdentities(): cannot find a band (key= " + o->
getBandKey() +
405 ") in the band's map",
true);
416 ": setupIdentities(): a primary observable is NULL. Obs#" + QString(
"").setNum(
mediaIdx_) +
430 QMap<QString, SgVlbiObservable*>::iterator it;
437 ": setupActiveObservable(): cannot find the an active observable for the observation " +
key_ +
438 " at the X-band",
true);
453 QMap<QString, SgVlbiObservable*>::iterator it;
459 double s2add4delay=1.0E-12;
460 double s2add4rate =1.0E-15;
472 s2add4delay = 100.0E-12;
502 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
504 it.value()->checkUsability(cfg);
537 double d1(1.0), d2(1.0), c1(0.0), c2(0.0), b1(0.0), b2(0.0);
580 str.sprintf(
"Added contribution: clock model (ps): %18.2f", (c2 - c1)*1.0e12);
587 double dContrib(0.0), dContribA(0.0), dContribB(0.0);
704 str.sprintf(
"Theoretical delay after contributions (ps): %18.2f",
theoDelay_*1.0e12);
729 str.sprintf(
"Removed contribution: wobble x (ps): %18.2f",
getCalcPxDelay()*1.0e12);
734 str.sprintf(
"Removed contribution: wobble y (ps): %18.2f",
getCalcPyDelay()*1.0e12);
741 str.sprintf(
"Added contribution: ocean loading (ps): %18.2f",
747 str.sprintf(
"Added contribution: old ocean loading (ps): %18.2f",
754 str.sprintf(
"Added contribution: high freq PM (ps): %18.2f", dContribA*1.0e12);
760 str.sprintf(
"Added contribution: high freq UT1 (ps): %18.2f", dContribB*1.0e12);
766 str.sprintf(
"Added contribution: sum high freq EOP (ps): %18.2f", (dContribA + dContribB)*1.0e12);
783 str.sprintf(
"Added contribution: hi freq nutation in PM: %18.2f",
792 str.sprintf(
"Added contribution: libration in PM: %18.2f",
798 str.sprintf(
"Added contribution: libration in UT1: %18.2f",
805 str.sprintf(
"Added contribution: ocean pole tide (ps): %18.2f",
811 str.sprintf(
"Added contribution: old pole tide (ps): %18.2f",
820 double dStnPos(0.0), dSrcPos(0.0), dAxsOfs(0.0);
821 double dMeanGradients(0.0), dExternalErps(0.0);
822 double dEccCor1(0.0), dEccCor2(0.0), dHiFyPm(0.0), dHiFyUt1(0.0);
885 str.sprintf(
"A priori adjustment: stations position (ps): %18.2f", dStnPos*1.0e12);
887 str.sprintf(
"A priori adjustment: source positions (ps): %18.2f", dSrcPos*1.0e12);
889 str.sprintf(
"A priori adjustment: axis offsets (ps): %18.2f", dAxsOfs*1.0e12);
891 str.sprintf(
"A priori adjustment: mean gradients (ps): %18.2f", dMeanGradients*1.0e12);
893 str.sprintf(
"A priori adjustment: eccentricities (ps): %18.2f", (dEccCor1+dEccCor2)*1.0e12);
895 str.sprintf(
"External HiFreq model of ERP: PM (ps): %18.2f", dHiFyPm*1.0e12);
897 str.sprintf(
"External HiFreq model of ERP: UT1(ps): %18.2f", dHiFyUt1*1.0e12);
899 str.sprintf(
"A priori adjustment: sum of all (ps): %18.2f",
907 double dDryZd_1, dDryZd_2, dWetZd_1, dWetZd_2;
908 double dDryMf_1, dDryMf_2, dWetMf_1, dWetMf_2;
909 double rDryMf_1, rDryMf_2, rWetMf_1, rWetMf_2;
954 dContribA = dDryZd_2*dDryMf_2 - dDryZd_1*dDryMf_1;
986 dContribB = dWetZd_2*dWetMf_2 - dWetZd_1*dWetMf_1;
1051 str.sprintf(
"Removed contribution: axis offsets (ps): %18.2f", -dContrib*1.0e12);
1061 str.sprintf(
"Added contribution: unphasecal (ps): %18.2f", dContrib*1.0e12);
1089 str.sprintf(
"Cable calibraiton at %-8s (ps): %18.2f",
1094 str.sprintf(
"Cable calibraiton at %-8s (ps): %18.2f",
1099 str.sprintf(
"Added contribution: cable calibration (ps): %18.2f", dContrib*1.0e12);
1102 str.sprintf(
"Theoretical delay, final (ps): %18.2f",
theoDelay_*1.0e12);
1147 double bandClockBreakShift(0.0), bandClockBreakRate(0.0);
1148 double o_c(0.0), stdDev(0.0);
1214 "::prepare4Analysis(): uknown data type");
1223 str.sprintf(
"Ionospheric group delay (ps): %18.2f",
1227 str.sprintf(
"Ambiguity correction (ps): %18.2f",
1230 str.sprintf(
"Observed group delay (ps): %18.2f",
1234 str.sprintf(
"Resulted O-C (ps): %18.2f",
1288 double sbDelayResidual, grDelayResidual, phDelayResidual, phDRateResidual;
1289 QMap<QString, SgVlbiObservable*>::iterator
1295 double bandClockBreakShift(0.0), bandClockBreakRate(0.0);
1344 str.sprintf(
"GrD: Observation: %18.2f", o->
grDelay().
getValue()*1.0e12);
1346 it.key() +
"-Band " + str);
1349 it.key() +
"-Band " + str);
1352 it.key() +
"-Band " + str);
1353 str.sprintf(
"GrD: Theoretical: %18.2f",
theoDelay_*1.0e12);
1355 it.key() +
"-Band " + str);
1356 str.sprintf(
"GrD: BandClckBrk: %18.2f", bandClockBreakShift*1.0e12);
1358 it.key() +
"-Band " + str);
1361 it.key() +
"-Band " + str);
1364 it.key() +
"-Band " + str);
1365 str.sprintf(
"Group Delay O-C (ps): %s %s %05d %18.2f %18.2f %18.2f",
1367 (grDelayResidual +
sumAX_4delay_)*1.0e12, grDelayResidual*1.0e12,
1370 it.key() +
"-Band " + str);
1375 double appliedSigma, residual, weight;
1382 weight = appliedSigma>0.0 ? 1.0/appliedSigma/appliedSigma : 1.0;
1391 weight = appliedSigma>0.0 ? 1.0/appliedSigma/appliedSigma : 1.0;
1401 double scale_c, scale_z, scale_g;
1478 "::fillPartials(): unexpected data type");
1499 for (
int i=0; i<nCl; i++)
1526 str.sprintf(
"Partials: %-30s: %32.15f",
1529 "::fillPartials4delay(): " + str);
1531 str.sprintf(
"Partials: %-30s: %32.15f",
1534 "::fillPartials4delay(): " + str);
1536 str.sprintf(
"Partials: %-30s: %32.15f",
1539 "::fillPartials4delay(): " + str);
1541 str.sprintf(
"Partials: %-30s: %32.15f",
1544 "::fillPartials4delay(): " + str);
1546 str.sprintf(
"Partials: %-30s: %32.15f",
1549 "::fillPartials4delay(): " + str);
1551 str.sprintf(
"Partials: %-30s: %32.15f",
1554 "::fillPartials4delay(): " + str);
1561 double dWetMf_1, dWetMf_2;
1653 str.sprintf(
"Partials: %-30s: %32.15f or %32.15f",
1658 "::fillPartials4delay(): " + str);
1660 str.sprintf(
"Partials: %-30s: %32.15f or %32.15f",
1665 "::fillPartials4delay(): " + str);
1713 double scl=360.0*3600.0/2.0/M_PI;
1793 activeObs()->getReferenceFrequency()*1.0e6,
1903 for (
int i=1; i<nCl; i++)
1934 double rWetMf_1, rWetMf_2;
2179 str.sprintf(
"Epoch : %s", qPrintable(
toString()));
2181 str.sprintf(
"T0 : %s", qPrintable(t0.
toString()));
2183 str.sprintf(
"difference: %14.8f (days)", dT);
2187 str.sprintf(
"St_1, database positions: %13.4f %13.4f %13.4f",
2192 str.sprintf(
"St_1, e.a.file positions: %13.4f %13.4f %13.4f",
2197 str.sprintf(
"St_1, e.a.file velocity : %13.10f %13.10f %13.10f (mm/yr)",
2202 str.sprintf(
"St_1, e.a.file velocity : %13.10f %13.10f %13.10f (m/d)",
2207 str.sprintf(
"St_1, e.a.position at t : %13.4f %13.4f %13.4f",
2210 str.sprintf(
"St_1, difference db-e.a : %10.7f %10.7f %10.7f",
2215 str.sprintf(
"St_2, database positions: %13.4f %13.4f %13.4f",
2220 str.sprintf(
"St_2, e.a.file positions: %13.4f %13.4f %13.4f",
2225 str.sprintf(
"St_2, e.a.file velocity : %13.10f %13.10f %13.10f (mm/yr)",
2230 str.sprintf(
"St_2, e.a.file velocity : %13.10f %13.10f %13.10f (m/d)",
2236 str.sprintf(
"St_2, e.a.position at t : %13.4f %13.4f %13.4f",
2240 str.sprintf(
"St_2, difference db-e.a : %10.7f %10.7f %10.7f",
2244 str.sprintf(
"Partials, dTau/dSt_1_i: %20.12g %20.12g %20.12g",
2250 str.sprintf(
"Partials, dTau/dSt_2_i: %20.12g %20.12g %20.12g",
2256 str.sprintf(
"Resulted correction (ps): %8.4f", dD*1.0e12);
2323 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2325 it.value()->zerofyIono();
2337 ": calcIonoCorrections(): cannot calculate, number of bands (" +
2343 bool isSimpleMode=(cfg?
false:
true);
2344 bool hasEffFreqs=
true;
2345 double coeff4SB = 0.0;
2346 double coeff4GR = 0.0;
2347 double coeff4GRp= 0.0;
2348 double coeff4PH = 0.0;
2349 double coeff4RT = 0.0;
2350 double sbdQ=0.0, grdQ=0.0, phrQ=0.0;
2362 double sDif, xDif, rDif, pDif;
2364 for (
int i=0; i<2; i++)
2367 corr4SB[i] = corr4GR[i] = corr4PH[i] = corr4RT[i] = sigma4SB[i] = sigma4GR[i] =
2368 sigma4PH[i] = sigma4RT[i] = 0.0;
2398 QMap<double, SgVlbiObservable*>
2400 QMap<QString, SgVlbiObservable*>::iterator
2409 ": calcIonoCorrections(): cannot calculate, the reference frequency is the same for two bands "
2410 " on " + oo->
strId());
2418 hasEffFreqs =
false;
2420 ": calcIonoCorrections(): cannot calculate, the group delay ionosphere effective frequency is "
2421 "zero on " + oo->
strId());
2425 hasEffFreqs =
false;
2427 ": calcIonoCorrections(): cannot calculate, the phase delay ionosphere effective frequency is "
2428 "zero on " + oo->
strId());
2432 hasEffFreqs =
false;
2434 ": calcIonoCorrections(): cannot calculate, the phase rate ionosphere effective frequency is "
2435 "zero on " + oo->
strId());
2443 QMap<double, SgVlbiObservable*>::iterator it_frq;
2444 for (it_frq=observableByFrq.begin(); it_frq!=observableByFrq.end() && idx<2; ++it_frq, idx++)
2480 coeff4GRp= (1.0 + coeff4GR)/coeff4GR;
2481 coeff4SB = coeff4GR;
2539 corr4GR[1] = - coeff4GR*xDif;
2540 corr4RT[1] = - coeff4RT*rDif;
2541 corr4PH[1] = - coeff4PH*pDif;
2542 corr4GR[0] = - (1.0 + coeff4GR)*xDif;
2543 corr4RT[0] = - (1.0 + coeff4RT)*rDif;
2544 corr4PH[0] = - (1.0 + coeff4PH)*pDif;
2549 sigma4GR[1] = coeff4GR*sqrt(
2550 o[1]->grDelay().getSigma()*o[1]->grDelay().getSigma()*(coeff4GR + 2.0)/coeff4GR +
2551 o[0]->grDelay().getSigma()*o[0]->grDelay().getSigma());
2559 sigma4RT[1] = coeff4GR*sqrt(o[1]->phDRate().getSigma()*o[1]->phDRate().getSigma() +
2560 o[0]->phDRate().getSigma()*o[0]->phDRate().getSigma());
2561 sigma4PH[1] = coeff4PH*sqrt(o[1]->phDelay().getSigma()*o[1]->phDelay().getSigma() +
2562 o[0]->phDelay().getSigma()*o[0]->phDelay().getSigma());
2563 sigma4GR[0] = coeff4GRp*sigma4GR[1];
2564 sigma4RT[0] = coeff4GRp*sigma4RT[1];
2565 sigma4PH[0] = coeff4GRp*sigma4PH[1];
2568 corr4SB[1] = - coeff4SB*sDif;
2569 corr4SB[0] = - (1.0 + coeff4SB)*sDif;
2570 sigma4SB[1] = coeff4SB*sqrt(o[1]->sbDelay().getSigma()*o[1]->sbDelay().getSigma() +
2571 o[0]->sbDelay().getSigma()*o[0]->sbDelay().getSigma());
2572 sigma4SB[0] = (1.0 + coeff4SB)/coeff4SB*sigma4SB[1];
2611 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2613 it.value()->resetAllEditings();
2622 for (QMap<QString, SgVlbiObservable*>::const_iterator it=
observableByKey_.begin();
2624 if (s.status() == QDataStream::Ok)
2625 it.value()->saveIntermediateResults(s);
2629 return s.status() == QDataStream::Ok;
2639 unsigned int attributes;
2640 s >> key >> attributes >> num;
2641 if (s.status() != QDataStream::Ok)
2644 ": loadIntermediateResults(): error reading data: " +
2645 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
2651 ": loadIntermediateResults(): error reading data: bandKey mismatch: got [" + key +
2652 "], expected [" +
key_ +
"]");
2659 ": loadIntermediateResults(): error reading data: observableByKey_ size mismatch: got [" +
2660 QString(
"").setNum(num) +
"], expected [" + QString(
"").setNum(
observableByKey_.size()) +
"]");
2663 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2666 if (s.status() == QDataStream::Ok)
2667 it.value()->loadIntermediateResults(s);
2671 ": loadIntermediateResults(): error reading data for the " + it.value()->getBandKey() +
2672 "-band of " +
key_);
2676 return s.status()==QDataStream::Ok;
2690 ": calculateIonoBits(): the prime band obs is NULL");
2697 ": calculateIonoBits(): cannot calculate, number of bands (" +
2703 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2707 secObs = it.value();
2748 else if (qCode4MatchedObs <= 0)
const Sg3dMatrix m3E(Sg3dVector(1.0, 0.0, 0.0), Sg3dVector(0.0, 1.0, 0.0), Sg3dVector(0.0, 0.0, 1.0))
const Sg3dVector v3Zero(0.0, 0.0, 0.0)
#define DAY2SEC
radians to mas:
@ TECH_VLBI
R: Radio interferometry;.
double at(DIRECTION i) const
const SgMJD & getT0() const
bool isAttr(uint a) const
void setAttributes(unsigned int a)
unsigned int getAttributes() const
double value(const SgMJD &t) const
double rate(const SgMJD &t) const
void propagatePartials4rates(QList< SgParameter * > ¶meters, const SgMJD &t, double tau, double sign)
void propagatePartials(QList< SgParameter * > ¶meters, const SgMJD &t, double tau, double sign)
double calcAX(const SgMJD &, bool)
double calc_aT_P_a_opt(const SgMJD &)
virtual void write(LogLevel, quint32, const QString &, bool=false)
bool isEligible(LogLevel lvl, quint32 f) const
@ F_YYYYMMDDHHMMSSSS
Long verbose: Fri, the 2nd of Apr, 2010; 17hr 02min 43.6400sec.
QString toString(Format format=F_Verbose) const
double getDversion() const
void copySigmas2add(SgObjectInfo *)
double getSigma2add(DataType) const
const QString & getKey() const
void incNumUsable(DataType, int=1)
virtual int getMediaIdx() const
virtual bool isEligible(const SgTaskConfig *)
@ Attr_FORCE_2_PROCESS
include the observation in data analysis in any condition;
@ Attr_NOT_VALID
omit the observation;
@ Attr_PROCESSED
the observation has been processed;
virtual const SgMJD & getMJD() const
double getSolution() const
const SgParameterCfg & getZenith() const
const SgParameterCfg & getAtmGrad() const
SgParameterCfg::PMode getClock0Mode() const
const SgParameterCfg & getClock0() const
const QString & getName() const
const SgMappingFunction * wetMappingFunction() const
const SgMappingFunction * dryMappingFunction() const
double calcTroposphericDelay(const SgMJD &epoch, const SgMeteoData &meteo, double e, double a, SgVlbiStationInfo *stnInfo, const SgVlbiSourceInfo *srcInfo)
bool getHave2ApplyNutationHFContrib() const
bool getIsTesting() const
bool getHave2ApplyOldPoleTideContrib() const
bool getUseExtAPrioriHiFyErp() const
bool getUseExtAPrioriSitesPositions() const
bool getUseExtAPrioriErp() const
bool getIsSolveCompatible() const
bool getDoDownWeight() const
VlbiDelayType getUseDelayType() const
bool getDoWeightCorrection() const
bool getUseExtAPrioriMeanGradients() const
bool getHave2ApplyEarthTideContrib() const
WeightCorrectionMode getWcMode() const
bool getHave2ApplyPyContrib() const
VlbiDataType getDataType() const
bool getHave2ApplyOceanTideContrib() const
bool getUseExtAPrioriSourcesPositions() const
bool getHave2ApplyNdryContrib() const
VlbiRateType getUseRateType() const
bool getHave2ApplyUt1OceanTideHFContrib() const
bool getHave2ApplyPxyOceanTideHFContrib() const
bool getHave2ApplyOldOceanTideContrib() const
bool getHave2ApplyPoleTideContrib() const
bool getUseExtAPrioriAxisOffsets() const
bool getHave2ApplyGpsIonoContrib() const
bool getHave2ApplyPxyLibrationContrib() const
void setDataType(VlbiDataType t)
bool getHave2ApplyTiltRemvrContrib() const
bool getHave2ApplySourceSsm() const
bool getHave2ApplyPxContrib() const
bool getHave2ApplyOceanPoleTideContrib() const
bool getHave2ApplyFeedCorrContrib() const
bool getHave2ApplyNwetContrib() const
bool getHave2ApplyUt1LibrationContrib() const
bool getHave2ApplyUnPhaseCalContrib() const
bool getHave2ApplyAxisOffsetContrib() const
SgEstimator * estimator()
SgRefraction * refraction()
SgParametersDescriptor * parameters()
void setElement(unsigned int i, double d)
double getElement(unsigned int i) const
double getDrat_dAxsOfs() const
void setPartRateW(double d)
double getCalcAxisOffset4Rate() const
void setPartDelayW(double d)
double getDdel_dTzdGrdN() const
double getCableCalibration() const
void setEstClocks(double d)
double getCalcUnPhaseCal() const
void setEstAtmGradESigma(double s)
double getCalcAxisOffset4Delay() const
void setEstClocksSigma(double e)
void setEstAtmGradNSigma(double s)
double getElevationAngle() const
double getDrat_dTzdWet() const
double getCalcNwetCont4Delay() const
void setSlantDelayH(double d)
double getElevationAngleRate() const
void setSlantRateW(double d)
double getDrat_dTzdGrdN() const
double getRefClockOffset() const
double getCalcNdryCont4Rate() const
double getCalcNdryCont4Delay() const
void setEstAtmGradE(double g)
void setZenithDelayH(double d)
void setEstZenithDelaySigma(double e)
const SgMeteoData & getMeteoData() const
void setZenithDelayW(double d)
void setSlantDelayW(double d)
void setEstAtmGradN(double g)
double getDdel_dTzdWet() const
void setSlantRateH(double d)
double getCalcNwetCont4Rate() const
void setEstZenithDelay(double d)
double getAzimuthAngle() const
double getDdel_dTzdDry() const
void setOwner(SgVlbiObservation *)
double getDdel_dAxsOfs() const
double getDrat_dTzdGrdE() const
double getDdel_dTzdGrdE() const
QList< SgVlbiObservable * > & observables()
SgVlbiBaselineInfo * lookupBaselineByIdx(int)
SgVlbiSourceInfo * lookupSourceByIdx(int)
SgVlbiStationInfo * lookupStationByIdx(int)
@ Attr_USE_IONO4GRD
use ionosphere corrections for group delays;
@ Attr_USE_IONO4PHD
use ionosphere corrections for phase delays;
QList< SgVlbiObservable * > & observables()
double sigma2Apply() const
double getEffFreq() const
void setIonoSigma(double)
void setIonoValue(double)
void setSigma2add(double)
double getIonoValue() const
double getSigma2add() const
double getResidual() const
void setupSigma2Apply(const SgTaskConfig *)
double getIonoSigma() const
double getUvFrPerAsec(int i) const
int getQualityFactor() const
SgVlbiStationInfo *& stn_2()
void setGrdDiffBand(double)
SgVlbiStationInfo *& stn_1()
void setupActiveMeasurements(const SgTaskConfig *)
SgVlbiMeasurement & phDRate()
SgVlbiSourceInfo *& src()
void setPhrDiffBand(double)
const QString & getBandKey() const
SgVlbiBaselineInfo *& baseline()
double getReferenceFrequency() const
SgVlbiMeasurement & phDelay()
SgVlbiMeasurement * activeDelay()
SgVlbiMeasurement & grDelay()
void setSbdDiffBand(double)
SgVlbiMeasurement & sbDelay()
double reweightAuxSum4rate_
double calcOceanTideDelay_
double getDrat_dCipY() const
double getExtDelayHiFyUt1() const
virtual const SgVector & o_c()
double dRat_dParallaxRev_
QList< SgVlbiObservable * > passiveObses_
double calcEarthTideRate_
SgVlbiBaselineInfo * baseline_
double getCalcTiltRemvrRate() const
double calcOceanTideOldRate_
@ Attr_PASSED_CL_FN1
the observation participated in the procedure "calc clc fn#1"
@ Attr_SBD_NOT_VALID
omit the observation if single band delay is analysed;
@ Attr_CLOCK_BREAK_AT_2
clock break occured at station #2
@ Attr_CLOCK_BREAK_AT_1
clock break occured at station #1
double getCalcPoleTideOldDelay() const
double calcOceanPoleTideLdDelay_
double getCalcTiltRemvrDelay() const
double getCalcOceanPoleTideLdDelay() const
virtual ~SgVlbiObservation()
double calcNut2006_dEpsV_
bool addObservable(const QString &, const SgVlbiObservable &)
double calcPoleTideDelay_
SgVlbiSession * session()
double calcConsBendingSunHigherRate_
double extAprioriCorrections4delay_
double calcConsBendingSunDelay_
double calcHiFyUt1LibrationRate_
double getCalcPxDelay() const
virtual void prepare4Analysis(SgTaskManager *)
void fillPartials(SgTaskManager *)
double calcNut2006_dPsiR_
double getCalcOceanTideDelay() const
double getExtRateHiFyPxy() const
double getDdel_dDN() const
double calcGpsIonoCorrectionDelay_
void evalExtApriori_MeanGrads(double &dD, double &dR)
double calcOceanPoleTideLdRate_
double getCalcOceanPoleTideLdRate() const
void evalExtApriori_SrcPos(double &dD, double &dR)
double calcConsensusDelay_
virtual const QString className() const
double calcConsBendingSunHigherDelay_
void setupActiveMeasurement(const SgTaskConfig *)
double aPrioriCyLfContrib_
double getCalcPyDelay() const
double reweightAuxSum4delay_
QVector< double > userCorrections_
double getDdel_dPy() const
double aPrioriUt1LfContrib_
double getExtDelayErp() const
double calcTiltRemvrDelay_
double calcHiFyPxyLibrationDelay_
double calcOceanTideRate_
double getDrat_dPx() const
double getCalcGpsIonoCorrectionDelay() const
void setupActiveObservable(const QString &)
double baselineClock_F1r_
double calcEarthTideDelay_
bool modifyNotValidAttribute(bool=false)
SgVlbiAuxObservation * auxObs_1_
double getCalcPoleTideOldRate() const
double calcConsBendingDelay_
double getCalcFeedCorrRate() const
double baselineClock_F1l_
QMap< QString, SgVlbiObservable * > observableByKey_
void fillPartials4rate(SgTaskManager *)
double calcConsensusRate_
double getCalcEarthTideDelay() const
double calcFeedCorrDelay_
const Sg3dVector & getDdel_dR_1() const
double calcTiltRemvrRate_
double getCalcConsensusRate() const
double calcGpsIonoCorrectionRate_
double getCalcHiFyPxyRate() const
SgVlbiObservation(SgVlbiSession *)
double getDrat_dCipX() const
double calcOceanTideOldDelay_
double aPrioriPxHfContrib_
double calcPoleTideOldDelay_
double getCalcPxRate() const
double getCalcGpsIonoCorrectionRate() const
double getCalcPyRate() const
double getCalcPoleTideRate() const
double getCalcWobNutatContrib() const
SgVlbiObservable * activeObs_
double getCalcHiFyUt1LibrationRate() const
static SgVector storage4O_C
double extAprioriCorrections4rate_
double aPrioriUt1HfContrib_
double getDdel_dCipY() const
int minQualityFactor() const
const Sg3dVector & getDdel_dR_2() const
double getCalcHiFyPxyLibrationRate() const
SgVlbiStationInfo * stn_1_
void calcIonoCorrections(const SgTaskConfig *)
double calcNut2006_dEpsR_
bool loadIntermediateResults(QDataStream &)
SgVlbiObservable * observable(const QString &)
bool saveIntermediateResults(QDataStream &) const
double aPrioriPxLfContrib_
double aPrioriPyHfContrib_
SgVlbiStationInfo * stn_2_
SgVlbiObservable * primeObs_
double getDrat_dUT1() const
double calcWobNutatContrib_
virtual const SgVector & sigma()
QList< SgParameter * > parameters_
double getCalcEarthTideRate() const
void evalExtApriori_StnPos(const SgTaskConfig *, double &dD, double &dR)
double calcHiFyUt1LibrationDelay_
double calcNutWahr_dPsiR_
double getDdel_dPx() const
double getDrat_dPy() const
const Sg3dVector & getDrat_dR_1() const
double getCalcHiFyPxyLibrationDelay() const
double getExtRateErp() const
double getDdel_dUT1() const
double getDrat_dRA() const
virtual bool isEligible(const SgTaskConfig *)
double calcPoleTideOldRate_
double calcConsBendingSunRate_
double dDel_dParallaxRev_
double getExtDelayHiFyPxy() const
double calcNutWahr_dPsiV_
double calcNutWahr_dEpsV_
const Sg3dVector & getDrat_dR_2() const
double getCalcOceanTideRate() const
static SgVector storage4Sigmas
double getCalcPoleTideDelay() const
virtual void evaluateTheoreticalValues(SgTaskManager *)
double getCalcFeedCorrDelay() const
double getCalcHiFyUt1Delay() const
double getCalcOceanTideOldDelay() const
void evalExtApriori_AxsOfs(double &dD, double &dR)
double getCalcConsensusDelay() const
double getDrat_dDN() const
double calcNut2006_dPsiV_
double getCalcHiFyPxyDelay() const
double calcConsBendingRate_
double aPrioriCxLfContrib_
double getCalcHiFyUt1Rate() const
double calcNutWahr_dEpsR_
double getCalcHiFyUt1LibrationDelay() const
SgVlbiObservable * activeObs()
void fillPartials4delay(SgTaskManager *)
double getDdel_dCipX() const
double aPrioriPyLfContrib_
double getDdel_dRA() const
virtual void evaluateResiduals(SgTaskManager *)
SgVlbiAuxObservation * auxObs_2_
double calcHiFyPxyLibrationRate_
double getCalcOceanTideOldRate() const
double getExtRateHiFyUt1() const
SgVlbiBand * primaryBand()
const SgAPriories & getApStationVelocities() const
QMap< QString, SgVlbiBand * > & bandByKey()
SgVlbiStationInfo * lookupStationByIdx(int)
SgModelsInfo & calcInfo()
bool hasGradPartials() const
const QVector< bool > & getUserCorrectionsUse() const
SgParameter * pPolusYRate()
const SgMJD & tRefer() const
SgParameter * pNutYRate()
SgParameter * pPolusXRate()
SgParameter * pNutXRate()
SgVlbiSourceInfo * lookupSourceByIdx(int)
SgVlbiBaselineInfo * lookupBaselineByIdx(int)
bool isAble2InterpolateErp() const
double tauS(double f, double u, double v)
bool getIsSsModelEstimating() const
QList< StructModelMp > & sModel()
void processPartials4SrcStructModel(QList< SgParameter * > ¶meters, double f, double u, double v)
@ Attr_APPLY_SSM
apply the source structure model;
SgParameter * pAtmGradN()
QMap< QString, SgVlbiAuxObservation * > * auxObservationByScanId()
const Sg3dVector & getV_ea()
double getGradNorth() const
double getAxisOffset() const
const Sg3dVector & getV3Ecc() const
double getGradEast() const
const Sg3dVector & getR()
SgParameter * pClocks(int i)
bool getIsEccNonZero() const
SgParameter * pAtmGradE()
SgParameter * pZenithDelay()
double effectiveCableCalMultiplier() const
double getAxisOffset_ea() const
const Sg3dVector & getR_ea()
SgBreakModel & clockBreaks()
int getClocksModelOrder() const
double getEstClockModel(int idx) const
SgParameter * pAxisOffset()
bool getNeed2useAPrioriClocks() const
double getAPrioriClockTerm_0() const