- Timestamp:
- Oct 31, 2022, 9:49:58 PM (2 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppSatObs.cpp
r9821 r9866 46 46 _stecRefSat = 0.0; 47 47 _stecSat = 0.0; 48 _signalPriorities = QString::fromStdString(OPT->_signalPriorities); 49 if (!_signalPriorities.size()) { 50 if (OPT->_obsModelType == OPT->DCMcodeBias || 51 OPT->_obsModelType == OPT->DCMphaseBias) { 52 // at the moment only one code or phase bias per system (G,R,E,C)/modulation considered 53 _signalPriorities = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I"; 54 } 55 else { 56 _signalPriorities = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX"; 57 } 58 } 59 48 60 for (unsigned ii = 0; ii < t_frequency::max; ii++) { 49 61 _obs[ii] = 0; … … 68 80 // Select pseudo-ranges and phase observations 69 81 // ------------------------------------------- 70 71 QString preferredAttribList = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX"; 72 if (OPT->_obsModelType == OPT->DCMcodeBias || 73 OPT->_obsModelType == OPT->DCMphaseBias) { 74 // at the moment only one code or phase bias per system (G,R,E,C)/modulation considered 75 preferredAttribList = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I"; 76 } 77 QStringList priorList = preferredAttribList.split(" ", QString::SkipEmptyParts); 82 QStringList priorList = _signalPriorities.split(" ", QString::SkipEmptyParts); 78 83 string preferredAttrib; 79 84 char obsSys = pppSatObs._prn.system(); //cout << "SATELLITE: " << pppSatObs._prn.toString() << endl; -
trunk/BNC/src/PPP/pppSatObs.h
r9568 r9866 152 152 double _stecSat; 153 153 double _tropo0; 154 }; 154 QString _signalPriorities; 155 }; 155 156 156 157 } -
trunk/BNC/src/bncmain.cpp
r9854 r9866 238 238 "\n" 239 239 "PPP Client Panel 3 keys:\n" 240 " PPP/lcGPS {Select observations from GPS code and/or phase data [character string; no|Pi|Li|Pi&Li]}\n"241 " PPP/lcGLONASS {Select observations from GLONASS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"242 " PPP/lcGalileo {Select observations from Galileo code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"243 " PPP/lcBDS {Select observations from BDS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"244 " PPP/modelObs {select observation model [character string: Ionosphere-free PPP|Uncombined PPP|PPP-RTK|DCM with Code Biases|DCM with Phase Biases]}\n"240 " PPP/lcGPS {Select observations from GPS code and/or phase data [character string; Pi&Li|Pi|Li|no]}\n" 241 " PPP/lcGLONASS {Select observations from GLONASS code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n" 242 " PPP/lcGalileo {Select observations from Galileo code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n" 243 " PPP/lcBDS {Select observations from BDS code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n" 244 " PPP/modelObs {select observation model [character string: Uncombined PPP|Ionosphere-free PPP|DCM with Code Biases|DCM with Phase Biases]}\n" 245 245 " PPP/pseudoOb {select pseudo observations [character string: no|Ionosphere]}\n" 246 246 " PPP/sigmaC1 {Sigma for code observations in meters [floating-point number]}\n" -
trunk/BNC/src/bncwindow.cpp
r9854 r9866 1031 1031 pppGroup1->setLayout(pppLayout1); 1032 1032 1033 QVBoxLayout* pppLayout2 = new QVBoxLayout(); 1034 pppLayout2->addWidget(new QLabel("Precise Point Positioning - Processed Stations.<br>")); 1035 pppLayout2->addWidget(_pppWidgets._staTable, 99); 1036 QHBoxLayout* pppLayout2sub = new QHBoxLayout(); 1037 pppLayout2sub->addWidget(_pppWidgets._addStaButton); 1038 pppLayout2sub->addWidget(_pppWidgets._delStaButton); 1039 pppLayout2sub->addStretch(99); 1040 1041 pppLayout2->addLayout(pppLayout2sub); 1033 QGridLayout* pppLayout2 = new QGridLayout(); 1034 ir = 0; 1035 pppLayout2->addWidget(new QLabel("Precise Point Positioning - Options.<br>"), ir, 0, 1, 2, Qt::AlignLeft); 1036 ++ir; 1037 pppLayout2->addWidget(new QLabel("GPS LCs"), ir, 0, Qt::AlignLeft); 1038 pppLayout2->addWidget(_pppWidgets._lcGPS, ir, 1); 1039 pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 2); 1040 pppLayout2->addWidget(new QLabel("Sigma C1"), ir, 3, Qt::AlignLeft); 1041 pppLayout2->addWidget(_pppWidgets._sigmaC1, ir, 4); _pppWidgets._sigmaC1->setMaximumWidth(8*ww); 1042 pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 5); 1043 pppLayout2->addWidget(new QLabel("Sigma L1"), ir, 6, Qt::AlignLeft); 1044 pppLayout2->addWidget(_pppWidgets._sigmaL1, ir, 7); _pppWidgets._sigmaL1->setMaximumWidth(8*ww); 1045 ++ir; 1046 pppLayout2->addWidget(new QLabel("GLONASS LCs"), ir, 0, Qt::AlignLeft); 1047 pppLayout2->addWidget(_pppWidgets._lcGLONASS, ir, 1); 1048 pppLayout2->addWidget(new QLabel("Max Res C1"), ir, 3, Qt::AlignLeft); 1049 pppLayout2->addWidget(_pppWidgets._maxResC1, ir, 4); _pppWidgets._maxResC1->setMaximumWidth(8*ww); 1050 pppLayout2->addWidget(new QLabel("Max Res L1"), ir, 6, Qt::AlignLeft); 1051 pppLayout2->addWidget(_pppWidgets._maxResL1, ir, 7); _pppWidgets._maxResL1->setMaximumWidth(8*ww); 1052 ++ir; 1053 pppLayout2->addWidget(new QLabel("Galileo LCs"), ir, 0, Qt::AlignLeft); 1054 pppLayout2->addWidget(_pppWidgets._lcGalileo, ir, 1); 1055 pppLayout2->addWidget(new QLabel("Ele Wgt Code"), ir, 3, Qt::AlignLeft); 1056 pppLayout2->addWidget(_pppWidgets._eleWgtCode, ir, 4); 1057 pppLayout2->addWidget(new QLabel("Ele Wgt Phase"), ir, 6, Qt::AlignLeft); 1058 pppLayout2->addWidget(_pppWidgets._eleWgtPhase, ir, 7); 1059 ++ir; 1060 pppLayout2->addWidget(new QLabel("BDS LCs"), ir, 0, Qt::AlignLeft); 1061 pppLayout2->addWidget(_pppWidgets._lcBDS, ir, 1); 1062 pppLayout2->addWidget(new QLabel("Min # of Obs"), ir, 3, Qt::AlignLeft); 1063 pppLayout2->addWidget(_pppWidgets._minObs, ir, 4); 1064 pppLayout2->addWidget(new QLabel("Min Elevation"), ir, 6, Qt::AlignLeft); 1065 pppLayout2->addWidget(_pppWidgets._minEle, ir, 7);_pppWidgets._minEle->setMaximumWidth(8*ww); 1066 ++ir; 1067 pppLayout2->addWidget(new QLabel("Model Obs"), ir, 0, Qt::AlignLeft); 1068 pppLayout2->addWidget(_pppWidgets._modelObs, ir, 1); 1069 pppLayout2->addWidget(new QLabel("Wait for clock corr."), ir, 3, Qt::AlignLeft); 1070 pppLayout2->addWidget(_pppWidgets._corrWaitTime, ir, 4); 1071 pppLayout2->addWidget(new QLabel("Seeding (sec)"), ir, 6, Qt::AlignLeft); 1072 pppLayout2->addWidget(_pppWidgets._seedingTime, ir, 7);_pppWidgets._seedingTime->setMaximumWidth(8*ww); 1073 ++ir; 1074 pppLayout2->addWidget(new QLabel("Pseudo Obs"), ir, 0, Qt::AlignLeft); 1075 pppLayout2->addWidget(_pppWidgets._pseudoObs, ir, 1); 1076 pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 2); 1077 pppLayout2->addWidget(new QLabel("Sigma GIM"), ir, 3, Qt::AlignLeft); 1078 pppLayout2->addWidget(_pppWidgets._sigmaGIM, ir, 4); _pppWidgets._sigmaGIM->setMaximumWidth(8*ww); 1079 pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 5); 1080 pppLayout2->addWidget(new QLabel("Max Res GIM"), ir, 6, Qt::AlignLeft); 1081 pppLayout2->addWidget(_pppWidgets._maxResGIM, ir, 7); _pppWidgets._maxResGIM->setMaximumWidth(8*ww); 1082 ++ir; 1083 pppLayout2->addWidget(new QLabel(""), ir, 8); 1084 pppLayout2->setColumnStretch(8, 999); 1085 ++ir; 1086 pppLayout2->addWidget(new QLabel(""), ir, 1); 1087 pppLayout2->setRowStretch(ir, 999); 1042 1088 1043 1089 pppGroup2->setLayout(pppLayout2); 1044 1090 1045 QGridLayout* pppLayout3 = new QGridLayout(); 1046 ir = 0; 1047 pppLayout3->addWidget(new QLabel("Precise Point Positioning - Options.<br>"), ir, 0, 1, 2, Qt::AlignLeft); 1048 ++ir; 1049 pppLayout3->addWidget(new QLabel("GPS LCs"), ir, 0, Qt::AlignLeft); 1050 pppLayout3->addWidget(_pppWidgets._lcGPS, ir, 1); 1051 pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 2); 1052 pppLayout3->addWidget(new QLabel("Sigma C1"), ir, 3, Qt::AlignLeft); 1053 pppLayout3->addWidget(_pppWidgets._sigmaC1, ir, 4); _pppWidgets._sigmaC1->setMaximumWidth(8*ww); 1054 pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 5); 1055 pppLayout3->addWidget(new QLabel("Sigma L1"), ir, 6, Qt::AlignLeft); 1056 pppLayout3->addWidget(_pppWidgets._sigmaL1, ir, 7); _pppWidgets._sigmaL1->setMaximumWidth(8*ww); 1057 ++ir; 1058 pppLayout3->addWidget(new QLabel("GLONASS LCs"), ir, 0, Qt::AlignLeft); 1059 pppLayout3->addWidget(_pppWidgets._lcGLONASS, ir, 1); 1060 pppLayout3->addWidget(new QLabel("Max Res C1"), ir, 3, Qt::AlignLeft); 1061 pppLayout3->addWidget(_pppWidgets._maxResC1, ir, 4); _pppWidgets._maxResC1->setMaximumWidth(8*ww); 1062 pppLayout3->addWidget(new QLabel("Max Res L1"), ir, 6, Qt::AlignLeft); 1063 pppLayout3->addWidget(_pppWidgets._maxResL1, ir, 7); _pppWidgets._maxResL1->setMaximumWidth(8*ww); 1064 ++ir; 1065 pppLayout3->addWidget(new QLabel("Galileo LCs"), ir, 0, Qt::AlignLeft); 1066 pppLayout3->addWidget(_pppWidgets._lcGalileo, ir, 1); 1067 pppLayout3->addWidget(new QLabel("Ele Wgt Code"), ir, 3, Qt::AlignLeft); 1068 pppLayout3->addWidget(_pppWidgets._eleWgtCode, ir, 4); 1069 pppLayout3->addWidget(new QLabel("Ele Wgt Phase"), ir, 6, Qt::AlignLeft); 1070 pppLayout3->addWidget(_pppWidgets._eleWgtPhase, ir, 7); 1071 ++ir; 1072 pppLayout3->addWidget(new QLabel("BDS LCs"), ir, 0, Qt::AlignLeft); 1073 pppLayout3->addWidget(_pppWidgets._lcBDS, ir, 1); 1074 pppLayout3->addWidget(new QLabel("Min # of Obs"), ir, 3, Qt::AlignLeft); 1075 pppLayout3->addWidget(_pppWidgets._minObs, ir, 4); 1076 pppLayout3->addWidget(new QLabel("Min Elevation"), ir, 6, Qt::AlignLeft); 1077 pppLayout3->addWidget(_pppWidgets._minEle, ir, 7);_pppWidgets._minEle->setMaximumWidth(8*ww); 1078 ++ir; 1079 pppLayout3->addWidget(new QLabel("Model Obs"), ir, 0, Qt::AlignLeft); 1080 pppLayout3->addWidget(_pppWidgets._modelObs, ir, 1); 1081 pppLayout3->addWidget(new QLabel("Wait for clock corr."), ir, 3, Qt::AlignLeft); 1082 pppLayout3->addWidget(_pppWidgets._corrWaitTime, ir, 4); 1083 pppLayout3->addWidget(new QLabel("Seeding (sec)"), ir, 6, Qt::AlignLeft); 1084 pppLayout3->addWidget(_pppWidgets._seedingTime, ir, 7);_pppWidgets._seedingTime->setMaximumWidth(8*ww); 1085 ++ir; 1086 pppLayout3->addWidget(new QLabel("Pseudo Obs"), ir, 0, Qt::AlignLeft); 1087 pppLayout3->addWidget(_pppWidgets._pseudoObs, ir, 1); 1088 pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 2); 1089 pppLayout3->addWidget(new QLabel("Sigma GIM"), ir, 3, Qt::AlignLeft); 1090 pppLayout3->addWidget(_pppWidgets._sigmaGIM, ir, 4); _pppWidgets._sigmaGIM->setMaximumWidth(8*ww); 1091 pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 5); 1092 pppLayout3->addWidget(new QLabel("Max Res GIM"), ir, 6, Qt::AlignLeft); 1093 pppLayout3->addWidget(_pppWidgets._maxResGIM, ir, 7); _pppWidgets._maxResGIM->setMaximumWidth(8*ww); 1094 ++ir; 1095 pppLayout3->addWidget(new QLabel(""), ir, 8); 1096 pppLayout3->setColumnStretch(8, 999); 1097 ++ir; 1098 pppLayout3->addWidget(new QLabel(""), ir, 1); 1099 pppLayout3->setRowStretch(ir, 999); 1091 QVBoxLayout* pppLayout3 = new QVBoxLayout(); 1092 pppLayout3->addWidget(new QLabel("Precise Point Positioning - Processed Stations.<br>")); 1093 pppLayout3->addWidget(_pppWidgets._staTable, 99); 1094 QHBoxLayout* pppLayout3sub = new QHBoxLayout(); 1095 pppLayout3sub->addWidget(_pppWidgets._addStaButton); 1096 pppLayout3sub->addWidget(_pppWidgets._delStaButton); 1097 pppLayout3sub->addStretch(99); 1098 1099 pppLayout3->addLayout(pppLayout3sub); 1100 1100 1101 1101 pppGroup3->setLayout(pppLayout3); -
trunk/BNC/src/pppMain.cpp
r9783 r9866 149 149 t_pppOptions* opt = new t_pppOptions(); 150 150 151 opt->_realTime = _realTime; 152 opt->_roverName = hlp[0].toStdString(); 153 opt->_aprSigCrd[0] = hlp[1].toDouble()+1e-10; 154 opt->_aprSigCrd[1] = hlp[2].toDouble()+1e-10; 155 opt->_aprSigCrd[2] = hlp[3].toDouble()+1e-10; 156 opt->_noiseCrd[0] = hlp[4].toDouble()+1e-10; 157 opt->_noiseCrd[1] = hlp[5].toDouble()+1e-10; 158 opt->_noiseCrd[2] = hlp[6].toDouble()+1e-10; 159 opt->_aprSigTrp = hlp[7].toDouble(); 160 opt->_noiseTrp = hlp[8].toDouble(); 161 opt->_nmeaPort = hlp[9].toInt(); 162 151 opt->_realTime = _realTime; 152 opt->_roverName = hlp[0].toStdString(); 153 opt->_aprSigCrd[0] = hlp[1].toDouble()+1e-10; 154 opt->_aprSigCrd[1] = hlp[2].toDouble()+1e-10; 155 opt->_aprSigCrd[2] = hlp[3].toDouble()+1e-10; 156 opt->_noiseCrd[0] = hlp[4].toDouble()+1e-10; 157 opt->_noiseCrd[1] = hlp[5].toDouble()+1e-10; 158 opt->_noiseCrd[2] = hlp[6].toDouble()+1e-10; 159 opt->_aprSigTrp = hlp[7].toDouble(); 160 opt->_noiseTrp = hlp[8].toDouble(); 161 opt->_nmeaPort = hlp[9].toInt(); 162 #ifdef USE_PPP 163 opt->_signalPriorities = hlp[10].toStdString(); 164 #endif 163 165 if (_realTime) { 164 166 opt->_corrMount.assign(settings.value("PPP/corrMount").toString().toStdString()); … … 181 183 #endif 182 184 opt->_sigmaC1 = settings.value("PPP/sigmaC1").toDouble(); if (opt->_sigmaC1 <= 0.0) opt->_sigmaC1 = 2.00; 183 opt->_sigmaL1 = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0) opt->_sigmaL1 = 0.0 1;185 opt->_sigmaL1 = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0) opt->_sigmaL1 = 0.02; 184 186 opt->_sigmaGIM = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 5.00; 185 187 opt->_corrWaitTime = settings.value("PPP/corrWaitTime").toDouble(); … … 412 414 opt->_minObs = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 4) opt->_minObs = 4; 413 415 opt->_minEle = settings.value("PPP/minEle").toDouble() * M_PI / 180.0; 414 opt->_maxResC1 = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 4.0;415 opt->_maxResL1 = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.0 3;416 opt->_maxResGIM = settings.value("PPP/maxResGIM").toDouble(); if (opt->_maxResGIM <= 0.0) opt->_maxResGIM = 6.0;416 opt->_maxResC1 = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 2.0; 417 opt->_maxResL1 = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.02; 418 opt->_maxResGIM = settings.value("PPP/maxResGIM").toDouble(); if (opt->_maxResGIM <= 0.0) opt->_maxResGIM = 5.0; 417 419 opt->_eleWgtCode = (settings.value("PPP/eleWgtCode").toInt() != 0); 418 420 opt->_eleWgtPhase = (settings.value("PPP/eleWgtPhase").toInt() != 0); -
trunk/BNC/src/pppOptions.h
r9599 r9866 73 73 double _noisePhaseBias; 74 74 int _nmeaPort; 75 std::string _signalPriorities; 75 76 double _seedingTime; 76 77 std::vector<t_lc::type> _LCsGPS; -
trunk/BNC/src/pppWidgets.cpp
r9790 r9866 126 126 _lcGPS->addItems(QString("P3,P3&L3").split(",")); 127 127 #else 128 _lcGPS->addItems(QString(" no,Pi,Li,Pi&Li").split(","));128 _lcGPS->addItems(QString("Pi&Li,Pi,Li,no").split(",")); 129 129 #endif 130 130 … … 133 133 _lcGLONASS->addItems(QString("no,P3,L3,P3&L3").split(",")); 134 134 #else 135 _lcGLONASS->addItems(QString(" no,Pi,Li,Pi&Li").split(","));135 _lcGLONASS->addItems(QString("Pi&Li,Pi,Li,no").split(",")); 136 136 #endif 137 137 … … 140 140 _lcGalileo->addItems(QString("no,P3,L3,P3&L3").split(",")); 141 141 #else 142 _lcGalileo->addItems(QString(" no,Pi,Li,Pi&Li").split(","));142 _lcGalileo->addItems(QString("Pi&Li,Pi,Li,no").split(",")); 143 143 #endif 144 144 … … 147 147 _lcBDS->addItems(QString("no,P3,L3,P3&L3").split(",")); 148 148 #else 149 _lcBDS->addItems(QString(" no,Pi,Li,Pi&Li").split(","));149 _lcBDS->addItems(QString("Pi&Li,Pi,Li,no").split(",")); 150 150 #endif 151 151 … … 156 156 _pseudoObs->addItems(QString("no").split(",")); 157 157 #else 158 //_modelObs->addItems(QString("Ionosphere-free PPP,Uncombined PPP,PPP-RTK,DCM with Code Biases,DCM with Phase Biases").split(",")); 159 _modelObs->addItems(QString("Ionosphere-free PPP,Uncombined PPP,DCM with Code Biases,DCM with Phase Biases").split(",")); 158 _modelObs->addItems(QString("Uncombined PPP,Ionosphere-free PPP,DCM with Code Biases,DCM with Phase Biases").split(",")); 160 159 _pseudoObs->addItems(QString("no,Ionosphere").split(",")); 161 160 #endif … … 182 181 _corrWaitTime->setSuffix(" sec"); 183 182 184 _staTable->setColumnCount(1 0);183 _staTable->setColumnCount(11); 185 184 _staTable->setRowCount(0); 186 185 _staTable->setHorizontalHeaderLabels( 187 QString("Station,Sigma N,Sigma E,Sigma H,Noise N,Noise E,Noise H,Tropo Sigma,Tropo Noise, NMEA Port").split(","));186 QString("Station,Sigma N,Sigma E,Sigma H,Noise N,Noise E,Noise H,Tropo Sigma,Tropo Noise, NMEA Port,Signal Priorities").split(",")); 188 187 _staTable->setSelectionMode(QAbstractItemView::ExtendedSelection); 189 188 _staTable->setSelectionBehavior(QAbstractItemView::SelectRows); 189 _staTable->setColumnWidth(0,120); 190 _staTable->setColumnWidth(10,220); 190 191 #if QT_VERSION >= 0x050000 191 192 _staTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); 192 193 #endif 193 194 _staTable->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); 194 195 195 connect(_addStaButton, SIGNAL(clicked()), this, SLOT(slotAddStation())); 196 196 connect(_delStaButton, SIGNAL(clicked()), this, SLOT(slotDelStation())); … … 209 209 // WhatsThis, PPP (2) 210 210 // ------------------ 211 _staTable->setWhatsThis(tr("<p>Specify values for Sigma and white Noise of the Stations North, East and Height coordinate components in meters. Specify also a Sigma in meters for a priori model based Tropospheric delays and a Sigma in meters per second for the delay's Noise. You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host.</p><p>Specifying one record per Station is mandatory. BNC will only process data for stations which are listed here. To define a station, specify the 'Mountpoint' when in 'Real-Time Streams' mode or the 4-character station ID when in 'RINEX Files' mode.</p><p>'Sigma' is meant to describe the uncertainty of a single coordinate or tropospheric delay estimated for one epoch. 'Noise' is meant to describe the variation of estimates from epoch to epoch.</p><p><ul><li>A Sigma of 100.0 meters may be an appropriate choice e.g. for the initial N/E/H coordinates. However, this value may be significantly smaller (i.e. 0.01) for stations with well-known a priori coordinates.</li><li>A Noise of 100.0 meters for the estimated N/E/H coordinates may also be appropriate considering the potential movement of a rover position.</li><li>A value of 0.1 meters may be an appropriate Sigma for the a priori model based Tropospheric delay estimation.</li><li>Specify a Noise to describe the expected variation of the tropospheric effect over time. Supposing 1Hz observation data, specifying a value of 3e-6 would mean that the tropospheric effect may vary 3600 * 3e-6 = 0.01 meters per hour.</li></ul></p><p> <i>[key: PPP/staTable]</i></p>")); 211 _corrWaitTime->setWhatsThis(tr("<p>Zero value means that BNC processes each epoch of data immediately after its arrival using satellite clock corrections available at that time.</p><p> Specifying a non-zero value (i.e. 5 sec) means that the epochs of data are buffered and the processing of each epoch is postponed till the satellite clock corrections not older than '5 sec' (example) become available. <i>[key: PPP/corrWaitTime]</i><p>")); 212 _seedingTime->setWhatsThis(tr("<p>Enter the length of a startup period in seconds for which you want to fix the PPP solutions to known a priori coordinates as introduced through option 'Coordinates file'. Adjust 'Sigma N/E/H' in the PPP Stations table according to the coordinate's precision. Fixing a priori coordinates is done in BNC through setting 'Sigma N/E/H' temporarily to zero.</p><p>This option allows the PPP solution to rapidly converge. It requires that the antenna remains unmoved on the a priori known position throughout the startup period.</p><p>A value of 60 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning that you don't want BNC to fix PPP solutions during startup to an a priori coordinate. <i>[key: PPP/seedingTime]</i></p>")); 212 213 213 214 // WhatsThis, PPP (3) 214 215 // ------------------ 215 _corrWaitTime->setWhatsThis(tr("<p>Zero value means that BNC processes each epoch of data immediately after its arrival using satellite clock corrections available at that time.</p><p> Specifying a non-zero value (i.e. 5 sec) means that the epochs of data are buffered and the processing of each epoch is postponed till the satellite clock corrections not older than '5 sec' (example) become available. <i>[key: PPP/corrWaitTime]</i><p>")); 216 _seedingTime->setWhatsThis(tr("<p>Enter the length of a startup period in seconds for which you want to fix the PPP solutions to known a priori coordinates as introduced through option 'Coordinates file'. Adjust 'Sigma N/E/H' in the PPP Stations table according to the coordinate's precision. Fixing a priori coordinates is done in BNC through setting 'Sigma N/E/H' temporarily to zero.</p><p>This option allows the PPP solution to rapidly converge. It requires that the antenna remains unmoved on the a priori known position throughout the startup period.</p><p>A value of 60 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning that you don't want BNC to fix PPP solutions during startup to an a priori coordinate. <i>[key: PPP/seedingTime]</i></p>")); 216 _staTable->setWhatsThis(tr("<p>Specify values for Sigma and white Noise of the Stations North, East and Height coordinate components in meters. Specify also a Sigma in meters for a priori model based Tropospheric delays and a Sigma in meters per second for the delay's Noise. You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host. Specify a list of signal priorities for the observations that shall be used for PPP.</p><p>Specifying one record per Station is mandatory. BNC will only process data for stations which are listed here. To define a station, specify the 'Mountpoint' when in 'Real-Time Streams' mode or the 4-character station ID when in 'RINEX Files' mode.</p><p>'Sigma' is meant to describe the uncertainty of a single coordinate or tropospheric delay estimated for one epoch. 'Noise' is meant to describe the variation of estimates from epoch to epoch.</p><p><ul><li>A Sigma of 100.0 meters may be an appropriate choice e.g. for the initial N/E/H coordinates. However, this value may be significantly smaller (i.e. 0.01) for stations with well-known a priori coordinates.</li><li>A Noise of 100.0 meters for the estimated N/E/H coordinates may also be appropriate considering the potential movement of a rover position.</li><li>A value of 0.1 meters may be an appropriate Sigma for the a priori model based Tropospheric delay estimation.</li><li>Specify a Noise to describe the expected variation of the tropospheric effect over time. Supposing 1Hz observation data, specifying a value of 3e-6 would mean that the tropospheric effect may vary 3600 * 3e-6 = 0.01 meters per hour.</li></ul></p><p>'Signal Priorities' can be specified as equal for all systems, as system specific or as system and frequency specific. Please note, for 'DCM with Phase Biases' or 'DCM with Code Biases' at the moment only one code or phase bias per system (G,R,E,C)/modulation can be considered. Hence, for example the following list of 'Signal Priorities' would be valid: <ul><li>'G:12&CW R:12&CP E:1&CX E:5&QX C:26&I'</li></ul><p>For all other PPP models for example the following list of 'Signal Priorities' can be used:</p> <ul><li>'G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX'</li></ul> <p> <i>[key: PPP/staTable]</i></p>")); 217 217 218 218 // WhatsThis, PPP (4) 219 219 // ------------------ 220 _plotCoordinates->setWhatsThis(tr("<p>For one of your PPP Stations BNC can produce a time series plot of coordinate displacements in the 'PPP Plot' tab below. Specify a 'Mountpoint' (when in 'Real-Time Streams' mode) or the 4-character station ID (when in 'RINEX Files' mode) to define the station whose coordinate displacements you would like to see plotted.</p><p>Note that this option makes only sense for a stationary receiver with known a priori marker coordinates as specified through PPP option 'Coordinates file'.</p><p>Default is an empty option field, meaning that BNC shall not produce a time series plot of PPP coordinate displacements. <i>[key: PPP/plotCoordinates]</i></p>"));220 _plotCoordinates->setWhatsThis(tr("<p>For one of your PPP Stations BNC can produce a time series plot of coordinate displacements in the 'PPP Plot' tab below. Specify a 'Mountpoint' (when in 'Real-Time Streams' mode) or the 9/4-character station ID (when in 'RINEX Files' mode) to define the station whose coordinate displacements you would like to see plotted.</p><p>Note that this option makes only sense for a stationary receiver with known a priori marker coordinates as specified through PPP option 'Coordinates file'.</p><p>Default is an empty option field, meaning that BNC shall not produce a time series plot of PPP coordinate displacements. <i>[key: PPP/plotCoordinates]</i></p>")); 221 221 _audioResponse->setWhatsThis(tr("<p>Specify an 'Audio response' threshold in meters. A beep is produced by BNC whenever a horizontal PPP coordinate component differs by more than the threshold value from the a priori marker coordinate.</p><p>Default is an empty option field, meaning that you don't want BNC to produce alarm signals. <i>[key: PPP/audioResponse]</i></p>")); 222 222 _mapWinButton->setWhatsThis(tr("<p>You may like to track your rover position using Open Street Map as a background map. A 'Track map' can be produced with BNC in 'Real-Time Streams' or 'RINEX files' PPP mode.</p><p>The 'Open Map' button opens a windows showing a map according to specified options.</p><p>Even in 'RINEX files' post processing mode you should not forget to specify a proxy under the 'Network' tab if that is operated in front of BNC because the program needs to download the map data. Without any entry, BNC will try to use the system proxies.</p>")); … … 587 587 int iRow = _staTable->rowCount(); 588 588 _staTable->insertRow(iRow); 589 QString preferredAttributes = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX"; 590 if (_modelObs->currentText().contains("DCM")) { 591 preferredAttributes = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I"; 592 } 593 589 594 for (int iCol = 0; iCol < _staTable->columnCount(); iCol++) { 590 if (iCol == 0) _staTable->setItem(iRow, iCol, new QTableWidgetItem("")); 591 if (iCol == 1) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 592 if (iCol == 2) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 593 if (iCol == 3) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 594 if (iCol == 4) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 595 if (iCol == 5) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 596 if (iCol == 6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 597 if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1")); 598 if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6")); 599 if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0")); 595 if (iCol == 0) _staTable->setItem(iRow, iCol, new QTableWidgetItem("")); 596 if (iCol == 1) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 597 if (iCol == 2) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 598 if (iCol == 3) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 599 if (iCol == 4) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 600 if (iCol == 5) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 601 if (iCol == 6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 602 if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1")); 603 if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6")); 604 if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0")); 605 if (iCol == 10) _staTable->setItem(iRow, iCol, new QTableWidgetItem(preferredAttributes)); 600 606 } 601 607 }
Note:
See TracChangeset
for help on using the changeset viewer.