38 #if QT_VERSION >= 0x050000
39 # include <QtWidgets/QMessageBox>
41 # include <QtGui/QMessageBox>
578 extern const QString
sCalList[] = {
"CABL DEL",
"UNPHASCL",
"NDRYCONT",
"NWETCONT",
" ",
581 extern const QString
sFclList[] = {
"CFAKBDRY",
"CFAKBWET",
"CFAJJDRY",
"IFADRFLY",
"IFADRYSS",
582 "MTTDRFLY",
"MTTDRYSS",
"NMFDRFLY"};
584 extern const QString
sMntTypes[] ={
"AZEL",
"EQUA",
"X_YN",
"X_YE",
"RICHMOND",
"UNKN"};
632 bool have2LoadImmatureSession,
bool guiExpected)
637 if (images.size()==0)
640 "::getDataFromDbhImages(): nothing to import");
643 else if (images.size()==1)
646 "::getDataFromDbhImages(): importing one-band set of DBH images");
647 isOk =
getDataFromDbhImage(images.values().at(0),
true,
true, have2LoadImmatureSession, guiExpected);
651 else if (images.size()==2 && images.contains(
"X") && images.contains(
"S") &&
652 images[
"X"]->currentVersion() >= images[
"S"]->currentVersion())
655 "::getDataFromDbhImages(): importing typical IVS set of DBH images");
656 isOk =
getDataFromDbhImage(images[
"S"],
false,
true, have2LoadImmatureSession, guiExpected);
657 isOk = isOk &&
getDataFromDbhImage(images[
"X"],
true,
true, have2LoadImmatureSession, guiExpected);
662 "::getDataFromDbhImages(): importing non-standard set of DBH images");
664 double cverMax(-1.0), cverMin(-1.0), cver(-1.0);
665 for (QMap<QString, SgDbhImage*>::iterator it=images.begin(); it!=images.end(); ++it)
676 else if (cverMin<cver)
681 if (cverMin != cverMax)
683 for (QMap<QString, SgDbhImage*>::iterator it=images.begin(); it!=images.end(); ++it)
694 for (QMap<QString, SgDbhImage*>::iterator it=images.begin(); it!=images.end(); ++it)
709 false, have2LoadImmatureSession, guiExpected);
731 "::getDataFromDbhImages(): " + QString(
"").setNum(num) +
732 " second-band-only observation" + (num==1?
" ":
"s ") +
"were removed");
742 ": getDataFromDbhImages(): the session " +
getName() +
" has been read from DBH database" +
743 ", elapsed time: " + QString(
"").sprintf(
"%.2f", (finisEpoch - startEpoch)*86400000.0) +
" ms");
752 bool have2LoadImmatureSession,
bool guiExpected)
759 "::getDataFromDbhImage(): the image is NULL");
766 "::getDataFromDbhImage(): the image does not contain observations");
770 const QString dbhName(image->
fileName());
772 "::getDataFromDbhImage(): starting parsing DBH image " + image->
sessionID() );
776 if (
name_ ==
"unnamed")
779 if (
name_.mid(8, 1)==
"S")
781 name_.replace(8, 1,
"X");
783 "::getDataFromDbhImage(): session name has been switched from " + image->
sessionID() +
792 QString bandKey = str.mid(8, 1);
797 while (i<
bands_.size() && band==NULL)
799 if (
bands_.at(i)->getKey() == bandKey)
809 "::getDataFromDbhImage(): the band " + bandKey +
" already exists in the session; clearing..");
832 (
dbhDxTable[i].expectedVersion_<=importingVersion))
835 "::getDataFromDbhImage(): cannot find lcode '" +
dbhDxTable[i].lCode_ +
836 "' in the image; skipping the image of " + dbhName);
840 (
dbhDxTable[i].expectedVersion_<=importingVersion))
842 "::getDataFromDbhImage(): cannot find lcode '" +
dbhDxTable[i].lCode_ +
"' in the image of " +
850 "::getDataFromDbhImage(): type missmatch for LCODE '" +
dbhDxTable[i].lCode_ +
852 dbhDxTable[i].d_->typeName() +
"; skipping the image of " + dbhName);
859 "::getDataFromDbhImage(): type missmatch for LCODE '" +
dbhDxTable[i].lCode_ +
861 dbhDxTable[i].d_->typeName() +
"; skipping use of the LCODE");
867 QString station1Name, station2Name, sourceName, baselineName;
868 QString scanName, scanId, obsKey;
875 int year, month, day, hour, minute;
879 QMap<QString, SgVlbiAuxObservation*> *auxObsByScan=NULL;
881 double cableCorrection1=0.0, cableCorrection2=0.0;
883 double azimuthAngle1=0.0, azimuthAngle2=0.0;
884 double azimuthAngleRate1=0.0, azimuthAngleRate2=0.0;
885 double elevationAngle1=0.0, elevationAngle2=0.0;
886 double elevationAngleRate1=0.0, elevationAngleRate2=0.0;
887 double parallacticAngle1=0.0, parallacticAngle2=0.0;
888 double calcNdryContribDel1, calcNdryContribDel2;
889 double calcNwetContribDel1, calcNwetContribDel2;
890 double calcNdryContribRat1, calcNdryContribRat2;
891 double calcNwetContribRat1, calcNwetContribRat2;
892 double calcNgradNPartDel1, calcNgradEPartDel1;
893 double calcNgradNPartDel2, calcNgradEPartDel2;
894 double calcNgradNPartRat1, calcNgradEPartRat1;
895 double calcNgradNPartRat2, calcNgradEPartRat2;
896 double calcNdryPartDel1, calcNdryPartDel2;
897 double calcNdryPartRat1, calcNdryPartRat2;
898 double calcNwetPartDel1, calcNwetPartDel2;
899 double calcNwetPartRat1, calcNwetPartRat2;
900 double calcUnPhaseCal1, calcUnPhaseCal2;
901 double calcAxisOffsetDel1, calcAxisOffsetDel2;
902 double calcAxisOffsetRat1, calcAxisOffsetRat2;
903 double partAxisOffsetDel1, partAxisOffsetDel2;
904 double partAxisOffsetRat1, partAxisOffsetRat2;
905 double calcOcnLdDelH1, calcOcnLdDelH2, calcOcnLdDelV1, calcOcnLdDelV2;
907 calcNdryContribDel1 = calcNdryContribDel2 = calcNwetContribDel1 = calcNwetContribDel2 =
908 calcNdryContribRat1 = calcNdryContribRat2 = calcNwetContribRat1 = calcNwetContribRat2 =
909 calcNgradNPartDel1 = calcNgradEPartDel1 = calcNgradNPartDel2 = calcNgradEPartDel2 =
910 calcNgradNPartRat1 = calcNgradEPartRat1 = calcNgradNPartRat2 = calcNgradEPartRat2 = 0.0;
911 calcNdryPartDel1 = calcNdryPartDel2 = calcNdryPartRat1 = calcNdryPartRat2 = 0.0;
912 calcNwetPartDel1 = calcNwetPartDel2 = calcNwetPartRat1 = calcNwetPartRat2 = 0.0;
913 calcUnPhaseCal1 = calcUnPhaseCal2 = calcAxisOffsetDel1 = calcAxisOffsetDel2 = 0.0;
914 calcAxisOffsetRat1 = calcAxisOffsetRat2 = 0.0;
915 calcOcnLdDelH1 = calcOcnLdDelH2 = calcOcnLdDelV1 = calcOcnLdDelV2 = 0.0;
924 int maxNumOfChannels=0;
926 bool isSbdSigmaNan, isSbdSigmaInf;
927 bool isGrdSigmaNan, isGrdSigmaInf;
928 bool isPhrSigmaNan, isPhrSigmaInf;
938 "::getDataFromDbhImage(): the session has maximum " +
939 QString(
"").sprintf(
" %d channels", maxNumOfChannels));
941 numOfChannels = maxNumOfChannels;
961 epoch.
setUpEpoch(year, month, day, hour, minute, second);
967 baselineName = station1Name +
":" + station2Name;
975 scanName.sprintf(
"%03d-%02d:%02d:%04.1f@%s",
977 qPrintable(sourceName));
1097 isSbdSigmaNan = isSbdSigmaInf = isGrdSigmaNan = isGrdSigmaInf = isPhrSigmaNan = isPhrSigmaInf
1107 "::getDataFromDbhImage(): the observation #" + QString(
"").setNum(obsIdx) +
1108 " at the baseline <" + baselineName +
"> observing " + sourceName +
" source at " +
1110 " contains wrong sigma (inf) for the single band delay",
true);
1111 isSbdSigmaInf =
true;
1118 "::getDataFromDbhImage(): the observation #" + QString(
"").setNum(obsIdx) +
1119 " at the baseline <" + baselineName +
"> observing " + sourceName +
" source at " +
1121 " contains wrong sigma (nan) for the single band delay",
true);
1122 isSbdSigmaNan =
true;
1136 "::getDataFromDbhImage(): the observation #" + QString(
"").setNum(obsIdx) +
1137 " at the baseline <" + baselineName +
"> observing " + sourceName +
" source at " +
1139 " contains wrong sigma (inf) for the group delay",
true);
1140 isGrdSigmaInf =
true;
1147 "::getDataFromDbhImage(): the observation #" + QString(
"").setNum(obsIdx) +
1148 " at the baseline <" + baselineName +
"> observing " + sourceName +
" source at " +
1150 " contains wrong sigma (nan) for the group delay",
true);
1151 isGrdSigmaNan =
true;
1165 "::getDataFromDbhImage(): the observation #" + QString(
"").setNum(obsIdx) +
1166 " at the baseline <" + baselineName +
"> observing " + sourceName +
" source at " +
1168 " contains wrong sigma (inf) for the group delay",
true);
1169 isPhrSigmaInf =
true;
1176 "::getDataFromDbhImage(): the observation #" + QString(
"").setNum(obsIdx) +
1177 " at the baseline <" + baselineName +
"> observing " + sourceName +
" source at " +
1179 " contains wrong sigma (nan) for the group delay",
true);
1180 isPhrSigmaNan =
true;
1187 (isSbdSigmaNan || isSbdSigmaInf ||
1188 isGrdSigmaNan || isGrdSigmaInf ||
1189 isPhrSigmaNan || isPhrSigmaInf ))
1191 QString s1(
""), s2(
""), s3(
"");
1192 s1 = (isSbdSigmaNan || isGrdSigmaNan || isPhrSigmaNan)?
"(nan)":
"(inf)";
1193 if (isSbdSigmaNan || isSbdSigmaInf)
1194 s2 =
"single band delay, ";
1195 if (isGrdSigmaNan || isGrdSigmaInf)
1196 s2+=
"group delay, ";
1197 if (isPhrSigmaNan || isPhrSigmaInf)
1198 s2+=
"delay rate, ";
1199 s2 = s2.left(s2.size() - 2);
1203 QMessageBox::warning(NULL,
"Warning: wrong value",
1204 "The observation #" + QString(
"").setNum(obsIdx) +
" contains wrong sigma " + s1 +
" for " + s2 +
1205 ".\n\nThe observation identities:\n" +
"\t[" + baselineName +
"] @" + sourceName +
1207 "\n\nBatch SOLVE will likely fail to deal with this session, report to the correlator.");
1253 calcOcnLdDelH1 = calcOcnLdDelH2 = calcOcnLdDelV1 = calcOcnLdDelV2 = 0.0;
1460 obs->
passiveObses().at(0)->grDelay().setNumOfAmbiguities(
1465 if (s != obs->
passiveObses().at(0)->grDelay().getAmbiguitySpacing())
1467 "::getDataFromDbhImage(): secondary band ambiguity spacing, " +
1468 QString(
"").setNum(obs->
passiveObses().at(0)->grDelay().getAmbiguitySpacing()) +
1469 ", is different from value of GRPAMB_S LCode, " +
1470 QString(
"").setNum(s) +
"; the difference is " +
1471 QString(
"").setNum((obs->
passiveObses().at(0)->grDelay().getAmbiguitySpacing() - s)*1.0E9) +
1479 qFactor = str.toInt(&isOk);
1496 qFactor = str.toInt(&isOk);
1510 importingVersion>=4)
1544 double sampleRate=0.0, effFreq4GR=0.0, effFreq4PH=0.0, effFreq4RT=0.0;
1546 for (
int i=0; i<numOfChannels; i++)
1591 if (maxNumOfChannels && numOfChannels)
1593 fringeAmplitudeByChan, numOfSamplesByChan_USB, numOfSamplesByChan_LSB,
1594 sampleRate, refFreq, numOfChannels,
1597 effFreq4GR = effFreq4PH = effFreq4RT = refFreq;
1609 o->
grDelay().
setQ2( d*d/(effFreq4GR*effFreq4GR - d*d) );
1676 partAxisOffsetDel1 = partAxisOffsetDel2 = 0.0;
1677 partAxisOffsetRat1 = partAxisOffsetRat2 = 0.0;
1703 if (!auxObsByScan->contains(scanId))
1748 auxObsByScan->insert(scanId, auxObs);
1752 auxObsE = auxObsByScan->value(scanId);
1757 hasCableData_ && auxObsE->getCableCalibration()!=cableCorrection1)
1759 "::getDataFromDbhImage(): got diff value for cable cal; epoch " +
1761 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1762 auxObsE->getCableCalibration(), cableCorrection1,
1763 auxObsE->getCableCalibration()-cableCorrection1, obsIdx) +
1764 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1765 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1771 fabs(auxObsE->getMeteoData().getTemperature()-meteo1.
getTemperature())>1.0e-12)
1773 "::getDataFromDbhImage(): got diff value for meteo.T; epoch " +
1775 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1776 auxObsE->getMeteoData().getTemperature(), meteo1.
getTemperature(),
1777 auxObsE->getMeteoData().getTemperature()-meteo1.
getTemperature(), obsIdx) +
1778 ", station1: " + station1Name +
" from " + station1Info->
getKey() +
":" +
1779 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1782 fabs(auxObsE->getMeteoData().getPressure()-meteo1.
getPressure())>1.0e-12)
1784 "::getDataFromDbhImage(): got diff value for meteo.P; epoch " +
1786 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1787 auxObsE->getMeteoData().getPressure(), meteo1.
getPressure(),
1788 auxObsE->getMeteoData().getPressure()-meteo1.
getPressure(), obsIdx) +
1789 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1790 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1795 "::getDataFromDbhImage(): got diff value for meteo.R; epoch " +
1797 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1800 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1801 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1804 if (
hasAzimuthData_ && fabs(auxObsE->getAzimuthAngle()-azimuthAngle1)>1.0e-12)
1806 "::getDataFromDbhImage(): got diff value for azimuth; epoch " +
1808 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g mas); idx=%d",
1809 auxObsE->getAzimuthAngle(), azimuthAngle1,
1810 (auxObsE->getAzimuthAngle()-azimuthAngle1)*
RAD2MAS, obsIdx) +
1811 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1812 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1814 if (
hasElevationData_ && fabs(auxObsE->getElevationAngle()-elevationAngle1)>1.0e-12)
1816 "::getDataFromDbhImage(): got diff value for elevation; epoch " +
1818 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g mas); idx=%d",
1819 auxObsE->getElevationAngle(), elevationAngle1,
1820 (auxObsE->getElevationAngle()-elevationAngle1)*
RAD2MAS, obsIdx) +
1821 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1822 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1823 if (
hasParAngle_ && fabs(auxObsE->getParallacticAngle()-parallacticAngle1)>1.0e-12)
1825 "::getDataFromDbhImage(): got diff value for parallactic angle; epoch " +
1827 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g mas); idx=%d",
1828 auxObsE->getParallacticAngle(), parallacticAngle1,
1829 (auxObsE->getParallacticAngle()-parallacticAngle1)*
RAD2MAS, obsIdx) +
1830 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1831 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1835 "::getDataFromDbhImage(): got diff value for horizontal ocean loading; epoch " +
1837 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g ps); idx=%d",
1838 auxObsE->getCalcOLoadHorz4Delay(), calcOcnLdDelH1,
1839 (auxObsE->getCalcOLoadHorz4Delay()-calcOcnLdDelH1)*1.0e12, obsIdx) +
1840 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1841 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1844 "::getDataFromDbhImage(): got diff value for vertical ocean loading; epoch " +
1846 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g ps); idx=%d",
1847 auxObsE->getCalcOLoadVert4Delay(), calcOcnLdDelV1,
1848 (auxObsE->getCalcOLoadVert4Delay()-calcOcnLdDelV1)*1.0e12, obsIdx) +
1849 ", station1 " + station1Name +
" from " + station1Info->
getKey() +
":" +
1850 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1856 auxObsE->setCableCalibration(cableCorrection1);
1863 auxObsE->setMeteoData(meteo1);
1869 auxObsE->setAzimuthAngle(azimuthAngle1);
1870 auxObsE->setAzimuthAngleRate(azimuthAngleRate1);
1874 auxObsE->setElevationAngle(elevationAngle1);
1875 auxObsE->setElevationAngleRate(elevationAngleRate1);
1878 auxObsE->setParallacticAngle(parallacticAngle1);
1891 if (!auxObsByScan->contains(scanId))
1935 auxObsByScan->insert(scanId, auxObs);
1939 auxObsE = auxObsByScan->value(scanId);
1944 hasCableData_ && auxObsE->getCableCalibration()!=cableCorrection2)
1946 "::getDataFromDbhImage(): got diff value for cable cal; epoch " +
1948 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1949 auxObsE->getCableCalibration(), cableCorrection2,
1950 auxObsE->getCableCalibration()-cableCorrection2, obsIdx) +
1951 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
1952 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1958 fabs(auxObsE->getMeteoData().getTemperature()-meteo2.
getTemperature())>1.0e-12)
1960 "::getDataFromDbhImage(): got diff value for meteo.T; epoch " +
1962 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1963 auxObsE->getMeteoData().getTemperature(), meteo2.
getTemperature(),
1964 auxObsE->getMeteoData().getTemperature()-meteo2.
getTemperature(), obsIdx) +
1965 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
1966 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1969 fabs(auxObsE->getMeteoData().getPressure()-meteo2.
getPressure())>1.0e-12)
1971 "::getDataFromDbhImage(): got diff value for meteo.P; epoch " +
1973 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1974 auxObsE->getMeteoData().getPressure(), meteo2.
getPressure(),
1975 auxObsE->getMeteoData().getPressure()-meteo2.
getPressure(), obsIdx) +
1976 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
1977 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1982 "::getDataFromDbhImage(): got diff value for meteo.R; epoch " +
1984 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g); idx=%d",
1987 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
1988 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
1991 if (
hasAzimuthData_ && fabs(auxObsE->getAzimuthAngle()-azimuthAngle2)>1.0e-12)
1993 "::getDataFromDbhImage(): got diff value for azimuth; epoch " +
1995 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g mas); idx=%d",
1996 auxObsE->getAzimuthAngle(), azimuthAngle2,
1997 (auxObsE->getAzimuthAngle()-azimuthAngle2)*
RAD2MAS, obsIdx) +
1998 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
1999 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
2001 if (
hasElevationData_ && fabs(auxObsE->getElevationAngle()-elevationAngle2)>1.0e-12)
2003 "::getDataFromDbhImage(): got diff value for elevation; epoch " +
2005 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g mas); idx=%d",
2006 auxObsE->getElevationAngle(), elevationAngle2,
2007 (auxObsE->getElevationAngle()-elevationAngle2)*
RAD2MAS, obsIdx) +
2008 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
2009 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
2011 if (
hasParAngle_ && fabs(auxObsE->getParallacticAngle()-parallacticAngle2)>1.0e-12)
2013 "::getDataFromDbhImage(): got diff value for parallactic angle; epoch " +
2015 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g mas); idx=%d",
2016 auxObsE->getParallacticAngle(), parallacticAngle2,
2017 (auxObsE->getParallacticAngle()-parallacticAngle2)*
RAD2MAS, obsIdx) +
2018 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
2019 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
2023 "::getDataFromDbhImage(): got diff value for horizontal ocean loading; epoch " +
2025 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g ps); idx=%d",
2026 auxObsE->getCalcOLoadHorz4Delay(), calcOcnLdDelH2,
2027 (auxObsE->getCalcOLoadHorz4Delay()-calcOcnLdDelH2)*1.0e12, obsIdx) +
2028 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
2029 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
2032 "::getDataFromDbhImage(): got diff value for vertical ocean loading; epoch " +
2034 QString().sprintf(
" (was: %.6g, became: %.6g, diff: %.6g ps); idx=%d",
2035 auxObsE->getCalcOLoadVert4Delay(), calcOcnLdDelV2,
2036 (auxObsE->getCalcOLoadVert4Delay()-calcOcnLdDelV2)*1.0e12, obsIdx) +
2037 ", station2 " + station2Name +
" from " + station1Info->
getKey() +
":" +
2038 station2Info->
getKey() +
" @ " + sourceInfo->
getKey());
2044 auxObsE->setCableCalibration(cableCorrection2);
2051 auxObsE->setMeteoData(meteo2);
2058 auxObsE->setAzimuthAngle(azimuthAngle2);
2059 auxObsE->setAzimuthAngleRate(azimuthAngleRate2);
2063 auxObsE->setElevationAngle(elevationAngle2);
2064 auxObsE->setElevationAngleRate(elevationAngleRate2);
2067 auxObsE->setParallacticAngle(parallacticAngle2);
2093 int dbhNumOfStations=0, dbhNumOfSources=0;
2100 "::getDataFromDbhImage(): the actual number of stations " +
2101 QString().sprintf(
"(%d) is not equal to the reported in DBH file (%d)",
2106 "::getDataFromDbhImage(): cannot find lcode '" +
rNSites_.
lCode_ +
"' in the image");
2113 "::getDataFromDbhImage(): the actual number of radio sources " +
2114 QString().sprintf(
"(%d) is not equal to the reported in DBH file (%d)",
2119 "::getDataFromDbhImage(): cannot find lcode '" +
rNStars_.
lCode_ +
"' in the image");
2147 station1Info = it.value();
2154 bool hasUniqStnClcConfigSn(
false), hasUniqStnZenConfigSn(
false);
2155 bool hasUniqStnClcConfigSe(
false), hasUniqStnZenConfigSe(
false);
2156 double scale4ClcApriori, scale4ZenApriori;
2157 double oldClcPwlApriori, oldZenPwlApriori;
2158 double newClcPwlApriori, newZenPwlApriori;
2159 scale4ClcApriori = 36.0*24.0;
2160 scale4ZenApriori = 1.0e-12*24.0*
vLight*100.0;
2165 hasUniqStnClcConfigSe =
true;
2167 hasUniqStnClcConfigSn =
true;
2169 fabs(oldClcPwlApriori/scale4ClcApriori - image->
getR8(
dClockConstr_, i,0,0)) > 1.0e-3)
2176 "::getDataFromDbhImage(): changed clocks PWL constraints from " +
2177 QString(
"").setNum(oldClcPwlApriori) +
" to " + QString(
"").setNum(newClcPwlApriori));
2181 hasUniqStnZenConfigSe =
true;
2183 hasUniqStnZenConfigSn =
true;
2185 fabs(oldZenPwlApriori/scale4ZenApriori - image->
getR8(
dAtmConstr_, i,0,0)) > 1.0e-3)
2192 "::getDataFromDbhImage(): changed zenith PWL constraints from " +
2193 QString(
"").setNum(oldZenPwlApriori) +
" to " + QString(
"").setNum(newZenPwlApriori));
2205 if (fabs(oldCi - ci) > 1.0e-3)
2210 "::getDataFromDbhImage(): changed clocks PWL interval from " +
2211 QString(
"").setNum(oldCi*24.0) +
" to " + QString(
"").setNum(ci*24.0) +
" hr(s)");
2216 "::getDataFromDbhImage(): got a multidimensional CLK_INTV: " +
2217 QString(
"").sprintf(
"(%d:%d:%d)",
2229 if (fabs(oldCi - ci) > 1.0e-3)
2234 "::getDataFromDbhImage(): changed zenith delay PWL interval from " +
2235 QString(
"").setNum(oldCi*24.0) +
" to " + QString(
"").setNum(ci*24.0) +
" hr(s)");
2240 "::getDataFromDbhImage(): got a multidimensional ATM_INTV: " +
2251 "::getDataFromDbhImage(): the dimension of the '" +
rStarNames_.
lCode_ +
"' lCode " +
2252 QString().sprintf(
"(%d) is not equal to the actual number of sources (%d)",
2261 double ra(0.0), dn(0.0);
2267 sourceInfo->
setRA(ra);
2268 sourceInfo->
setDN(dn);
2269 bandSourceInfo->
setRA(ra);
2270 bandSourceInfo->
setDN(dn);
2274 "::getDataFromDbhImage(): cannot find lcode '" +
rStar2000_.
lCode_ +
"' in the image");
2278 "::getDataFromDbhImage(): cannot find source '" + sourceName +
"' in the list of sources");
2283 "::getDataFromDbhImage(): cannot find lcode '" +
rStarNames_.
lCode_ +
"' in the image");
2292 "::getDataFromDbhImage(): the dimension of the '" +
rSiteNames_.
lCode_ +
"' lCode " +
2293 QString().sprintf(
"(%d) is not equal to the actual number of stations (%d)",
2304 double axisOffset = 0.0;
2326 "::getDataFromDbhImage(): got unknown value for the lCode '" +
rAxisTypes_.
lCode_ +
"'");
2331 "::getDataFromDbhImage(): set up mounting type [" +
sMntTypes[mnt] +
"] for the antenna " +
2339 "::getDataFromDbhImage(): the value of axiss offset for the antenna " +
2340 station1Info->
getKey() +
" has been set up to " + QString(
"").setNum(axisOffset));
2344 "::getDataFromDbhImage(): cannot find lcode '" +
rAxisOffsets_.
lCode_ +
"' in the image");
2351 station1Info->
setR(r);
2356 "::getDataFromDbhImage(): cannot find lcode '" +
rSiteRecs_.
lCode_ +
"' in the image");
2361 for (
int iWave=0; iWave<11; iWave++)
2371 "::getDataFromDbhImage(): set up ocean loading coefficients for the station " +
2378 "::getDataFromDbhImage(): tectonic plate name was set to [" +
2382 if (hasUniqStnClcConfigSn &&
2383 fabs(oldClcPwlApriori/scale4ClcApriori - image->
getR8(
dClockConstr_, i,0,0)) > 1.0e-3)
2389 "::getDataFromDbhImage(): set a unique clock setup for station '" + station1Name +
2390 "' and changed constraints from " + QString(
"").setNum(oldClcPwlApriori) +
" to " +
2391 QString(
"").setNum(newClcPwlApriori));
2393 if (hasUniqStnZenConfigSn &&
2394 fabs(oldZenPwlApriori/scale4ZenApriori - image->
getR8(
dAtmConstr_, i,0,0)) > 1.0e-3)
2400 "::getDataFromDbhImage(): set a unique zenith setup for station '" + station1Name +
2401 "' and changed constraints from " + QString(
"").setNum(oldZenPwlApriori) +
" to " +
2402 QString(
"").setNum(newZenPwlApriori));
2408 "::getDataFromDbhImage(): cannot find station '" + station1Name +
2409 "' in the list of stations");
2414 "::getDataFromDbhImage(): cannot find lcode '" +
rSiteNames_.
lCode_ +
"' in the image");
2417 if (hasUniqStnClcConfigSe)
2424 if (fabs(oldClcPwlApriori/scale4ClcApriori - image->
getR8(
dClockConstr_, i,0,0)) > 1.0e-3)
2430 "::getDataFromDbhImage(): set a unique clock setup for station '" + station1Name +
2431 "' and changed constraints from " + QString(
"").setNum(oldClcPwlApriori/scale4ClcApriori) +
2432 " to " + QString(
"").setNum(newClcPwlApriori/scale4ClcApriori) );
2436 if (hasUniqStnZenConfigSe)
2443 if (fabs(oldZenPwlApriori/scale4ZenApriori - image->
getR8(
dAtmConstr_, i,0,0)) > 1.0e-3)
2449 "::getDataFromDbhImage(): set a unique zenith setup for station '" + station1Name +
2450 "' and changed constraints from " + QString(
"").setNum(oldZenPwlApriori/scale4ZenApriori) +
2451 " to " + QString(
"").setNum(newZenPwlApriori/scale4ZenApriori));
2482 if (!(bitArray & (1<<1)))
2490 if ((bitArray & (1<<3)))
2519 "::getDataFromDbhImage(): cannot find baseline '" + station1Name +
":" + station2Name +
2520 "' in the map of baselines");
2545 if (!(bitArray & (1<<0)))
2554 QMap<QString, double> signsByName;
2559 if (stnName.simplified().length()>1)
2561 if (signsByName.contains(stnName))
2563 "::getDataFromDbhImage(): got duplicate station " + stnName +
2564 " in the list of cable calibration signs");
2568 if (stnSign.contains(
"-"))
2570 else if (stnSign.contains(
"+"))
2574 signsByName[stnName] = d;
2581 QString stnName=it.value()->getKey();
2582 if (signsByName.contains(stnName))
2585 it.value()->setCableCalMultiplierDBCal(signsByName[stnName]);
2587 "::getDataFromDbhImage(): according to dbcal the station " + stnName +
2588 (signsByName[stnName]!=0?(
" has a sign `" +
2589 QString(signsByName[stnName]==1?
"+":
"-") +
2590 "' of cable calibration"):
" has no cable calibration sign"));
2595 "::getDataFromDbhImage(): the station " + stnName +
" has no cable cal sign");
2613 "::getDataFromDbhImage(): get unexpected dimension of " +
dAcmNames_->
getLCode() +
": " +
2614 QString(
"").setNum(
dAcmNames_->
dim2()) +
"; have to be " + QString(
"").setNum(n));
2621 QString(
"").setNum(
dAcmOffsets_->
dim1()) +
"; have to be " + QString(
"").setNum(n));
2627 "::getDataFromDbhImage(): get unexpected dimension of " +
dAcmRates_->
getLCode() +
": " +
2628 QString(
"").setNum(
dAcmRates_->
dim1()) +
"; have to be " + QString(
"").setNum(n));
2634 "::getDataFromDbhImage(): get unexpected dimension of " +
dAcmEpochs_->
getLCode() +
": " +
2635 QString(
"").setNum(
dAcmEpochs_->
dim2()) +
"; have to be " + QString(
"").setNum(n));
2639 for (
int i=0; i<n; i++)
2642 if (stnName.simplified().size())
2645 "::getDataFromDbhImage(): processing ACM for [" + stnName +
"] station");
2667 "::getDataFromDbhImage(): a priori clock model was added to the station " +
2668 station1Info->
getKey() +
" as a static clock break that occurred on " +
2672 "::getDataFromDbhImage(): adding new clock break at " + station1Info->
getKey() +
2673 " station on " + clockBreak->
toString() +
" failed");
2685 "::getDataFromDbhImage(): the station [" + stnName +
"] was not found in the map");
2690 "::getDataFromDbhImage(): a priori clock model was found but the dimensions looks strange");
2694 "::getDataFromDbhImage(): no any a priori clock model found");
2698 bool isCableCalMatched(
false);
2699 int cableCalFlagIdx(-1);
2703 isCableCalMatched =
true;
2704 cableCalFlagIdx = i;
2706 if (isCableCalMatched)
2718 if (nFlag & 1<<cableCalFlagIdx)
2725 "::getDataFromDbhImage(): cannot find " + str +
2726 " (an entry from CALSITES LCode) in the list of stations");
2731 "::getDataFromDbhImage(): there is no \"CABL DEL\" flag in the LCode CAL LIST");
2734 QString clockSiteName(
"");
2740 if (clockSiteName == it.value()->getKey())
2744 "::getDataFromDbhImage(): Reference Clock attribute has been assigned to the station " +
2745 it.value()->getKey() +
"; band: " + band->
getKey());
2757 "::getDataFromDbhImage(): declared number of clock breaks (" +
2758 QString(
"").setNum(numOfClockBreaks) +
") is not equal to BRK_EPOC dimension " +
2765 "::getDataFromDbhImage(): declared number of clock breaks (" +
2766 QString(
"").setNum(numOfClockBreaks) +
") is not equal to BRK_SNAM dimension " +
2770 QString stnName(
"");
2771 for (
int i=0; i<numOfClockBreaks; i++)
2788 "::getDataFromDbhImage(): a clock break at station " + stn2Correct->
getKey() +
2789 " that occurred on " + tBreak.
toString() +
" has been added to the session");
2792 "::getDataFromDbhImage(): adding new clock break at " + stn2Correct->
getKey() +
2793 " station on " + tBreak.
toString() +
" failed");
2797 if (
false && stn2Correct)
2802 "::getDataFromDbhImage(): a clock break at station " + stn2Correct->
getKey() +
2803 " that occurred on " + tBreak.
toString() +
" has been added to the band");
2806 "::getDataFromDbhImage(): adding new clock break at " + stn2Correct->
getKey() +
2807 " station on " + tBreak.
toString() +
" failed");
2820 "::getDataFromDbhImage(): a leap seconds LCode has been detected; " + QString().setNum(ls) +
2821 " leap seconds were assigned");
2825 "::getDataFromDbhImage(): a leap seconds from the database (" + QString().setNum(ls) +
2826 ") is not the same as in the session (" + QString().setNum(
getLeapSeconds()) +
"). Ignored.");
2845 for (
int i=0; i<numOfPts; i++)
2853 "::getDataFromDbhImage(): loaded " + QString().setNum(numOfPts) +
2854 " records for UT1 interpolation");
2885 for (
int i=0; i<numOfPts; i++)
2893 "::getDataFromDbhImage(): loaded " + QString().setNum(numOfPts) +
2894 " records for polar motion interpolation");
2912 QString ut1Type(
"");
2918 ut1Type =
"Seriesfull of tides";
2922 ut1Type =
"Only short period tidal terms are removed";
2926 ut1Type =
"All tidal terms are removed";
2930 "::getDataFromDbhImage(): got undocumented value for the LCode TIDALUT1: " +
2931 QString().setNum(n) +
"; the UT1 type has been reverted to default");
2935 "::getDataFromDbhImage(): the type of the UT1 inner series has been set to " + ut1Type);
3040 "::getDataFromDbhImage(): data have been read from DBH database \"" + image->
fileName() +
3041 "\", elapsed time: " + QString(
"").sprintf(
"%.2f", (finisEpoch - startEpoch)*86400000.0) +
" ms");
3053 bool isFormatActual;
3054 bool needIonFrqOutput;
3056 bool need2CreateStnDepndntCals;
3057 bool need2CreateFlybyCals;
3058 bool need2CreateObcCals;
3059 bool need2MoveSecBandInfo(
false);
3060 int numOfReferenceClockStations;
3061 int numOfClockBreaks;
3064 int cableCalFlagIdx;
3065 int numOfBaselineClocks;
3069 cableCalFlagIdx = 0;
3087 need2MoveSecBandInfo =
true;
3089 need2MoveSecBandInfo = need2MoveSecBandInfo &&
bands_.size()>1;
3093 need2CreateObcCals =
true;
3119 numOfStations = stations.size();
3127 baselines.append(it.value());
3130 numOfReferenceClockStations = 0;
3131 numOfClockBreaks = 0;
3133 for (
int i=0; i<stations.size(); i++)
3137 numOfReferenceClockStations++;
3155 "::putDataIntoDbhImage(): the number of ACMs is " + QString(
"").setNum(numOfAcms));
3158 for (
int iBand=0; iBand<
bands_.size(); iBand++)
3171 if (!cBreakByEpoch.contains(cbEpoch))
3172 cBreakByEpoch.insert(cbEpoch, si->
getKey());
3173 else if (si->
getKey() != cBreakByEpoch.find(cbEpoch).value())
3174 cBreakByEpoch.insert(cbEpoch, si->
getKey());
3179 numOfClockBreaks = cBreakByEpoch.size();
3181 if (!need2CreateStnDepndntCals)
3183 bool have2rewriteSDC=
false;
3187 have2rewriteSDC =
true;
3189 "::putDataIntoDbhImage(): rCalSites_.dimensions_[1] != stationsByName_.size(), " +
3195 have2rewriteSDC =
true;
3197 "::putDataIntoDbhImage(): rCalFlags_.dimensions_[0] != stationsByName_.size(), " +
3201 bool isCableCalMatched=
false;
3205 isCableCalMatched =
true;
3206 cableCalFlagIdx = i;
3208 if (!isCableCalMatched)
3209 have2rewriteSDC =
true;
3210 if (have2rewriteSDC)
3214 "::putDataIntoDbhImage(): looks like we have to reset station dependent calibration flags, "
3215 "LCodes: CALSITES, CAL LIST and CAL FLGS");
3216 need2CreateStnDepndntCals =
true;
3220 numOfBaselineClocks = 0;
3221 for (
int i=0; i<baselines.size(); i++)
3223 numOfBaselineClocks++;
3244 "::putDataIntoDbhImage(): number of stations with a priori clock models (" +
3245 QString(
"").setNum(numOfAcms) +
") is greater than 4, some parameters will not be stored");
3247 if (numOfReferenceClockStations>0)
3249 if (numOfClockBreaks)
3265 listOfDescriptors.append(&
rNObs_);
3266 listOfDescriptors.append(&
rN4Obs_);
3270 listOfDescriptors.append(&
rIonRms_);
3272 listOfDescriptors.append(&
rNAmbig_);
3280 listOfDescriptors.append(&
rSupMet_);
3282 if (numOfBaselineClocks > 0)
3290 if (numOfReferenceClockStations)
3295 listOfDescriptors.append(&
rEl_Cut_);
3306 if (numOfClockBreaks)
3327 if (need2CreateStnDepndntCals)
3339 if (need2CreateFlybyCals)
3351 if (need2CreateObcCals)
3367 if (needIonFrqOutput)
3372 if (need2MoveSecBandInfo)
3397 isFormatActual =
true;
3398 for (
int i=0; i<listOfDescriptors.size(); i++)
3402 isFormatActual = listOfDescriptors.at(i)->isPresent_ =
false;
3403 else if ( d->
dim1() != listOfDescriptors.at(i)->dimensions_[0] ||
3404 d->
dim2() != listOfDescriptors.at(i)->dimensions_[1] ||
3405 d->
dim3() != listOfDescriptors.at(i)->dimensions_[2])
3407 isFormatActual =
false;
3408 listOfDescriptors.at(i)->isPresent_ =
true;
3409 listOfDescriptors.at(i)->isDimensionsFixed_ =
false;
3413 listOfDescriptors.at(i)->isPresent_ =
true;
3414 listOfDescriptors.at(i)->isDimensionsFixed_ =
true;
3418 if (!isFormatActual)
3422 for (
int i=0; i<listOfDescriptors.size(); i++)
3436 for (
int i=0; i<listOfDescriptors.size(); i++)
3452 for (
int i=0; i<listOfDescriptors.size(); i++)
3453 listOfDescriptors.at(i)->d_ = image->
lookupDescriptor(listOfDescriptors.at(i)->lCode_);
3494 if (need2CreateStnDepndntCals)
3503 if (need2CreateFlybyCals)
3504 for (
int i=0; i<8; i++)
3507 if (need2CreateObcCals)
3508 for (
int i=0; i<calList.size(); i++)
3519 for (
int i=0; i<(
useOldAcm?4:numOfAcms); i++)
3533 QString sEccTypes(
"");
3534 int maxObsAtRefClck=0, clkSiteIdx=-1, rfIdx=0, acmIdx=0;
3535 for (
int i=0; i<stations.size(); i++)
3553 int year, month, day, hour, minute;
3573 if (maxObsAtRefClck < si->numTotal(
DT_DELAY))
3582 if (needEccOutput && si->
eccRec())
3593 if (need2CreateStnDepndntCals)
3600 if (need2CreateFlybyCals)
3614 /(1.0e-12*24.0*
vLight*100.0));
3632 "::putDataIntoDbhImage(): cannot find station '" + name +
"' from CC_SITES in the map");
3645 /(1.0e-12*24.0*
vLight*100.0));
3649 "::putDataIntoDbhImage(): cannot find station '" + name +
"' from AC_SITES in the map");
3659 if (numOfClockBreaks)
3667 it!=cBreakByEpoch.end(); ++it)
3669 QString cbName=it.value();
3670 SgMJD cbEpoch=it.key();
3676 "::putDataIntoDbhImage(): registered a clock break epoch " +
3677 cbEpoch.
toString() +
" for the station " + cbName);
3687 if (!need2CreateStnDepndntCals)
3700 nFlag &= ~(1<<cableCalFlagIdx);
3702 nFlag |= 1<<cableCalFlagIdx;
3707 "::putDataIntoDbhImage(): cannot find " + str +
3708 " (an entry from CALSITES LCode) in the list of stations");
3715 for (
int i=0; i<sources.size(); i++)
3743 for (
int i=0; i<baselines.size(); i++)
3745 QString st1Name, st2Name;
3747 st1Name = bi->
getKey().left(8);
3748 st2Name = bi->
getKey().right(8);
3760 for (
int i=0; i<numOfStations; i++)
3762 for (
int j=0; j<numOfStations; j++)
3764 QString st1Name(stations.at(i)->getKey()), st2Name(stations.at(j)->getKey());
3818 QString sbKey(
""), str(
"");
3820 has2ndBand =
bands_.size() > 1;
3824 sbKey =
bands_.at(bandIdx++)->getKey();
3825 while (sbKey==pbKey && bandIdx<
bands_.size())
3826 sbKey =
bands_.at(bandIdx++)->getKey();
3836 int ionCode(has2ndBand?-1:0);
3837 int ionBits(has2ndBand?1<<1:0);
3851 if (needIonFrqOutput)
3885 if (need2MoveSecBandInfo)
3953 "::putDataIntoDbhImage(): data have been stored in DBH database \"" + image->
fileName() +
3954 "\", elapsed time: " + QString(
"").sprintf(
"%.2f", (finisEpoch - startEpoch)*86400000.0) +
" ms");
4008 QString(
"").sprintf(
"%.2f", (p ? p->
getSigma()*
DAY2SEC*1.0e6 : 999.9)) +
4017 QString str(
"G-Gxs solution");
4021 double clc_int, wzd_int, grd_int, clc_cnt, atm_cnt;
4027 grd_int *= 24.0*60.0;
4028 grd_int = round(grd_int)/60.0;
4034 QString(
"").sprintf(
", %4g/%4g clocks/atms, %4g/%4g constraints",
4035 clc_int, wzd_int, clc_cnt, atm_cnt);
4037 str += QString(
"").sprintf(
", %4g-hr gradients", grd_int);
4057 history.
addHistoryRecord(
"The following flyby options were used in the solution:",
4089 history.
addHistoryRecord(
"Group delay ambiguities were resolved (well, at least, tried to resolve)",
4092 history.
addHistoryRecord(
"Group delay outliers were processed and editing info has been updated.",
4094 history.
addHistoryRecord(
"Troposphere and cable cal status for standard solution have been stored.",
4096 history.
addHistoryRecord(
"Observation dependent contribution status has been stored.",
4117 str += bi->
getKey().mid(0,2) +
"-" + bi->
getKey().mid(9,2) +
" ";
4125 history.
addHistoryRecord(
"Solution data configuration: group delays with ionosphere corrections",
4128 history.
addHistoryRecord(
"Clock and atmosphere constraint information saved.",
4137 history.
addHistoryRecord(
"Ionosphere corrections were evaluated for group delays.",
4143 history.
addHistoryRecord(
"Barometer calibration and barometer height offset not available.",
4180 { 1, 1, 1}, 0, 1,
true,
false},
4182 { 1, 1, 1}, 0, 1,
true,
false},
4184 { 1, 1, 1}, 0, 1,
true,
false},
4187 { 4, 6, 1}, 0, 1,
false,
true },
4189 { 4,71, 1}, 0, 1,
false,
true },
4193 { 6, 1, 1}, 0, 2,
false,
true },
4195 { 2,71, 1}, 0, 2,
false,
true },
4197 { 3, 6, 1}, 0, 2,
false,
true },
4199 {11, 2, 6}, 0, 2,
false,
false},
4201 {11, 2, 6}, 0, 2,
false,
false},
4203 {11, 6, 1}, 0, 2,
false,
false},
4205 {11, 6, 1}, 0, 2,
false,
false},
4208 { 6, 1, 1}, 0, 2,
false,
true },
4212 { 6, 1, 1}, 0, 3,
false,
false},
4214 { 4, 6, 1}, 0, 3,
false,
false},
4218 { 1, 1, 1}, 0, 4,
false,
false},
4220 { 1, 1, 1}, 0, 4,
true,
false},
4222 { 1, 1, 1}, 0, 4,
false,
false},
4224 { 1, 1, 1}, 0, 4,
true,
false},
4226 { 4, 1, 1}, 0, 4,
false,
false},
4228 { 4, 1, 1}, 0, 4,
false,
false},
4230 { 2,15, 1}, 0, 4,
false,
false},
4232 { 3, 6, 1}, 0, 4,
false,
false},
4235 { 1, 1, 1}, 0, 4,
true,
false},
4237 {36, 1, 1}, 0, 4,
false,
false},
4239 {71, 1, 1}, 0, 4,
false,
false},
4242 { 8, 3, 1}, 0, 4,
false,
false},
4244 { 4, 1, 1}, 0, 4,
false,
false},
4246 { 4, 1, 1}, 0, 4,
false,
false},
4248 { 1, 1, 1}, 0, 4,
true,
false},
4250 { 9, 6, 1}, 0, 4,
false,
false},
4252 { 6, 1, 1}, 0, 4,
false,
false},
4254 { 8, 1, 1}, 0, 4,
true,
false},
4256 { 4, 2,15}, 0, 4,
false,
false},
4259 { 1, 1, 1}, 0, 4,
true,
false},
4267 { 2,16, 1}, 1, 1,
true,
false},
4269 { 2,16, 1}, 1, 1,
true,
false},
4271 { 1, 1, 1}, 1, 1,
true,
true },
4273 { 2, 1, 1}, 1, 1,
true,
true },
4275 { 1, 1, 1}, 1, 1,
true,
true },
4277 { 1, 1, 1}, 1, 1,
true,
true },
4279 { 1, 1, 1}, 1, 1,
true,
true },
4281 { 1, 1, 1}, 1, 1,
true,
true },
4283 { 1, 1, 1}, 1, 1,
true,
false},
4285 { 1, 1, 1}, 1, 1,
true,
true },
4287 {16, 1, 1}, 1, 1,
true,
true },
4289 { 1, 1, 1}, 1, 1,
true,
false},
4291 { 1, 1, 1}, 1, 1,
true,
true },
4293 { 1, 1, 1}, 1, 1,
true,
true },
4295 { 1, 1, 1}, 1, 1,
true,
true },
4297 { 1, 1, 1}, 1, 1,
true,
true },
4300 { 1, 1, 1}, 1, 1,
true,
true },
4302 { 3, 2,16}, 1, 1,
true,
false},
4304 { 1, 1, 1}, 1, 1,
true,
false},
4306 { 2,16, 1}, 1, 1,
true,
true },
4308 { 2,16, 1}, 1, 1,
true,
false},
4310 { 1, 1, 1}, 1, 1,
true,
false},
4312 { 5, 1, 1}, 1, 1,
true,
true },
4315 { 4, 2, 1}, 1, 1,
true,
true },
4317 { 1, 1, 1}, 1, 1,
true,
true },
4319 { 4, 1, 1}, 1, 1,
true,
true },
4324 { 2, 2, 1}, 1, 2,
true,
true },
4326 { 2, 1, 1}, 1, 2,
true,
false },
4328 { 2, 1, 1}, 1, 2,
true,
false },
4330 { 2, 2, 1}, 1, 2,
true,
true },
4332 { 2, 2, 1}, 1, 2,
true,
false},
4334 { 2, 2, 1}, 1, 2,
true,
false},
4336 { 2, 1, 1}, 1, 2,
true,
true },
4338 { 3, 2, 2}, 1, 2,
true,
true },
4340 { 2, 2, 1}, 1, 2,
true,
true },
4342 { 2, 2, 1}, 1, 2,
true,
true },
4344 { 2, 2, 1}, 1, 2,
true,
true },
4351 { 2, 2, 1}, 1, 3,
true,
false},
4353 { 2, 2, 1}, 1, 3,
true,
false},
4355 { 2, 2, 1}, 1, 3,
true,
false},
4357 { 2, 2, 1}, 1, 3,
true,
false},
4364 { 1, 1, 1}, 1, 4,
true,
false},
4366 { 2, 1, 1}, 1, 4,
true,
false},
4368 { 2, 1, 1}, 1, 4,
true,
false},
4370 { 1, 1, 1}, 1, 4,
true,
false},
4373 { 1, 1, 1}, 1, 4,
true,
false},
4379 { 1, 1, 1}, 0, 4,
true,
false},
4381 { 1, 1, 1}, 0, 4,
true,
false},
4383 { 2, 1, 1}, 0, 4,
false,
false},
4385 { 1, 1, 1}, 0, 4,
true,
false},
4387 { 2, 1, 1}, 0, 4,
false,
false},
4389 { 4, 2, 1}, 0, 4,
false,
false},
4391 { 1, 1, 1}, 1, 4,
true,
false},
4393 { 1, 1, 1}, 1, 4,
true,
false},
4395 { 1, 1, 1}, 1, 4,
true,
false},
4398 { 3, 1, 1}, 1, 4,
true,
false},
4400 { 1, 1, 1}, 1, 4,
true,
false},
4402 { 1, 1, 1}, 1, 4,
true,
false},
4404 { 1, 1, 1}, 1, 4,
true,
false},
4406 { 1, 1, 1}, 1, 4,
true,
false},
4408 { 1, 1, 1}, 1, 4,
true,
false},
4410 { 1, 1, 1}, 1, 4,
true,
false},
4412 { 1, 1, 1}, 1, 4,
true,
false},
4414 { 1, 1, 1}, 1, 4,
true,
false},
4416 { 1, 1, 1}, 1, 4,
true,
false},
4418 { 1, 1, 1}, 1, 4,
true,
false},
4420 { 1, 1, 1}, 1, 4,
true,
false},
4422 { 1, 1, 1}, 1, 4,
true,
false},
4424 { 1, 1, 1}, 1, 4,
true,
false},
4426 { 1, 1, 1}, 1, 1,
true,
true},
4432 { 2, 1, 1}, 0, 4,
true,
false},
4434 { 4, 1, 1}, 0, 1,
true,
false},
4436 { 4, 4, 1}, 0, 4,
false,
false},
4438 { 1, 1, 1}, 0, 2,
true,
false},
4440 { 2, 6, 1}, 0, 2,
false,
false},
4442 { 2, 1, 1}, 1, 2,
true,
false},
4444 { 2, 1, 1}, 1, 2,
true,
false},
4450 { 2, 1, 1}, 1, 2,
true,
false},
4452 { 2, 1, 1}, 1, 2,
true,
false},
4454 { 2, 1, 1}, 1, 2,
true,
false},
4456 { 2, 1, 1}, 1, 2,
true,
false},
4458 { 2, 1, 1}, 1, 2,
true,
false},
4460 { 2, 1, 1}, 1, 2,
true,
false},
4462 { 2, 1, 1}, 1, 2,
true,
false},
4464 { 2, 2, 1}, 1, 2,
true,
false},
4466 { 2, 2, 1}, 1, 2,
true,
false},
4468 { 2, 2, 2}, 1, 2,
true,
false},
4470 { 2, 2, 1}, 1, 2,
true,
false},
4472 { 2, 2, 1}, 1, 2,
true,
false},
4478 { 4, 1, 1}, 0, 4,
false,
false},
4480 { 4, 6, 1}, 0, 4,
false,
false},
4482 { 1, 1, 1}, 0, 4,
false,
false},
4485 { 2, 2, 1}, 1, 2,
true,
false},
4488 { 3, 1, 1}, 0, 2,
true,
false},
4490 { 8, 1, 1}, 1, 1,
true,
false},
4492 { 8, 1, 1}, 2, 4,
true,
false},
4494 { 1, 1, 1}, 1, 4,
true,
false},
4496 { 1, 1, 1}, 1, 4,
true,
false},
4499 { 4, 1, 1}, 0, 2,
false,
false},
4501 {15, 1, 1}, 0, 2,
false,
false},
4503 { 3, 1, 1}, 0, 2,
false,
false},
4505 { 2,15, 1}, 0, 2,
false,
false},
4507 { 1, 1, 1}, 0, 2,
true,
false},
4509 { 1, 1, 1}, 1, 4,
true,
false},
4514 { 1, 1, 1}, 0, 4,
true,
false},
4516 { 1, 1, 1}, 0, 4,
true,
false},
4518 { 8, 6, 1}, 0, 4,
false,
false},
4520 { 1, 1, 1}, 0, 4,
true,
false},
4522 { 4, 8, 1}, 0, 4,
false,
false},
4524 { 7, 2, 1}, 0, 4,
false,
false},
4526 { 4,12, 1}, 0, 4,
false,
false},
4528 { 1, 1, 1}, 0, 4,
true,
false},
4530 { 5, 1, 1}, 1, 1,
true,
false},
4532 { 4, 1, 1}, 1, 1,
true,
false},
4534 { 2, 2, 1}, 1, 2,
true,
false },
4536 { 2, 2, 1}, 1, 2,
true,
false },
4539 { 2, 1, 1}, 1, 2,
true,
false },
4541 { 2, 1, 1}, 1, 2,
true,
false },
4543 { 3, 2, 1}, 1, 2,
true,
false },
4545 { 2, 2, 1}, 1, 2,
true,
false },
4547 { 2, 2, 1}, 1, 2,
true,
false },
4549 { 2, 2, 1}, 1, 2,
true,
false },
4551 { 2, 1, 1}, 1, 2,
true,
false },
4553 { 4, 1, 1}, 0, 4,
false,
false},
4555 { 4, 1, 1}, 0, 4,
false,
false},
4558 { 2, 1, 1}, 1, 2,
true,
false},
4560 { 2, 1, 1}, 1, 2,
true,
false},
4562 { 1, 1, 1}, 1, 1,
true,
false},
4565 { 6, 1, 1}, 0, 5,
true,
false},
4567 { 1, 1, 1}, 0, 5,
true,
false},
4570 { 2, 1, 1}, 1, 2,
true,
false},
4574 { 1, 1, 1}, 1, 2,
true,
true },
4576 { 2, 2, 1}, 1, 2,
true,
true },
4578 { 2, 2, 1}, 1, 2,
true,
true },
4580 { 2, 1, 1}, 1, 2,
true,
true },
4582 { 2, 1, 1}, 1, 2,
true,
true },
4585 { 2, 1, 1}, 1, 4,
true,
false},
const Sg3dVector v3Zero(0.0, 0.0, 0.0)
#define RAD2MAS
radians to ms:
#define DAY2SEC
radians to mas:
#define DEG2RAD
degrees to seconds:
QMap< QString, SgVlbiBaselineInfo * >::iterator BaselinesByName_it
DbhDescriptorX & rAxisOffsets_
bool & hasMslmIonContrib_
DbhDescriptorX & rWobNutatContrib_
SgDbhDatumDescriptor *& dAcmNames_
SgDbhDatumDescriptor *& dReferenceFrequency_
DbhDescriptorX & rError_K_
DbhDescriptorX & rClockBreakStatus_
DbhDescriptorX & rClkBrkEpochs_
DbhDescriptorX & rFut1_pts_
SgDbhDatumDescriptor *& dSupMet_
DbhDescriptorX & rSigmaSBDelaySecBand_
DbhDescriptorX & rOptlContib_
DbhDescriptorX & rSupMet_
bool & hasQualityCodeSecBand_
DbhDescriptorX & rClockConstr_
DbhDescriptorX & rRefFreqSecBand_
DbhDescriptorX & rStarPart_
DbhDescriptorX & rEccTypes_
DbhDescriptorX & rSigmaPhaseObsSecBand_
DbhDescriptorX & rConsBendingDelay_
SgDbhDatumDescriptor *& dAxsOfsPart_
bool & hasConsensusDelay_
SgDbhDatumDescriptor *& dGrpAmbiguitySecBand_
bool & hasRefFreqByChannel_
SgDbhDatumDescriptor *& dSbSigmaDelay_
DbhDescriptorX & rQualityCodeSecBand_
SgDbhDatumDescriptor *& dClockIntrv_
SgDbhDatumDescriptor *& dEccNames_
DbhDescriptorX & rCableCalibration_
DbhDescriptorX & rCalFlags_
DbhDescriptorX & rSigmaRateObsSecBand_
DbhDescriptorX & rSnrSecBand_
bool & hasUserAction4Suppression_
SgDbhDatumDescriptor *& dTectPlateNames_
SgDbhDatumDescriptor *& dWobOrtho_
DbhDescriptorX & rConsensusRate_
SgDbhDatumDescriptor *& dTiltRemvr_
SgDbhDatumDescriptor *& dAxisTypes_
DbhDescriptorX & rNut06xys_
DbhDescriptorX & rBaselineName_
SgDbhDatumDescriptor *& dPtdOld_
SgDbhDatumDescriptor *& dEccCoords_
DbhDescriptorX & rBaselinesSelStatus_
SgDbhDatumDescriptor *& dPhaseCalOffset_
SgDbhDatumDescriptor *& dSitPart_
DbhDescriptorX dbhDxTable[]
DbhDescriptorX & rFrngErr_
SgDbhDatumDescriptor *& dBatchCnt_
SgDbhDatumDescriptor *& dFwob_inf_
DbhDescriptorX & rClockIntrv_
SgDbhDatumDescriptor *& dNutWahr_
DbhDescriptorX & rTidalUt1_
DbhDescriptorX & rCalList_
SgDbhDatumDescriptor *& dNAmbig_
SgDbhDatumDescriptor *& dUt1Libra_
DbhDescriptorX & rRefClockSites_
SgDbhDatumDescriptor *& dNumOfAccPeriods_
DbhDescriptorX & rSBDelaySecBand_
DbhDescriptorX & rUnPhaseCal_
DbhDescriptorX & rMeteoTemperature_
DbhDescriptorX & rSourceName_
SgDbhDatumDescriptor *& dCalcVersionValue_
DbhDescriptorX & rObcFlags_
DbhDescriptorX & rDelayObsSecBand_
SgDbhDatumDescriptor *& dCableCalibration_
SgDbhDatumDescriptor *& dSecTag_
SgDbhDatumDescriptor *& dTotalPhaseSecBand_
DbhDescriptorX & rSun1BendingContrib_
DbhDescriptorX & rClkBrkNames_
DbhDescriptorX & rTotalPhase_
bool & hasEffFreqsSecBand_
DbhDescriptorX & rCableSigns_
DbhDescriptorX & rCorrCoef_
SgDbhDatumDescriptor *& dNutationPart2K_
DbhDescriptorX & rAtmIntrv_
SgDbhDatumDescriptor *& dUtcTag_
SgDbhDatumDescriptor *& dClkBrkNum_
SgDbhDatumDescriptor *& dAcmEpochs_
DbhDescriptorX & rIonRms_
bool & hasFourFitFileNameSecBand_
DbhDescriptorX & rFclList_
bool & hasOloadHorzContrib_
SgDbhDatumDescriptor *& dAxisOffsets_
SgDbhDatumDescriptor *& dBlDepClocks_
DbhDescriptorX & rPhaseCalOffset_
DbhDescriptorX & rEccCoords_
bool & hasGrpAmbiguitySecBand_
DbhDescriptorX & rClkBrkNum_
SgDbhDatumDescriptor *& dCorrelatorType_
DbhDescriptorX & rRecSetup_
DbhDescriptorX & rSbDelay_
SgDbhDatumDescriptor *& dPhIonFrq_
SgDbhDatumDescriptor *& dSun2BendingContrib_
DbhDescriptorX & rClkCflg_
SgDbhDatumDescriptor *& dSnr_
DbhDescriptorX & rNutationPart2K_
DbhDescriptorX & rNRefClocks_
DbhDescriptorX & rSun2BendingContrib_
bool & hasMeteoRelHumidityData_
DbhDescriptorX & rConsensusDelay_
SgDbhDatumDescriptor *& dEl_Cut_
DbhDescriptorX & rSbSigmaDelay_
SgDbhDatumDescriptor *& dRefClockSites_
SgDbhDatumDescriptor *& dBaselineName_
SgDbhDatumDescriptor *& dDelayRate_
DbhDescriptorX & rRunCode_
bool & hasSigmaPhaseObsSecBand_
DbhDescriptorX & rAtmConstr_
SgDbhDatumDescriptor *& dConsensusDelay_
DbhDescriptorX & rAzimuths_
DbhDescriptorX & rAtmPartFlag_
SgDbhDatumDescriptor *& dAcmRates_
SgDbhDatumDescriptor *& dWobNutatContrib_
DbhDescriptorX & rBatchCnt_
DbhDescriptorX & rObservedDelaySigma_
bool & hasNutationPart2K_
SgDbhDatumDescriptor *& dNAmbigSecBand_
SgDbhDatumDescriptor *& dFwob_pts_
DbhDescriptorX & rNut06xyp_
bool & hasPhaseCalOffset_
bool & hasFourFitFileName_
DbhDescriptorX & rAmpByFrq_
DbhDescriptorX & rMeteoHumidity_
DbhDescriptorX & rOloadAmpHorz_
DbhDescriptorX & rNut2006_
SgDbhDatumDescriptor *& dObservedDelaySigma_
SgDbhDatumDescriptor *& dFclList_
DbhDescriptorX & rCalByFrq_
DbhDescriptorX & rOloadPhsHorz_
SgDbhDatumDescriptor *& dAcmNumber_
SgDbhDatumDescriptor *& dOloadVertContrib_
SgDbhDatumDescriptor *& dMeteoPressure_
DbhDescriptorX & rEccNames_
bool & hasDelayObsSecBand_
SgDbhDatumDescriptor *& dAmpByFrq_
SgDbhDatumDescriptor *& dAtmPartFlag_
DbhDescriptorX & rAxOffsetCont_
bool & hasSigmaSBDelaySecBand_
SgDbhDatumDescriptor *& dAtmConstr_
bool & hasBaselinesDepClocks_
DbhDescriptorX & rScanName_
DbhDescriptorX & rUtcTag_
DbhDescriptorX & rNSites_
SgDbhDatumDescriptor *& dSun1BendingContrib_
SgDbhDatumDescriptor *& dObcList_
SgDbhDatumDescriptor *& dNSites_
SgDbhDatumDescriptor *& dUnPhaseCal_
SgDbhDatumDescriptor *& dClockSite_
DbhDescriptorX & rOceOld_
DbhDescriptorX & rError_Bl_
SgDbhDatumDescriptor *& dTidalUt1_
SgDbhDatumDescriptor *& dIonBits_
SgDbhDatumDescriptor *& dClockBreakStatus_
SgDbhDatumDescriptor *& dSnrSecBand_
bool & hasSigmaRateObsSecBand_
SgDbhDatumDescriptor *& dEccTypes_
SgDbhDatumDescriptor *& dQualityCodeSecBand_
SgDbhDatumDescriptor *& dCalByFrq_
SgDbhDatumDescriptor *& dRefFreqByChannel_
SgDbhDatumDescriptor *& dCableStations_
SgDbhDatumDescriptor *& dFclFlags_
SgDbhDatumDescriptor *& dEtdContrib_
bool & hasCorrelatorType_
bool & hasTotalPhaseSecBand_
DbhDescriptorX & rFourFitFileName_
SgDbhDatumDescriptor *& dIonCode_
DbhDescriptorX & rBaselinesDepClocks_
bool & hasPhaseObsSecBand_
SgDbhDatumDescriptor *& dFourFitFileNameSecBand_
SgDbhDatumDescriptor *& dFourFitFileName_
DbhDescriptorX & rFwob_pts_
DbhDescriptorX & rRateUFlag_
SgDbhDatumDescriptor *& dWobYContrib_
SgDbhDatumDescriptor *& dBaselinesSelStatus_
DbhDescriptorX & rAxisTypes_
SgDbhDatumDescriptor *& dCorrCoef_
SgDbhDatumDescriptor *& dQualityCode_
SgDbhDatumDescriptor *& dStarNames_
DbhDescriptorX & rFourFitFileNameSecBand_
SgDbhDatumDescriptor *& dNgradParts_
SgDbhDatumDescriptor *& dNRefClocks_
DbhDescriptorX & rSigmaDelayRate_
DbhDescriptorX & rPtdContrib_
SgDbhDatumDescriptor *& dAtmCflg_
SgDbhDatumDescriptor *& dNdryCont_
DbhDescriptorX & rPhAmbig_S_
DbhDescriptorX & rNAmbigSecBand_
SgDbhDatumDescriptor *& dClkBrkNames_
DbhDescriptorX & rGrpAmbiguity_
DbhDescriptorX & rGrIonFrq_
bool & hasWobNutatContrib_
DbhDescriptorX & rCcSites_
DbhDescriptorX & rStarNames_
SgDbhDatumDescriptor *& dSigmaDelayObsSecBand_
SgDbhDatumDescriptor *& dTai_2_Utc_
SgDbhDatumDescriptor *& dRecSetup_
SgDbhDatumDescriptor *& dWobLibra_
DbhDescriptorX & rSiteNames_
const QString sMntTypes[]
DbhDescriptorX & rPhIonFrq_
SgDbhDatumDescriptor *& dClkBrkEpochs_
DbhDescriptorX & rNumOfChannels_
SgDbhDatumDescriptor *& dFut1_inf_
DbhDescriptorX & rParAngle_
DbhDescriptorX & rOloadAmpVert_
DbhDescriptorX & rFclFlags_
DbhDescriptorX & rEl_Cut_
DbhDescriptorX & rNumOfAccPeriods_
SgDbhDatumDescriptor *& dOloadAmpHorz_
DbhDescriptorX & rCalcVersionValue_
DbhDescriptorX & rNdryPart_
DbhDescriptorX & rBlDepClocks_
SgDbhDatumDescriptor *& dPhAmbig_S_
DbhDescriptorX & rUserAction4Suppression_
DbhDescriptorX & rSecTag_
SgDbhDatumDescriptor *& dOloadPhsVert_
SgDbhDatumDescriptor *& dOloadContrib_
SgDbhDatumDescriptor *& dSigmaDelayRate_
DbhDescriptorX & rAcmNames_
bool & hasSigmaDelayObsSecBand_
SgDbhDatumDescriptor *& dOptlContib_
DbhDescriptorX & rQualityCode_
DbhDescriptorX & rEffFreqsSecBand_
DbhDescriptorX & rObcList_
SgDbhDatumDescriptor *& dMslmIonContrib_
SgDbhDatumDescriptor *& dStarPart_
SgDbhDatumDescriptor *& dFrngErr_
DbhDescriptorX & rNwetCont_
SgDbhDatumDescriptor *& dClockConstr_
DbhDescriptorX & rWobLibra_
DbhDescriptorX & rDelayRate_
DbhDescriptorX & rFwob_inf_
SgDbhDatumDescriptor *& dCorrCoefSecBand_
DbhDescriptorX & rWobOrtho_
SgDbhDatumDescriptor *& dElevations_
SgDbhDatumDescriptor *& dIonCorr_
DbhDescriptorX & rFeedCorr_
bool & hasOloadVertContrib_
DbhDescriptorX & rAcmNumber_
bool & hasClockBreakStatus_
SgDbhDatumDescriptor *& dDelayUFlag_
SgDbhDatumDescriptor *& dGrIonFrq_
DbhDescriptorX & rRefFreqByChannel_
SgDbhDatumDescriptor *& dAzimuths_
DbhDescriptorX & rSourcesSelStatus_
SgDbhDatumDescriptor *& dGrpAmbiguity_
SgDbhDatumDescriptor *& dError_K_
SgDbhDatumDescriptor *& dAtmIntrv_
DbhDescriptorX & rMslmIonContrib_
SgDbhDatumDescriptor *& dCableSigns_
SgDbhDatumDescriptor *& dClkBrkFlags_
DbhDescriptorX & rNwetPart_
bool & hasSun2BendingContrib_
SgDbhDatumDescriptor *& dConsBendingDelay_
DbhDescriptorX & rFut1_inf_
DbhDescriptorX & rIonCorr_
SgDbhDatumDescriptor *& dRunCode_
SgDbhDatumDescriptor *& dUt1Ortho_
SgDbhDatumDescriptor *& dSiteRecs_
bool & hasSun1BendingContrib_
SgDbhDatumDescriptor *& dUT1Part_
DbhDescriptorX & rSampleRate_
DbhDescriptorX & rOloadPhsVert_
SgDbhDatumDescriptor *& dPhaseObsSecBand_
DbhDescriptorX & rWobblePart_
SgDbhDatumDescriptor *& dWobXContrib_
SgDbhDatumDescriptor *& dEffFreqsSecBand_
SgDbhDatumDescriptor *& dRateUFlag_
DbhDescriptorX & rAxsOfsPart_
bool & hasSourcesSelStatus_
SgDbhDatumDescriptor *& dSiteNames_
SgDbhDatumDescriptor *& dNStars_
SgDbhDatumDescriptor *& dIonRms_
DbhDescriptorX & rNdryCont_
SgDbhDatumDescriptor *& dFut1_pts_
SgDbhDatumDescriptor *& dNumOfSamples_
SgDbhDatumDescriptor *& dNdryPart_
DbhDescriptorX & rGrpAmbiguitySecBand_
DbhDescriptorX & rNutWahr_
DbhDescriptorX & rAcmEpochs_
SgDbhDatumDescriptor *& dSigmaSBDelaySecBand_
SgDbhDatumDescriptor *& dPtdContrib_
SgDbhDatumDescriptor *& dNut06xys_
SgDbhDatumDescriptor *& dMeteoHumidity_
DbhDescriptorX & rReferenceFrequency_
SgDbhDatumDescriptor *& dRateObsSecBand_
DbhDescriptorX & rCorrCoefSecBand_
DbhDescriptorX & rSiteRecs_
bool & hasMeteoPressureData_
DbhDescriptorX & rAcmRates_
SgDbhDatumDescriptor *& dN4Obs_
SgDbhDatumDescriptor *& dSigmaRateObsSecBand_
DbhDescriptorX & rNgradParts_
DbhDescriptorX & rClockSite_
DbhDescriptorX & rWobYContrib_
DbhDescriptorX & rTai_2_Utc_
DbhDescriptorX & rAcSites_
SgDbhDatumDescriptor *& dOceOld_
SgDbhDatumDescriptor *& dNwetPart_
SgDbhDatumDescriptor *& dNut06xyp_
SgDbhDatumDescriptor *& dNObs_
SgDbhDatumDescriptor *& dConsensusRate_
DbhDescriptorX & rRateObsSecBand_
SgDbhDatumDescriptor *& dTotalPhase_
bool & hasMeteoTemperatureData_
DbhDescriptorX & rClkBrkFlags_
SgDbhDatumDescriptor *& dNut2006_
DbhDescriptorX & rSigmaDelayObsSecBand_
DbhDescriptorX & rUt1Ortho_
DbhDescriptorX & rTectPlateNames_
SgDbhDatumDescriptor *& dSourceName_
bool & hasRefFreqSecBand_
DbhDescriptorX & rEtdContrib_
DbhDescriptorX & rNAmbig_
DbhDescriptorX & rAcmOffsets_
DbhDescriptorX & rIonBits_
DbhDescriptorX & rPhaseObsSecBand_
DbhDescriptorX & rNumOfSamples_
DbhDescriptorX & rWobXContrib_
SgDbhDatumDescriptor *& dCcSites_
DbhDescriptorX & rNStars_
SgDbhDatumDescriptor *& dStar2000_
bool & hasRateObsSecBand_
DbhDescriptorX & rOloadVertContrib_
DbhDescriptorX & rElevations_
DbhDescriptorX & rCalSites_
SgDbhDatumDescriptor *& dAcmOffsets_
SgDbhDatumDescriptor *& dSBDelaySecBand_
DbhDescriptorX & rTiltRemvr_
SgDbhDatumDescriptor *& dScanName_
DbhDescriptorX & rPtdOld_
SgDbhDatumDescriptor *& dSampleRate_
SgDbhDatumDescriptor *& dMeteoTemperature_
SgDbhDatumDescriptor *& dUserAction4Suppression_
SgDbhDatumDescriptor *& dCalList_
DbhDescriptorX & rAtmCflg_
SgDbhDatumDescriptor *& dError_Bl_
SgDbhDatumDescriptor *& dBaselinesDepClocks_
SgDbhDatumDescriptor *& dWobblePart_
SgDbhDatumDescriptor *& dSolData_
DbhDescriptorX & rUT1Part_
SgDbhDatumDescriptor *& dSbDelay_
bool & hasSBDelaySecBand_
SgDbhDatumDescriptor *& dOloadHorzContrib_
SgDbhDatumDescriptor *& dObcFlags_
SgDbhDatumDescriptor *& dFeedCorr_
bool & hasBaselinesSelStatus_
SgDbhDatumDescriptor *& dCalSites_
DbhDescriptorX & rTotalPhaseSecBand_
bool & hasCalcVersionValue_
SgDbhDatumDescriptor *& dNwetCont_
SgDbhDatumDescriptor *& dAxOffsetCont_
DbhDescriptorX & rOloadHorzContrib_
DbhDescriptorX & rCorrelatorType_
SgDbhDatumDescriptor *& dObservedDelay_
DbhDescriptorX & rStar2000_
SgDbhDatumDescriptor *& dParAngle_
SgDbhDatumDescriptor *& dNumOfChannels_
DbhDescriptorX & rNutationPart_
DbhDescriptorX & rObservedDelay_
DbhDescriptorX & rMeteoPressure_
bool & hasTectPlateNames_
DbhDescriptorX & rDelayUFlag_
bool & hasCorrCoefSecBand_
SgDbhDatumDescriptor *& dCalFlags_
SgDbhDatumDescriptor *& dSourcesSelStatus_
SgDbhDatumDescriptor *& dOloadPhsHorz_
bool & hasConsBendingDelay_
SgDbhDatumDescriptor *& dRefFreqSecBand_
SgDbhDatumDescriptor *& dClkCflg_
DbhDescriptorX & rOloadContrib_
DbhDescriptorX & rCableStations_
SgDbhDatumDescriptor *& dAcSites_
DbhDescriptorX & rUt1Libra_
DbhDescriptorX & rSolData_
SgDbhDatumDescriptor *& dNutationPart_
DbhDescriptorX & rSitPart_
SgDbhDatumDescriptor *& dSigmaPhaseObsSecBand_
SgDbhDatumDescriptor *& dDelayObsSecBand_
SgDbhDatumDescriptor *& dOloadAmpVert_
DbhDescriptorX & rIonCode_
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
double at(DIRECTION i) const
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)
const QString & typeName() const
const QString & getLCode() const
void setDimensions(int d1, int d2, int d3)
const QString & fileName() const
const QString & sessionID() const
int currentVersion() const
void startFormatModifying()
double getR8(SgDbhDatumDescriptor *d, int i, int j, int k, int obsNumber=-1)
short getI2(SgDbhDatumDescriptor *d, int i, int j, int k, int obsNumber=-1)
void setI2(SgDbhDatumDescriptor *d, int i, int j, int k, int obsNumber, short i2)
void setJ4(SgDbhDatumDescriptor *d, int i, int j, int k, int obsNumber, int j4)
SgMJD fileCreationEpoch() const
void setStr(SgDbhDatumDescriptor *d, int i, int j, int obsNumber, const QString &str)
void finisFormatModifying()
const QString & sessionDescription() const
bool delDescriptor(SgDbhDatumDescriptor *)
void setR8(SgDbhDatumDescriptor *d, int i, int j, int k, int obsNumber, double r8)
int numberOfObservations() const
SgDbhDatumDescriptor * lookupDescriptor(const char *tag)
bool addDescriptor(SgDbhDatumDescriptor *)
QString getStr(SgDbhDatumDescriptor *d, int i, int j, int obsNumber=-1)
EccType getEccType() const
const Sg3dVector & getDR() const
const QString & getAcAbbrevName() const
const QString & getUserEmailAddress() const
const QString & getUserDefaultInitials() const
const QString & getAcFullName() const
const QString & getUserName() 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)
void setElement(unsigned int i, unsigned int j, double d)
double getPressure() const
void setRelativeHumidity(double rho)
double getTemperature() const
void setTemperature(double t)
void setPressure(double p)
@ Attr_ARTIFICIAL_DATA
data are artificial (mean values or some model);
double getRelativeHumidity() const
QList< SgVlbiStationInfo * > & stations()
void setDversion(double d)
double getDversion() const
void setKey(const QString &key)
void incNumTotal(DataType, int=1)
double getSigma2add(DataType) const
const QString & getKey() const
int numProcessed(DataType dType) const
void setSigma2add(DataType dType, double d)
double wrms(DataType) const
int numTotal(DataType dType) const
virtual void setMediaIdx(int idx)
virtual void setMJD(const SgMJD &)
@ Attr_NOT_VALID
omit the observation;
@ Attr_PROCESSED
the observation has been processed;
const SgMJD & getEpoch4Export() const
@ 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)
const SgParameterCfg & getSrcCoo() const
const SgParameterCfg & getAtmGrad() const
SgParameterCfg::PMode getClock0Mode() const
void setZenith(const SgParameterCfg &p)
const SgParameterCfg & getClock0() const
SgParameterCfg::PMode getZenithMode() const
SgParameterCfg::PMode getAtmGradMode() const
SgParameterCfg::PMode getPolusUT1Mode() const
int getNumOfUnknowns() const
int getNumOfObservations() const
QMap< QString, SgParameter * > * parByName()
SgIdentities * identities()
const QString & getExtAPrioriSitesVelocitiesFileName() const
bool getUseExtAPrioriSitesVelocities() const
bool getUseExtAPrioriHiFyErp() const
bool getUseExtAPrioriSitesPositions() const
bool getUseExtAPrioriMeanGradients() const
const QString & getExtAPrioriSitesPositionsFileName() const
const QString & getExtAPrioriHiFyErpFileName() const
bool getUseExtAPrioriSourcesPositions() const
double getInitAuxSigma4Delay() const
bool getUseExtAPrioriAxisOffsets() const
bool getUseSolveObsSuppresionFlags() const
const QString & getExtAPrioriMeanGradientsFileName() const
const QString & getExtAPrioriSourcesPositionsFileName() const
double getInitAuxSigma4Rate() const
const QString & getExtAPrioriAxisOffsetsFileName() const
void setElement(unsigned int i, double d)
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 setCalcNdryCont4Delay(double v)
void setDrat_dTzdWet(double v)
void setCalcOLoadHorz4Delay(double v)
void setDdel_dTzdGrdE(double v)
SgMeteoData & meteoData()
void setAzimuthAngleRate(double rate)
void setDrat_dTzdGrdE(double v)
void setDrat_dAxsOfs(double v)
void setParallacticAngle(double angle)
void setCalcUnPhaseCal(double v)
void setDdel_dTzdGrdN(double v)
void setCalcOLoadVert4Delay(double v)
void setCalcAxisOffset4Delay(double v)
void setDrat_dTzdGrdN(double v)
void setCalcNwetCont4Rate(double v)
void setElevationAngle(double angle)
void setElevationAngleRate(double rate)
void setCalcNdryCont4Rate(double v)
void setDdel_dTzdWet(double v)
void setDrat_dTzdDry(double v)
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()
int getInputFileVersion() const
void setInputFileName(const QString &fileName)
void setInputFileVersion(int version)
QList< SgVlbiObservable * > & observables()
QMap< int, SgVlbiBaselineInfo * > & baselinesByIdx()
QMap< QString, SgVlbiSourceInfo * > & sourcesByName()
QMap< int, SgVlbiSourceInfo * > & sourcesByIdx()
SgVlbiHistory & history()
QMap< int, SgVlbiStationInfo * > & stationsByIdx()
const QString & getCorrelatorType() const
@ Attr_HAS_IONO_SOLUTION
the band contains ionospheric corrections;
@ Attr_PRIMARY
the band is a primary band;
@ Attr_ESTIMATE_CLOCKS
estimate baseline clocks;
@ Attr_NOT_VALID
omit the baseline;
bool getIsEditable() const
const SgMJD & getEpoch() const
const QString & getText() const
void importDbhHistoryBlock(SgDbhImage *)
void addHistoryRecord(const QString &, const SgMJD &t)
void export2DbhHistoryBlock(SgDbhImage *)
void setAmbiguitySpacing(double)
double getEffFreq() const
short int getUnweightFlag() const
void setIonoSigma(double)
double getAmbiguitySpacing() const
void setNumOfAmbiguities(int)
void setIonoValue(double)
int getNumOfAmbiguities() const
double getIonoValue() const
void setUnweightFlag(short int)
double getIonoSigma() const
const QString & getFourfitOutputFName() const
void setNumOfChannels(int)
int getQualityFactor() const
void setTotalPhase(double)
SgMatrix * phaseCalData_2ByChan()
SgVector * numOfAccPeriodsByChan_LSB()
void setFourfitOutputFName(const QString &)
SgVector * numOfAccPeriodsByChan_USB()
SgVlbiMeasurement & phDRate()
void setQualityFactor(int)
SgVector * fringeAmplitudeByChan()
void setCorrCoeff(double)
SgVector * numOfSamplesByChan_LSB()
double getTotalPhase() const
void setErrorCode(const QString &)
SgMatrix * phaseCalData_1ByChan()
SgVector * numOfSamplesByChan_USB()
void setReferenceFrequency(double)
double getReferenceFrequency() const
void allocateChannelsSetupStorages(int numOfChans)
SgVlbiMeasurement & phDelay()
double getCorrCoeff() const
SgVlbiMeasurement & grDelay()
SgVlbiMeasurement & sbDelay()
SgVector * refFreqByChan()
void setCalcOceanTideDelay(double v)
void setCalcGpsIonoCorrectionRate(double d)
void setCalcHiFyPxyRate(double v)
void setCalcNut2006_dPsiV(double v)
void setStation1Idx(short int idx)
void setScanId(const QString &sId)
void setCalcConsBendingRate(double d)
@ Attr_CONTAINS_ALL_DATA
an observaiton probably is from a primary band (for DBH IO)
void setCalcHiFyPxyDelay(double v)
void setDdel_dRA(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 setCalcTiltRemvrRate(double v)
void setCalcConsBendingSunRate(double d)
bool addObservable(const QString &, const SgVlbiObservable &)
void setCalcEarthTideDelay(double v)
void setCalcConsensusDelay(double tau)
void setCalcHiFyPxyLibrationRate(double v)
void setCalcPyDelay(double v)
void setScanName(const QString &sName)
void setCalcPoleTideOldDelay(double v)
void setCalcPoleTideRate(double v)
void setCalcHiFyUt1LibrationDelay(double v)
void setCalcConsBendingSunHigherDelay(double d)
void setCalcConsensusRate(double r)
void setCalcNutWahr_dEpsV(double v)
void setCalcNutWahr_dPsiV(double v)
void setDrat_dCipY(double d)
void setCalcCipYv(double v)
QList< SgVlbiObservable * > & passiveObses()
void setCalcOceanTideOldRate(double v)
void setCalcFeedCorrDelay(double v)
void setupActiveObservable(const QString &)
void setDrat_dRA(double d)
void setCalcGpsIonoCorrectionDelay(double d)
void setCalcHiFyPxyLibrationDelay(double v)
void setCalcOceanTideOldDelay(double v)
void setDdel_dR_1(const Sg3dVector &r)
void setDdel_dUT1(double d)
void setCalcCipSv(double v)
void setCalcConsBendingSunHigherRate(double d)
void setDdel_dCipY(double d)
void setStation2Idx(short int idx)
void setCalcCipXv(double v)
SgVlbiObservable * observable(const QString &)
void setCalcEarthTideRate(double v)
void setDdel_dPy(double d)
void setCalcFeedCorrRate(double v)
const QString & getScanName() const
void setDdel_dPx(double d)
void setCalcTiltRemvrDelay(double v)
void setDdel_dCipX(double d)
void setCalcOceanPoleTideLdRate(double v)
void setCalcConsBendingDelay(double d)
void setCalcOceanTideRate(double v)
void setDrat_dCipX(double d)
void setCalcHiFyUt1LibrationRate(double v)
void setCalcHiFyUt1Delay(double v)
void setDrat_dPx(double d)
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 setCalcPoleTideOldRate(double v)
void setCalcConsBendingSunDelay(double d)
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 setDdel_dDN(double d)
const QString & getCorrelatorType() const
const QString & getName() const
void setName(const QString &name)
QString officialName_
Official Name (from MasterFile)
void setCorrelatorType(const QString &name)
CorrelatorPostProcSoftware cppsSoft_
@ Attr_FF_WEIGHTS_CORRECTED
weights have been corrected;
@ Attr_FF_ION_C_CALCULATED
ionospheric corrections have been calculated;
@ Attr_FF_OUTLIERS_PROCESSED
outliers have been processed;
@ Attr_HAS_CALC_DATA
the theoretical values are available;
@ Attr_FF_AMBIGS_RESOLVED
ambiguities have been resolved;
@ Attr_FF_ECC_UPDATED
eccentricity data for one of stations were updated;
@ 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;
SgMJD tFinis_
last epoch of the observations;
@ CPPS_UNKNOWN
unknown (=all others);
QString networkSuffix_
a char that specifies network (e.g., A, E, U, etc.);
QString description_
Experiment description;.
QString name_
name of the session (e.g., 10JUL22XE);
SgMJD tStart_
first epoch of the observations;
StationsByName stationsByName_
bool hasOceanPoleTideContrib_
bool hasWobbleNutContrib_
void setLeapSeconds(double s)
bool hasUt1LibrationContrib_
QMap< QString, SgVlbiObservation * > observationByKey_
QList< SgVlbiBand * > bands_
void formObsCalibrationSetup(int &bitFlags, QList< QString > &calList)
SgTidalUt1::UT1TideContentType tabsUt1Type_
bool getDataFromDbhImages(QMap< QString, SgDbhImage * > &images, bool have2LoadImmatureSession, bool guiExpected)
SgVector * args4PxyInterpolation_
void makeHistoryIntro(SgVlbiHistory &)
bool selfCheck(bool guiExpected)
QMap< QString, SgVlbiBand * > bandByKey_
void applyObsCalibrationSetup(int bitFlags, const QList< QString > &calList)
bool hasOceanTideContrib_
QList< SgVlbiObservation * > observations_
bool hasPoleTideOldContrib_
bool getDataFromDbhImage(SgDbhImage *image, bool have2getAll, bool isStandardSession, bool have2LoadImmatureSession, bool guiExpected)
bool hasWobbleHighFreqContrib_
SgSolutionReporter * reporter_
bool hasUnPhaseCalContrib_
SgVlbiHistory contemporaryHistory_
QMap< int, SgVlbiStationInfo * > stationsByIdx_
bool hasUt1HighFreqContrib_
bool putDataIntoDbhImage(SgDbhImage *image)
bool hasPxyInterpolation_
BaselinesByName baselinesByName_
void makeHistory(SgVlbiHistory &)
bool hasUt1Interpolation_
SgParametersDescriptor * parametersDescriptor_
SgVlbiBand * primaryBand_
bool hasEarthTideContrib_
static QString className()
SgVector * args4Ut1Interpolation_
bool hasPxyLibrationContrib_
SgMatrix * tabs4Ut1Interpolation_
QMap< int, SgVlbiBaselineInfo * > baselinesByIdx_
SourcesByName sourcesByName_
bool hasTiltRemvrContrib_
bool hasOceanTideOldContrib_
SgMatrix * tabs4PxyInterpolation_
QMap< int, SgVlbiSourceInfo * > sourcesByIdx_
@ Attr_NOT_VALID
omit the source;
@ Attr_ESTIMATE_COO
estimate source position;
void setNeed2useAPrioriClocks(bool)
QMap< QString, SgVlbiAuxObservation * > * auxObservationByScanId()
void calcCBEpochs4Export(const QMap< QString, SgVlbiAuxObservation * > &)
void setR(const Sg3dVector &r)
const QString & getTectonicPlateName() const
void setMntType(MountingType m)
@ Attr_NOT_VALID
omit the station;
@ Attr_REFERENCE_CLOCKS
the clocks are the reference ones;
@ Attr_IGNORE_CABLE_CAL
do not apply cable calibration;
@ 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;
const SgParameterCfg & getPcClocks() const
SgParameterCfg * pcZenith()
void setAPrioriClockTerm_1(double)
void setTectonicPlateName(const QString &name)
SgParameterCfg * pcClocks()
const SgParameterCfg & getPcZenith() const
void setOLoadPhase(int iWave, int iCoord, double phase)
void setAxisOffset(double v)
void setOLoadAmplitude(int iWave, int iCoord, double amplitude)
SgBreakModel & clockBreaks()
double getAPrioriClockTerm_1() const
void setAPrioriClockTerm_0(double)
bool getNeed2useAPrioriClocks() const
double getAPrioriClockTerm_0() const
void setPcClocks(const SgParameterCfg &pc)
void setPcZenith(const SgParameterCfg &pc)
SgDbhDatumDescriptor * d_
SgDbhDatumDescriptor::Type type_