63 const QString
sMntTypes[]={
"AZEL",
"EQUA",
"X_YN",
"X_YE",
"RICHMOND",
"UNKN"};
65 int numOfUserCorrections;
73 SgVector *calcDelays=NULL, *calcRates=NULL, *fractC=NULL;
77 QMap<QString, SgMatrix*> singleBandDelaysByBand, groupDelaysByBand, ratesByBand, phasesByBand,
78 uvByBand, calFeedCorrByBand, effFreqsByBand,
79 ionCalsByBand, ionSigmasByBand,
80 phaseCals_1ByBand, phaseCals_2ByBand;
81 QMap<QString, SgMatrix*> phaseCalFreqs_1ByBand, phaseCalAmps_1ByBand,
82 phaseCalPhases_1ByBand, phaseCalOffsets_1ByBand,
83 phaseCalFreqs_2ByBand, phaseCalAmps_2ByBand,
84 phaseCalPhases_2ByBand, phaseCalOffsets_2ByBand;
86 QMap<QString, SgVector*> ambigsByBand, refFreqsByBand, correlationByBand, snrByBand,
87 phaseCalRates_1ByBand, phaseCalRates_2ByBand;
88 QMap<QString, QVector<QString> >
90 QMap<QString, QVector<int> > numAmbigsByBand, numSubAmbigsByBand, numPhsAmbigsByBand,
91 ionDataFlagByBand, dataFlagByBand;
94 QMap<QString, QVector<QString> >
95 fourfitOutputFNameByBand, fourfitErrorCodesByBand,
97 tapeQualityCodesByBand, vlb1FileNamesByBand, tapeIds_1ByBand,
99 QMap<QString, QVector<int> > startOffsetsByBand, stopOffsetsByBand,
100 hopsRevisionNumbersByBand;
101 QMap<QString, QVector< QVector<int> > >
102 fourfitVersionsByBand, epochsOfCorrelationsByBand,
103 epochsOfCentralsByBand, epochsOfFourfitingsByBand,
104 epochsOfNominalScanTimeByBand;
105 QMap<QString, SgVector*> deltaEpochsByBand, smplRateByBand, sbdResidsByBand, rateResidsByBand,
106 effDurationsByBand, startSecondsByBand, stopSecondsByBand,
107 percentOfDiscardsByBand, uniformityFactorsByBand,
108 geocenterPhaseResidsByBand, geocenterPhaseTotalsByBand,
109 geocenterSbDelaysByBand, geocenterGrDelaysByBand,
110 geocenterDelayRatesByBand, probOfFalsesByBand, corrAprioriDelaysByBand,
111 corrAprioriRatesByBand, corrAprioriAccsByBand, incohAmpsByBand,
112 incohAmps2ByBand, delayResidsByBand;
113 QMap<QString, SgMatrix*> urvrsByBand, instrDelaysByBand, searchParamsByBand, corrClocksByBand,
114 mDlysByBand, mAuxByBand, starElevByBand, zenithDelaysByBand;
117 QMap<QString, QVector<QString> >
118 fourfitControlFileByBand, fourfitCommandByBand;
119 QMap<QString, QVector<int> > numLagsByBand;
120 QMap<QString, QVector<double> >
124 QMap<QString, QVector<QString> >
125 channelIdsByBand, polarizationsByBand;
126 QMap<QString, QVector<int> > numOfChannelsByBand, bitsPerSamplesByBand;
128 QMap<QString, QVector< QVector<int> > >
129 errorRates_1ByBand, errorRates_2ByBand, bbcIdxs_1ByBand, bbcIdxs_2ByBand,
130 corelIdxNumbersUsbByBand, corelIdxNumbersLsbByBand;
131 QMap<QString, SgVector* > sampleRateByBand;
132 QMap<QString, SgMatrix* > residFringeAmplByChanByBand, residFringePhseByChanByBand,
134 numOfSamplesByChan_USBByBand, numOfSamplesByChan_LSBByBand,
135 numOfAccPeriodsByChan_USBByBand, numOfAccPeriodsByChan_LSBByBand,
136 loFreqs_1ByBand, loFreqs_2ByBand;
143 dTec = dTecStdDev = NULL;
157 "::getDataFromVgosDb(): found data for X-band");
160 "::getDataFromVgosDb(): no data for X-band have been found: " +
name_);
163 "::getDataFromVgosDb(): found data for S-band");
166 "::getDataFromVgosDb(): no data for S-band have been found: " +
name_);
168 for (
int i=0; i<listOfBands.size(); i++)
170 const QString &bandKey=listOfBands.at(i);
171 singleBandDelaysByBand .insert(bandKey, NULL);
172 groupDelaysByBand .insert(bandKey, NULL);
173 ratesByBand .insert(bandKey, NULL);
174 phasesByBand .insert(bandKey, NULL);
175 ionCalsByBand .insert(bandKey, NULL);
176 ionSigmasByBand .insert(bandKey, NULL);
177 phaseCals_1ByBand .insert(bandKey, NULL);
178 phaseCals_2ByBand .insert(bandKey, NULL);
179 phaseCalFreqs_1ByBand .insert(bandKey, NULL);
180 phaseCalFreqs_2ByBand .insert(bandKey, NULL);
181 phaseCalAmps_1ByBand .insert(bandKey, NULL);
182 phaseCalAmps_2ByBand .insert(bandKey, NULL);
183 phaseCalPhases_1ByBand .insert(bandKey, NULL);
184 phaseCalPhases_2ByBand .insert(bandKey, NULL);
185 phaseCalOffsets_1ByBand .insert(bandKey, NULL);
186 phaseCalOffsets_2ByBand .insert(bandKey, NULL);
187 phaseCalRates_1ByBand .insert(bandKey, NULL);
188 phaseCalRates_2ByBand .insert(bandKey, NULL);
190 effFreqsByBand .insert(bandKey, NULL);
191 refFreqsByBand .insert(bandKey, NULL);
192 correlationByBand .insert(bandKey, NULL);
193 uvByBand .insert(bandKey, NULL);
194 calFeedCorrByBand .insert(bandKey, NULL);
195 snrByBand .insert(bandKey, NULL);
196 ambigsByBand .insert(bandKey, NULL);
198 qCodesByBand .insert(bandKey, QVector<QString>());
200 fourfitOutputFNameByBand .insert(bandKey, QVector<QString>());
201 fourfitErrorCodesByBand .insert(bandKey, QVector<QString>());
202 baselineCodesByBand .insert(bandKey, QVector<QString>());
203 tapeQualityCodesByBand .insert(bandKey, QVector<QString>());
204 vlb1FileNamesByBand .insert(bandKey, QVector<QString>());
205 tapeIds_1ByBand .insert(bandKey, QVector<QString>());
206 tapeIds_2ByBand .insert(bandKey, QVector<QString>());
208 startOffsetsByBand .insert(bandKey, QVector<int>());
209 stopOffsetsByBand .insert(bandKey, QVector<int>());
210 hopsRevisionNumbersByBand .insert(bandKey, QVector<int>());
211 fourfitVersionsByBand .insert(bandKey, QVector< QVector<int> >());
213 epochsOfCorrelationsByBand .insert(bandKey, QVector< QVector<int> >());
214 epochsOfCentralsByBand .insert(bandKey, QVector< QVector<int> >());
215 epochsOfFourfitingsByBand .insert(bandKey, QVector< QVector<int> >());
216 epochsOfNominalScanTimeByBand .insert(bandKey, QVector< QVector<int> >());
217 deltaEpochsByBand .insert(bandKey, NULL);
218 smplRateByBand .insert(bandKey, NULL);
219 sbdResidsByBand .insert(bandKey, NULL);
220 rateResidsByBand .insert(bandKey, NULL);
221 effDurationsByBand .insert(bandKey, NULL);
222 startSecondsByBand .insert(bandKey, NULL);
223 stopSecondsByBand .insert(bandKey, NULL);
224 percentOfDiscardsByBand .insert(bandKey, NULL);
225 uniformityFactorsByBand .insert(bandKey, NULL);
226 geocenterPhaseResidsByBand .insert(bandKey, NULL);
227 geocenterPhaseTotalsByBand .insert(bandKey, NULL);
228 geocenterSbDelaysByBand .insert(bandKey, NULL);
229 geocenterGrDelaysByBand .insert(bandKey, NULL);
230 geocenterDelayRatesByBand .insert(bandKey, NULL);
231 probOfFalsesByBand .insert(bandKey, NULL);
232 corrAprioriDelaysByBand .insert(bandKey, NULL);
233 corrAprioriRatesByBand .insert(bandKey, NULL);
234 corrAprioriAccsByBand .insert(bandKey, NULL);
235 incohAmpsByBand .insert(bandKey, NULL);
236 incohAmps2ByBand .insert(bandKey, NULL);
237 delayResidsByBand .insert(bandKey, NULL);
238 urvrsByBand .insert(bandKey, NULL);
239 instrDelaysByBand .insert(bandKey, NULL);
240 starElevByBand .insert(bandKey, NULL);
241 zenithDelaysByBand .insert(bandKey, NULL);
242 searchParamsByBand .insert(bandKey, NULL);
243 corrClocksByBand .insert(bandKey, NULL);
244 mDlysByBand .insert(bandKey, NULL);
245 mAuxByBand .insert(bandKey, NULL);
248 fourfitControlFileByBand .insert(bandKey, QVector<QString>());
249 fourfitCommandByBand .insert(bandKey, QVector<QString>());
250 numLagsByBand .insert(bandKey, QVector<int>());
251 apLengthByBand .insert(bandKey, QVector<double>());
253 numAmbigsByBand .insert(bandKey, QVector<int>());
254 numSubAmbigsByBand .insert(bandKey, QVector<int>());
255 numPhsAmbigsByBand .insert(bandKey, QVector<int>());
256 dataFlagByBand .insert(bandKey, QVector<int>());
257 ionDataFlagByBand .insert(bandKey, QVector<int>());
260 channelIdsByBand .insert(bandKey, QVector<QString>());
261 polarizationsByBand .insert(bandKey, QVector<QString>());
262 numOfChannelsByBand .insert(bandKey, QVector<int>());
263 bitsPerSamplesByBand .insert(bandKey, QVector<int>());
265 errorRates_1ByBand .insert(bandKey, QVector< QVector<int> >());
266 errorRates_2ByBand .insert(bandKey, QVector< QVector<int> >());
267 bbcIdxs_1ByBand .insert(bandKey, QVector< QVector<int> >());
268 bbcIdxs_2ByBand .insert(bandKey, QVector< QVector<int> >());
269 corelIdxNumbersUsbByBand .insert(bandKey, QVector< QVector<int> >());
270 corelIdxNumbersLsbByBand .insert(bandKey, QVector< QVector<int> >());
272 sampleRateByBand .insert(bandKey, NULL);
273 residFringeAmplByChanByBand .insert(bandKey, NULL);
274 residFringePhseByChanByBand .insert(bandKey, NULL);
275 refFreqByChanByBand .insert(bandKey, NULL);
276 numOfSamplesByChan_USBByBand .insert(bandKey, NULL);
277 numOfSamplesByChan_LSBByBand .insert(bandKey, NULL);
278 numOfAccPeriodsByChan_USBByBand .insert(bandKey, NULL);
279 numOfAccPeriodsByChan_LSBByBand .insert(bandKey, NULL);
280 loFreqs_1ByBand .insert(bandKey, NULL);
281 loFreqs_2ByBand .insert(bandKey, NULL);
290 numOfObs = epochs4Obs.size();
298 "::getDataFromVgosDb(): cannot find precalculated delays and rates");
308 "::getDataFromVgosDb(): cannot find fractC");
312 vectors2del << calcDelays << calcRates << fractC;
320 QString correlatorType(
""), correlatorName(
""), piName(
""), experimentName(
""),
321 experimentDescription(
""), recordingMode(
"");
323 SgMJD tStart, tFinis;
324 int sftIdx(-1), experimentSerialNumber(-1);
325 if (!vgosDb->
loadSessionHead(correlatorType, correlatorName, piName, experimentName,
326 experimentSerialNumber, experimentDescription, recordingMode, declStations, declSources,
327 tStart, tFinis, sftIdx))
330 "::getDataFromVgosDb(): cannot use the data because of missed info: Head");
337 if (0 < experimentSerialNumber)
340 declStations.clear();
348 for (
int i=0; i<listOfBands.size(); i++)
350 const QString &bandKey=listOfBands.at(i);
354 "::getDataFromVgosDb(): the data are hardly usable because of missed info: SB Delays for " +
364 "::getDataFromVgosDb(): cannot use data because of missed info: Group Delays for " +
368 if (!vgosDb->
loadObsRates(bandKey, ratesByBand[bandKey]))
371 "::getDataFromVgosDb(): cannot use data because of missed info: Rates for " +
379 "::getDataFromVgosDb(): cannot use data because of missed info: Ref Freqs for " +
388 "::getDataFromVgosDb(): cannot use data because of missed info: Ambig Spacing for " +
395 "::getDataFromVgosDb(): cannot use data because of missed info: Quality Codes for " +
399 if (!vgosDb->
loadObsCorrelation(bandKey, correlationByBand[bandKey]) && !have2LoadImmatureSession)
402 "::getDataFromVgosDb(): cannot use data because of missed info: Correlation Coeffs for " +
408 "::getDataFromVgosDb(): cannot use data because of missed info: UV for " +
414 "::getDataFromVgosDb(): cannot use data because of missed info: FeedCorr for " +
419 if (!vgosDb->
loadObsSNR(bandKey, snrByBand[bandKey]) && !have2LoadImmatureSession)
422 "::getDataFromVgosDb(): cannot use data because of missed info: SNR for " +
428 fourfitOutputFNameByBand[bandKey],
429 fourfitErrorCodesByBand[bandKey],
431 startOffsetsByBand[bandKey],
432 fourfitVersionsByBand[bandKey],
434 deltaEpochsByBand[bandKey],
435 urvrsByBand[bandKey],
436 instrDelaysByBand[bandKey],
437 starElevByBand[bandKey],
438 zenithDelaysByBand[bandKey],
439 searchParamsByBand[bandKey],
440 baselineCodesByBand[bandKey],
441 tapeQualityCodesByBand[bandKey],
442 stopOffsetsByBand[bandKey],
443 hopsRevisionNumbersByBand[bandKey],
444 smplRateByBand[bandKey],
445 sbdResidsByBand[bandKey],
446 rateResidsByBand[bandKey],
447 effDurationsByBand[bandKey],
448 startSecondsByBand[bandKey],
449 stopSecondsByBand[bandKey],
450 percentOfDiscardsByBand[bandKey],
451 uniformityFactorsByBand[bandKey],
452 geocenterPhaseResidsByBand[bandKey],
453 geocenterPhaseTotalsByBand[bandKey],
454 geocenterSbDelaysByBand[bandKey],
455 geocenterGrDelaysByBand[bandKey],
456 geocenterDelayRatesByBand[bandKey],
457 probOfFalsesByBand[bandKey],
458 corrAprioriDelaysByBand[bandKey],
459 corrAprioriRatesByBand[bandKey],
460 corrAprioriAccsByBand[bandKey],
461 incohAmpsByBand[bandKey],
462 incohAmps2ByBand[bandKey],
463 delayResidsByBand[bandKey],
464 vlb1FileNamesByBand[bandKey],
465 tapeIds_1ByBand[bandKey],
466 tapeIds_2ByBand[bandKey],
467 epochsOfCorrelationsByBand[bandKey],
468 epochsOfCentralsByBand[bandKey],
469 epochsOfFourfitingsByBand[bandKey],
470 epochsOfNominalScanTimeByBand[bandKey],
471 corrClocksByBand[bandKey],
472 mDlysByBand[bandKey],
473 mAuxByBand[bandKey]))
475 "::getDataFromVgosDb(): reading Correlator Info for the " + bandKey +
"-band has failed");
479 fourfitControlFileByBand[bandKey], fourfitCommandByBand[bandKey],
480 numLagsByBand[bandKey], apLengthByBand[bandKey]))
482 "::getDataFromVgosDb(): reading Fourfit Info for the " + bandKey +
"-band has failed");
488 ionDataFlagByBand[bandKey]);
491 vgosDb->
loadObsCalUnphase(bandKey, phaseCals_1ByBand[bandKey], phaseCals_2ByBand[bandKey]);
495 channelIdsByBand[bandKey],
496 polarizationsByBand[bandKey],
497 numOfChannelsByBand[bandKey],
498 bitsPerSamplesByBand[bandKey],
499 errorRates_1ByBand[bandKey],
500 errorRates_2ByBand[bandKey],
501 bbcIdxs_1ByBand[bandKey],
502 bbcIdxs_2ByBand[bandKey],
503 corelIdxNumbersUsbByBand[bandKey],
504 corelIdxNumbersLsbByBand[bandKey],
505 sampleRateByBand[bandKey],
506 residFringeAmplByChanByBand[bandKey],
507 residFringePhseByChanByBand[bandKey],
508 refFreqByChanByBand[bandKey],
509 numOfSamplesByChan_USBByBand[bandKey],
510 numOfSamplesByChan_LSBByBand[bandKey],
511 numOfAccPeriodsByChan_USBByBand[bandKey],
512 numOfAccPeriodsByChan_LSBByBand[bandKey],
513 loFreqs_1ByBand[bandKey],
514 loFreqs_2ByBand[bandKey]))
517 "::getDataFromVgosDb(): missed info: channel info for " + bandKey +
"-band");
522 phaseCalFreqs_1ByBand[bandKey], phaseCalAmps_1ByBand[bandKey],
523 phaseCalPhases_1ByBand[bandKey], phaseCalOffsets_1ByBand[bandKey],
524 phaseCalRates_1ByBand[bandKey],
525 phaseCalFreqs_2ByBand[bandKey], phaseCalAmps_2ByBand[bandKey],
526 phaseCalPhases_2ByBand[bandKey], phaseCalOffsets_2ByBand[bandKey],
527 phaseCalRates_2ByBand[bandKey]))
529 "::getDataFromVgosDb(): missed info: phase calibration data for " + bandKey +
"-band");
536 "::getDataFromVgosDb(): no dTec data found");
540 SgMatrix *calEarthTide, *calEopHiFiUt;
542 SgMatrix *calBend, *calBendSun, *calBendSunHigher;
543 SgMatrix *calEopHiFiXY, *calOcean, *calOceanOld;
545 SgMatrix *calPoleTide, *calPoleTideOldRestore, *calTiltRmvr;
547 SgMatrix *calWobNut, *calHiFreqLibrationPm, *calHiFreqLibrationUt;
548 SgMatrix *valNutNro, *valNutNro_rates;
549 SgMatrix *valNutEqx, *valNutEqx_rates;
550 SgMatrix *valNutEqxWahr, *valNutEqxWahr_rates;
551 SgMatrix *rSun, *rMoon, *rEarth, *vSun, *vMoon, *vEarth, *aEarth;
552 SgMatrix *t2c_val, *t2c_rat, *t2c_acc, *pmXy;
555 calEarthTide = calEopHiFiUt = calEopHiFiXY = calOcean = calOceanOld = calPlxRev = calBend
556 = calBendSun = calBendSunHigher = calPoleTide = calPoleTideOldRestore = calTiltRmvr
557 = calWobNut = calWobbleX = calWobbleY = calOceanPoleTideLd
558 = calHiFreqLibrationPm = calHiFreqLibrationUt = valNutNro = valNutNro_rates
559 = valNutEqxWahr = valNutEqxWahr_rates = valNutEqx = valNutEqx_rates
560 = rSun = rMoon = rEarth = vSun = vMoon = vEarth = aEarth
561 = t2c_val = t2c_rat = t2c_acc = pmXy
568 "::getDataFromVgosDb(): limited use data, missed info: Earth Tides");
570 else if (!kind.isEmpty() && kind.toUpper() !=
"IERS2003")
572 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of Earth tide calibration");
577 "::getDataFromVgosDb(): limited use data, missed info: HiFq EOP");
579 else if (!kind.isEmpty() && kind.toUpper() !=
"IERS2003")
581 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of high frequency ERP calibration");
586 "::getDataFromVgosDb(): limited use data, missed info: Ocean Load");
595 "::getDataFromVgosDb(): limited use data, missed info: Pole Tide");
597 else if (!kind.isEmpty() && kind.toUpper() !=
"IERS2003")
599 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of pole tide calibration");
605 "::getDataFromVgosDb(): limited use data, missed info: TiltRemover");
613 "::getDataFromVgosDb(): limited use data, missed info: Libration");
616 else if (!kind.isEmpty() && kind.toUpper() !=
"IERS2010")
618 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of high frequency libration "
624 "::getDataFromVgosDb(): limited use data, missed info: Pole Wobble");
629 "::getDataFromVgosDb(): limited use data, missed info: Parallax");
634 "::getDataFromVgosDb(): limited use data, missed info: Bending");
639 "::getDataFromVgosDb(): limited use data, missed info: Bending II");
644 "::getDataFromVgosDb(): limited use data, missed info: Bending III");
647 QVector<int> delUFlags, phsUFlags, ratUFlags, uAcSups,
649 QVector<QString> scanNames, scanFullNames;
650 QVector<QString> corrRootFnames;
651 SgMatrix *dV_dPx, *dV_dPy, *dV_dUT1, *dV_dCipX, *dV_dCipY, *dV_dRA, *dV_dDN;
653 SgMatrix *dV_dBend, *dV_dGamma, *dV_dParallax, *dV_dPtdX, *dV_dPtdY;
656 dV_dRA = dV_dDN = dV_dCipX = dV_dCipY = dV_dPx = dV_dPy = dV_dUT1 = dTau_dR_1
657 = dRat_dR_1 = dV_dBend = dV_dGamma = dV_dParallax = dV_dPtdX = dV_dPtdY = NULL;
658 userCorrections = NULL;
660 if (numOfUserCorrections)
663 userCorrections =
new SgMatrix(numOfObs, numOfUserCorrections);
681 "::getDataFromVgosDb(): limited use data, missed info: Partials: EOP");
685 "::getDataFromVgosDb(): limited use data, missed info: Partials: bend");
689 "::getDataFromVgosDb(): limited use data, missed info: Partials: gamma");
693 "::getDataFromVgosDb(): limited use data, missed info: Partials: parallax");
697 "::getDataFromVgosDb(): limited use data, missed info: Partials: pole tide");
698 else if (!kind.isEmpty() && kind.toUpper() !=
"IERS2006")
700 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of pole tide partials");
706 "::getDataFromVgosDb(): limited use data, missed info: Partials: CIP/Nutation");
709 else if (!kind.isEmpty() && kind.toUpper() !=
"IAU2006")
711 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of Nutation partials");
716 "::getDataFromVgosDb(): limited use data, missed info: Partials: source position");
722 "::getDataFromVgosDb(): limited use data, missed info: Partials: station coordinates");
730 "::getDataFromVgosDb(): cannot use data because of missed info: CrossRefers");
737 "::getDataFromVgosDb(): missed info: Scan Names");
743 "::getDataFromVgosDb(): missed info: correlator root file names");
747 if (!kind.isEmpty() && kind.toUpper() !=
"IAU2006")
749 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of Nutation contribution, "
752 if (!kind.isEmpty() && kind.toUpper() !=
"IAU2006")
754 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of Nutation contribution, "
762 vectors2del << dTec << dTecStdDev << ut1_tai
766 matrices2del << calEarthTide << calEopHiFiUt << calEopHiFiXY << calOcean << calOceanOld
767 << calPlxRev << calBend
768 << calBendSun << calBendSunHigher << calPoleTide << calPoleTideOldRestore
769 << calTiltRmvr << calWobNut
770 << valNutEqxWahr << valNutEqxWahr_rates
771 << valNutNro << valNutNro_rates
772 << valNutEqx << valNutEqx_rates
773 << rSun << rMoon << rEarth << vSun << vMoon << vEarth << aEarth
774 << t2c_val << t2c_rat << t2c_acc << pmXy
775 << calWobbleX << calWobbleY
776 << calOceanPoleTideLd << calHiFreqLibrationPm << calHiFreqLibrationUt
777 << dTau_dR_1 << dRat_dR_1
778 << dV_dPx << dV_dPy << dV_dUT1 << dV_dCipX << dV_dCipY << dV_dRA << dV_dDN
779 << dV_dBend << dV_dGamma << dV_dParallax << dV_dPtdX << dV_dPtdY
782 matrices2del << userCorrections;
787 QString station1Name, station2Name, sourceName, baselineName;
788 QString obsKey, scanName, scanId;
794 QMap<QString, SgVlbiAuxObservation*> *auxObsByScan=NULL;
799 "::getDataFromVgosDb(): processing observations of the session " + vgosDb->
getSessionName());
800 for (
int obsIdx=0; obsIdx<numOfObs; obsIdx++)
804 station1Name = stations_1.at(obsIdx);
805 station2Name = stations_2.at(obsIdx);
806 sourceName = sources.at(obsIdx);
807 baselineName = station1Name +
":" + station2Name;
808 epoch = epochs4Obs.at(obsIdx);
813 obs2ScanIdx = obs2Scan.at(obsIdx) - 1;
814 if (scanNames.size())
815 scanName = scanNames.at(obs2ScanIdx);
816 else if (scanFullNames.size())
817 scanName = scanFullNames.at(obs2ScanIdx);
819 scanName.sprintf(
"%03d-%02d:%02d:%04.1f@%s",
821 qPrintable(sourceName));
826 "::getDataFromVgosDb(): the observation #" + QString(
"").setNum(obsIdx) +
" at " +
827 epoch.
toString() +
" with a key \'" + obsKey +
"\' already exists in the container");
838 if (scanFullNames.size() && scanFullNames.at(obs2ScanIdx).size())
840 if (corrRootFnames.size() && corrRootFnames.at(obs2ScanIdx).size())
889 if (dTec && dTecStdDev)
891 obs->
setDTec (dTec ->getElement(obsIdx));
900 obs->
setFractC(fractC->getElement(obsIdx));
917 if (calBendSunHigher)
949 if (calOceanPoleTideLd)
969 if (calHiFreqLibrationPm)
974 if (calHiFreqLibrationUt)
1010 for (
int k=0; k<3; k++)
1011 for (
int l=0; l<3; l++)
1014 for (
int k=0; k<3; k++)
1015 for (
int l=0; l<3; l++)
1018 for (
int k=0; k<3; k++)
1019 for (
int l=0; l<3; l++)
1037 if (valNutNro_rates)
1048 if (valNutEqxWahr_rates)
1058 if (valNutEqx_rates)
1068 if (calPoleTideOldRestore)
1098 if (dV_dRA && dV_dDN)
1114 if (dV_dPx && dV_dPy)
1122 if (dV_dCipX && dV_dCipY)
1144 if (dV_dPtdX && dV_dPtdY)
1157 if (!auxObsByScan->contains(scanId))
1161 auxObsByScan->insert(scanId, auxObs);
1170 if (!auxObsByScan->contains(scanId))
1174 auxObsByScan->insert(scanId, auxObs);
1193 if (numOfUserCorrections)
1196 for (
int i=0; i<numOfUserCorrections; i++)
1208 double effFreq4GR=0.0, effFreq4PH=0.0, effFreq4RT=0.0;
1212 for (
int bandIdx=0; bandIdx<listOfBands.size(); bandIdx++)
1214 const QString &bandKey=listOfBands.at(bandIdx);
1220 SgMatrix *singleBandDelays = singleBandDelaysByBand[bandKey];
1221 SgMatrix *groupDelays = groupDelaysByBand[bandKey];
1222 SgMatrix *rates = ratesByBand[bandKey];
1223 SgMatrix *phases = phasesByBand[bandKey];
1224 SgMatrix *ionCals = ionCalsByBand[bandKey];
1225 SgMatrix *ionSigmas = ionSigmasByBand[bandKey];
1226 SgMatrix *phaseCals_1 = phaseCals_1ByBand[bandKey];
1227 SgMatrix *phaseCals_2 = phaseCals_2ByBand[bandKey];
1228 SgMatrix *phaseCalFreqs_1 = phaseCalFreqs_1ByBand[bandKey];
1229 SgMatrix *phaseCalFreqs_2 = phaseCalFreqs_2ByBand[bandKey];
1230 SgMatrix *phaseCalAmps_1 = phaseCalAmps_1ByBand[bandKey];
1231 SgMatrix *phaseCalAmps_2 = phaseCalAmps_2ByBand[bandKey];
1232 SgMatrix *phaseCalPhases_1 = phaseCalPhases_1ByBand[bandKey];
1233 SgMatrix *phaseCalPhases_2 = phaseCalPhases_2ByBand[bandKey];
1234 SgMatrix *phaseCalOffsets_1 = phaseCalOffsets_1ByBand[bandKey];
1235 SgMatrix *phaseCalOffsets_2 = phaseCalOffsets_2ByBand[bandKey];
1236 SgMatrix *effFreqs = effFreqsByBand[bandKey];
1238 SgMatrix *calFeedCorr = calFeedCorrByBand[bandKey];
1240 SgVector *refFreqs = refFreqsByBand[bandKey];
1241 SgVector *correlation = correlationByBand[bandKey];
1242 SgVector *snr = snrByBand[bandKey];
1243 SgVector *ambigs = ambigsByBand[bandKey];
1245 const QVector<QString> &qCodes=qCodesByBand[bandKey];
1246 const QVector<int> &numAmbigs=numAmbigsByBand[bandKey];
1247 const QVector<int> &numSubAmbigs=numSubAmbigsByBand[bandKey];
1248 const QVector<int> &numPhsAmbigs=numPhsAmbigsByBand[bandKey];
1249 const QVector<int> &dataFlag=dataFlagByBand[bandKey];
1252 const QVector<QString> &fourfitOutputFName=fourfitOutputFNameByBand[bandKey];
1253 const QVector<QString> &fourfitErrorCodes=fourfitErrorCodesByBand[bandKey];
1254 const QVector<QString> &baselineCodes=baselineCodesByBand[bandKey];
1255 const QVector<QString> &tapeQualityCodes=tapeQualityCodesByBand[bandKey];
1256 const QVector<QString> &vlb1FileNames=vlb1FileNamesByBand[bandKey];
1257 const QVector<QString> &tapeIds_1=tapeIds_1ByBand[bandKey];
1258 const QVector<QString> &tapeIds_2=tapeIds_2ByBand[bandKey];
1260 const QVector<int> &startOffsets=startOffsetsByBand[bandKey];
1261 const QVector<int> &stopOffsets=stopOffsetsByBand[bandKey];
1262 const QVector<int> &hopsRevisionNumbers=hopsRevisionNumbersByBand[bandKey];
1263 const QVector< QVector<int> >
1264 &fourfitVersions=fourfitVersionsByBand[bandKey];
1267 const QVector< QVector<int> >
1268 &epochsOfCorrelations=epochsOfCorrelationsByBand[bandKey];
1269 const QVector< QVector<int> >
1270 &epochsOfCentrals=epochsOfCentralsByBand[bandKey];
1271 const QVector< QVector<int> >
1272 &epochsOfFourfitings=epochsOfFourfitingsByBand[bandKey];
1273 const QVector< QVector<int> >
1274 &epochsOfNominalScanTime=epochsOfNominalScanTimeByBand[bandKey];
1275 SgVector *deltaEpochs=deltaEpochsByBand[bandKey];
1276 SgVector *smplRate=smplRateByBand[bandKey];
1277 SgVector *sbdResids=sbdResidsByBand[bandKey];
1278 SgVector *rateResids=rateResidsByBand[bandKey];
1279 SgVector *effDurations=effDurationsByBand[bandKey];
1280 SgVector *startSeconds=startSecondsByBand[bandKey];
1281 SgVector *stopSeconds=stopSecondsByBand[bandKey];
1282 SgVector *percentOfDiscards=percentOfDiscardsByBand[bandKey];
1283 SgVector *uniformityFactors=uniformityFactorsByBand[bandKey];
1284 SgVector *geocenterPhaseResids=geocenterPhaseResidsByBand[bandKey];
1285 SgVector *geocenterPhaseTotals=geocenterPhaseTotalsByBand[bandKey];
1286 SgVector *geocenterSbDelays=geocenterSbDelaysByBand[bandKey];
1287 SgVector *geocenterGrDelays=geocenterGrDelaysByBand[bandKey];
1288 SgVector *geocenterDelayRates=geocenterDelayRatesByBand[bandKey];
1289 SgVector *probOfFalses=probOfFalsesByBand[bandKey];
1290 SgVector *corrAprioriDelays=corrAprioriDelaysByBand[bandKey];
1291 SgVector *corrAprioriRates=corrAprioriRatesByBand[bandKey];
1292 SgVector *corrAprioriAccs=corrAprioriAccsByBand[bandKey];
1293 SgVector *incohAmps=incohAmpsByBand[bandKey];
1294 SgVector *incohAmps2=incohAmps2ByBand[bandKey];
1295 SgVector *delayResids=delayResidsByBand[bandKey];
1296 SgMatrix *urvrs=urvrsByBand[bandKey];
1297 SgMatrix *instrDelays=instrDelaysByBand[bandKey];
1298 SgMatrix *starElev=starElevByBand[bandKey];
1299 SgMatrix *zenithDelays=zenithDelaysByBand[bandKey];
1300 SgMatrix *searchParams=searchParamsByBand[bandKey];
1301 SgMatrix *corrClocks=corrClocksByBand[bandKey];
1302 SgMatrix *mDlys=mDlysByBand[bandKey];
1303 SgMatrix *mAux=mAuxByBand[bandKey];
1305 const QVector<QString> &fourfitControlFile=fourfitControlFileByBand[bandKey];
1306 const QVector<QString> &fourfitCommand =fourfitCommandByBand[bandKey];
1307 const QVector<int> &numLags =numLagsByBand[bandKey];
1308 const QVector<double> &apLength =apLengthByBand[bandKey];
1310 const QVector<QString> &channelIds=channelIdsByBand[bandKey];
1311 const QVector<QString> &polarizations=polarizationsByBand[bandKey];
1313 const QVector<int> &numOfChannels=numOfChannelsByBand[bandKey];
1314 const QVector<int> &bitsPerSamples=bitsPerSamplesByBand[bandKey];
1316 const QVector< QVector<int> >
1317 &errorRates_1=errorRates_1ByBand[bandKey],
1318 &errorRates_2=errorRates_2ByBand[bandKey],
1319 &bbcIdxs_1=bbcIdxs_1ByBand[bandKey],
1320 &bbcIdxs_2=bbcIdxs_2ByBand[bandKey],
1321 &corelIdxNumbersUsb=corelIdxNumbersUsbByBand[bandKey],
1322 &corelIdxNumbersLsb=corelIdxNumbersLsbByBand[bandKey];
1323 const SgVector *sampleRate=sampleRateByBand[bandKey];
1324 const SgMatrix *residFringeAmplByChan=residFringeAmplByChanByBand[bandKey],
1325 *residFringePhseByChan=residFringePhseByChanByBand[bandKey],
1326 *refFreqByChan=refFreqByChanByBand[bandKey],
1327 *numOfSamplesByChan_USB=numOfSamplesByChan_USBByBand[bandKey],
1328 *numOfSamplesByChan_LSB=numOfSamplesByChan_LSBByBand[bandKey],
1329 *numOfAccPeriodsByChan_USB=numOfAccPeriodsByChan_USBByBand[bandKey],
1330 *numOfAccPeriodsByChan_LSB=numOfAccPeriodsByChan_LSBByBand[bandKey],
1331 *loFreqs_1=loFreqs_1ByBand[bandKey],
1332 *loFreqs_2=loFreqs_2ByBand[bandKey];
1337 if (numOfAccPeriodsByChan_USB == NULL || numOfAccPeriodsByChan_LSB == NULL)
1339 "::getDataFromVgosDb(): numsOfAccPeriodsByChan_* == NULL");
1340 if (refFreqByChan == NULL)
1342 "::getDataFromVgosDb(): refFreqsByChan == NULL");
1343 if (residFringeAmplByChan == NULL)
1345 "::getDataFromVgosDb(): residFringeAmplByChan == NULL");
1347 if (numOfChannels.size())
1351 "::getDataFromVgosDb(): channel info is missing");
1359 "::getDataFromVgosDb(): processing " + bandKey +
1361 int nYr, nMo, nDy, nHr, nMi;
1365 for (
int obsIdx=0; obsIdx<numOfObs; obsIdx++)
1369 if ((dataFlag.size()>0 && dataFlag.at(obsIdx) != -1) ||
1370 ( ambigs && 0.0<ambigs->
getElement(obsIdx) &&
1375 station1Name = stations_1.at(obsIdx);
1376 station2Name = stations_2.at(obsIdx);
1377 sourceName = sources.at(obsIdx);
1378 epoch = epochs4Obs.at(obsIdx);
1379 baselineName = station1Name +
":" + station2Name;
1380 obsKey.sprintf(
"%s",
1388 "::getDataFromVgosDb(): the observation #" + QString(
"").setNum(obsIdx) +
", " +
1389 obsKey +
", does not exist in the container");
1436 if (singleBandDelays)
1461 if (numAmbigs.size())
1464 if (numSubAmbigs.size())
1467 if (numPhsAmbigs.size())
1474 d = qCodes.at(obsIdx).toInt(&isTmp);
1511 if (ionCals && ionSigmas)
1518 if (phaseCals_1 && phaseCals_2)
1527 if (bitsPerSamples.size())
1532 int nOfC=numOfChannels.size()?numOfChannels.at(obsIdx):0;
1536 int numOfActualChannels=0;
1538 for (
int j=0; j<nOfC; j++)
1542 numOfAccPeriodsByChan_USB?numOfAccPeriodsByChan_USB->getElement(obsIdx, j):0.0);
1544 numOfAccPeriodsByChan_LSB?numOfAccPeriodsByChan_LSB->getElement(obsIdx, j):0.0);
1546 numOfSamplesByChan_USB?numOfSamplesByChan_USB->getElement(obsIdx, j):0.0);
1548 numOfSamplesByChan_LSB?numOfSamplesByChan_LSB->getElement(obsIdx, j):0.0);
1550 refFreqByChan?refFreqByChan->getElement(obsIdx, j):0.0);
1552 numOfActualChannels++;
1554 residFringeAmplByChan?residFringeAmplByChan->
getElement(obsIdx, j):0.0);
1556 residFringePhseByChan?residFringePhseByChan->getElement(obsIdx, j)/
RAD2DEG:0.0);
1557 if (loFreqs_1 && loFreqs_1->nRow()>0 && loFreqs_1->nCol()>0)
1559 if (loFreqs_2 && loFreqs_2->nRow()>0 && loFreqs_2->nCol()>0)
1562 (*o->
chanIdByChan())[j] = channelIds.size()?channelIds.at(obsIdx).at(2*j).toLatin1():
' ';
1564 polarizations.at(obsIdx).at(4*j ).toLatin1():
' ';
1566 polarizations.at(obsIdx).at(4*j + 2).toLatin1():
' ';
1567 (*o->
corelIndexNumUSB())[j] = corelIdxNumbersUsb.size()?corelIdxNumbersUsb.at(obsIdx).at(j):0;
1568 (*o->
corelIndexNumLSB())[j] = corelIdxNumbersLsb.size()?corelIdxNumbersLsb.at(obsIdx).at(j):0;
1569 (*o->
bbcIdxByChan_1())[j] = bbcIdxs_1.size()?bbcIdxs_1.at(obsIdx).at(j):0;
1570 (*o->
bbcIdxByChan_2())[j] = bbcIdxs_2.size()?bbcIdxs_2.at(obsIdx).at(j):0;
1574 if (phaseCalAmps_1 && phaseCalAmps_2 && phaseCalPhases_1 && phaseCalPhases_2 &&
1575 phaseCalFreqs_1 && phaseCalFreqs_2 && phaseCalOffsets_1 && phaseCalOffsets_2)
1596 hasPhaseCal =
false;
1599 if (errorRates_1.size())
1601 if (errorRates_2.size())
1606 if (ifId.size() && ifId!=QString(
" "))
1611 "::getDataFromVgosDb(): the IF \"" + ifId +
"\" got new sky frequency " +
1612 QString(
"").sprintf(
"%.4f (old=%.4f) obs:",
1622 if (sampleRate && numOfActualChannels &&
1632 nOfC, effFreq4GR, effFreq4PH, effFreq4RT, correlatorType, o->
strId());
1641 nOfC, effFreq4GR, effFreq4PH, effFreq4RT, correlatorType, o->
strId(),
true);
1647 else if (numOfChannels.size())
1649 "::getDataFromVgosDb(): get zero number of channels: " + o->
strId());
1654 if (fourfitOutputFName.size())
1656 if (fourfitErrorCodes.size())
1662 cid = baselineCodes.at(obsIdx).at(0).toLatin1();
1664 if (station1Info->
getCid() ==
' ')
1666 station1Info->
setCid(cid);
1668 "::getDataFromVgosDb(): station#1 " + station1Info->
getKey() +
" set station CID to \"" +
1669 cid +
"\" at " + o->
strId());
1671 else if (station1Info->
getCid() != cid)
1674 "::getDataFromVgosDb(): station#1 " + station1Info->
getKey() +
1675 " station CID missmatch: \"" + station2Info->
getCid() +
"\" vs \"" + cid +
1676 "\" at " + o->
strId());
1678 cid = baselineCodes.at(obsIdx).at(1).toLatin1();
1680 if (station2Info->
getCid() ==
' ')
1682 station2Info->
setCid(cid);
1684 "::getDataFromVgosDb(): station#2 " + station2Info->
getKey() +
" set station CID to \"" +
1685 cid +
"\" at " + o->
strId());
1687 else if (station2Info->
getCid() != cid)
1690 "::getDataFromVgosDb(): station#2 " + station2Info->
getKey() +
1691 " station CID missmatch: \"" + station2Info->
getCid() +
"\" vs \"" + cid +
1692 "\" at " + o->
strId());
1696 if (tapeQualityCodes.size())
1698 if (vlb1FileNames.size())
1700 if (tapeIds_1.size() && obs->
auxObs_1())
1702 if (tapeIds_2.size() && obs->
auxObs_2())
1704 if (startOffsets.size())
1706 if (stopOffsets.size())
1708 if (hopsRevisionNumbers.size())
1710 if (fourfitVersions.size() && 2<=fourfitVersions.at(obsIdx).size())
1717 if (epochsOfCorrelations.size() && 6<=epochsOfCorrelations.at(obsIdx).size())
1719 epoch.
setUpEpoch(epochsOfCorrelations.at(obsIdx).at(0), epochsOfCorrelations.at(obsIdx).at(1),
1720 epochsOfCorrelations.at(obsIdx).at(2), epochsOfCorrelations.at(obsIdx).at(3),
1721 epochsOfCorrelations.at(obsIdx).at(4), (
double)epochsOfCorrelations.at(obsIdx).at(5));
1724 if (epochsOfCentrals.size() && 6<=epochsOfCentrals.at(obsIdx).size())
1726 epoch.
setUpEpoch(epochsOfCentrals.at(obsIdx).at(0), epochsOfCentrals.at(obsIdx).at(1),
1727 epochsOfCentrals.at(obsIdx).at(2), epochsOfCentrals.at(obsIdx).at(3),
1728 epochsOfCentrals.at(obsIdx).at(4), (
double)epochsOfCentrals.at(obsIdx).at(5));
1731 if (epochsOfFourfitings.size() && 6<=epochsOfFourfitings.at(obsIdx).size())
1733 epoch.
setUpEpoch(epochsOfFourfitings.at(obsIdx).at(0), epochsOfFourfitings.at(obsIdx).at(1),
1734 epochsOfFourfitings.at(obsIdx).at(2), epochsOfFourfitings.at(obsIdx).at(3),
1735 epochsOfFourfitings.at(obsIdx).at(4), (
double)epochsOfFourfitings.at(obsIdx).at(5));
1738 if (epochsOfNominalScanTime.size() && 6<=epochsOfNominalScanTime.at(obsIdx).size())
1740 epoch.
setUpEpoch(epochsOfNominalScanTime.at(obsIdx).at(0),
1741 epochsOfNominalScanTime.at(obsIdx).at(1),
1742 epochsOfNominalScanTime.at(obsIdx).at(2), epochsOfNominalScanTime.at(obsIdx).at(3),
1743 epochsOfNominalScanTime.at(obsIdx).at(4), (
double)epochsOfNominalScanTime.at(obsIdx).at(5));
1758 if (startSeconds && stopSeconds)
1761 nYr, nMo, nDy, nHr, nMi, dSec);
1762 tStart =
SgMJD(nYr, nMo, nDy, nHr, 0, startSeconds->
getElement(obsIdx));
1763 tStop =
SgMJD(nYr, nMo, nDy, nHr, 0, stopSeconds->
getElement(obsIdx));
1764 if (tStart - *o->
owner() > 40.0/24.0/60.0)
1766 if (*o->
owner() - tStart > 40.0/24.0/60.0)
1768 if (*o->
owner() - tStop > 40.0/24.0/60.0)
1770 if (tStop - *o->
owner() > 40.0/24.0/60.0)
1784 if (percentOfDiscards)
1786 if (uniformityFactors)
1788 if (geocenterPhaseResids)
1790 if (geocenterPhaseTotals)
1792 if (geocenterSbDelays)
1794 if (geocenterGrDelays)
1796 if (geocenterDelayRates)
1802 if (corrAprioriDelays)
1804 if (corrAprioriRates)
1806 if (corrAprioriAccs)
1837 for (
int j=0; j<6; j++)
1861 if (fourfitControlFile.size())
1863 if (fourfitCommand.size())
1867 if (apLength.size())
1870 if (delUFlags.size())
1876 if (ratUFlags.size())
1878 if (phsUFlags.size())
1882 if (ambigs && ambigs->
getElement(obsIdx)<=0.0 &&
1883 groupDelays && groupDelays->
getElement(obsIdx, 1) > 0.0)
1888 "::getDataFromVgosDb(): wrong ambiguity spacing (" +
1889 QString(
"").setNum(ambigs->
getElement(obsIdx)) +
") for the observable #" +
1890 QString(
"").setNum(obsIdx) +
" at the " + bandKey +
"-band of " + obs->
getKey() +
1893 if (qCodes.size() &&
1894 qCodes.at(obsIdx).simplified().size() == 0 &&
1913 "::getDataFromVgosDb(): skipped observable #" + QString(
"").setNum(obsIdx) +
1914 " at the " + bandKey +
"-band: missed data");
1925 if ((ionCals && ionSigmas) || (dTec && dTecStdDev))
1942 "::getDataFromVgosDb(): collected " + QString().setNum(
skyFreqByIfId_.size()) +
1943 " ifId<->skyFrq pairs");
1947 if (fourfitControlFileByBand.size() && fourfitControlFileByBand.begin().value().size()==0)
1950 "::getDataFromVgosDb(): no fourfit info found for each band, trying to check the data for the "
1953 QVector<QString> fourfitControlFile, fourfitCommand;
1954 QVector<int> numLags;
1955 QVector<double> apL;
1957 if (!vgosDb->
loadMiscFourFit(
"", fourfitControlFile, fourfitCommand, numLags, apL))
1959 "::getDataFromVgosDb(): reading Fourfit Info has failed");
1962 for (
int i=0; i<numOfObs; i++)
1965 for (QMap<QString, SgVlbiObservable*>::iterator it=obs->
observableByKey().begin();
1980 fourfitControlFile.clear();
1981 fourfitCommand.clear();
1988 if (dTec && dTecStdDev)
2016 if (calHiFreqLibrationPm)
2018 if (calHiFreqLibrationUt)
2020 if (calOceanPoleTideLd)
2022 if (calPoleTideOldRestore)
2027 for (
int i=0; i<listOfBands.size(); i++)
2029 const QString &bandKey=listOfBands.at(i);
2031 phaseCals_1ByBand[bandKey]!=NULL && phaseCals_2ByBand[bandKey]!=NULL;
2033 if (dV_dCipX && dV_dCipY)
2040 for (
int i=0; i<vectors2del.size(); i++)
2041 if (vectors2del.at(i))
2042 delete vectors2del.at(i);
2044 for (
int i=0; i<matrices2del.size(); i++)
2045 if (matrices2del.at(i))
2046 delete matrices2del.at(i);
2049 scanFullNames.clear();
2057 for (
int i=0; i<listOfBands.size(); i++)
2059 const QString &bandKey=listOfBands.at(i);
2060 qCodesByBand[bandKey].clear();
2063 fourfitOutputFNameByBand[bandKey].clear();
2064 fourfitErrorCodesByBand[bandKey].clear();
2065 baselineCodesByBand[bandKey].clear();
2066 tapeQualityCodesByBand[bandKey].clear();
2067 vlb1FileNamesByBand[bandKey].clear();
2068 tapeIds_1ByBand[bandKey].clear();
2069 tapeIds_2ByBand[bandKey].clear();
2071 startOffsetsByBand[bandKey].clear();
2072 stopOffsetsByBand[bandKey].clear();
2073 hopsRevisionNumbersByBand[bandKey].clear();
2074 fourfitVersionsByBand[bandKey].clear();
2076 epochsOfCorrelationsByBand[bandKey].clear();
2077 epochsOfCentralsByBand[bandKey].clear();
2078 epochsOfFourfitingsByBand[bandKey].clear();
2079 epochsOfNominalScanTimeByBand[bandKey].clear();
2080 if (deltaEpochsByBand[bandKey])
2081 delete deltaEpochsByBand[bandKey];
2082 if (smplRateByBand[bandKey])
2083 delete smplRateByBand[bandKey];
2084 if (sbdResidsByBand[bandKey])
2085 delete sbdResidsByBand[bandKey];
2086 if (rateResidsByBand[bandKey])
2087 delete rateResidsByBand[bandKey];
2088 if (effDurationsByBand[bandKey])
2089 delete effDurationsByBand[bandKey];
2090 if (startSecondsByBand[bandKey])
2091 delete startSecondsByBand[bandKey];
2092 if (stopSecondsByBand[bandKey])
2093 delete stopSecondsByBand[bandKey];
2094 if (percentOfDiscardsByBand[bandKey])
2095 delete percentOfDiscardsByBand[bandKey];
2097 if (uniformityFactorsByBand[bandKey])
2098 delete uniformityFactorsByBand[bandKey];
2099 if (geocenterPhaseResidsByBand[bandKey])
2100 delete geocenterPhaseResidsByBand[bandKey];
2101 if (geocenterPhaseTotalsByBand[bandKey])
2102 delete geocenterPhaseTotalsByBand[bandKey];
2103 if (geocenterSbDelaysByBand[bandKey])
2104 delete geocenterSbDelaysByBand[bandKey];
2105 if (geocenterGrDelaysByBand[bandKey])
2106 delete geocenterGrDelaysByBand[bandKey];
2107 if (geocenterDelayRatesByBand[bandKey])
2108 delete geocenterDelayRatesByBand[bandKey];
2109 if (probOfFalsesByBand[bandKey])
2110 delete probOfFalsesByBand[bandKey];
2111 if (corrAprioriDelaysByBand[bandKey])
2112 delete corrAprioriDelaysByBand[bandKey];
2113 if (corrAprioriRatesByBand[bandKey])
2114 delete corrAprioriRatesByBand[bandKey];
2115 if (corrAprioriAccsByBand[bandKey])
2116 delete corrAprioriAccsByBand[bandKey];
2117 if (incohAmpsByBand[bandKey])
2118 delete incohAmpsByBand[bandKey];
2119 if (incohAmps2ByBand[bandKey])
2120 delete incohAmps2ByBand[bandKey];
2121 if (delayResidsByBand[bandKey])
2122 delete delayResidsByBand[bandKey];
2123 if (urvrsByBand[bandKey])
2124 delete urvrsByBand[bandKey];
2125 if (instrDelaysByBand[bandKey])
2126 delete instrDelaysByBand[bandKey];
2127 if (starElevByBand[bandKey])
2128 delete starElevByBand[bandKey];
2129 if (zenithDelaysByBand[bandKey])
2130 delete zenithDelaysByBand[bandKey];
2131 if (searchParamsByBand[bandKey])
2132 delete searchParamsByBand[bandKey];
2133 if (corrClocksByBand[bandKey])
2134 delete corrClocksByBand[bandKey];
2135 if (mDlysByBand[bandKey])
2136 delete mDlysByBand[bandKey];
2137 if (mAuxByBand[bandKey])
2138 delete mAuxByBand[bandKey];
2141 fourfitControlFileByBand[bandKey].clear();
2142 fourfitCommandByBand[bandKey].clear();
2143 numLagsByBand[bandKey].clear();
2144 apLengthByBand[bandKey].clear();
2146 numAmbigsByBand[bandKey].clear();
2147 numSubAmbigsByBand[bandKey].clear();
2148 numPhsAmbigsByBand[bandKey].clear();
2149 dataFlagByBand[bandKey].clear();
2150 ionDataFlagByBand[bandKey].clear();
2151 if (ambigsByBand[bandKey])
2152 delete ambigsByBand[bandKey];
2153 if (correlationByBand[bandKey])
2154 delete correlationByBand[bandKey];
2155 if (uvByBand[bandKey])
2156 delete uvByBand[bandKey];
2157 if (calFeedCorrByBand[bandKey])
2158 delete calFeedCorrByBand[bandKey];
2159 if (snrByBand[bandKey])
2160 delete snrByBand[bandKey];
2161 if (sampleRateByBand[bandKey])
2162 delete sampleRateByBand[bandKey];
2163 if (residFringeAmplByChanByBand[bandKey])
2164 delete residFringeAmplByChanByBand[bandKey];
2165 if (residFringePhseByChanByBand[bandKey])
2166 delete residFringePhseByChanByBand[bandKey];
2167 if (refFreqByChanByBand[bandKey])
2168 delete refFreqByChanByBand[bandKey];
2169 if (numOfSamplesByChan_USBByBand[bandKey])
2170 delete numOfSamplesByChan_USBByBand[bandKey];
2171 if (numOfSamplesByChan_LSBByBand[bandKey])
2172 delete numOfSamplesByChan_LSBByBand[bandKey];
2173 if (numOfAccPeriodsByChan_USBByBand[bandKey])
2174 delete numOfAccPeriodsByChan_USBByBand[bandKey];
2175 if (numOfAccPeriodsByChan_LSBByBand[bandKey])
2176 delete numOfAccPeriodsByChan_LSBByBand[bandKey];
2177 if (loFreqs_1ByBand[bandKey])
2178 delete loFreqs_1ByBand[bandKey];
2179 if (loFreqs_2ByBand[bandKey])
2180 delete loFreqs_2ByBand[bandKey];
2182 if (refFreqsByBand[bandKey])
2183 delete refFreqsByBand[bandKey];
2184 if (phasesByBand[bandKey])
2185 delete phasesByBand[bandKey];
2186 if (ionCalsByBand[bandKey])
2187 delete ionCalsByBand[bandKey];
2188 if (ionSigmasByBand[bandKey])
2189 delete ionSigmasByBand[bandKey];
2190 if (phaseCals_1ByBand[bandKey])
2191 delete phaseCals_1ByBand[bandKey];
2192 if (phaseCals_2ByBand[bandKey])
2193 delete phaseCals_2ByBand[bandKey];
2194 if (ratesByBand[bandKey])
2195 delete ratesByBand[bandKey];
2196 if (groupDelaysByBand[bandKey])
2197 delete groupDelaysByBand[bandKey];
2198 if (singleBandDelaysByBand[bandKey])
2199 delete singleBandDelaysByBand[bandKey];
2200 if (phaseCalFreqs_1ByBand[bandKey])
2201 delete phaseCalFreqs_1ByBand[bandKey];
2202 if (phaseCalAmps_1ByBand[bandKey])
2203 delete phaseCalAmps_1ByBand[bandKey];
2204 if (phaseCalPhases_1ByBand[bandKey])
2205 delete phaseCalPhases_1ByBand[bandKey];
2206 if (phaseCalOffsets_1ByBand[bandKey])
2207 delete phaseCalOffsets_1ByBand[bandKey];
2208 if (phaseCalRates_1ByBand[bandKey])
2209 delete phaseCalRates_1ByBand[bandKey];
2210 if (phaseCalFreqs_2ByBand[bandKey])
2211 delete phaseCalFreqs_2ByBand[bandKey];
2212 if (phaseCalAmps_2ByBand[bandKey])
2213 delete phaseCalAmps_2ByBand[bandKey];
2214 if (phaseCalPhases_2ByBand[bandKey])
2215 delete phaseCalPhases_2ByBand[bandKey];
2216 if (phaseCalOffsets_2ByBand[bandKey])
2217 delete phaseCalOffsets_2ByBand[bandKey];
2218 if (phaseCalRates_2ByBand[bandKey])
2219 delete phaseCalRates_2ByBand[bandKey];
2221 listOfBands.clear();
2222 epochs4Scans.clear();
2233 bool hasAuxObs=
false;
2245 const QString stnName(stInfo->
getKey());
2249 int numOfPts=stEpochs.size();
2252 QMap<QString, int> idxByMjd;
2253 for (
int i=0; i<numOfPts; i++)
2256 SgVector *parAngle=NULL, *refClockOffset=NULL;
2257 SgMatrix *azTheo=NULL, *elTheo=NULL;
2263 SgMatrix *calHorzOLoad=NULL, *calVertOLoad=NULL;
2264 SgVector *metAtmPres=NULL, *metAtmRH=NULL, *metAtmTemp=NULL;
2266 SgMatrix *partTropZenithDry=NULL, *partTropZenithWet=NULL, *partTropGrad=NULL;
2267 SgMatrix *ocnLdR=NULL, *ocnLdV=NULL;
2270 QVector<double> tsysFreqs;
2271 QVector<QString> tsysIds, tsysSbs, tsysPzs;
2276 "::getDataFromVgosDb(): no reference station clock offset data found for the station " +
2281 "::getDataFromVgosDb(): reading of azimuth-elevation file failed for the station " + stnName);
2284 "::getDataFromVgosDb(): reading of parallactic angle file failed for the station " + stnName);
2287 "::getDataFromVgosDb(): reading of Ocean Loading displacements file failed for the station " +
2291 "::getDataFromVgosDb(): reading of axis offset calibrations file failed for the station " +
2296 "::getDataFromVgosDb(): reading of hydrostatic troposphere calibrations file failed for the "
2297 "station " + stnName);
2298 else if (!kind.isEmpty() && kind.toUpper() !=
"NMF")
2300 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of hydrostatic troposphere "
2301 "calibrations for the station " + stnName);
2305 "::getDataFromVgosDb(): reading of wet troposphere calibrations file failed for the "
2306 "station " + stnName);
2307 else if (!kind.isEmpty() && kind.toUpper() !=
"NMF")
2309 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of wet troposphere "
2310 "calibrations for the station " + stnName);
2314 "::getDataFromVgosDb(): reading of ocean loading calibrations file failed for the station " +
2318 "::getDataFromVgosDb(): reading of axis offset partials file failed for the station " +
2323 "::getDataFromVgosDb(): reading of troposheric zenith delay (hydrostatic component) partials "
2324 "file failed for the station " + stnName);
2325 else if (!kind.isEmpty() && kind.toUpper() !=
"NMF")
2327 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of troposheric zenith delay "
2328 "(hydrostatic component) partials for the station " + stnName);
2332 "::getDataFromVgosDb(): reading of troposheric zenith delay (wet component) partials "
2333 "file failed for the station " + stnName);
2334 else if (!kind.isEmpty() && kind.toUpper() !=
"NMF")
2336 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of troposheric zenith delay "
2337 "(wet component) partials for the station " + stnName);
2341 "::getDataFromVgosDb(): reading of troposheric horizontal gradients partials "
2342 "file failed for the station " + stnName);
2343 else if (!kind.isEmpty() && kind.toUpper() !=
"NMF")
2345 "::getDataFromVgosDb(): got an unknown, (" + kind +
"), kind of troposheric horizontal "
2346 "gradients partials for the station " + stnName);
2364 else if (kind.toUpper() ==
"CDMS")
2366 else if (kind.toUpper() ==
"PCMT")
2371 "::getDataFromVgosDb(): the station " + stnName +
2372 " has an unknown kind of cable calibration data");
2381 "::getDataFromVgosDb(): reading of cable calibrations file failed for the station " + stnName);
2388 "::getDataFromVgosDb(): read a set of cable calibration corrections for the station " +
2400 if (vgosDb->
loadStationMet(stnName, metAtmPres, metAtmRH, metAtmTemp, origin, kind))
2406 else if (kind.toUpper() ==
"EXTERNAL")
2411 "::getDataFromVgosDb(): the station " + stnName +
2412 " has an unknown kind of meteorological data");
2420 "::getDataFromVgosDb(): reading of Meteo file failed for the station " + stnName);
2423 if (vgosDb->
loadStationTsys(stnName, tSyses, tsysFreqs, tsysIds, tsysSbs, tsysPzs))
2425 numOfTsysIFs = tSyses->
nCol();
2426 if (numOfPts != (
int)tSyses->
nRow())
2429 "::getDataFromVgosDb(): tsys data dimension mismatch for the station " + stnName);
2432 if (numOfTsysIFs != tsysFreqs.size())
2435 "::getDataFromVgosDb(): tsys freqs dimension mismatch for the station " + stnName);
2438 if (numOfTsysIFs != tsysIds.size())
2441 "::getDataFromVgosDb(): tsys ids dimension mismatch for the station " + stnName);
2444 if (numOfTsysIFs != tsysSbs.size())
2447 "::getDataFromVgosDb(): tsys isbs dimension mismatch for the station " + stnName);
2450 if (numOfTsysIFs != tsysPzs.size())
2453 "::getDataFromVgosDb(): tsys pzs dimension mismatch for the station " + stnName);
2459 stInfo->
tsysIfIds().resize(numOfTsysIFs);
2462 for (
int j=0; j<numOfTsysIFs; j++)
2476 "::getDataFromVgosDb(): reading of tsys file failed for the station " + stnName);
2484 QMap<QString, SgVlbiAuxObservation*>
2486 QMap<QString, SgVlbiAuxObservation*>::iterator
2487 jt=auxObsByScan->begin();
2488 for (; jt!=auxObsByScan->end(); ++jt)
2496 if (azTheo && elTheo)
2522 if (calHorzOLoad && calVertOLoad)
2534 if (partTropZenithDry)
2539 if (partTropZenithWet)
2561 if (calCblCorrections)
2570 if (metAtmPres && metAtmRH && metAtmTemp)
2573 metAtmPres->
getElement(idx), metAtmRH->getElement(idx)));
2577 if (tSyses && numOfTsysIFs)
2580 for (
int j=0; j<numOfTsysIFs; j++)
2583 if (ocnLdR && ocnLdV)
2589 ocnLdV->getElement(idx,1),
2590 ocnLdV->getElement(idx,2)));
2596 "::getDataFromVgosDb(): cannot find epoch " + auxObs->
toString() +
2597 " in the block of station info for the station " + stnName);
2608 delete refClockOffset;
2610 delete calAxisOffset;
2611 if (calCblCorrections)
2612 delete calCblCorrections;
2618 delete calHorzOLoad;
2620 delete calVertOLoad;
2628 delete partAxisOffset;
2633 if (partTropZenithDry)
2634 delete partTropZenithDry;
2635 if (partTropZenithWet)
2636 delete partTropZenithWet;
2638 delete partTropGrad;
2642 "::getDataFromVgosDb(): cannot load time table for the station " + stnName +
", skipped");
2651 QVector<QString> sourcesNames, sourcesApRefs, eccTypes, eccNums;
2652 QVector<QString> stationsNames4Coo, stationsNames4Ant, stationsNames4Ecc,
2653 stationsNames4AprioriClocks, tectonicPlateNames;
2654 QVector<int> axisTypes;
2656 SgMatrix *srcCoo=NULL, *axisTilts=NULL, *eccVals=NULL, *stnCoo=NULL,
2657 *offsets_n_rates=NULL;
2663 "::getDataFromVgosDb(): limited use data, missed info: a priori: sources");
2669 "::getDataFromVgosDb(): limited use data, missed info: a priori: stations");
2675 "::getDataFromVgosDb(): limited use data, missed info: a priori: antennae");
2685 if (sourcesNames.size() && srcCoo)
2689 "::getDataFromVgosDb(): the number of a priori source positions " +
2690 QString().sprintf(
"(%d) is not equal to the actual number of sources (%d)",
2692 for (
int i=0; i<sourcesNames.size(); i++)
2694 sourceName = sourcesNames.at(i);
2700 sourceInfo->
setRA(ra);
2701 sourceInfo->
setDN(dn);
2702 if (sourcesApRefs.size() == sourcesNames.size())
2707 "::getDataFromVgosDb(): cannot find a priori entry '" + sourceName +
2708 "' in the list of session sources");
2713 "::getDataFromVgosDb(): cannot find sources a priori coordinates in the vgosDb tree");
2718 if (stationsNames4Coo.size() && stnCoo && tectonicPlateNames.size())
2722 "::getDataFromVgosDb(): the number of a priori stations positions " +
2723 QString().sprintf(
"(%d) is not equal to the actual number of stations (%d)",
2726 for (
int i=0; i<stationsNames4Coo.size(); i++)
2728 station1Name = stationsNames4Coo.at(i);
2733 r(
X_AXIS) = stnCoo->getElement(i, 0);
2734 r(
Y_AXIS) = stnCoo->getElement(i, 1);
2735 r(
Z_AXIS) = stnCoo->getElement(i, 2);
2736 station1Info->
setR(r);
2743 "::getDataFromVgosDb(): cannot find station '" + station1Name +
"' in the list of stations");
2748 "::getDataFromVgosDb(): cannot find stations a priori coordinates in the vgosDb tree");
2751 if (stationsNames4Ant.size() && axisTypes.size() && axisOffsets)
2755 "::getDataFromVgosDb(): the number of a priori antenna parameters " +
2756 QString().sprintf(
"(%d) is not equal to the actual number of stations (%d)",
2758 for (
int i=0; i<stationsNames4Ant.size(); i++)
2760 station1Name = stationsNames4Ant.at(i);
2768 if (axisTypes.size())
2775 "::getDataFromVgosDb(): set up mounting type [" +
sMntTypes[mnt] +
"] for the antenna " +
2784 "::getDataFromVgosDb(): the value of axis offset for the antenna " +
2785 station1Info->
getKey() +
" has been set to " +
2791 "::getDataFromVgosDb(): cannot find station '" + station1Name +
"' in the list of stations");
2796 "::getDataFromVgosDb(): cannot find antenna a priori parameters in the vgosDb tree");
2800 if (stationsNames4Ecc.size() && eccTypes.size() && eccNums.size() && eccVals)
2802 for (
int i=0; i<stationsNames4Ecc.size(); i++)
2804 station1Name = stationsNames4Ecc.at(i);
2811 if (eccTypes.at(i) ==
"XY")
2813 else if (eccTypes.at(i) ==
"NE")
2819 "::getDataFromVgosDb(): cannot figure out Ecc type from the string \"" +
2820 eccTypes.at(i) +
"\" for the station \"" + station1Info->
getKey() +
"\"");
2824 Sg3dVector(eccVals->getElement(i, 0), eccVals->getElement(i, 1), eccVals->getElement(i, 2)));
2829 "::getDataFromVgosDb(): parsing ecc: the station # " + QString(
"").setNum(i) +
" is NULL");
2833 "::getDataFromVgosDb(): cannot find a station \"" + station1Name +
"\" in the map");
2838 "::getDataFromVgosDb(): cannot find eccentricities in the vgosDb tree");
2841 if (stationsNames4AprioriClocks.size() && offsets_n_rates)
2843 for (
int i=0; i<stationsNames4AprioriClocks.size(); i++)
2845 station1Name = stationsNames4AprioriClocks.at(i);
2855 "::getDataFromVgosDb(): cannot find station \"" + station1Name +
2856 "\" in the list of stations for a priori clocks");
2872 stationsNames4AprioriClocks.clear();
2883 if (offsets_n_rates)
2884 delete offsets_n_rates;
2891 SgVector *atmInterval=NULL, *atmRateConstraint=NULL;
2892 QVector<QString> atmStationsNames;
2894 SgVector *clkInterval=NULL, *clkRateConstraint=NULL;
2896 QVector<QString> clockStationsNames;
2898 SgVector *pmArrayInfo=NULL, *utArrayInfo=NULL, *utValues=NULL;
2900 QString sUtMode, sUtModule, sUtOrigin, sPmMode, sPmModule, sPmOrigin;
2902 int obsCalFlags(31);
2903 QVector<int> statCalFlags;
2904 QVector< QVector<int> > flybyFlags;
2905 QVector<QString> statCalNames, flybyNames, calSiteNames, obsCalNames, blwNames;
2907 QVector<int> sourcesSelection;
2908 QVector< QVector<int> > baselinesSelection;
2914 QVector<QString> cbNames;
2915 QVector<SgMJD> cbEpochs;
2916 QVector<int> cbFlags;
2918 QMap<QString, QString> cableSignByKey;
2923 vgosDb->
loadAtmSetup(atmInterval, atmRateConstraint, atmStationsNames);
2924 vgosDb->
loadClockSetup(refClocks, clkInterval, clkRateConstraint, clockStationsNames);
2925 vgosDb->
loadCalcEop(pmArrayInfo, utArrayInfo, pmValues, utValues, sUtMode, sUtModule, sUtOrigin,
2926 sPmMode, sPmModule, sPmOrigin);
2927 vgosDb->
loadCalibrations(obsCalFlags, statCalFlags, flybyFlags, statCalNames, flybyNames,
2928 calSiteNames, obsCalNames);
2936 if (atmInterval && atmRateConstraint)
2944 QString siteName(
"");
2947 if (clkInterval && clkRateConstraint)
2950 if (clkInterval->
n()==1)
2956 for (
int i=0; i<clockStationsNames.size(); i++)
2958 siteName = clockStationsNames.at(i);
2959 if (siteName.size() < 8)
2960 siteName.sprintf(
"%-8s", qPrintable(siteName));
2971 "::getDataFromVgosDb(): cannot find siteName \"" + siteName +
2972 "\" in the map of stations");
2975 if (clkRateConstraint->n()==1)
2981 for (
int i=0; i<clockStationsNames.size(); i++)
2983 siteName = clockStationsNames.at(i);
2984 if (siteName.size() < 8)
2985 siteName.sprintf(
"%-8s", qPrintable(siteName));
2996 "::getDataFromVgosDb(): cannot find siteName \"" + siteName +
2997 "\" in the map of stations");
3002 "::getDataFromVgosDb(): no clock interval or clock rate constraint found");
3005 if (atmInterval && atmRateConstraint)
3008 if (atmInterval->
n()==1)
3014 for (
int i=0; i<atmStationsNames.size(); i++)
3016 siteName = atmStationsNames.at(i);
3017 if (siteName.size() < 8)
3018 siteName.sprintf(
"%-8s", qPrintable(siteName));
3029 "::getDataFromVgosDb(): cannot find siteName \"" + siteName +
3030 "\" in the map of stations");
3033 if (atmRateConstraint->n()==1)
3039 for (
int i=0; i<atmStationsNames.size(); i++)
3041 siteName = atmStationsNames.at(i);
3042 if (siteName.size() < 8)
3043 siteName.sprintf(
"%-8s", qPrintable(siteName));
3054 "::getDataFromVgosDb(): cannot find siteName \"" + siteName +
3055 "\" in the map of stations");
3060 "::getDataFromVgosDb(): no atm interval or atm rate constraint found");
3093 if (refClocks.size())
3095 for (
int i=0; i<refClocks.size(); i++)
3097 QString clockSiteName(refClocks.at(i));
3098 if (clockSiteName.size()<8)
3099 clockSiteName.sprintf(
"%-8s", qPrintable(refClocks.at(i)));
3105 "::getDataFromVgosDb(): Reference Clock attribute has been assigned to the station " +
3112 "::getDataFromVgosDb(): no Reference Clock attribute has been found for the session");
3116 if (utArrayInfo && utValues)
3118 double t0=utArrayInfo->getElement(0);
3119 double dt=utArrayInfo->getElement(1);
3120 unsigned int numOfPts=round(utArrayInfo->getElement(2));
3123 if (utValues->n() < numOfPts)
3124 numOfPts = utValues->n();
3133 "::getDataFromVgosDb(): loaded " + QString().setNum(numOfPts) +
3134 " records for UT1 interpolation");
3151 if (pmArrayInfo && pmValues)
3155 unsigned int numOfPts=round(pmArrayInfo->
getElement(2));
3158 if (pmValues->
nRow() < numOfPts)
3159 numOfPts = pmValues->
nRow();
3164 "::getDataFromVgosDb(): loaded " + QString().setNum(numOfPts) +
3165 " records for polar motion interpolation");
3188 QString ut1Type(
"");
3193 ut1Type =
"Seriesfull of tides";
3197 ut1Type =
"Only short period tidal terms are removed";
3201 ut1Type =
"All tidal terms are removed";
3205 "::getDataFromVgosDb(): got undocumented value for the TIDALUT1 value: " +
3210 "::getDataFromVgosDb(): the type of the UT1 inner series has been set to " + ut1Type);
3214 if (obsCalNames.size() &&
config_)
3217 for (
int i=0; i<obsCalNames.size(); i++)
3218 calList << obsCalNames.at(i);
3224 "::getDataFromVgosDb(): the observation calibration list is empty");
3227 if (statCalNames.size() && calSiteNames.size() && statCalFlags.size())
3229 bool isCableCalMatched(
false);
3230 int cableCalFlagIdx(-1);
3231 for (
int i=0; i<statCalNames.size(); i++)
3232 if (statCalNames.at(i) ==
"CABL DEL")
3234 isCableCalMatched =
true;
3235 cableCalFlagIdx = i;
3237 if (isCableCalMatched)
3241 for (
int i=0; i<calSiteNames.size(); i++)
3243 str = calSiteNames.at(i);
3248 int nFlag=statCalFlags.at(i);
3249 if (nFlag & 1<<cableCalFlagIdx)
3256 "::getDataFromVgosDb(): cannot find " + str +
3257 " (an entry from CalSiteName variable) in the list of stations");
3262 "::getDataFromVgosDb(): there is no \"CABL DEL\" flag in the list of calibrations");
3267 if (sourcesSelection.size() && sourcesNames.size())
3269 if (sourcesSelection.size() == sourcesNames.size())
3273 for (
int i=0; i<sourcesNames.size(); i++)
3275 sourceName = sourcesNames.at(i);
3279 bitArray = sourcesSelection.at(i);
3286 "::getDataFromVgosDb(): sourcesSelection and sourcesNames size mismatch");
3290 if (baselinesSelection.size() && stationsNames4Coo.size())
3292 if (baselinesSelection.size() == stationsNames4Coo.size())
3296 for (
int i=0; i<stationsNames4Coo.size(); i++)
3298 station1Name = stationsNames4Coo.at(i);
3301 for (
int j=0; j<stationsNames4Coo.size(); j++)
3303 station2Name = stationsNames4Coo.at(j);
3308 bitArray = baselinesSelection.at(i).at(j);
3319 if (!(bitArray & (1<<1)))
3325 "::getDataFromVgosDb(): the baseline " + bi->
getKey() +
" has been deselected");
3331 "::getDataFromVgosDb(): the baseline " + biR->
getKey() +
" has been deselected");
3335 if ((bitArray & (1<<3)))
3341 "::getDataFromVgosDb(): clock estimation has been assigned to the baseline " +
3348 "::getDataFromVgosDb(): clock estimation has been assigned to the baseline " +
3359 "::getDataFromVgosDb(): baselinesSelection and stationsNames size mismatch");
3363 if (groupBlWeights && blwNames.size() && groupBlWeights->
nCol()==(
unsigned)blwNames.size())
3366 for (
int i=0; i<blwNames.size(); i++)
3368 const QString &st=blwNames.at(i);
3369 int idx=st.indexOf(
':');
3372 QString st1 = st.left(idx);
3373 QString st2 = st.mid(idx + 1);
3386 "::getDataFromVgosDb(): the list of baseline weights contains a reverted name: [" +
3387 blwNames.at(i) +
"]");
3392 "::getDataFromVgosDb(): cannot find baseline [" + blwNames.at(i) +
3393 "] in the map of baselines; supposed weight corrections are " +
3394 QString(
"").sprintf(
"%.1fps and %.1fE-14s/s",
3400 "::getDataFromVgosDb(): malformed name of a baseline: \"" + st +
"\", skipped");
3414 if (cbNames.size() && cbEpochs.size() && cbFlags.size())
3416 int numOfClockBreaks;
3417 numOfClockBreaks = cbNames.size();
3418 if (numOfClockBreaks != cbEpochs.size())
3421 "::getDataFromVgosDb(): the number of clock breaks sites (" +
3422 QString(
"").setNum(numOfClockBreaks) +
") is not equal to the number of clock break epochs " +
3423 QString(
"").setNum(cbEpochs.size()));
3424 numOfClockBreaks = std::min(numOfClockBreaks, cbEpochs.size());
3426 QString stnName(
"");
3427 for (
int i=0; i<numOfClockBreaks; i++)
3429 const SgMJD &tBreak=cbEpochs.at(i);
3431 stnName = cbNames.at(i);
3432 if (stnName.size() < 8)
3434 stnName = cbNames.at(i).leftJustified(8,
' ');
3436 "::getDataFromVgosDb(): a name of station \"" + cbNames.at(i) +
3437 "\" from the ClockBreak file has been adjusted to \"" + stnName +
"\"");
3447 "::getDataFromVgosDb(): a clock break at station " + stn2Correct->
getKey() +
3448 " that occurred on " + tBreak.
toString() +
" has been added");
3451 "::getDataFromVgosDb(): adding new clock break at " + stn2Correct->
getKey() +
3452 " station on " + tBreak.
toString() +
" has failed");
3456 "::getDataFromVgosDb(): cannot find station \"" + stnName +
3457 "\" in the map of stations, adding a clock break has failed");
3485 "::getDataFromVgosDb(): no clock breaks found");
3493 "::getDataFromVgosDb(): a number of leap seconds has been found; " + QString().setNum(leapSecond) +
3494 " leap seconds were assigned");
3498 if (cableSignByKey.size())
3500 for (QMap<QString, QString>::const_iterator it=cableSignByKey.begin();
3501 it!=cableSignByKey.end(); ++it)
3503 const QString &stnNme=it.key();
3504 const QString &stnSgn=it.value();
3508 if (stnSgn.contains(
"-"))
3510 else if (stnSgn.contains(
"+"))
3516 "::getDataFromVgosDb(): an applied cable calibration sign " + QString().sprintf(
"%+g", d) +
3517 " has been set for the station [" + stnNme +
"] on the basis of string: \"" + stnSgn +
3522 "::getDataFromVgosDb(): got cable cal sign for a station that is not in the session: " +
3526 "::getDataFromVgosDb(): " + QString().setNum(cableSignByKey.size()) +
3527 " cable calibration signs were applied to stations");
3538 if (atmRateConstraint)
3539 delete atmRateConstraint;
3542 if (clkRateConstraint)
3543 delete clkRateConstraint;
3554 delete groupBlWeights;
3556 sourcesNames.
clear();
3557 stationsNames4Coo.clear();
3558 tectonicPlateNames.clear();
3559 stationsNames4Ant.clear();
3560 stationsNames4Ecc.clear();
3565 cableSignByKey.clear();
3572 if (lastProcessed_ < vgosDb->getLastModified() )
3585 ": getDataFromVgosDb(): the session " +
getName() +
" has been read from vgosDb data set" +
3586 ", elapsed time: " + QString(
"").sprintf(
"%.2f", (finisEpoch - startEpoch)*86400000.0) +
" ms");
const Sg3dVector v3Zero(0.0, 0.0, 0.0)
const SgMJD tZero(1957, 10, 4)
#define RAD2DEG
radians to degrees:
#define DEG2RAD
degrees to seconds:
QMap< QString, SgVlbiBaselineInfo * >::iterator BaselinesByName_it
const QString sMntTypes[]
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, SgVlbiStationInfo * >::iterator StationsByName_it
bool isAttr(uint a) const
bool addBreak(const SgMJD &t, double a0=0.0, double a1=0.0, double a2=0.0, bool isDynamic=false)
void setDR(const Sg3dVector &)
void setCdpNumber(const QString &)
const SgMJD & getDateOfCreation() const
virtual void write(LogLevel, quint32, const QString &, bool=false)
@ F_YYYYMMDDHHMMSSSS
Long verbose: Fri, the 2nd of Apr, 2010; 17hr 02min 43.6400sec.
@ F_INTERNAL
Digits, date and time: 20100402.71.
QString toString(Format format=F_Verbose) const
int calcDayOfYear() const
static SgMJD currentMJD()
void setUpEpoch(int year, int month, int day, int hour, int min, double sec)
static void MJD_reverse(int date, double time, int &nYear, int &nMonth, int &nDay, int &nHour, int &nMin, double &dSec)
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
@ Attr_ARTIFICIAL_DATA
data are artificial (mean values or some model);
void setDefinition(const QString &def)
void setOrigin(const QString &orig)
void setControlFlag(const QString &flag)
QList< SgVlbiStationInfo * > & stations()
DasModel & ut1Interpolation()
short getFlagTidalUt1() const
DasModel & polarMotionInterpolation()
void setKey(const QString &key)
void incNumTotal(DataType, int=1)
const QString & getKey() const
void setSigma2add(DataType dType, double d)
virtual void setMediaIdx(int idx)
virtual void setMJD(const SgMJD &)
@ Attr_NOT_VALID
omit the observation;
@ Attr_DYNAMIC
parameters supposed to be estimated during the common solution;
double getPwlStep() const
double getPwlAPriori() const
void setPwlStep(double s)
void setPwlAPriori(double)
const SgParameterCfg & getZenith() const
void setClock0(const SgParameterCfg &p)
void setZenith(const SgParameterCfg &p)
const SgParameterCfg & getClock0() const
double getInitAuxSigma4Delay() const
bool getUseSolveObsSuppresionFlags() const
double getInitAuxSigma4Rate() const
void setElement(unsigned int i, double d)
double getElement(unsigned int i) const
bool loadObsSNR(const QString &band, SgVector *&snrs)
bool loadObsCrossRefs(QVector< int > &obs2Scan)
bool loadClockSetup(QList< QString > &refClocks, SgVector *&interval, SgVector *&rateConstraint, QVector< QString > &stationsNames)
bool loadStationCalOceanLoad(const QString &stnName, SgMatrix *&calHorzOLoad, SgMatrix *&calVertOLoad)
bool loadHistory(QList< SgVlbiHistoryRecord * > &)
bool loadStationCalSlantPathTropDry(const QString &stnName, SgMatrix *&calNmfDry, QString &kind)
bool loadObsAmbigSpacing(const QString &band, SgVector *&)
bool loadObsPartNut2KXY(SgMatrix *&dV_dCipX, SgMatrix *&dV_dCipY, QString &kind)
bool loadObsNumPhaseAmbigs(const QString &band, QVector< int > &numAmbigs)
bool loadObsCorrelatorInfo(const QString &band, QList< QString > &fourfitOutputFName, QList< QString > &fourfitErrorCodes, SgVector *&scanStartSec, SgVector *&scanStopSec)
bool loadObsSingleBandDelays(const QString &band, SgMatrix *&)
bool loadCalibrations(int &obsCalFlags, QVector< int > &statCalFlags, QVector< QVector< int > > &flybyFlags, QVector< QString > &statCalNames, QVector< QString > &flybyNames, QVector< QString > &calSiteNames, QVector< QString > &obsCalNames)
bool loadSelectionStatus(QVector< int > &sourcesSelection, QVector< QVector< int > > &baselinesSelection)
bool loadAtmSetup(SgVector *&interval, SgVector *&rateConstraint, QVector< QString > &stationsNames)
bool loadObsCalTiltRmvr(SgMatrix *&cals)
bool loadScanNutationEqx(SgMatrix *&pPsiEps, SgMatrix *&pPsiEps_rates, QString &kind)
bool loadLeapSecond(int &leapSecond)
bool loadObsEffFreqs(const QString &band, SgMatrix *&)
bool loadSolveWeights(QVector< QString > &baselineNames, SgMatrix *&groupBlWeights)
bool loadObsCalHiFyLibration(SgMatrix *&, QString &kind)
bool loadObsCalUnphase(const QString &band, SgMatrix *&unPhaseCal_1, SgMatrix *&unPhaseCal_2)
bool loadObsNumGroupAmbigs(const QString &band, QVector< int > &numAmbigs, QVector< int > &numSubAmbigs)
bool loadObsPartGamma(SgMatrix *&part)
bool loadObsRefFreqs(const QString &band, SgVector *&)
bool loadObsCalBendSunHigher(SgMatrix *&cals)
bool loadObsUserCorrections(int idx, SgMatrix *m, QString &name)
bool loadObsCalOceanOld(SgMatrix *&)
bool loadStationsApriories(QVector< QString > &stationsNames, SgMatrix *&cooXYZ, QVector< QString > &tectonicPlateNames)
bool loadObsGroupDelays(const QString &band, SgMatrix *&)
bool loadObsCalFeedCorr(SgMatrix *&)
bool loadScanNutationEqxWahr(SgMatrix *&pPsiEps, SgMatrix *&pPsiEps_rates)
int getNumOfUserCorrections() const
bool loadObsCalOceanPoleTideLoad(SgMatrix *&)
bool loadObsPartBend(SgMatrix *&partBend)
int getCurrentVersion() const
bool loadScanName(QVector< QString > &scanNames, QVector< QString > &scanFullNames)
bool loadObsPartParallax(SgMatrix *&part)
bool loadStationCalSlantPathTropWet(const QString &stnName, SgMatrix *&calNmfWet, QString &kind)
bool loadObsCalHiFyErp(SgMatrix *&, SgMatrix *&, QString &kind)
bool loadObsCalBend(SgMatrix *&cals)
bool loadStationCalAxisOffset(const QString &stnName, SgMatrix *&cal)
bool loadObsDtec(SgVector *&dTec, SgVector *&dTecStdDev)
bool loadStationOceanLdDisp(const QString &stnName, SgMatrix *&dis, SgMatrix *&vel)
bool loadStationMet(const QString &stnName, SgVector *&metAtmPres, SgVector *&metAtmRH, SgVector *&metAtmTemp, QString &origin, QString &kind)
bool loadSessionHead(QString &corrType, QString &corrName, QString &piName, QString &experimentName, int &experimentSerialNumber, QString &experimentDescription, QString &recordingMode, QList< QString > &stations, QList< QString > &sources, SgMJD &tStart, SgMJD &tFinis, int &cppsIdx)
bool hasBand(const QString &band) const
bool loadStationRefClockOffset(const QString &stnName, SgVector *&refClockOffset)
bool loadObsPartRaDec(SgMatrix *&dV_dRA, SgMatrix *&dV_dDN)
QList< QString > getListOfBands() const
bool loadObsCalWobble(SgMatrix *&, SgMatrix *&)
bool loadObsCalPoleTide(SgMatrix *&, QString &kind)
bool loadObsCorrelation(const QString &band, SgVector *&correlations)
bool loadScanTrf2crf(SgMatrix *&val, SgMatrix *&rat, SgMatrix *&acc)
bool loadClockBreaks(QVector< QString > &cbNames, QVector< SgMJD > &cbEpochs, QVector< int > &cbFlags)
bool loadEccentricities(QVector< QString > &stationsNames, QVector< QString > &eccTypes, QVector< QString > &eccNums, SgMatrix *&eccVals)
bool loadStationCalCable(const QString &stnName, SgMatrix *&cal, QString &origin, QString &kind)
bool loadStationPartZenithDelayDry(const QString &stnName, SgMatrix *&part, QString &kind)
const SgMJD & getLastModified() const
bool loadObsDataFlag(const QString &band, QVector< int > &delUFlag)
bool loadMiscFourFit(const QString &band, QVector< QString > &fourfitControlFile, QVector< QString > &fourfitCommand, QVector< int > &numLags, QVector< double > &apLength)
bool loadObsPhase(const QString &band, SgMatrix *&)
bool loadObsCalParallax(SgMatrix *&cals)
bool loadObsChannelInfo(const QString &band, QVector< QString > &channelIds, QVector< QString > &polarizations, QVector< int > &numOfChannels, QVector< int > &bitsPerSamples, QVector< QVector< int > > &errorRates_1, QVector< QVector< int > > &errorRates_2, QVector< QVector< int > > &bbcIdxs_1, QVector< QVector< int > > &bbcIdxs_2, QVector< QVector< int > > &corelIdxNumbersUsb, QVector< QVector< int > > &corelIdxNumbersLsb, SgVector *&sampleRate, SgMatrix *&residFringeAmplByChan, SgMatrix *&residFringePhseByChan, SgMatrix *&refFreqByChan, SgMatrix *&numOfSamplesByChan_USB, SgMatrix *&numOfSamplesByChan_LSB, SgMatrix *&numOfAccPeriodsByChan_USB, SgMatrix *&numOfAccPeriodsByChan_LSB, SgMatrix *&loFreqs_1, SgMatrix *&loFreqs_2)
bool loadCalcEop(SgVector *&pmArrayInfo, SgVector *&utArrayInfo, SgMatrix *&pmValues, SgVector *&utValues, QString &sUtMode, QString &sUtModule, QString &sUtOrigin, QString &sPmMode, QString &sPmModule, QString &sPmOrigin)
bool loadObsPartEOP(SgMatrix *&dV_dPx, SgMatrix *&dV_dPy, SgMatrix *&dV_dUT1)
bool loadStationParAngle(const QString &stnName, SgVector *&parAngle)
bool loadObsFractC(SgVector *&v)
bool loadStationCalCblCorrections(const QString &stnName, SgMatrix *&cal, QString &origin, QString &kind)
const QString & getSessionCode() const
bool loadStationTsys(const QString &stnName, SgMatrix *&tsyses, QVector< double > &frqs, QVector< QString > &ids, QVector< QString > &sbs, QVector< QString > &polzs)
bool loadSourcesApriories(QVector< QString > &sourcesNames, SgMatrix *&cooRaDe, QVector< QString > &sourcesApRefs)
bool loadStationPartHorizonGrad(const QString &stnName, SgMatrix *&part, QString &kind)
const QString & getSessionName() const
bool loadObsPhaseCalInfo(const QString &band, SgMatrix *&phaseCalFreqs_1, SgMatrix *&phaseCalAmps_1, SgMatrix *&phaseCalPhases_1, SgMatrix *&phaseCalOffsets_1, SgVector *&phaseCalRates_1, SgMatrix *&phaseCalFreqs_2, SgMatrix *&phaseCalAmps_2, SgMatrix *&phaseCalPhases_2, SgMatrix *&phaseCalOffsets_2, SgVector *&phaseCalRates_2)
bool loadMiscCable(QMap< QString, QString > &cableSignByKey)
bool loadObsEditData(QVector< int > &delUFlag, QVector< int > &phsUFlag, QVector< int > &ratUFlag, QVector< int > &uAcSup)
bool loadCalcInfo(int &tidalUt1, double &calcVersionValue)
const QString & getWrapperFileName() const
bool loadObsCalOcean(SgMatrix *&)
bool loadObsCalIonGroup(const QString &band, SgMatrix *&ionCals, SgMatrix *&ionSigmas, QVector< int > &ionDataFlag)
bool loadStationEpochs(const QString &stnName, QList< SgMJD > &epochs)
bool loadAntennaApriories(QVector< QString > &stationsNames, QVector< int > &axisTypes, SgVector *&axisOffsets, SgMatrix *&axisTilts)
bool loadObsCalPoleTideOldRestore(SgMatrix *&cals)
bool loadScanNutationNro(SgMatrix *&pXys, SgMatrix *&pXys_rates, QString &kind)
bool loadObsUVFperAsec(const QString &band, SgMatrix *&uvfPerAsec)
bool loadObsCalBendSun(SgMatrix *&cals)
bool loadObsRates(const QString &band, SgMatrix *&)
bool loadScanCrootFname(QVector< QString > &corrRootFnames)
bool loadEpochs4Scans(QList< SgMJD > &)
CorrelatorType getCorrelatorType() const
bool loadEpochs4Obs(QList< SgMJD > &)
bool loadObsQualityCodes(const QString &band, QVector< QString > &qualityCodes)
bool loadScanEphemeris(SgMatrix *&rSun, SgMatrix *&rMoon, SgMatrix *&rEarth, SgMatrix *&vSun, SgMatrix *&vMoon, SgMatrix *&vEarth, SgMatrix *&aEarth)
bool loadObsPartPoleTides(SgMatrix *&partX, SgMatrix *&partY, QString &kind)
bool loadObsPartXYZ(SgMatrix *&dTau_dR_1, SgMatrix *&dRat_dR_1)
bool loadStationPartZenithDelayWet(const QString &stnName, SgMatrix *&part, QString &kind)
bool loadClockApriories(QVector< QString > &stationNames, SgMatrix *&offsets_n_rates)
bool loadStationAzEl(const QString &stnName, SgMatrix *&azTheo, SgMatrix *&elTheo)
bool loadObsCalEarthTide(SgMatrix *&, QString &kind)
bool loadErpApriori(SgVector *&ut1_tai, SgMatrix *&pm)
bool loadObsTheoreticals(SgVector *&delays, SgVector *&rates)
bool loadObsObjectNames(QList< QString > &, QList< QString > &, QList< QString > &)
bool loadStationPartAxisOffset(const QString &stnName, SgMatrix *&partAxisOffset)
void setOcnLdV(const Sg3dVector &v)
void setCableCalibration(double cable)
void setDdel_dAxsOfs(double v)
void setMeteoData(const SgMeteoData &meteo)
void setAzimuthAngle(double angle)
void setDdel_dTzdDry(double v)
@ Attr_CABLE_CAL_BAD
clock break occured at the station
void setCalcNwetCont4Delay(double v)
void setTsysesSize(int n)
void setCalcNdryCont4Delay(double v)
void setDrat_dTzdWet(double v)
void setCalcOLoadHorz4Delay(double v)
void setCalcOLoadHorz4Rate(double v)
void setDdel_dTzdGrdE(double v)
SgMeteoData & meteoData()
void setAzimuthAngleRate(double rate)
void setCalcOLoadVert4Rate(double v)
void setDrat_dTzdGrdE(double v)
void setDrat_dAxsOfs(double v)
void setParallacticAngle(double angle)
void setDdel_dTzdGrdN(double v)
void setCalcOLoadVert4Delay(double v)
void setCalcAxisOffset4Delay(double v)
void setDrat_dTzdGrdN(double v)
void setOcnLdR(const Sg3dVector &r)
void setCalcNwetCont4Rate(double v)
const SgVector & cableCorrections() const
void setElevationAngle(double angle)
void setElevationAngleRate(double rate)
void setCalcNdryCont4Rate(double v)
void setDdel_dTzdWet(double v)
void setDrat_dTzdDry(double v)
void setRefClockOffset(double d)
void setTapeId(const QString id)
void setCalcAxisOffset4Rate(double v)
void setFrequency(double f)
void setTCreation(const SgMJD &t)
void setCorrelatorType(const QString &name)
QMap< QString, SgVlbiBaselineInfo * > & baselinesByName()
QMap< QString, SgVlbiStationInfo * > & stationsByName()
void setInputFileName(const QString &fileName)
void setInputFileVersion(int version)
QMap< int, SgVlbiBaselineInfo * > & baselinesByIdx()
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
QMap< int, SgVlbiSourceInfo * > & sourcesByIdx()
SgVlbiHistory & history()
QMap< int, SgVlbiStationInfo * > & stationsByIdx()
@ Attr_HAS_IONO_SOLUTION
the band contains ionospheric corrections;
@ Attr_MISSING_CHANNEL_INFO
the band lacks info on channel setup;
@ Attr_ESTIMATE_CLOCKS
estimate baseline clocks;
@ Attr_NOT_VALID
omit the baseline;
void setAmbiguitySpacing(double)
void setEffFreqEqWgt(double)
short int getUnweightFlag() const
void setIonoSigma(double)
void setNumOfSubAmbigs(int n)
void setNumOfAmbiguities(int)
void setIonoValue(double)
void setResidualFringeFitting(double r)
void setGeocenterValue(double)
void setUnweightFlag(short int)
QVector< int > * corelIndexNumLSB()
void setEpochOfCorrelation(const SgMJD &)
void setEpochCentral(const SgMJD &)
void setBitsPerSample(int bps)
void setTstart(const SgMJD &t)
void setCorrClocks(int i, int j, double d)
void setTotalPhase(double)
void setHopsRevisionNumber(int num)
void setPhaseCalGrDelays(int i, double d)
QVector< char > * polarization_1ByChan()
SgVector * loFreqByChan_1()
QVector< char > * chanIdByChan()
void setIncohSegmAddAmp(double d)
QVector< int > * corelIndexNumUSB()
SgMatrix * phaseCalData_2ByChan()
void setAcceptedRatio(double d)
const QString & getErrorCode() const
void setTstop(const SgMJD &t)
void setEpochOfFourfitting(const SgMJD &)
SgVlbiObservation * owner()
SgVector * numOfAccPeriodsByChan_LSB()
void setIncohChanAddAmp(double d)
void setCentrOffset(double offset)
void setEffIntegrationTime(double d)
void setFourfitOutputFName(const QString &)
QVector< char > * polarization_2ByChan()
SgVector * numOfAccPeriodsByChan_USB()
QVector< int > * bbcIdxByChan_1()
void setFourfitControlFile(const QString &cf)
SgVlbiMeasurement & phDRate()
void setGeocenterResidPhase(double d)
void setCorrelStarElev_2(double v)
void setProbabOfFalseDetection(double d)
void setQualityFactor(int)
void setGeocenterTotalPhase(double d)
void setDiscardRatio(double d)
SgVector * fringeAmplitudeByChan()
void setCorrCoeff(double)
void setEpochOfScan(const SgMJD &)
void setUrVr(int i, double d)
void setCorrelZdelay_1(double v)
SgVector * numOfSamplesByChan_LSB()
void setAprioriDra(int i, double d)
void setInstrDelay(int i, double d)
void setPhaseCalRates(int i, double d)
void setStopOffset(int offset)
void setUvFrPerAsec(int i, double d)
void setErrorCode(const QString &)
SgMatrix * phaseCalData_1ByChan()
SgVector * numOfSamplesByChan_USB()
void setFourfitCommandOverride(const QString &co)
void setReferenceFrequency(double)
void setCorrelZdelay_2(double v)
double getReferenceFrequency() const
void allocateChannelsSetupStorages(int numOfChans)
SgVlbiMeasurement & phDelay()
void setTapeQualityCode(const QString &code)
void setCalcFeedCorrDelay(double v)
SgVector * loFreqByChan_2()
SgVlbiMeasurement & grDelay()
void setStartOffset(int offset)
SgVlbiMeasurement & sbDelay()
SgVector * fringePhaseByChan()
SgVector * refFreqByChan()
void setFourfitSearchParameters(int i, double d)
void setSampleRate(double sr)
void setCorrelStarElev_1(double v)
void setCalcFeedCorrRate(double v)
QVector< int > * bbcIdxByChan_2()
void setFourfitVersion(int idx, int ver)
void setCalcOceanTideDelay(double v)
void setCalcHiFyPxyRate(double v)
void setCalcNut2006_dPsiV(double v)
void setStation1Idx(short int idx)
void setRearth(const Sg3dVector &r)
void setScanId(const QString &sId)
void setCalcConsBendingRate(double d)
@ Attr_SBD_NOT_VALID
omit the observation if single band delay is analysed;
void setCalcHiFyPxyDelay(double v)
void setDdel_dRA(double d)
void setDrat_dPolTideY(double d)
void setCalcOceanPoleTideLdDelay(double v)
void setDrat_dR_1(const Sg3dVector &r)
void setCalcHiFyUt1Rate(double v)
void setCalcPxDelay(double v)
void setSourceIdx(short int idx)
void setCalcNut2006_dEpsV(double v)
void setCalcPoleTideDelay(double v)
void setDdel_dGamma(double d)
void setApLength(double d)
void setCalcTiltRemvrRate(double v)
SgVlbiAuxObservation * auxObs_2()
void setCalcConsBendingSunRate(double d)
bool addObservable(const QString &, const SgVlbiObservable &)
void setRsun(const Sg3dVector &r)
void setCalcEarthTideDelay(double v)
void setCalcConsensusDelay(double tau)
void setDTecStdDev(double e)
void setCalcNut2006_dPsiR(double v)
void setAuxObs_2(SgVlbiAuxObservation *aux)
void setCalcNut2006_dEpsR(double v)
void setVsun(const Sg3dVector &v)
void setCalcHiFyPxyLibrationRate(double v)
void setAuxObs_1(SgVlbiAuxObservation *aux)
void setCalcPyDelay(double v)
void setScanName(const QString &sName)
void setCalcCipSr(double v)
void setCalcPoleTideOldDelay(double v)
short int getStation1Idx() const
void setDrat_dPolTideX(double d)
void setCalcPoleTideRate(double v)
void setCalcHiFyUt1LibrationDelay(double v)
void setCalcPmY(double d)
void setVmoon(const Sg3dVector &v)
void setCalcConsBendingSunHigherDelay(double d)
void setCalcConsensusRate(double r)
void setCalcUt1_Tai(double d)
void setCalcNutWahr_dEpsV(double v)
void setCalcNutWahr_dPsiV(double v)
void setDrat_dParallaxRev(double d)
void setDrat_dCipY(double d)
void setCalcCipYv(double v)
short int getSourceIdx() const
void setDrat_dGamma(double d)
Sg3dMatrix & trf2crfRat()
void setCalcOceanTideOldRate(double v)
void setDrat_dRA(double d)
void setCorrRootFileName(const QString &sName)
void setD2rat_dUT12(double d)
void setCalcHiFyPxyLibrationDelay(double v)
void setCalcPmX(double d)
void setCalcOceanTideOldDelay(double v)
void setDdel_dR_1(const Sg3dVector &r)
void setDdel_dUT1(double d)
void setDrat_dBend(double d)
void setVearth(const Sg3dVector &v)
void setDdel_dPolTideX(double d)
void setCalcCipXr(double v)
void setCalcCipSv(double v)
void setCalcConsBendingSunHigherRate(double d)
void setDdel_dCipY(double d)
void setStation2Idx(short int idx)
void setCalcCipXv(double v)
void setDrat_dParallax(double d)
void setCalcNutWahr_dEpsR(double v)
QVector< double > & userCorrections()
void setDdel_dParallax(double d)
void setCalcEarthTideRate(double v)
void setDdel_dPy(double d)
void setD2del_dUT12(double d)
short int getStation2Idx() const
void setDdel_dPx(double d)
QMap< QString, SgVlbiObservable * > & observableByKey()
void setCalcTiltRemvrDelay(double v)
void setDdel_dCipX(double d)
void setRmoon(const Sg3dVector &r)
void setCalcOceanPoleTideLdRate(double v)
void setCalcConsBendingDelay(double d)
void setDdel_dBend(double d)
void setCalcOceanTideRate(double v)
Sg3dMatrix & trf2crfAcc()
SgVlbiAuxObservation * auxObs_1()
void setDrat_dCipX(double d)
void setCalcHiFyUt1LibrationRate(double v)
void setCalcHiFyUt1Delay(double v)
void setDrat_dPx(double d)
void setDdel_dParallaxRev(double d)
void setAearth(const Sg3dVector &a)
void setCalcPyRate(double v)
void setDrat_dDN(double d)
void setBaselineIdx(short int idx)
void setCalcPxRate(double v)
void setDdel_dR_2(const Sg3dVector &r)
void setCalcNutWahr_dPsiR(double v)
void setScanFullName(const QString &sId)
void setCalcPoleTideOldRate(double v)
void setCalcConsBendingSunDelay(double d)
short int getBaselineIdx() const
void setDrat_dUT1(double d)
void setDrat_dR_2(const Sg3dVector &r)
void setCalcWobNutatContrib(double v)
void setDrat_dPy(double d)
void setKey(const QString &)
void setCalcCipYr(double v)
Sg3dMatrix & trf2crfVal()
void setDdel_dPolTideY(double d)
void setDdel_dDN(double d)
const QString & getName() const
void setRecordingMode(const QString &mode)
void setSessionCode(const QString &code)
void setDescription(const QString &description)
void setName(const QString &name)
void setCorrelatorType(const QString &name)
CorrelatorPostProcSoftware cppsSoft_
@ Attr_PRE_PROCESSED
the observations has been prepared for analysis;
@ Attr_HAS_CALC_DATA
the theoretical values are available;
@ Attr_HAS_DTEC
the session contains diffTec values;
@ Attr_HAS_AUX_OBS
session contains aux.observations (e.g.: meteo data, cables);
@ Attr_HAS_IONO_CORR
the theoretical values are available;
@ Attr_HAS_WEIGHTS
the theoretical values are available;
@ Attr_HAS_CLOCK_BREAKS
there is at least one clock break at one of stations;
CorrelatorPostProcSoftware
@ CPPS_UNKNOWN
unknown (=all others);
QString networkSuffix_
a char that specifies network (e.g., A, E, U, etc.);
void setExperimentSerialNumber(int sn)
void setCorrelatorName(const QString &name)
void setPiAgencyName(const QString &name)
QString name_
name of the session (e.g., 10JUL22XE);
int numberOfBands() const
StationsByName stationsByName_
bool hasOceanPoleTideContrib_
bool hasWobbleNutContrib_
bool getDataFromVgosDb(SgVgosDb *vgosDb, bool have2LoadImmatureSession, bool guiExpected)
void allocPxyInterpolValues(const SgMatrix *vals)
void setLeapSeconds(double s)
bool hasUt1LibrationContrib_
QMap< QString, SgVlbiObservation * > observationByKey_
QList< SgVlbiBand * > bands_
QVector< bool > userCorrectionsUse_
SgTidalUt1::UT1TideContentType tabsUt1Type_
SgVector * args4PxyInterpolation_
bool selfCheck(bool guiExpected)
QMap< QString, SgVlbiBand * > bandByKey_
void applyObsCalibrationSetup(int bitFlags, const QList< QString > &calList)
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_
bool hasUnPhaseCalContrib_
QMap< int, SgVlbiStationInfo * > stationsByIdx_
bool hasUt1HighFreqContrib_
void allocUt1InterpolValues(const SgVector *vals)
bool hasPxyInterpolation_
QMap< QString, double > skyFreqByIfId_
QVector< QString > userCorrectionsName_
BaselinesByName baselinesByName_
bool hasUt1Interpolation_
SgParametersDescriptor * parametersDescriptor_
void setInputDriver(SgIoDriver *drv)
bool hasEarthTideContrib_
static QString className()
SgVector * args4Ut1Interpolation_
bool hasPxyLibrationContrib_
SgMatrix * tabs4Ut1Interpolation_
QMap< int, SgVlbiBaselineInfo * > baselinesByIdx_
SourcesByName sourcesByName_
void restoreIonCorrections()
bool hasTiltRemvrContrib_
bool hasOceanTideOldContrib_
SgMatrix * tabs4PxyInterpolation_
QMap< int, SgVlbiSourceInfo * > sourcesByIdx_
void applyStatusBits(short bitArray)
void setAprioriReference(const QString &ref)
void setNeed2useAPrioriClocks(bool)
QMap< QString, SgVlbiAuxObservation * > * auxObservationByScanId()
void setR(const Sg3dVector &r)
QVector< QString > & tsysIfSideBands()
QVector< double > & tsysIfFreqs()
double getAxisOffset() const
QVector< QString > & tsysIfIds()
void setMeteoDataOriginTxt(const QString &origin)
void setMntType(MountingType m)
@ Attr_REFERENCE_CLOCKS
the clocks are the reference ones;
@ Attr_HAS_CABLE_CAL
a station has cable calibration readings;
@ Attr_IGNORE_CABLE_CAL
do not apply cable calibration;
@ Attr_METEO_MODIFIED
a station has meteo parameters;
@ Attr_USE_LOCAL_ZENITH
use its own setup for the zenith delay parameter;
@ Attr_USE_LOCAL_CLOCKS
use its own setup for the clock parameter;
@ Attr_CABLE_CAL_MODIFIED
a station has cable calibration readings;
@ Attr_HAS_METEO
a station has meteo parameters;
SgParameterCfg * pcZenith()
void setMeteoDataOrigin(MeteoDataOrigin origin)
void setAPrioriClockTerm_1(double)
void setTectonicPlateName(const QString &name)
SgParameterCfg * pcClocks()
static MountingType int2mntType(int)
void setCableCalsOriginTxt(const QString &origin)
void setAxisOffset(double v)
void setCableCalsOrigin(CableCalsOrigin origin)
SgBreakModel & clockBreaks()
void setAPrioriClockTerm_0(double)
void checkPresenceOfCableCalibratioCorrections()
QVector< QString > & tsysIfPolarizations()
void setPcClocks(const SgParameterCfg &pc)
void setPcZenith(const SgParameterCfg &pc)