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;
911 dDryZd_1 = dDryZd_2 = dWetZd_1 = dWetZd_2 = dDryMf_1 = dDryMf_2 = dWetMf_1 = dWetMf_2 =
912 rDryMf_1 = rDryMf_2 = rWetMf_1 = rWetMf_2 = 0.0;
974 dContribA = dDryZd_2*dDryMf_2 - dDryZd_1*dDryMf_1;
986 str.sprintf(
" dry MFunction= %20.16f", dDryMf_1);
989 str.sprintf(
" dry zenithDelay= %20.16f (m)", dDryZd_1);
992 str.sprintf(
" dry contrib= %20.16f(m)", dDryZd_1*dDryMf_1);
996 str.sprintf(
" dry MFunction= %20.16f", dDryMf_2);
999 str.sprintf(
" dry zenithDelay= %20.16f (m)", dDryZd_2);
1002 str.sprintf(
" dry contrib= %20.16f(m)", dDryZd_2*dDryMf_2);
1029 dContribB = dWetZd_2*dWetMf_2 - dWetZd_1*dWetMf_1;
1041 str.sprintf(
" wet MFunction= %20.16f", dWetMf_1);
1044 str.sprintf(
" wet zenithDelay= %20.16f (m)", dWetZd_1);
1047 str.sprintf(
" wet contrib= %20.16f(m)", dWetZd_1*dWetMf_1);
1051 str.sprintf(
" wet MFunction= %20.16f", dWetMf_2);
1054 str.sprintf(
" wet zenithDelay= %20.16f (m)", dWetZd_2);
1057 str.sprintf(
" wet contrib= %20.16f(m)", dWetZd_2*dWetMf_2);
1069 str.sprintf(
"Removed contribution: axis offsets (ps): %18.2f", -dContrib*1.0e12);
1079 str.sprintf(
"Added contribution: unphasecal (ps): %18.2f", dContrib*1.0e12);
1112 str.sprintf(
"Cable calibraiton at %-8s (ps): %18.2f",
1118 str.sprintf(
"Cable calibraiton at %-8s (ps): %18.2f",
1124 str.sprintf(
"Added contribution: cable calibration (ps): %18.2f", dContrib*1.0e12);
1127 str.sprintf(
"Theoretical delay, final (ps): %18.2f",
theoDelay_*1.0e12);
1172 double bandClockBreakShift(0.0), bandClockBreakRate(0.0);
1173 double o_c(0.0), stdDev(0.0);
1239 "::prepare4Analysis(): uknown data type");
1248 str.sprintf(
"Ionospheric group delay (ps): %18.2f",
1252 str.sprintf(
"Ambiguity correction (ps): %18.2f",
1255 str.sprintf(
"Observed group delay (ps): %18.2f",
1259 str.sprintf(
"Resulted O-C (ps): %18.2f",
1313 double sbDelayResidual, grDelayResidual, phDelayResidual, phDRateResidual;
1314 QMap<QString, SgVlbiObservable*>::iterator
1320 double bandClockBreakShift(0.0), bandClockBreakRate(0.0);
1369 str.sprintf(
"GrD: Observation: %18.2f", o->
grDelay().
getValue()*1.0e12);
1371 it.key() +
"-Band " + str);
1374 it.key() +
"-Band " + str);
1377 it.key() +
"-Band " + str);
1378 str.sprintf(
"GrD: Theoretical: %18.2f",
theoDelay_*1.0e12);
1380 it.key() +
"-Band " + str);
1381 str.sprintf(
"GrD: BandClckBrk: %18.2f", bandClockBreakShift*1.0e12);
1383 it.key() +
"-Band " + str);
1386 it.key() +
"-Band " + str);
1389 it.key() +
"-Band " + str);
1390 str.sprintf(
"Group Delay O-C (ps): %s %s %05d %18.2f %18.2f %18.2f",
1392 (grDelayResidual +
sumAX_4delay_)*1.0e12, grDelayResidual*1.0e12,
1395 it.key() +
"-Band " + str);
1400 double appliedSigma, residual, weight;
1407 weight = appliedSigma>0.0 ? 1.0/appliedSigma/appliedSigma : 1.0;
1416 weight = appliedSigma>0.0 ? 1.0/appliedSigma/appliedSigma : 1.0;
1426 double scale_c, scale_z, scale_g;
1503 "::fillPartials(): unexpected data type");
1524 for (
int i=0; i<nCl; i++)
1551 str.sprintf(
"Partials: %-30s: %32.15f",
1554 "::fillPartials4delay(): " + str);
1556 str.sprintf(
"Partials: %-30s: %32.15f",
1559 "::fillPartials4delay(): " + str);
1561 str.sprintf(
"Partials: %-30s: %32.15f",
1564 "::fillPartials4delay(): " + str);
1566 str.sprintf(
"Partials: %-30s: %32.15f",
1569 "::fillPartials4delay(): " + str);
1571 str.sprintf(
"Partials: %-30s: %32.15f",
1574 "::fillPartials4delay(): " + str);
1576 str.sprintf(
"Partials: %-30s: %32.15f",
1579 "::fillPartials4delay(): " + str);
1586 double dWetMf_1, dWetMf_2;
1588 dWetMf_1 = dWetMf_2 = 0.0;
1676 str.sprintf(
"Partials: %-30s: %32.15f or %32.15f",
1681 "::fillPartials4delay(): " + str);
1683 str.sprintf(
"Partials: %-30s: %32.15f or %32.15f",
1688 "::fillPartials4delay(): " + str);
1736 double scl=360.0*3600.0/2.0/M_PI;
1816 activeObs()->getReferenceFrequency()*1.0e6,
1926 for (
int i=1; i<nCl; i++)
1957 double rWetMf_1, rWetMf_2;
1959 rWetMf_1 = rWetMf_2 = 0.0;
2204 str.sprintf(
"Epoch : %s", qPrintable(
toString()));
2206 str.sprintf(
"T0 : %s", qPrintable(t0.
toString()));
2208 str.sprintf(
"difference: %14.8f (days)", dT);
2212 str.sprintf(
"St_1, database positions: %13.4f %13.4f %13.4f",
2217 str.sprintf(
"St_1, e.a.file positions: %13.4f %13.4f %13.4f",
2222 str.sprintf(
"St_1, e.a.file velocity : %13.10f %13.10f %13.10f (mm/yr)",
2227 str.sprintf(
"St_1, e.a.file velocity : %13.10f %13.10f %13.10f (m/d)",
2232 str.sprintf(
"St_1, e.a.position at t : %13.4f %13.4f %13.4f",
2235 str.sprintf(
"St_1, difference db-e.a : %10.7f %10.7f %10.7f",
2240 str.sprintf(
"St_2, database positions: %13.4f %13.4f %13.4f",
2245 str.sprintf(
"St_2, e.a.file positions: %13.4f %13.4f %13.4f",
2250 str.sprintf(
"St_2, e.a.file velocity : %13.10f %13.10f %13.10f (mm/yr)",
2255 str.sprintf(
"St_2, e.a.file velocity : %13.10f %13.10f %13.10f (m/d)",
2261 str.sprintf(
"St_2, e.a.position at t : %13.4f %13.4f %13.4f",
2265 str.sprintf(
"St_2, difference db-e.a : %10.7f %10.7f %10.7f",
2269 str.sprintf(
"Partials, dTau/dSt_1_i: %20.12g %20.12g %20.12g",
2275 str.sprintf(
"Partials, dTau/dSt_2_i: %20.12g %20.12g %20.12g",
2281 str.sprintf(
"Resulted correction (ps): %8.4f", dD*1.0e12);
2348 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2350 it.value()->zerofyIono();
2362 ": calcIonoCorrections(): cannot calculate, number of bands (" +
2368 bool isSimpleMode=(cfg?
false:
true);
2369 bool hasEffFreqs=
true;
2370 double coeff4SB = 0.0;
2371 double coeff4GR = 0.0;
2372 double coeff4GRp= 0.0;
2373 double coeff4PH = 0.0;
2374 double coeff4RT = 0.0;
2375 double sbdQ=0.0, grdQ=0.0, phrQ=0.0;
2387 double sDif, xDif, rDif, pDif;
2389 for (
int i=0; i<2; i++)
2392 corr4SB[i] = corr4GR[i] = corr4PH[i] = corr4RT[i] = sigma4SB[i] = sigma4GR[i] =
2393 sigma4PH[i] = sigma4RT[i] = 0.0;
2423 QMap<double, SgVlbiObservable*>
2425 QMap<QString, SgVlbiObservable*>::iterator
2434 ": calcIonoCorrections(): cannot calculate, the reference frequency is the same for two bands "
2435 " on " + oo->
strId());
2443 hasEffFreqs =
false;
2445 ": calcIonoCorrections(): cannot calculate, the group delay ionosphere effective frequency is "
2446 "zero on " + oo->
strId());
2450 hasEffFreqs =
false;
2452 ": calcIonoCorrections(): cannot calculate, the phase delay ionosphere effective frequency is "
2453 "zero on " + oo->
strId());
2457 hasEffFreqs =
false;
2459 ": calcIonoCorrections(): cannot calculate, the phase rate ionosphere effective frequency is "
2460 "zero on " + oo->
strId());
2468 QMap<double, SgVlbiObservable*>::iterator it_frq;
2469 for (it_frq=observableByFrq.begin(); it_frq!=observableByFrq.end() && idx<2; ++it_frq, idx++)
2505 coeff4GRp= (1.0 + coeff4GR)/coeff4GR;
2506 coeff4SB = coeff4GR;
2564 corr4GR[1] = - coeff4GR*xDif;
2565 corr4RT[1] = - coeff4RT*rDif;
2566 corr4PH[1] = - coeff4PH*pDif;
2567 corr4GR[0] = - (1.0 + coeff4GR)*xDif;
2568 corr4RT[0] = - (1.0 + coeff4RT)*rDif;
2569 corr4PH[0] = - (1.0 + coeff4PH)*pDif;
2574 sigma4GR[1] = coeff4GR*sqrt(
2575 o[1]->grDelay().getSigma()*o[1]->grDelay().getSigma()*(coeff4GR + 2.0)/coeff4GR +
2576 o[0]->grDelay().getSigma()*o[0]->grDelay().getSigma());
2584 sigma4RT[1] = coeff4GR*sqrt(o[1]->phDRate().getSigma()*o[1]->phDRate().getSigma() +
2585 o[0]->phDRate().getSigma()*o[0]->phDRate().getSigma());
2586 sigma4PH[1] = coeff4PH*sqrt(o[1]->phDelay().getSigma()*o[1]->phDelay().getSigma() +
2587 o[0]->phDelay().getSigma()*o[0]->phDelay().getSigma());
2588 sigma4GR[0] = coeff4GRp*sigma4GR[1];
2589 sigma4RT[0] = coeff4GRp*sigma4RT[1];
2590 sigma4PH[0] = coeff4GRp*sigma4PH[1];
2593 corr4SB[1] = - coeff4SB*sDif;
2594 corr4SB[0] = - (1.0 + coeff4SB)*sDif;
2595 sigma4SB[1] = coeff4SB*sqrt(o[1]->sbDelay().getSigma()*o[1]->sbDelay().getSigma() +
2596 o[0]->sbDelay().getSigma()*o[0]->sbDelay().getSigma());
2597 sigma4SB[0] = (1.0 + coeff4SB)/coeff4SB*sigma4SB[1];
2636 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2638 it.value()->resetAllEditings();
2647 for (QMap<QString, SgVlbiObservable*>::const_iterator it=
observableByKey_.begin();
2649 if (s.status() == QDataStream::Ok)
2650 it.value()->saveIntermediateResults(s);
2654 return s.status() == QDataStream::Ok;
2664 unsigned int attributes;
2665 s >> key >> attributes >> num;
2666 if (s.status() != QDataStream::Ok)
2669 ": loadIntermediateResults(): error reading data: " +
2670 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
2676 ": loadIntermediateResults(): error reading data: bandKey mismatch: got [" + key +
2677 "], expected [" +
key_ +
"]");
2684 ": loadIntermediateResults(): error reading data: observableByKey_ size mismatch: got [" +
2685 QString(
"").setNum(num) +
"], expected [" + QString(
"").setNum(
observableByKey_.size()) +
"]");
2688 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2691 if (s.status() == QDataStream::Ok)
2692 it.value()->loadIntermediateResults(s);
2696 ": loadIntermediateResults(): error reading data for the " + it.value()->getBandKey() +
2697 "-band of " +
key_);
2701 return s.status()==QDataStream::Ok;
2715 ": calculateIonoBits(): the prime band obs is NULL");
2722 ": calculateIonoBits(): cannot calculate, number of bands (" +
2728 for (QMap<QString, SgVlbiObservable*>::iterator it=
observableByKey_.begin();
2732 secObs = it.value();
2773 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
TropZenithMap getFlybyTropZenithMap() 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
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)
double effectiveCableCalValue(CableCorrectionType idx) const
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
SgVlbiAuxObservation::CableCorrectionType cccIdx() 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