Changeset 9556 in ntrip for trunk/BNC/src
- Timestamp:
- Nov 30, 2021, 1:09:49 PM (3 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppFilter.cpp
r9548 r9556 260 260 } 261 261 } 262 } 263 264 // Check number of observations 265 // ---------------------------- 266 if (iObs == -1) {LOG << "iObs == -1\n"; 267 return failure; 268 } 269 if (OPT->_obsModelType == OPT->DCMcodeBias || 270 OPT->_obsModelType == OPT->DCMphaseBias || 271 OPT->_pseudoObsIono) { 272 double numSat = floor(iObs/2.0); 273 if (numSat < 2.0) { 274 LOG << sys << ": numsat " << numSat << " but at least 2 satellites would be required" << endl; 275 return failure; 276 } 262 277 } 263 278 … … 294 309 } 295 310 296 // Check number of observations, truncate matrices 297 // ----------------------------------------------- 298 if (iObs == -1) {LOG << "iObs == -1\n"; 299 return failure; 300 } 311 // Truncate matrices 312 // ----------------- 301 313 AA = AA.Rows(1, iObs+1); 302 314 ll = ll.Rows(1, iObs+1); … … 330 342 t_pppSatObs* obs = usedObs[maxOutlierIndex]; 331 343 t_pppParam* par = 0; 332 LOG << epoTimeStr << " Outlier ("333 << ((preProcessing) ? "pre-processing) " : "fin-processing) ") << t_lc::toString(maxOutlierLC) << ' '334 << obs->prn().toString() << ' '335 << setw(8) << setprecision(4) << maxOutlier << endl;336 344 for (unsigned iPar = 0; iPar < nPar; iPar++) { 337 345 t_pppParam* hlp = params[iPar]; … … 348 356 t_lc::toString(maxOutlierLC) == "l2") ) { 349 357 _obsPool->setRefSatChangeRequired(sys, true); 358 LOG << epoTimeStr << " Outlier (" 359 << ((preProcessing) ? "pre-processing) " : "fin-processing) ") << t_lc::toString(maxOutlierLC) << ' ' 360 << obs->prn().toString() << ' ' << setw(8) << setprecision(4) << maxOutlier << endl; 350 361 break; 351 362 } … … 353 364 if (par) { 354 365 par->setAmbResetCandidate(); 355 obs->setOutlier();356 }357 else {358 obs->setOutlier();359 366 } 360 367 } 361 368 } 362 369 else {// fin-processing 370 LOG << epoTimeStr << " Outlier " << t_lc::toString(maxOutlierLC) << ' ' 371 << obs->prn().toString() << ' ' << setw(8) << setprecision(4) << maxOutlier << endl; 363 372 if (par) { 364 373 if (par->ambResetCandidate()) { -
trunk/BNC/src/PPP/pppSatObs.cpp
r9554 r9556 348 348 retVal = sqrt(retVal); 349 349 350 return retVal; 350 // Elevation-Dependent Weighting 351 // ----------------------------- 352 double cEle = 1.0; 353 if ( (OPT->_eleWgtCode && t_lc::includesCode(tLC)) || 354 (OPT->_eleWgtPhase && t_lc::includesPhase(tLC)) ) { 355 double eleD = eleSat()*180.0/M_PI; 356 double hlp = fabs(90.0 - eleD); 357 cEle = (1.0 + hlp*hlp*hlp*0.000004); 358 } 359 360 return cEle * retVal; 351 361 } 352 362 -
trunk/BNC/src/pppMain.cpp
r9554 r9556 143 143 QStringList hlp = iSta.next().split(","); 144 144 145 if (hlp.size() < 1 0) {145 if (hlp.size() < 11) { 146 146 throw t_except("pppMain: wrong option staTable"); 147 147 } … … 181 181 opt->_sigmaC1 = settings.value("PPP/sigmaC1").toDouble(); if (opt->_sigmaC1 <= 0.0) opt->_sigmaC1 = 1.00; 182 182 opt->_sigmaL1 = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0) opt->_sigmaL1 = 0.01; 183 opt->_sigmaGIM = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 4.00;183 opt->_sigmaGIM = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 5.00; 184 184 opt->_corrWaitTime = settings.value("PPP/corrWaitTime").toDouble(); 185 185 if (!_realTime || opt->_corrMount.empty()) { … … 215 215 opt->_obsModelType = t_pppOptions::DCMcodeBias; 216 216 opt->_refSatRequired = true; 217 opt->_noiseCodeBias = 1 e4;217 opt->_noiseCodeBias = 1000.0; 218 218 } 219 219 else if (settings.value("PPP/modelObs").toString() == "DCM with Phase Biases") { 220 220 opt->_obsModelType = t_pppOptions::DCMphaseBias; 221 221 opt->_refSatRequired = true; 222 opt->_noisePhaseBias = 1 e4;222 opt->_noisePhaseBias = 1000.0; 223 223 } 224 224 #endif … … 416 416 // Some default values 417 417 // ------------------- 418 opt->_aprSigAmb = 1 e4;419 opt->_aprSigIon = 1 e4;420 opt->_aprSigClk = 3e5;421 opt->_aprSigOGR = 1 e4;422 opt->_aprSigOGE = 1 e4;423 opt->_aprSigOGC = 1 e4;424 opt->_aprSigCodeBias = 1 e4;425 opt->_aprSigPhaseBias = 1 e4;418 opt->_aprSigAmb = 1000.0; 419 opt->_aprSigIon = 1000.0; 420 opt->_aprSigClk = 1000.0; 421 opt->_aprSigOGR = 1000.0; 422 opt->_aprSigOGE = 1000.0; 423 opt->_aprSigOGC = 1000.0; 424 opt->_aprSigCodeBias = 1000.0; 425 opt->_aprSigPhaseBias = 1000.0; 426 426 427 427 _options << opt; -
trunk/BNC/src/pppWidgets.cpp
r9552 r9556 206 206 // WhatsThis, PPP (2) 207 207 // ------------------ 208 _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.</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><li>Specify a Noise to describe the expected variation of the ionospheric effect over time. Supposing 1Hz observation data, specifying a value of 6e-4 would mean that the ionospheric effect may vary 1800 * 5.5e-4 = 1.0 meters per half an hour.</li></ul></p><p>You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host. <i>[key: PPP/staTable]</i></p>"));208 _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.</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><li>Specify a Noise to describe the expected variation of the ionospheric effect over time. Supposing 1Hz observation data, specifying a value of 0.1 would ba an apropriate choice.</li></ul></p><p>You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host. <i>[key: PPP/staTable]</i></p>")); 209 209 210 210 // WhatsThis, PPP (3) … … 580 580 if (iCol == 5) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 581 581 if (iCol == 6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); 582 if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0. 1"));583 if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem(" 3e-6"));584 if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem(" 6e-4"));582 if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.05")); 583 if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("5e-5")); 584 if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1")); 585 585 if (iCol == 10) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0")); 586 586 }
Note:
See TracChangeset
for help on using the changeset viewer.