Changeset 9558 in ntrip


Ignore:
Timestamp:
Dec 1, 2021, 3:31:33 PM (2 years ago)
Author:
stuerze
Message:

update regarding PPP: clock offsets removed, system clocks intruduced

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

Legend:

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

    r9552 r9558  
    653653      }
    654654
    655       _offGR = cmpOffGR(_obsRover);
    656       _offGE = cmpOffGE(_obsRover);
    657       _offGC = cmpOffGC(_obsRover);
    658 
    659655      // Prepare Pseudo Observations of the Rover
    660656      // ----------------------------------------
  • trunk/BNC/src/PPP/pppParlist.cpp

    r9551 r9558  
    6262     _noise   = OPT->_noiseCrd[2];
    6363     break;
    64    case clkR:
     64   case rClkG:
     65     _epoSpec = true;
     66     _sigma0  = OPT->_aprSigClk;
     67     break;
     68   case rClkR:
     69     _epoSpec = true;
     70     _sigma0  = OPT->_aprSigClk;
     71     break;
     72   case rClkE:
     73     _epoSpec = true;
     74     _sigma0  = OPT->_aprSigClk;
     75     break;
     76   case rClkC:
    6577     _epoSpec = true;
    6678     _sigma0  = OPT->_aprSigClk;
     
    7486         const t_pppSatObs* obs = obsVector->at(ii);
    7587         if (obs->prn() == _prn) {
    76            double offGR = 0;
    77            if (_prn.system() == 'R' && tLC != t_lc::MW) {
    78              offGR = PPP_CLIENT->offGR();
    79            }
    80            double offGE = 0;
    81            if (_prn.system() == 'E' && tLC != t_lc::MW) {
    82              offGE = PPP_CLIENT->offGE();
    83            }
    84            double offGC = 0;
    85            if (_prn.system() == 'C' && tLC != t_lc::MW) {
    86              offGC = PPP_CLIENT->offGC();
    87            }
    88            _x0 = floor((obs->obsValue(tLC) - offGR -offGE - offGC - obs->cmpValue(tLC)) / obs->lambda(tLC) + 0.5);
     88           _x0 = floor((obs->obsValue(tLC) - obs->cmpValue(tLC)) / obs->lambda(tLC) + 0.5);
    8989           break;
    9090         }
    9191       }
    9292     }
    93      break;
    94    case offGR:
    95      _epoSpec = true;
    96      _sigma0  = OPT->_aprSigOGR;
    97      _x0      = PPP_CLIENT->offGR();
    98      break;
    99    case offGE:
    100      _epoSpec = true;
    101      _sigma0  = OPT->_aprSigOGE;
    102      _x0      = PPP_CLIENT->offGE();
    103      break;
    104    case offGC:
    105      _epoSpec = true;
    106      _sigma0  = OPT->_aprSigOGC;
    107      _x0      = PPP_CLIENT->offGC();
    10893     break;
    10994   case trp:
     
    123108     _noise   = OPT->_noiseCodeBias;
    124109     break;
    125    case pBiasG1:   case pBiasE1:   case pBiasR1:   case pBiasC1:
    126    case pBiasG2:   case pBiasE2:   case pBiasR2:   case pBiasC2:
     110   case pBiasG1:   case pBiasE1:   case pBiasC1:
     111   case pBiasG2:   case pBiasE2:   case pBiasC2:
    127112     _epoSpec = false;
    128113     _sigma0  = OPT->_aprSigPhaseBias;
     
    191176    if (tLC == t_lc::GIM) {return 0.0;}
    192177    return (sta->xyzApr()[2] - obs->xc()[2]) / rhoV.NormFrobenius();
    193   case clkR:
     178  case rClkG:
    194179    if (tLC == t_lc::GIM) {return 0.0;}
    195     return 1.0;
    196   case offGR:
     180    return (obs->prn().system() == 'G') ? 1.0 : 0.0;
     181  case rClkR:
    197182    if (tLC == t_lc::GIM) {return 0.0;}
    198183    return (obs->prn().system() == 'R') ? 1.0 : 0.0;
    199   case offGE:
     184  case rClkE:
    200185    if (tLC == t_lc::GIM) {return 0.0;}
    201186    return (obs->prn().system() == 'E') ? 1.0 : 0.0;
    202   case offGC:
     187  case rClkC:
    203188    if (tLC == t_lc::GIM) {return 0.0;}
    204189    return (obs->prn().system() == 'C') ? 1.0 : 0.0;
     
    285270    if ((obs->prn().system() == 'G') && (tLC == t_lc::l1)) {return 1.0;} else {return 0.0;}
    286271    break;
    287   case pBiasR1:
    288     if ((obs->prn().system() == 'R') && (tLC == t_lc::l1)) {return 1.0;} else {return 0.0;}
    289     break;
    290272  case pBiasE1:
    291273    if ((obs->prn().system() == 'E') && (tLC == t_lc::l1)) {return 1.0;} else {return 0.0;}
     
    296278  case pBiasG2:
    297279    if ((obs->prn().system() == 'G') && (tLC == t_lc::l2)) {return 1.0;} else {return 0.0;}
    298     break;
    299   case pBiasR2:
    300     if ((obs->prn().system() == 'R') && (tLC == t_lc::l2)) {return 1.0;} else {return 0.0;}
    301280    break;
    302281  case pBiasE2:
     
    325304    ss << "CRD_Z";
    326305    break;
    327   case clkR:
    328     ss << "REC_CLK     ";
    329     break;
    330   case offGR:
    331     ss << "OGR         ";
    332     break;
    333   case offGE:
    334     ss << "OGE         ";
    335     break;
    336   case offGC:
    337     ss << "OGC         ";
     306  case rClkG:
     307    ss << "REC_CLK  G  ";
     308    break;
     309  case rClkR:
     310    ss << "REC_CLK  R  ";
     311    break;
     312  case rClkE:
     313    ss << "REC_CLK  E  ";
     314    break;
     315  case rClkC:
     316    ss << "REC_CLK  C  ";
    338317    break;
    339318  case trp:
     
    350329    ss << "BIA  " << left << setw(3) << t_lc::toString(_tLC) << right << " G  ";
    351330    break;
    352   case cBiasR1:  case pBiasR1:
    353   case cBiasR2:  case pBiasR2:
     331  case cBiasR1:
     332  case cBiasR2:
    354333    ss << "BIA  " << left << setw(3) << t_lc::toString(_tLC) << right << " R  ";
    355334    break;
     
    485464    }
    486465  }
    487 
    488   if (_usedSystems.size() > 1 &&
    489       !_usedSystems.contains('G')) { // required to setup ISB w. r. t. GPS
    490     return failure;
    491   }
    492 
    493 
    494466
    495467  // Check whether parameters have observations
     
    548520      }
    549521      else if ((par->type() == t_pppParam::cBiasR1 ||
    550                 par->type() == t_pppParam::cBiasR2 ||
    551                 par->type() == t_pppParam::pBiasR1 ||
    552                 par->type() == t_pppParam::pBiasR2) && !usedSystems().contains('R')) {
     522                par->type() == t_pppParam::cBiasR2) && !usedSystems().contains('R')) {
    553523#ifdef BNC_DEBUG_PPP
    554524        LOG << "remove1 " << par->toString() << std::endl;
     
    667637      }
    668638    }
    669     if (_usedSystems.contains('R')) {
    670       lc = OPT->LCs('R');
    671       if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
    672         required.push_back(new t_pppParam(t_pppParam::pBiasR1, t_prn(), t_lc::l1));
    673       }
    674       if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
    675         required.push_back(new t_pppParam(t_pppParam::pBiasR2, t_prn(), t_lc::l2));
    676       }
    677     }
    678639    if (_usedSystems.contains('E')) {
    679640      lc = OPT->LCs('E');
     
    696657  }
    697658
    698   // Receiver Clock
    699   // --------------
    700   required.push_back(new t_pppParam(t_pppParam::clkR, t_prn(), t_lc::dummy));
     659  // Receiver Clocks
     660  // ---------------
    701661
    702662  // GPS-GLONASS Clock Offset
    703   // ------------------------
    704   if (_usedSystems.contains('G') && _usedSystems.contains('R')) {
    705     required.push_back(new t_pppParam(t_pppParam::offGR, t_prn(), t_lc::dummy));
    706   }
    707 
    708   //GPS-Galileo Clock Offset
    709   // ------------------------
    710   if (_usedSystems.contains('G') && _usedSystems.contains('E')) {
    711     required.push_back(new t_pppParam(t_pppParam::offGE, t_prn(), t_lc::dummy));
    712   }
    713 
    714   // GPS-BDS Clock Offset
    715   // ------------------------
    716   if (_usedSystems.contains('G') && _usedSystems.contains('C')) {
    717     required.push_back(new t_pppParam(t_pppParam::offGC, t_prn(), t_lc::dummy));
    718   }
     663   // ------------------------
     664   if (_usedSystems.contains('G')) {
     665     required.push_back(new t_pppParam(t_pppParam::rClkG, t_prn(), t_lc::dummy));
     666   }
     667
     668   if (_usedSystems.contains('R')) {
     669     required.push_back(new t_pppParam(t_pppParam::rClkR, t_prn(), t_lc::dummy));
     670   }
     671
     672   if (_usedSystems.contains('E')) {
     673     required.push_back(new t_pppParam(t_pppParam::rClkE, t_prn(), t_lc::dummy));
     674   }
     675
     676   if (_usedSystems.contains('C')) {
     677     required.push_back(new t_pppParam(t_pppParam::rClkC, t_prn(), t_lc::dummy));
     678   }
    719679
    720680  // Troposphere
  • trunk/BNC/src/PPP/pppParlist.h

    r9527 r9558  
    1515class t_pppParam {
    1616 public:
    17   enum e_type {crdX, crdY, crdZ, clkR, trp, ion, amb, offGR, offGE, offGC,
    18                cBiasG1, cBiasR1, cBiasE1, cBiasC1, pBiasG1, pBiasR1, pBiasE1, pBiasC1,
    19                cBiasG2, cBiasR2, cBiasE2, cBiasC2, pBiasG2, pBiasR2, pBiasE2, pBiasC2};
     17  enum e_type {crdX, crdY, crdZ, rClkG, rClkR, rClkE, rClkC, trp, ion, amb,
     18               cBiasG1, cBiasR1, cBiasE1, cBiasC1, pBiasG1, pBiasE1, pBiasC1,
     19               cBiasG2, cBiasR2, cBiasE2, cBiasC2, pBiasG2, pBiasE2, pBiasC2};
    2020
    2121  t_pppParam(e_type type, const t_prn& prn, t_lc::type tLC, const std::vector<t_pppSatObs*>* obsVector = 0);
Note: See TracChangeset for help on using the changeset viewer.