27 #include <QtCore/QDataStream>
29 #if QT_VERSION >= 0x050000
30 # include <QtWidgets/QMessageBox>
32 # include <QtGui/QMessageBox>
74 return "SgVlbiSession";
94 lastProcessedConfig_(),
99 path2Masterfile_(
"./"),
100 path2APrioriFiles_(
"./"),
110 contemporaryHistory_(),
112 userCorrectionsUse_(),
113 userCorrectionsName_()
218 for (
int i=0; i<
bands_.size(); i++)
296 QString eopPrefix =
"EOP: ";
311 i.value()->createParameters();
312 i.value()->clockBreaks().setT0(
tRefer_);
315 i.value()->createParameters();
318 i.value()->createParameters();
339 i.value()->releaseParameters();
341 i.value()->releaseParameters();
343 i.value()->releaseParameters();
413 QMap<QString, QList<QString> >
419 for (
int i=0; i<
bands_.size(); i++)
427 "::checkChannelSetup(): cannot check channels for baseline " + bi->
getKey() +
428 ", the numOfChanByCount map is empty");
432 str = bi->
getKey() +
": ";
435 str += QString(
"").sprintf(
"%d (%.1f%%), ", jt.key(), jt.value()*100.0/num);
436 str = str.left(str.size() - 2);
437 strLstByBand[band->
getKey()] << str;
443 if (strLstByBand.size())
447 "::checkChannelSetup(): the session has a mixed channel setup:");
448 for (QMap<QString,
QList<QString> >::iterator it=strLstByBand.begin(); it!=strLstByBand.end(); ++it)
451 QString key=it.key();
452 str +=
"Numbers of channels at the " + key +
"-band: \n";
453 for (
int i=0; i<strLst.size(); i++)
455 str +=
"\t" + strLst.at(i) +
"\n";
457 "::checkChannelSetup(): " + key +
"-band: " + strLst.at(i));
463 QMessageBox::warning(NULL,
"Warning: mixed channels setup",
464 "The session contains mixed channels setup for the following baseline(s):\n\n" + str +
465 "\nSometimes this happens by mistake, you may need to report it to the correlator.");
469 "::checkChannelSetup(): the session is ok");
471 strLstByBand.clear();
480 QVector<QChar> abetka;
485 int numBands(
bands().size());
502 "::selfCheck(): the operation started",
true);
508 "::selfCheck(): the session [" +
name_ +
"] does not contain any observations");
525 "::selfCheck(): the " + pBandKey +
"-band is set as the primary one");
527 QMap<QString, QMap<QString, QString> >
529 QMap<QString, QMap<QString, int> >
562 "::selfCheck(): the identities of observations were set up",
true);
568 "::selfCheck(): found dTec values");
579 "::selfCheck(): the observations were sorted",
true);
584 QMap<QString, QString> scanIdByName;
585 QMap<QString, QMap<QString, QString> >
606 "::selfCheck(): " + QString(
"").setNum(
scanEpochs_.size()) +
607 " scans have been found in the session",
true);
610 if (duplicateByName.size())
613 "::selfCheck(): found " + QString(
"").setNum(duplicateByName.size()) +
614 " duplicate scan names:",
true);
615 for (QMap<QString, QMap<QString, QString> >::iterator it=duplicateByName.begin();
616 it!=duplicateByName.end(); ++it)
619 for (QMap<QString, QString>::iterator jt=it.value().begin(); jt!=it.value().end(); ++jt, idx++)
622 "::selfCheck(): the scan ID " + jt.key() +
" has a scan name \"" + jt.value() +
"\"");
626 str = jt.value().simplified() + abetka[idx];
634 QString oldScanName(
"");
643 "::selfCheck(): cannot find the corrected scan name for scan ID " + obs->
getScanId() +
644 " and scan name \"" + oldScanName +
"\"");
652 "::selfCheck(): the scan name of " + obs->
getScanId() +
653 " scan has been changed from \"" + oldScanName +
"\" to \"" + str +
"\"");
657 "::selfCheck(): the corrected scan name is empty for scan ID " + obs->
getScanId() +
658 " and scan name \"" + oldScanName +
"\"");
664 scanIdByName.clear();
665 duplicateByName.clear();
670 int numChan=0, bitsPerSample=0;
672 for (
int i=0; i<numBands; i++)
674 bands_.at(i)->selfCheck();
675 numChan +=
bands_.at(i)->getMaxNumOfChannels();
676 rbw +=
bands_.at(i)->getMaxNumOfChannels()*
bands_.at(i)->sampleRate();
677 if (bitsPerSample == 0)
678 bitsPerSample =
bands_.at(i)->bitsPerSample();
679 else if (bitsPerSample !=
bands_.at(i)->bitsPerSample())
681 "::selfCheck(): at the " +
bands_.at(i)->getKey() +
682 "-band there is a different value for bits per sample: " +
683 QString(
"").sprintf(
"%d vs %d", bitsPerSample,
bands_.at(i)->bitsPerSample()));
686 "::selfCheck(): the selfcheck procedure for the bands was done",
true);
688 recordingMode_.sprintf(
"NChan:%d Rbw:%.1f Bps:%d", numChan, rbw*1.0e-6, bitsPerSample);
690 "::selfCheck(): the record mode has been set to \"" +
recordingMode_ +
"\"");
700 str = bi->
getKey().left(8);
705 "::selfCheck(): cannot find the station \"" + str +
"\" in the map",
true);
706 str = bi->
getKey().right(8);
711 "::selfCheck(): cannot find the station \"" + str +
"\" in the map",
true);
716 "::selfCheck(): set the length of the baseline \"" + bi->
getKey() +
"\" to " +
717 QString(
"").sprintf(
"%.3f (m)", bi->
getLength()));
728 for (
int i=0; i<numBands; i++)
741 "::selfCheck(): a reference clock station has been set up",
true);
746 for (
int i=0; i<numBands; i++)
748 if (!
bands_.at(i)->observables().size())
751 "::selfCheck(): the band " +
bands_.at(i)->getKey() +
752 " at the session " +
name_ +
" does not contain any observations");
755 if (t<
bands_.at(i)->getTCreation())
756 t =
bands_.at(i)->getTCreation();
766 "::selfCheck(): epochs of start/finish were established",
true);
777 "::selfCheck(): trying to check the provided by user the database name " +
name_);
787 "::selfCheck(): a masterfile record was found");
791 "::selfCheck(): cannot find a masterfile record for the database \"" +
nickName() +
"\"");
797 sYear.sprintf(
"%02d", year - (year>=2000?2000:1900));
801 "::selfCheck(): a masterfile record was found");
812 "::selfCheck(): cannot find a masterfile record for the session code \"" +
sessionCode_ +
"\"");
815 "::selfCheck(): for the session code: " +
sessionCode_ +
816 ", the following attributes were assigned:");
818 "::selfCheck(): name: " +
name_);
822 "::selfCheck(): scheduler/correlator/submitter: " +
836 "::selfCheck(): a masterfile record was found");
841 "::selfCheck(): cannot find a masterfile record for the session [" +
nickName() +
"] ");
844 "::selfCheck(): for the session name: " +
name_ +
845 ", the following attributes were assigned:");
851 "::selfCheck(): scheduler/correlator/submitter: " +
861 "::selfCheck(): skipping the eccentricities set up: incomplete data set ",
true);
874 "::selfCheck(): the eccentricity file was read",
true);
889 "::selfCheck(): set up the eccentricity for the station " + si->
getKey());
895 "::selfCheck(): cannot find the eccentricity record for the station " + si->
getKey());
900 "::selfCheck(): the eccentricities of stations were set up",
true);
915 "::selfCheck(): the external a priori were collected",
true);
921 "::selfCheck(): the file with external weights was read",
true);
938 "::selfCheck(): the auxiliary observations were checked",
true);
952 if (numByScanIdBySrc.contains(si->
getKey()))
962 "::selfCheck(): the source \"" + str +
"\" has no any good observations in the primary band"
963 ", it was removed from the whole session");
967 "::selfCheck(): numbers of scans per a source were calculated",
true);
975 "::selfCheck(): the calcInfo's list of stations is empty; set it up: " +
982 "::selfCheck(): the network ID was set up",
true);
986 "::selfCheck(): the session selfcheck has been completed",
true);
1005 int nYr_s, nMon_s, nDay_s, nHr_s, nMi_s;
1006 int nYr_f, nMon_f, nDay_f, nHr_f, nMi_f;
1007 double dSec_s, dSec_f;
1014 if (20 < nMi_f-nMi_s)
1015 nMi_s = 10*round(
double(nMi_s + nMi_f)/20.0);
1017 nMi_s = round(
double(nMi_s + nMi_f)/2.0);
1019 else if (nHr_s+1 == nHr_f)
1031 nHr_s = round(
double(nHr_s + nHr_f)/2.0);
1038 "::setupTimeRefer(): the reference epoch was set to " +
tRefer_.
toString());
1048 if (idx<0 ||
bands_.size()<=idx)
1050 for (
int i=0; i<
bands_.size(); i++)
1079 int numOfPrimaryBands=0;
1080 for (
int i=0; i<
bands_.size(); i++)
1084 numOfPrimaryBands++;
1086 if (numOfPrimaryBands==1)
1089 if (numOfPrimaryBands>1)
1090 for (
int i=0; i<
bands_.size(); i++)
1093 for (
int i=0; i<
bands_.size(); i++)
1095 if (
bands_.at(i)->getKey() ==
"X")
1117 i.value()->clearWrms();
1118 QMap<QString, SgVlbiAuxObservation*>::iterator auxObsIt=i.value()->auxObservationByScanId()->begin();
1119 for (; auxObsIt!=i.value()->auxObservationByScanId()->end(); ++auxObsIt)
1134 i.value()->clearWrms();
1136 i.value()->clearWrms();
1138 for (
int iBand=0; iBand<
bands_.size(); iBand++)
1143 i.value()->clearWrms();
1145 i.value()->clearWrms();
1147 i.value()->clearWrms();
1184 for (
int iBand=0; iBand<
bands_.size(); iBand++)
1187 QMap<QString, SgVlbiBaselineInfo*>::iterator itBaselineInfo=band->
baselinesByName().begin();
1188 for (
int iBaseline=0; itBaselineInfo!=band->
baselinesByName().end(); ++itBaselineInfo, iBaseline++)
1202 double sig4bln4del=0.0, sig4bln4rat=0.0, sig4bnd4del=0.0, sig4bnd4rat=0.0;
1217 for (
int iBand=0; iBand<
bands_.size(); iBand++)
1222 jt!=
bands_.at(iBand)->baselinesByName().end(); ++jt)
1224 jt.value()->setSigma2add(
DT_DELAY, sig4bln4del);
1225 jt.value()->setSigma2add(
DT_RATE, sig4bln4rat);
1230 i.value()->setSigma2add(
DT_DELAY, sig4bln4del);
1231 i.value()->setSigma2add(
DT_RATE, sig4bln4rat);
1242 if (
name_.at(0) ==
'$')
1247 str = str.mid(0, 7);
1272 for (
int i=0; i<
bands_.size(); i++)
1273 bands_.at(i)->resetAllEditings();
1276 for (QMap<QString, SgVlbiStationInfo*>::const_iterator it=
stationsByName_.begin();
1278 it.value()->resetAllEditings();
1281 for (QMap<QString, SgVlbiSourceInfo*>::const_iterator it=
sourcesByName_.begin();
1283 it.value()->resetAllEditings();
1286 for (QMap<QString, SgVlbiBaselineInfo*>::const_iterator it=
baselinesByName_.begin();
1288 it.value()->resetAllEditings();
1318 "::resetAllEditings(): all editings have been cleared");
1328 if (altName.size() > 0)
1330 str += QString(
"").sprintf(
"_V%03d_M%02d_C%c.%ssir",
1332 qPrintable(altName));
1342 if (s.status() != QDataStream::Ok)
1345 "::saveIntermediateResults(): error writting data");
1352 "::saveIntermediateResults(): error writting data for the version");
1357 for (
int i=0; i<
bands_.size(); i++)
1359 if (!
bands_.at(i)->saveIntermediateResults(s))
1362 "::saveIntermediateResults(): error writting data for " +
bands_.at(i)->getKey() +
"-band: " +
1363 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1369 for (QMap<QString, SgVlbiStationInfo*>::const_iterator it=
stationsByName_.begin();
1371 if (!it.value()->saveIntermediateResults(s))
1374 "::saveIntermediateResults(): error writting data for station " + it.value()->getKey() +
": " +
1375 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1380 for (QMap<QString, SgVlbiSourceInfo*>::const_iterator it=
sourcesByName_.begin();
1382 if (!it.value()->saveIntermediateResults(s))
1385 "::saveIntermediateResults(): error writting data for source " + it.value()->getKey() +
": " +
1386 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1391 for (QMap<QString, SgVlbiBaselineInfo*>::const_iterator it=
baselinesByName_.begin();
1393 if (!it.value()->saveIntermediateResults(s))
1396 "::saveIntermediateResults(): error writting data for baseline " + it.value()->getKey() +
": " +
1397 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1406 "::saveIntermediateResults(): error writting data for observation " +
1408 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1416 "::saveIntermediateResults(): error writting data for config: " +
1417 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1425 "::saveIntermediateResults(): error writting data for parameters setup: " +
1426 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1430 return s.status() == QDataStream::Ok;
1439 unsigned int attributes;
1441 s >> name >> attributes;
1442 if (s.status() != QDataStream::Ok)
1445 "::loadIntermediateResults(): error reading data: " +
1446 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1452 "::loadIntermediateResults(): error reading data: wrong session, names mismatch: got [" + name +
1453 "], expected [" +
getName() +
"]");
1459 "::loadIntermediateResults(): error reading data for version: " +
1460 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1474 "::loadIntermediateResults(): version mismatch, could get a problem");
1479 for (
int i=0; i<
bands_.size(); i++)
1480 if (!
bands_.at(i)->loadIntermediateResults(s))
1483 "::loadIntermediateResults(): error writting data for " +
bands_.at(i)->getKey() +
"-band: " +
1484 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1489 for (QMap<QString, SgVlbiStationInfo*>::const_iterator it=
stationsByName_.begin();
1491 if (!it.value()->loadIntermediateResults(s))
1494 "::loadIntermediateResults(): error writting data for station " + it.value()->getKey() +
": " +
1495 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1500 for (QMap<QString, SgVlbiSourceInfo*>::const_iterator it=
sourcesByName_.begin();
1502 if (!it.value()->loadIntermediateResults(s))
1505 "::loadIntermediateResults(): error writting data for source " + it.value()->getKey() +
": " +
1506 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1511 for (QMap<QString, SgVlbiBaselineInfo*>::const_iterator it=
baselinesByName_.begin();
1513 if (!it.value()->loadIntermediateResults(s))
1516 "::loadIntermediateResults(): error writting data for baseline " + it.value()->getKey() +
": " +
1517 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1526 "::loadIntermediateResults(): error writting data for observation " +
1528 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1536 "::loadIntermediateResults(): error writting data for config: " +
1537 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1545 "::loadIntermediateResults(): error writting data for parameters setup: " +
1546 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1552 return s.status()==QDataStream::Ok;
1591 "::allocUt1InterpolEpochs(): the vector of UT1 arguments has been deleted");
1597 "::allocUt1InterpolEpochs(): the vector of UT1 arguments has been created");
1599 for (
unsigned int i=0; i<numOfPts; i++)
1602 "::allocUt1InterpolEpochs(): the vector of UT1 arguments has been filled");
1615 "::allocPxyInterpolEpochs(): the vector of Pxy arguments has been deleted");
1621 "::allocPxyInterpolEpochs(): the vector of Pxy arguments has been created");
1623 for (
unsigned int i=0; i<numOfPts; i++)
1626 "::allocPxyInterpolEpochs(): the vector of Pxy arguments has been filled");
1637 "::allocUt1InterpolValues(): the input vector is NULL");
1643 "::allocUt1InterpolValues(): the size of the input vector is zero");
1652 "::allocUt1InterpolValues(): the matrix of UT1 values has been deleted");
1658 "::allocUt1InterpolValues(): the matrix of UT1 values has been created");
1660 for (
unsigned int i=0; i<vals->
n(); i++)
1663 "::allocUt1InterpolValues(): the matrix of UT1 values has been filled");
1674 "::allocPxyInterpolValues(): the input matrix is NULL");
1677 if (vals->
nRow()==0 || vals->
nCol()!=2)
1680 "::allocPxyInterpolValues(): the size of the input matrix is wrong");
1688 "::allocPxyInterpolValues(): the matrix of Pxy values has been deleted");
1694 "::allocPxyInterpolValues(): the matrix of Pxy values has been created");
1696 for (
unsigned int i=0; i<vals->
nRow(); i++)
1702 "::allocPxyInterpolValues(): the matrix of Pxy values has been filled");
const SgMJD tZero(1957, 10, 4)
SgVersion libraryVersion("SgLib", 0, 7, 5, "Tuscarora (rc1)", SgMJD(2022, 2, 18, 17, 34))
QMap< QString, SgVlbiBaselineInfo * >::iterator BaselinesByName_it
const QString defaultNetIdName
bool wavelengthSortingOrderLessThan(SgVlbiBand *, SgVlbiBand *)
bool observationSortingOrderLessThan4newSession(SgVlbiObservation *, SgVlbiObservation *)
bool observationSortingOrderLessThan(SgVlbiObservation *, SgVlbiObservation *)
QMap< QString, SgVlbiSourceInfo * >::iterator SourcesByName_it
QMap< QString, SgVlbiStationInfo * >::iterator StationsByName_it
bool isAttr(uint a) const
void setAttributes(unsigned int a)
unsigned int getAttributes() const
SgEccRec * lookupRecord(const QString &, const SgMJD &)
void setPath2File(const QString &)
void setFileName(const QString &)
const Sg3dVector & getDR() const
void setSessionName(const QString &)
virtual void write(LogLevel, quint32, const QString &, bool=false)
void setTime(double dTime)
QString toString(Format format=F_Verbose) const
void toYMDHMS_tr(int &nYear, int &nMonth, int &nDay, int &nHour, int &nMin, double &dSec) const
void setUpEpoch(int year, int month, int day, int hour, int min, double sec)
const QString & getCorrelatedBy() const
const QString & getDate() const
bool lookupRecordByCode(const QString &sessionCode, const QString &sYear, const QString &path)
const QString & getScheduledBy() const
const QString & getName() const
const QString & getCode() const
const QString & getDbcCode() const
const QString & getSubmittedBy() const
bool lookupRecordByName(const QString &nickName, const QString &path)
unsigned int nRow() const
void setElement(unsigned int i, unsigned int j, double d)
double getElement(unsigned int i, unsigned int j) const
unsigned int nCol() const
QList< SgVlbiStationInfo * > & stations()
const QString & getKey() const
virtual int getMediaIdx() const
virtual void setMediaIdx(int idx)
@ Attr_PROCESSED
the observation has been processed;
virtual const SgMJD & getMJD() const
bool saveIntermediateResults(QDataStream &) const
bool loadIntermediateResults(QDataStream &)
const QString & getEccentricitiesFileName() const
bool saveIntermediateResults(QDataStream &) const
bool getIsSolveCompatible() const
WeightCorrectionMode getWcMode() const
QMap< QString, AutomaticProcessing > & apByNetId()
double getInitAuxSigma4Delay() const
const QString & getName() const
double getInitAuxSigma4Rate() const
bool loadIntermediateResults(QDataStream &)
void setElement(unsigned int i, double d)
double getElement(unsigned int i) const
bool loadIntermediateResults(QDataStream &)
bool saveIntermediateResults(QDataStream &) const
void setEstClocks(double d)
void setEstAtmGradESigma(double s)
void setEstClocksSigma(double e)
void setEstAtmGradNSigma(double s)
void setEstAtmGradE(double g)
void setEstZenithDelaySigma(double e)
void setEstAtmGradN(double g)
void setEstZenithDelay(double d)
QMap< QString, SgVlbiBaselineInfo * > & baselinesByName()
QMap< QString, SgVlbiStationInfo * > & stationsByName()
int getInputFileVersion() const
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
double getFrequency() const
@ Attr_PRIMARY
the band is a primary band;
@ Attr_NOT_VALID
omit the baseline;
QList< SgVlbiObservable * > & observables()
void calculateClockF1(SgTaskConfig *)
const QMap< int, int > & numOfChanByCount() const
@ Attr_NOT_MATCHED
there is no match at another band(s)
SgVlbiStationInfo * stn_1()
void setScanName(const QString &sName)
double getDTecStdDev() const
void setupActiveObservable(const QString &)
SgVlbiStationInfo * stn_2()
SgVlbiObservable * primeObs()
const QString & getScanName() const
QMap< QString, SgVlbiObservable * > & observableByKey()
const QString & getScanId() const
const QString & getName() const
@ OT_MK4
observations are from Mk4-compatible correlator output;
@ OT_KOMB
observations are from KOMB output (generated by NICT, Japan);
QString officialName_
Official Name (from MasterFile)
@ Attr_FF_EDIT_INFO_MODIFIED
edit info has been modified by user;
@ Attr_FF_WEIGHTS_CORRECTED
weights have been corrected;
@ Attr_PRE_PROCESSED
the observations has been prepared for analysis;
@ Attr_FF_ION_C_CALCULATED
ionospheric corrections have been calculated;
@ Attr_FF_OUTLIERS_PROCESSED
outliers have been processed;
@ Attr_HAS_CALC_DATA
the theoretical values are available;
@ Attr_HAS_DTEC
the session contains diffTec values;
@ Attr_FF_AMBIGS_RESOLVED
ambiguities have been resolved;
@ Attr_FF_ECC_UPDATED
eccentricity data for one of stations were updated;
@ Attr_HAS_IONO_CORR
the theoretical values are available;
@ Attr_HAS_CLOCK_BREAKS
there is at least one clock break at one of stations;
void setTCreation(const SgMJD &t)
SgMJD tFinis_
last epoch of the observations;
QString networkID_
Network ID (a key);.
QString networkSuffix_
a char that specifies network (e.g., A, E, U, etc.);
QString sessionCode_
official session code (from Masterfile);
SgMJD tMean_
mean epoch of the observations;
QString schedulerName_
Name of resposible organization (from MasterFile)
QString correlatorName_
Correlator Name (from MasterFile)
OriginType originType_
type of origin of the imported file(s);
QString submitterName_
Name of resposible organization (from MasterFile)
QString name_
name of the session (e.g., 10JUL22XE);
SgMJD tStart_
first epoch of the observations;
QList< SgMJD * > scanEpochs_
void(* longOperationStart_)(int minStep, int maxStep, const QString &message)
int numberOfBands() const
StationsByName stationsByName_
bool hasOceanPoleTideContrib_
bool hasWobbleNutContrib_
SgParameter * pPolusYRate_
void allocPxyInterpolValues(const SgMatrix *vals)
bool hasUt1LibrationContrib_
QMap< QString, SgVlbiObservation * > observationByKey_
QList< SgVlbiBand * > & bands()
QList< SgVlbiBand * > bands_
QVector< bool > userCorrectionsUse_
void setPrimaryBandByIdx(int)
SgTidalUt1::UT1TideContentType tabsUt1Type_
void calculateIonoCorrections(const SgTaskConfig *)
SgVector * args4PxyInterpolation_
void(* longOperationProgress_)(int step)
bool selfCheck(bool guiExpected)
QMap< QString, SgVlbiBand * > bandByKey_
SgParameter * pPolusXRate_
bool hasOceanTideContrib_
QList< SgVlbiObservation * > observations_
void allocPxyInterpolEpochs(double t0, double dt, unsigned int numOfPts)
bool hasPoleTideOldContrib_
void allocUt1InterpolEpochs(double t0, double dt, unsigned int numOfPts)
bool hasWobbleHighFreqContrib_
SgSolutionReporter * reporter_
bool saveIntermediateResults(QDataStream &) const
bool hasUnPhaseCalContrib_
void(* longOperationStop_)()
bool hasOutlierRestoratioRun_
QMap< int, SgVlbiStationInfo * > stationsByIdx_
virtual void setUpPrimaryBand()
void pickupReferenceCoordinatesStation()
QString name4SirFile(bool)
SgCubicSpline * externalErpInterpolator_
bool isInUse(SgVlbiBaselineInfo *)
void checkUseOfManualPhaseCals()
SgParametersDescriptor storedParametersDescriptor_
SgExternalWeights externalWeights_
void(* longOperationMessage_)(const QString &message)
bool hasUt1HighFreqContrib_
void allocUt1InterpolValues(const SgVector *vals)
bool hasPxyInterpolation_
QMap< QString, double > skyFreqByIfId_
void zerofyIonoCorrections(const SgTaskConfig *)
SgCubicSpline * innerUt1Interpolator_
QVector< QString > userCorrectionsName_
static const QString sSkipCode_
BaselinesByName baselinesByName_
bool hasUt1Interpolation_
SgParametersDescriptor * parametersDescriptor_
QString path2APrioriFiles_
SgVlbiBand * primaryBand_
SgIoDriver * inputDriver_
void pickupReferenceClocksStation()
int suppressNotSoGoodObs()
bool hasEarthTideContrib_
bool hasOutlierEliminationRun_
static QString className()
SgTaskConfig storedConfig_
void checkExcludedStations()
bool loadIntermediateResults(QDataStream &)
SgVector * args4Ut1Interpolation_
bool hasPxyLibrationContrib_
SgMatrix * tabs4Ut1Interpolation_
void(* longOperationShowStats_)(const QString &label, int numTot, int numPrc, double wrms, double chi2)
void lookupExternalWeights()
bool have2InteractWithGui_
int numOfPts4ErpInterpolation_
QMap< int, SgVlbiBaselineInfo * > baselinesByIdx_
SourcesByName sourcesByName_
bool isAble2InterpolateErp_
SgCubicSpline * innerPxyInterpolator_
void calculateBaselineClock_F1()
bool hasTiltRemvrContrib_
bool hasOceanTideOldContrib_
SgMatrix * tabs4PxyInterpolation_
QMap< int, SgVlbiSourceInfo * > sourcesByIdx_
bool checkChannelSetup(bool guiExpected)
void setTotalScanNum(int n)
@ Attr_NOT_VALID
omit the station;
@ Attr_REFERENCE_CLOCKS
the clocks are the reference ones;
const Sg3dVector & getR()
void setCdpNumber(int cdp)
void checkAuxObs(const QMap< QString, QString > &scanNameById)