Changeset 9560 in ntrip


Ignore:
Timestamp:
Dec 2, 2021, 5:18:27 PM (3 years ago)
Author:
stuerze
Message:

update regarding PPP

Location:
trunk/BNC/src/PPP
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/PPP/pppClient.cpp

    r9558 r9560  
    243243  return pseudoObsIono;
    244244}
     245
     246//
     247//////////////////////////////////////////////////////////////////////////////
     248void t_pppClient::useObsWithCodeBiasesOnly(std::vector<t_pppSatObs*>& obsVector) {
     249
     250  vector<t_pppSatObs*>::iterator it = obsVector.begin();
     251  while (it != obsVector.end()) {
     252    t_pppSatObs* pppSatObs = *it;
     253    char sys = pppSatObs->prn().system();
     254    bool codeBiasesAvailable = false;
     255    t_frequency::type fType1 = t_lc::toFreq(sys,t_lc::c1);
     256    t_frequency::type fType2 = t_lc::toFreq(sys,t_lc::c2);
     257    if (pppSatObs->getCodeBias(fType1) &&
     258        pppSatObs->getCodeBias(fType2)) {
     259      codeBiasesAvailable = true;
     260    }
     261    if (codeBiasesAvailable) {
     262      ++it;
     263    }
     264    else {
     265      it = obsVector.erase(it);
     266      delete pppSatObs;
     267    }
     268  }
     269
     270}
     271
    245272
    246273// Compute the Bancroft position, check for blunders
     
    637664      }
    638665
    639       if (int(_obsRover.size()) < _opt->_minObs) {
    640         LOG << "t_pppClient::processEpoch not enough observations" << endl;
    641         return finish(failure,5);
    642       }
    643 
    644666      if (_opt->_refSatRequired) {
    645667        if (handleRefSatellites(_obsRover) != success) {
     
    651673          continue;
    652674        }
     675      }
     676
     677      // Check if obs have code biases
     678      // -----------------------------
     679      if (OPT->_obsModelType == OPT->DCMcodeBias ||
     680          OPT->_obsModelType == OPT->DCMphaseBias) {
     681        useObsWithCodeBiasesOnly(_obsRover);
     682      }
     683
     684      if (int(_obsRover.size()) < _opt->_minObs) {
     685        LOG << "t_pppClient::processEpoch not enough observations" << endl;
     686        return finish(failure,5);
    653687      }
    654688
  • trunk/BNC/src/PPP/pppClient.h

    r9545 r9560  
    5757                   std::vector<t_pppSatObs*>& obsVector, bncTime& epoTime);
    5858  bool  preparePseudoObs(std::vector<t_pppSatObs*>& obsVector);
     59  void  useObsWithCodeBiasesOnly(std::vector<t_pppSatObs*>& obsVector);
    5960  t_irc cmpModel(t_pppStation* station, const ColumnVector& xyzc,
    6061                 std::vector<t_pppSatObs*>& obsVector);
  • trunk/BNC/src/PPP/pppSatObs.cpp

    r9559 r9560  
    6565  // Select pseudo-ranges and phase observations
    6666  // -------------------------------------------
    67   const string preferredAttrib = "G:12&W R:12&P E:1&CX E:5&QX C:26&I";
     67  string preferredAttrib = "G:12&WCPSLX R:12&PC E:1&CBX E:5&QIX C:26&IQX";
     68  if (OPT->_obsModelType == OPT->DCMcodeBias ||
     69      OPT->_obsModelType == OPT->DCMphaseBias) {
     70    // at the moment only one code or phase bias per system (G,E,C)/modulation considered,
     71    preferredAttrib = "G:12&W R:12&PC E:1&CX E:5&QX C:26&I";
     72  }
    6873
    6974  for (unsigned iFreq = 1; iFreq < t_frequency::max; iFreq++) {
     
    100105  }
    101106
    102   // Find Glonass Channel Number
     107  // Find GLONASS Channel Number
    103108  // ---------------------------
    104109  if (_prn.system() == 'R') {
     
    444449      _model._antPCO[ii]  = PPP_CLIENT->antex()->rcvCorr(station->antName(), frqType, _model._eleSat, _model._azSat, found);
    445450      _model._antPCO[ii] += PPP_CLIENT->antex()->satCorr(prn, frqType,  _model._elTx, _model._azTx, found);
    446       if (OPT->_isAPC) {
     451      if (OPT->_isAPC && found) {
    447452        // the PCOs as given in the satellite antenna correction for all frequencies
    448453        // have to be reduced by the PCO of the reference frequency
  • trunk/BNC/src/PPP/pppSatObs.h

    r9485 r9560  
    5050  void                setPseudoObsTropo();
    5151  double              getIonoCodeDelay(t_frequency::type freq) {return _model._ionoCodeDelay[freq];}
     52  double              getCodeBias(t_frequency::type freq) {return _model._codeBias[freq];}
    5253
    5354  // RINEX
Note: See TracChangeset for help on using the changeset viewer.