23 #ifndef SG_VLBI_SESSION_H
24 #define SG_VLBI_SESSION_H
36 #include <QtCore/QMap>
37 #include <QtCore/QList>
114 const QString& acAbbName,
115 QString& path2wrapperFile, QString& wrapperFileName, QString& sessionName,
int& version,
119 QString& path2wrapperFile, QString& wrapperFileName, QString& sessionName,
int& version);
371 (
const QString& label,
int numTot,
int numPrc,
double wrms,
double chi2))
397 bool have2LoadImmatureSession,
bool guiExpected);
402 bool have2getAll,
bool isStandardSession,
bool have2LoadImmatureSession,
bool guiExpected);
432 const QString& altCorrelatorName,
const QString& historyFileName,
const QString& mapFileName,
438 const QString& altCorrelatorName,
const QString& historyFileName,
const QString& mapFileName,
439 bool need2correctRefClocks);
544 void process(
bool haveProcessAllBands,
bool interactWithGui);
596 const QMap<QString, int>* defaultCableSignByStn,
597 const QMap<QString, QString>* rinexFileNameByStn,
598 const QMap<QString, double>* rinexPressureOffsetByStn,
599 bool have2overwriteAntabFile,
600 bool reportAllTsysData,
601 const QString& altPath2InputFiles,
602 const QString& orderOfMeteo);
611 double& vUt1,
double& rUt1,
double& vPx,
double& rPx,
double& vPy,
double& rPy,
612 double& vCx,
double& rCx,
double& vCy,
double& rCy);
771 double wrms,
double chi2);
823 void processVexFile(
const QString&, QMap<QString, StationInfo>&, VexInfo&,
824 const QMap<QString, QString>&
stn2stn, QString& correlatorName);
829 const QMap<QString, StationInfo>& stnsInfo,
const VexInfo&,
const QString& vexFileName,
830 const QMap<QString, QString>& stnNameById,
const QMap<QString, QString>& stnNameByI,
831 const QMap<QString, QString>&
stn2stn,
const QMap<QString, QString>&
src2src,
832 const QMap<QString, QString>& bnd2bnd,
833 const QMap<QString, int>& fringeErrorCodeByInt,
int& expSerialNumber);
837 void processKombFile(
const QString& path2file,
const QString& kombFileName,
838 const QMap<QString, QString>&
stn2stn,
const QMap<QString, QString>&
src2src,
839 const QMap<QString, QString>& bnd2bnd);
849 void importMapFile(
const QString& mapFileName, QMap<QString, QString>& map4Stn,
850 QMap<QString, QString>& map4Src, QMap<QString, QString>& map4Bnd);
852 bool check4NameMap(
const QMap<QString, QString> &map, QString& name);
870 const QString&,
const QString&);
878 const SgVector& numOfAccPeriodsByChan_USB,
const SgVector& numOfAccPeriodsByChan_LSB,
880 const SgVector& numOfSamplesByChan_USB,
const SgVector& numOfSamplesByChan_LSB,
881 double sampleRate,
double refFreq,
int numOfChannels,
883 double& effFreq4GR,
double& effFreq4PH,
double& effFreq4RT,
885 const QString& correlatorType,
888 bool useEqualWeights=
false);
const SgMJD tZero(1957, 10, 4)
QMap< QString, SgVlbiBaselineInfo * > BaselinesByName
QMap< QString, QString > src2src
QMap< QString, QString > stn2stn
void evaluatePCal4GrpDelay(SgVector &, const SgVector &, int, double &, double &, int, const SgMJD &, const QString &, const QString &)
void evaluateEffectiveFreqs(const SgVector &numOfAccPeriodsByChan_USB, const SgVector &numOfAccPeriodsByChan_LSB, const SgVector &refFreqByChan, const SgVector &fringeAmplitudeByChan, const SgVector &numOfSamplesByChan_USB, const SgVector &numOfSamplesByChan_LSB, double sampleRate, double refFreq, int numOfChannels, double &effFreq4GR, double &effFreq4PH, double &effFreq4RT, const QString &correlatorType, const QString &oId, bool useEqualWeights=false)
QMap< QString, SgVlbiSourceInfo * > SourcesByName
QMap< QString, SgVlbiStationInfo * > StationsByName
double dUt1StdDev() const
double dUt1Correction() const
void doPostReadActions_old()
QList< SgMJD * > scanEpochs_
const SgAPriories & getApStationGradients() const
SgAPriories apStationGradients_
void(* longOperationStart_)(int minStep, int maxStep, const QString &message)
SgVlbiBand * primaryBand()
int numberOfBands() const
StationsByName stationsByName_
bool writeUserData2File(const QString &fileName)
bool hasOceanPoleTideContrib_
bool hasWobbleNutContrib_
bool getDataFromVgosDb(SgVgosDb *vgosDb, bool have2LoadImmatureSession, bool guiExpected)
void search4missedLogFiles(QMap< QString, QString > &logFileByKey, const SgNetworkStations &ns_codes)
const SgAPriories & getApStationVelocities() const
QMap< QString, SgVlbiBand * > & bandByKey()
SgParameter * pPolusYRate_
void allocPxyInterpolValues(const SgMatrix *vals)
void setLeapSeconds(double s)
bool hasUt1LibrationContrib_
QMap< QString, SgVlbiObservation * > observationByKey_
SgVlbiStationInfo * lookupStationByIdx(int)
SgVlbiHistory & contemporaryHistory()
int getNumOfConstraints() const
bool getDataFromFringeFiles(const QString &path2, const QString &altDatabaseName, const QString &altCorrelatorName, const QString &historyFileName, const QString &mapFileName, const QList< QString > &)
bool need2runAutomaticDataProcessing()
void setLongOperationStart(void(*operation)(int, int, const QString &))
SgModelsInfo & calcInfo()
QList< SgVlbiBand * > & bands()
void resolveGrAmbigTriangles(int bandIdx)
const SgAPriories & getApSourceStrModel() const
QList< SgVlbiBand * > bands_
QVector< bool > userCorrectionsUse_
void formObsCalibrationSetup(int &bitFlags, QList< QString > &calList)
void setPrimaryBandByIdx(int)
const QList< SgVlbiObservation * > & observations() const
SgTidalUt1::UT1TideContentType tabsUt1Type_
bool getDataFromDbhImages(QMap< QString, SgDbhImage * > &images, bool have2LoadImmatureSession, bool guiExpected)
void calculateIonoCorrections(const SgTaskConfig *)
const QVector< QString > & getUserCorrectionsName() const
void setParametersDescriptor(SgParametersDescriptor *parametersDescriptor)
SgVector * args4PxyInterpolation_
bool getDataFromKombFiles(const QString &path2, const QString &altDatabaseName, const QString &altCorrelatorName, const QString &historyFileName, const QString &mapFileName, bool need2correctRefClocks)
bool hasPxyLibrationContrib() const
SgAPriories apStationVelocities_
bool exportDataIntoNgsFile(const QString &fileName)
void processFringeFile(const QString &path2file, const QString &fringeFileName, const QMap< QString, StationInfo > &stnsInfo, const VexInfo &, const QString &vexFileName, const QMap< QString, QString > &stnNameById, const QMap< QString, QString > &stnNameByI, const QMap< QString, QString > &stn2stn, const QMap< QString, QString > &src2src, const QMap< QString, QString > &bnd2bnd, const QMap< QString, int > &fringeErrorCodeByInt, int &expSerialNumber)
bool hasGradPartials() const
const QVector< bool > & getUserCorrectionsUse() const
const SgVlbiHistory & contemporaryHistory() const
QVector< QString > & userCorrectionsName()
int restoreOutliers(int bandIdx)
void(* longOperationProgress_)(int step)
void prepare4ErpInterpolation()
void makeHistoryIntro(SgVlbiHistory &)
void setNumOfConstraints(int n)
bool selfCheck(bool guiExpected)
void setLongOperationProgress(void(*operation)(int))
SgTaskConfig lastProcessedConfig_
const QMap< QString, SgVlbiStationInfo * > & stationsByName() const
bool hasOceanPoleTideContrib() const
void processKombFile(const QString &path2file, const QString &kombFileName, const QMap< QString, QString > &stn2stn, const QMap< QString, QString > &src2src, const QMap< QString, QString > &bnd2bnd)
QMap< QString, SgVlbiStationInfo * > & stationsByName()
SgAPriories apAxisOffsets_
SgParameter * pPolusYRate()
QMap< QString, SgVlbiBand * > bandByKey_
bool hasWobblePyContrib() const
SgParameter * pPolusXRate_
const SgMJD & tRefer() const
void applyObsCalibrationSetup(int bitFlags, const QList< QString > &calList)
const SgAPriories & getApStationPositions() const
SgParameter * pNutYRate()
bool hasOceanTideContrib_
QList< SgVlbiObservation * > observations_
SgAPriories apSourceStrModel_
void setLongOperationShowStats(void(*operation)(const QString &label, int numTot, int numPrc, double wrms, double chi2))
void allocPxyInterpolEpochs(double t0, double dt, unsigned int numOfPts)
bool hasPoleTideOldContrib_
bool getDataFromDbhImage(SgDbhImage *image, bool have2getAll, bool isStandardSession, bool have2LoadImmatureSession, bool guiExpected)
bool check4ClockBreaksAtSBD()
SgAPriories apStationPositions_
SgVector *& args4PxyInterpolation()
void allocUt1InterpolEpochs(double t0, double dt, unsigned int numOfPts)
bool hasWobbleHighFreqContrib_
SgSolutionReporter * reporter_
bool saveIntermediateResults(QDataStream &) const
bool detectClockBreaks_mode1(SgVlbiBand *, QString &, SgMJD &)
bool hasUnPhaseCalContrib_
const QMap< QString, SgVlbiSourceInfo * > & sourcesByName() const
void(* longOperationStop_)()
SgVlbiHistory contemporaryHistory_
bool getCorrelatorHistory(const QString &fileName)
SgParameter * pPolusXRate()
bool hasOutlierRestoratioRun_
QMap< int, SgVlbiStationInfo * > stationsByIdx_
QList< SgVlbiObservation * > & observations()
void process(bool haveProcessAllBands, bool interactWithGui)
virtual void setUpPrimaryBand()
void setHasUt1Interpolation(bool has)
bool hasReferenceCoordinatesStation()
SgAPriories apSourcePositions_
bool hasCipPartials() const
void pickupReferenceCoordinatesStation()
bool hasGpsIonoContrib() const
const SgModelEop_JMG_96_hf & getApHiFyEop() const
QString name4SirFile(bool)
bool hasOceanTideOldContrib() const
SgCubicSpline * externalErpInterpolator_
bool isInUse(SgVlbiBaselineInfo *)
void scanBaselines4GrDelayAmbiguities(int bandIdx)
SgExternalEopFile externalErpFile_
static bool guessSessionByWrapperFileName(const QString &inputArg, const QString &path2VgosDb, QString &path2wrapperFile, QString &wrapperFileName, QString &sessionName, int &version)
void checkUseOfManualPhaseCals()
bool hasNdryContrib() const
SgParametersDescriptor storedParametersDescriptor_
const SgAPriories & getApSourcePositions() const
SgExternalWeights externalWeights_
void setNumOfParameters(int n)
void(* longOperationMessage_)(const QString &message)
void setReporter(SgSolutionReporter *reporter)
const QMap< QString, double > & skyFreqByIfId() const
bool hasUt1HighFreqContrib_
bool putDataIntoAgvFile(const QString &dirName, const QString &fileName, SgIdentities *ids, SgVersion *driverVersion)
void allocUt1InterpolValues(const SgVector *vals)
bool putDataIntoDbhImage(SgDbhImage *image)
SgMatrix *& tabs4Ut1Interpolation()
bool hasPxyInterpolation_
QMap< QString, double > skyFreqByIfId_
bool getDataFromAgvFile(const QString &fileName, SgIdentities *ids, SgVersion *driverVersion)
QMap< int, SgVlbiBaselineInfo * > & baselinesByIdx()
void importMapFile(const QString &mapFileName, QMap< QString, QString > &map4Stn, QMap< QString, QString > &map4Src, QMap< QString, QString > &map4Bnd)
static bool guessWrapperFileNameBySession(const QString &inputArg, const QString &path2VgosDb, const QString &acAbbName, QString &path2wrapperFile, QString &wrapperFileName, QString &sessionName, int &version, bool noYears=false)
void eliminateLargeOutliers(int bandIdx, int maxNumOfPasses, double wrmsRatio)
SgTaskConfig * getConfig()
void correctClockBreak(SgVlbiBand *, SgVlbiStationInfo *, const SgMJD &, double, double, bool, bool=true)
SgMatrix *& tabs4PxyInterpolation()
void setHasPxyInterpolation(bool has)
void zerofyIonoCorrections(const SgTaskConfig *)
double dUt1StdDev() const
void parseVexFile(const QString &, QString &, QString &)
const QList< SgMJD * > & scanEpochs() const
SgCubicSpline * innerUt1Interpolator_
bool hasUt1LibrationContrib() const
const SgIoDriver * getInputDriver() const
void setPath2Masterfile(const QString &)
const QList< SgVlbiBand * > & bands() const
SgSolutionReporter * getReporter()
void getAprioriErp(const SgMJD &t, double &vUt1, double &rUt1, double &vPx, double &rPx, double &vPy, double &rPy, double &vCx, double &rCx, double &vCy, double &rCy)
void calculateClockBreaksParameters(QList< SgClockBreakAgent * > &, SgVlbiBand *)
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
QVector< QString > userCorrectionsName_
static const QString sSkipCode_
const QMap< QString, SgVlbiBaselineInfo * > & baselinesByName() const
bool doPostReadActions4Ints(const SgTaskConfig::AutomaticProcessing &)
bool hasWobbleHighFreqContrib() const
BaselinesByName baselinesByName_
bool hasUt1HighFreqContrib() const
bool resetDataFromLogFiles(bool doCable, bool doMeteo, bool doTsys, const QList< QString > &stations)
void makeHistory(SgVlbiHistory &)
void calculateClockBreakParameter(const SgMJD &, SgVlbiStationInfo *, SgVlbiBand *, double &, double &)
bool hasUt1Interpolation_
void processVexFile(const QString &, QMap< QString, StationInfo > &, VexInfo &, const QMap< QString, QString > &stn2stn, QString &correlatorName)
SgParameter * pNutXRate()
SgParametersDescriptor * parametersDescriptor_
QString path2APrioriFiles_
bool importDataFromLogFiles(const QString &path2sessions, const QList< QString > &stations, const QList< QString > &kinds, const QMap< QString, int > *defaultCableSignByStn, const QMap< QString, QString > *rinexFileNameByStn, const QMap< QString, double > *rinexPressureOffsetByStn, bool have2overwriteAntabFile, bool reportAllTsysData, const QString &altPath2InputFiles, const QString &orderOfMeteo)
SgVlbiBand * primaryBand_
bool getHasPxyInterpolation() const
QMap< QString, SgVlbiObservation * > & observationByKey()
SgTidalUt1::UT1TideContentType getTabsUt1Type() const
SgIoDriver * inputDriver_
const SgVlbiBand * primaryBand() const
bool hasFeedCorrContrib() const
int eliminateOutliers(int bandIdx)
bool hasEarthTideContrib() const
void eliminateOutliersMode1()
void eliminateOutliersSimpleMode(int bandIdx, int maxNumOfPasses, double threshold, double=0.0)
QMap< int, SgVlbiSourceInfo * > & sourcesByIdx()
SgVlbiSourceInfo * lookupSourceByIdx(int)
void pickupReferenceClocksStation()
void detectAndProcessClockBreaks()
int suppressNotSoGoodObs()
QMap< int, SgVlbiStationInfo * > & stationsByIdx()
void setInputDriver(SgIoDriver *drv)
bool hasEarthTideContrib_
void setLongOperationMessage(void(*operation)(const QString &))
SgParametersDescriptor * getParametersDescriptor()
SgVector *& args4Ut1Interpolation()
void setPath2APrioriFiles(const QString &)
bool putDataIntoVgosDb(SgVgosDb *vgosDb)
bool hasOutlierEliminationRun_
bool hasWobbleNutContrib() const
static QString className()
bool hasPoleTideContrib() const
int getNumOfParameters() const
SgTaskConfig storedConfig_
void checkExcludedStations()
bool loadIntermediateResults(QDataStream &)
void setReferenceClocksStation(const QString &stnKey)
SgVector * args4Ut1Interpolation_
bool hasPxyLibrationContrib_
SgMatrix * tabs4Ut1Interpolation_
bool hasWobblePxContrib() const
void(* longOperationShowStats_)(const QString &label, int numTot, int numPrc, double wrms, double chi2)
void setConfig(SgTaskConfig *cfg)
void lookupExternalWeights()
bool have2InteractWithGui_
bool hasTiltRemvrContrib() const
void setHave2InteractWithGui(bool have2)
int numOfPts4ErpInterpolation_
const SgAPriories & getApAxisOffsets() const
QMap< QString, double > & skyFreqByIfId()
bool hasOceanTideContrib() const
void stnInpt2Key(const QString &stnNameInpt, SgNetworkStations &ns_codes, QString &key)
void setClockModelOrder4Stations(int)
QMap< int, SgVlbiBaselineInfo * > baselinesByIdx_
bool hasNwetContrib() const
SourcesByName sourcesByName_
void setTabsUt1Type(SgTidalUt1::UT1TideContentType tp)
bool hasUnPhaseCalContrib() const
bool isAble2InterpolateErp_
void restoreIonCorrections()
SgVlbiBaselineInfo * lookupBaselineByIdx(int)
QVector< bool > & userCorrectionsUse()
void checkBandForClockBreaks(int, bool)
SgCubicSpline * innerPxyInterpolator_
QMap< QString, SgVlbiBaselineInfo * > & baselinesByName()
double dUt1Correction() const
void calculateBaselineClock_F1()
void setLongOperationStop(void(*operation)())
bool hasTiltRemvrContrib_
bool check4NameMap(const QMap< QString, QString > &map, QString &name)
bool isAble2InterpolateErp() const
bool getHasUt1Interpolation() const
bool hasOceanTideOldContrib_
SgMatrix * tabs4PxyInterpolation_
QMap< int, SgVlbiSourceInfo * > sourcesByIdx_
bool hasPoleTideOldContrib() const
bool hasReferenceClocksStation()
bool checkChannelSetup(bool guiExpected)
SgModelEop_JMG_96_hf apHiFyEop_
SgVersion * driverVersion
SgParametersDescriptor parametersDescriptor