27 #include <QtCore/QDataStream>
28 #include <QtCore/QRegularExpression>
31 #if QT_VERSION >= 0x050000
32 # include <QtWidgets/QMessageBox>
34 # include <QtGui/QMessageBox>
76 return "SgVlbiSession";
96 lastProcessedConfig_(),
101 path2Masterfile_(
"./"),
102 path2APrioriFiles_(
"./"),
112 contemporaryHistory_(),
114 userCorrectionsUse_(),
115 userCorrectionsName_(),
116 lastProcessed_(
tZero)
221 for (
int i=0; i<
bands_.size(); i++)
299 QString eopPrefix =
"EOP: ";
314 i.value()->createParameters();
315 i.value()->clockBreaks().setT0(
tRefer_);
318 i.value()->createParameters();
321 i.value()->createParameters();
342 i.value()->releaseParameters();
344 i.value()->releaseParameters();
346 i.value()->releaseParameters();
416 QMap<QString, QList<QString> >
422 for (
int i=0; i<
bands_.size(); i++)
430 "::checkChannelSetup(): cannot check channels for baseline " + bi->
getKey() +
431 ", the numOfChanByCount map is empty");
435 str = bi->
getKey() +
": ";
438 str += QString(
"").sprintf(
"%d (%.1f%%), ", jt.key(), jt.value()*100.0/num);
439 str = str.left(str.size() - 2);
440 strLstByBand[band->
getKey()] << str;
446 if (strLstByBand.size())
450 "::checkChannelSetup(): the session has a mixed channel setup:");
451 for (QMap<QString,
QList<QString> >::iterator it=strLstByBand.begin(); it!=strLstByBand.end(); ++it)
454 QString key=it.key();
455 str +=
"Numbers of channels at the " + key +
"-band: \n";
456 for (
int i=0; i<strLst.size(); i++)
458 str +=
"\t" + strLst.at(i) +
"\n";
460 "::checkChannelSetup(): " + key +
"-band: " + strLst.at(i));
466 QMessageBox::warning(NULL,
"Warning: mixed channels setup",
467 "The session contains mixed channels setup for the following baseline(s):\n\n" + str +
468 "\nSometimes this happens by mistake, you may need to report it to the correlator.");
472 "::checkChannelSetup(): the session is ok");
474 strLstByBand.clear();
483 QVector<QChar> abetka;
488 int numBands(
bands().size());
489 QRegularExpression reOldDbName(
"(\\d{2})([A-Z]{3})(\\d{2})([A-Z0-9]{1,2})");
490 QRegularExpression reNewDbName(
"(\\d{8})-([\\S]{2,12})");
491 QRegularExpressionMatch match;
510 "::selfCheck(): the operation started",
true);
516 "::selfCheck(): the session [" +
name_ +
"] does not contain any observations");
533 "::selfCheck(): the " + pBandKey +
"-band is set as the primary one");
535 QMap<QString, QMap<QString, QString> >
537 QMap<QString, QMap<QString, int> >
570 "::selfCheck(): the identities of observations were set up",
true);
576 "::selfCheck(): found dTec values");
587 "::selfCheck(): the observations were sorted",
true);
592 QMap<QString, QString> scanIdByName;
593 QMap<QString, QMap<QString, QString> >
614 "::selfCheck(): " + QString(
"").setNum(
scanEpochs_.size()) +
615 " scans have been found in the session",
true);
618 if (duplicateByName.size())
621 "::selfCheck(): found " + QString(
"").setNum(duplicateByName.size()) +
622 " duplicate scan names:",
true);
623 for (QMap<QString, QMap<QString, QString> >::iterator it=duplicateByName.begin();
624 it!=duplicateByName.end(); ++it)
627 for (QMap<QString, QString>::iterator jt=it.value().begin(); jt!=it.value().end(); ++jt, idx++)
630 "::selfCheck(): the scan ID " + jt.key() +
" has a scan name \"" + jt.value() +
"\"");
634 str = jt.value().simplified() + abetka[idx];
642 QString oldScanName(
"");
651 "::selfCheck(): cannot find the corrected scan name for scan ID " + obs->
getScanId() +
652 " and scan name \"" + oldScanName +
"\"");
660 "::selfCheck(): the scan name of " + obs->
getScanId() +
661 " scan has been changed from \"" + oldScanName +
"\" to \"" + str +
"\"");
665 "::selfCheck(): the corrected scan name is empty for scan ID " + obs->
getScanId() +
666 " and scan name \"" + oldScanName +
"\"");
672 scanIdByName.clear();
673 duplicateByName.clear();
678 int numChan=0, bitsPerSample=0;
680 for (
int i=0; i<numBands; i++)
682 bands_.at(i)->selfCheck();
683 numChan +=
bands_.at(i)->getMaxNumOfChannels();
684 rbw +=
bands_.at(i)->getMaxNumOfChannels()*
bands_.at(i)->sampleRate();
685 if (bitsPerSample == 0)
686 bitsPerSample =
bands_.at(i)->bitsPerSample();
687 else if (bitsPerSample !=
bands_.at(i)->bitsPerSample())
689 "::selfCheck(): at the " +
bands_.at(i)->getKey() +
690 "-band there is a different value for bits per sample: " +
691 QString(
"").sprintf(
"%d vs %d", bitsPerSample,
bands_.at(i)->bitsPerSample()));
694 "::selfCheck(): the selfcheck procedure for the bands was done",
true);
696 recordingMode_.sprintf(
"NChan:%d Rbw:%.1f Bps:%d", numChan, rbw*1.0e-6, bitsPerSample);
698 "::selfCheck(): the record mode has been set to \"" +
recordingMode_ +
"\"");
708 str = bi->
getKey().left(8);
713 "::selfCheck(): cannot find the station \"" + str +
"\" in the map",
true);
714 str = bi->
getKey().right(8);
719 "::selfCheck(): cannot find the station \"" + str +
"\" in the map",
true);
724 "::selfCheck(): set the length of the baseline \"" + bi->
getKey() +
"\" to " +
725 QString(
"").sprintf(
"%.3f (m)", bi->
getLength()));
736 for (
int i=0; i<numBands; i++)
749 "::selfCheck(): a reference clock station has been set up",
true);
754 for (
int i=0; i<numBands; i++)
756 if (!
bands_.at(i)->observables().size())
759 "::selfCheck(): the band " +
bands_.at(i)->getKey() +
760 " at the session " +
name_ +
" does not contain any observations");
763 if (t<
bands_.at(i)->getTCreation())
764 t =
bands_.at(i)->getTCreation();
774 "::selfCheck(): epochs of start/finish were established",
true);
785 "::selfCheck(): trying to check the provided by a user the database name \"" +
name_ +
"\"");
796 "::selfCheck(): a corresponding masterfile record was found");
800 "::selfCheck(): cannot find a masterfile record for the database \"" +
name_ +
"\"");
808 sYear.sprintf(
"%04d", year);
810 sYear.sprintf(
"%02d", year - (year>=2000?2000:1900));
814 "::selfCheck(): a masterfile record was found");
833 "::selfCheck(): cannot find a masterfile record for the session code \"" +
sessionCode_ +
"\"");
836 "::selfCheck(): for the session code: " +
sessionCode_ +
837 ", the following attributes were assigned:");
841 "::selfCheck(): name: " +
name_);
845 "::selfCheck(): scheduler/correlator/submitter: " +
860 "::selfCheck(): a masterfile record was found");
865 "::selfCheck(): cannot find a masterfile record for the session [" +
name_ +
"] ");
868 "::selfCheck(): for the session name: " +
name_ +
869 ", the following attributes were assigned:");
877 "::selfCheck(): scheduler/correlator/submitter: " +
887 "::selfCheck(): skipping the eccentricities set up: incomplete data set ",
true);
900 "::selfCheck(): the eccentricity file was read",
true);
915 "::selfCheck(): set up the eccentricity for the station " + si->
getKey());
921 "::selfCheck(): cannot find the eccentricity record for the station " + si->
getKey());
926 "::selfCheck(): the eccentricities of stations were set up",
true);
941 "::selfCheck(): the external a priori were collected",
true);
947 "::selfCheck(): the file with external weights was read",
true);
964 "::selfCheck(): the auxiliary observations were checked",
true);
978 if (numByScanIdBySrc.contains(si->
getKey()))
988 "::selfCheck(): the source \"" + str +
"\" has no any good observations in the primary band"
989 ", it was removed from the whole session");
993 "::selfCheck(): numbers of scans per a source were calculated",
true);
1001 "::selfCheck(): the calcInfo's list of stations is empty; set it up: " +
1008 "::selfCheck(): the network ID was set up",
true);
1012 "::selfCheck(): the session selfcheck has been completed",
true);
1031 int nYr_s, nMon_s, nDay_s, nHr_s, nMi_s;
1032 int nYr_f, nMon_f, nDay_f, nHr_f, nMi_f;
1033 double dSec_s, dSec_f;
1040 if (20 < nMi_f-nMi_s)
1041 nMi_s = 10*round(
double(nMi_s + nMi_f)/20.0);
1043 nMi_s = round(
double(nMi_s + nMi_f)/2.0);
1045 else if (nHr_s+1 == nHr_f)
1057 nHr_s = round(
double(nHr_s + nHr_f)/2.0);
1064 "::setupTimeRefer(): the reference epoch was set to " +
tRefer_.
toString());
1074 if (idx<0 ||
bands_.size()<=idx)
1076 for (
int i=0; i<
bands_.size(); i++)
1105 int numOfPrimaryBands=0;
1106 for (
int i=0; i<
bands_.size(); i++)
1110 numOfPrimaryBands++;
1112 if (numOfPrimaryBands==1)
1115 if (numOfPrimaryBands>1)
1116 for (
int i=0; i<
bands_.size(); i++)
1119 for (
int i=0; i<
bands_.size(); i++)
1121 if (
bands_.at(i)->getKey() ==
"X")
1143 i.value()->clearWrms();
1144 QMap<QString, SgVlbiAuxObservation*>::iterator auxObsIt=i.value()->auxObservationByScanId()->begin();
1145 for (; auxObsIt!=i.value()->auxObservationByScanId()->end(); ++auxObsIt)
1160 i.value()->clearWrms();
1162 i.value()->clearWrms();
1164 for (
int iBand=0; iBand<
bands_.size(); iBand++)
1169 i.value()->clearWrms();
1171 i.value()->clearWrms();
1173 i.value()->clearWrms();
1210 for (
int iBand=0; iBand<
bands_.size(); iBand++)
1213 QMap<QString, SgVlbiBaselineInfo*>::iterator itBaselineInfo=band->
baselinesByName().begin();
1214 for (
int iBaseline=0; itBaselineInfo!=band->
baselinesByName().end(); ++itBaselineInfo, iBaseline++)
1228 double sig4bln4del=0.0, sig4bln4rat=0.0, sig4bnd4del=0.0, sig4bnd4rat=0.0;
1243 for (
int iBand=0; iBand<
bands_.size(); iBand++)
1248 jt!=
bands_.at(iBand)->baselinesByName().end(); ++jt)
1250 jt.value()->setSigma2add(
DT_DELAY, sig4bln4del);
1251 jt.value()->setSigma2add(
DT_RATE, sig4bln4rat);
1256 i.value()->setSigma2add(
DT_DELAY, sig4bln4del);
1257 i.value()->setSigma2add(
DT_RATE, sig4bln4rat);
1298 for (
int i=0; i<
bands_.size(); i++)
1299 bands_.at(i)->resetAllEditings();
1302 for (QMap<QString, SgVlbiStationInfo*>::const_iterator it=
stationsByName_.begin();
1304 it.value()->resetAllEditings();
1307 for (QMap<QString, SgVlbiSourceInfo*>::const_iterator it=
sourcesByName_.begin();
1309 it.value()->resetAllEditings();
1312 for (QMap<QString, SgVlbiBaselineInfo*>::const_iterator it=
baselinesByName_.begin();
1314 it.value()->resetAllEditings();
1321 if (have2resetConfig)
1345 "::resetAllEditings(): all editings have been cleared");
1355 if (altName.size() > 0)
1357 str += QString(
"").sprintf(
"_V%03d_M%02d_C%c.%ssir",
1359 qPrintable(altName));
1369 if (s.status() != QDataStream::Ok)
1372 "::saveIntermediateResults(): error writting data");
1379 "::saveIntermediateResults(): error writting data for the version");
1384 for (
int i=0; i<
bands_.size(); i++)
1386 if (!
bands_.at(i)->saveIntermediateResults(s))
1389 "::saveIntermediateResults(): error writting data for " +
bands_.at(i)->getKey() +
"-band: " +
1390 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1396 for (QMap<QString, SgVlbiStationInfo*>::const_iterator it=
stationsByName_.begin();
1398 if (!it.value()->saveIntermediateResults(s))
1401 "::saveIntermediateResults(): error writting data for station " + it.value()->getKey() +
": " +
1402 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1407 for (QMap<QString, SgVlbiSourceInfo*>::const_iterator it=
sourcesByName_.begin();
1409 if (!it.value()->saveIntermediateResults(s))
1412 "::saveIntermediateResults(): error writting data for source " + it.value()->getKey() +
": " +
1413 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1418 for (QMap<QString, SgVlbiBaselineInfo*>::const_iterator it=
baselinesByName_.begin();
1420 if (!it.value()->saveIntermediateResults(s))
1423 "::saveIntermediateResults(): error writting data for baseline " + it.value()->getKey() +
": " +
1424 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1433 "::saveIntermediateResults(): error writting data for observation " +
1435 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1443 "::saveIntermediateResults(): error writting data for config: " +
1444 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1452 "::saveIntermediateResults(): error writting data for parameters setup: " +
1453 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1457 return s.status() == QDataStream::Ok;
1466 unsigned int attributes;
1468 s >> name >> attributes;
1469 if (s.status() != QDataStream::Ok)
1472 "::loadIntermediateResults(): error reading data: " +
1473 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1479 "::loadIntermediateResults(): error reading data: wrong session, names mismatch: got [" + name +
1480 "], expected [" +
getName() +
"]");
1486 "::loadIntermediateResults(): error reading data for version: " +
1487 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1501 "::loadIntermediateResults(): version mismatch, could get a problem");
1506 for (
int i=0; i<
bands_.size(); i++)
1507 if (!
bands_.at(i)->loadIntermediateResults(s))
1510 "::loadIntermediateResults(): error writting data for " +
bands_.at(i)->getKey() +
"-band: " +
1511 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1516 for (QMap<QString, SgVlbiStationInfo*>::const_iterator it=
stationsByName_.begin();
1518 if (!it.value()->loadIntermediateResults(s))
1521 "::loadIntermediateResults(): error writting data for station " + it.value()->getKey() +
": " +
1522 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1527 for (QMap<QString, SgVlbiSourceInfo*>::const_iterator it=
sourcesByName_.begin();
1529 if (!it.value()->loadIntermediateResults(s))
1532 "::loadIntermediateResults(): error writting data for source " + it.value()->getKey() +
": " +
1533 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1538 for (QMap<QString, SgVlbiBaselineInfo*>::const_iterator it=
baselinesByName_.begin();
1540 if (!it.value()->loadIntermediateResults(s))
1543 "::loadIntermediateResults(): error writting data for baseline " + it.value()->getKey() +
": " +
1544 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1553 "::loadIntermediateResults(): error writting data for observation " +
1555 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1563 "::loadIntermediateResults(): error writting data for config: " +
1564 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1572 "::loadIntermediateResults(): error writting data for parameters setup: " +
1573 (s.status()==QDataStream::ReadPastEnd?
"read past end of the file":
"read corrupt data"));
1579 return s.status()==QDataStream::Ok;
1618 "::allocUt1InterpolEpochs(): the vector of UT1 arguments has been deleted");
1624 "::allocUt1InterpolEpochs(): the vector of UT1 arguments has been created");
1626 for (
unsigned int i=0; i<numOfPts; i++)
1629 "::allocUt1InterpolEpochs(): the vector of UT1 arguments has been filled");
1642 "::allocPxyInterpolEpochs(): the vector of Pxy arguments has been deleted");
1648 "::allocPxyInterpolEpochs(): the vector of Pxy arguments has been created");
1650 for (
unsigned int i=0; i<numOfPts; i++)
1653 "::allocPxyInterpolEpochs(): the vector of Pxy arguments has been filled");
1664 "::allocUt1InterpolValues(): the input vector is NULL");
1670 "::allocUt1InterpolValues(): the size of the input vector is zero");
1679 "::allocUt1InterpolValues(): the matrix of UT1 values has been deleted");
1685 "::allocUt1InterpolValues(): the matrix of UT1 values has been created");
1687 for (
unsigned int i=0; i<vals->
n(); i++)
1690 "::allocUt1InterpolValues(): the matrix of UT1 values has been filled");
1701 "::allocPxyInterpolValues(): the input matrix is NULL");
1704 if (vals->
nRow()==0 || vals->
nCol()!=2)
1707 "::allocPxyInterpolValues(): the size of the input matrix is wrong");
1715 "::allocPxyInterpolValues(): the matrix of Pxy values has been deleted");
1721 "::allocPxyInterpolValues(): the matrix of Pxy values has been created");
1723 for (
unsigned int i=0; i<vals->
nRow(); i++)
1729 "::allocPxyInterpolValues(): the matrix of Pxy values has been filled");
const SgMJD tZero(1957, 10, 4)
SgVersion libraryVersion("SgLib", 0, 8, 2, "Compton Peak (rc2)", SgMJD(2023, 4, 3, 10, 59))
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 & getType() 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 sessionType_
official session type (from Masterfile);
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)
void resetAllEditings(bool have2resetConfig)
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()
int getExpectedMasterfileVersion() const
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)