Changeset 8961 in ntrip


Ignore:
Timestamp:
Jun 29, 2020, 10:09:16 AM (3 months ago)
Author:
stuerze
Message:

PPP update: pseudo obs tropo added

Location:
trunk/BNC/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/pppInclude.h

    r8905 r8961  
    4242class t_lc {
    4343 public:
    44   enum type {dummy = 0, l1, l2, c1, c2, lIF, cIF, MW, CL, GIM, maxLc};
     44  enum type {dummy = 0, l1, l2, c1, c2, lIF, cIF, MW, CL, GIM, Tz0, maxLc};
    4545
    4646  static bool includesPhase(type tt) {
     
    5656    case cIF:
    5757      return false;
    58     case dummy: 
    59     case maxLc: 
     58    case dummy:
     59    case maxLc:
    6060    case GIM:
     61    case Tz0:
    6162      return false;
    6263    }
     
    7677    case lIF:
    7778      return false;
    78     case dummy: 
    79     case maxLc: 
     79    case dummy:
     80    case maxLc:
    8081    case GIM:
     82    case Tz0:
    8183      return false;
    8284    }
     
    100102    case lIF: case cIF: case MW: case CL:
    101103      return t_frequency::dummy;
    102     case dummy: 
    103     case maxLc: 
     104    case dummy:
     105    case maxLc:
    104106    case GIM:
     107    case Tz0:
    105108      return t_frequency::dummy;
    106109    }
     
    119122    case cIF: return "cIF";
    120123    case GIM: return "GIM";
    121     case dummy:
    122     case maxLc:
     124    case Tz0: return "Tz0";
     125    case dummy:
     126    case maxLc:
    123127      return "";
    124128    }
  • trunk/BNC/src/pppMain.cpp

    r8956 r8961  
    185185    opt->_obsModelType   = t_pppOptions::IF;
    186186    opt->_pseudoObsIono  = false;
     187    opt->_pseudoObsTropo = false;
    187188    opt->_refSatRequired = false;
    188189#ifdef USE_PPP
    189190    // Pseudo Observations
    190191    if      (settings.value("PPP/pseudoObs").toString() == "Ionosphere") {
    191       opt->_pseudoObsIono = true;
     192      opt->_pseudoObsIono  = true;
     193      opt->_pseudoObsTropo = false;
     194    }
     195    else if (settings.value("PPP/pseudoObs").toString() == "Iono+Tropo") {
     196      opt->_pseudoObsIono  = true;
     197      opt->_pseudoObsTropo = true;
    192198    }
    193199    else if (settings.value("PPP/pseudoObs").toString() == "no") {
    194       opt->_pseudoObsIono = false;
     200      opt->_pseudoObsIono  = false;
     201      opt->_pseudoObsTropo = false;
    195202    }
    196203    // Observation Model
    197204    if      (settings.value("PPP/modelObs").toString() == "Ionosphere-free PPP") {
    198205      opt->_obsModelType = t_pppOptions::IF;
    199       opt->_pseudoObsIono = false;
     206      opt->_pseudoObsIono  = false;
     207      opt->_pseudoObsTropo = false;
    200208    }
    201209    else if (settings.value("PPP/modelObs").toString() == "PPP-RTK") {
    202210      opt->_obsModelType = t_pppOptions::PPPRTK;
    203       opt->_pseudoObsIono = false;
     211      opt->_pseudoObsIono  = false;
     212      opt->_pseudoObsTropo = false;
    204213    }
    205214    else if (settings.value("PPP/modelObs").toString() == "Uncombined PPP") {
     
    229238          opt->_LCsGPS.push_back(t_lc::GIM);
    230239        }
     240        if (opt->_pseudoObsTropo) {
     241          opt->_LCsGPS.push_back(t_lc::Tz0);
     242        }
    231243      }
    232244    }
     
    240252        if (opt->_pseudoObsIono) {
    241253          opt->_LCsGPS.push_back(t_lc::GIM);
     254        }
     255        if (opt->_pseudoObsTropo) {
     256          opt->_LCsGPS.push_back(t_lc::Tz0);
    242257        }
    243258      }
     
    256271          opt->_LCsGPS.push_back(t_lc::GIM);
    257272        }
     273        if (opt->_pseudoObsTropo) {
     274          opt->_LCsGPS.push_back(t_lc::Tz0);
     275        }
    258276      }
    259277    }
     
    268286        if (opt->_pseudoObsIono) {
    269287          opt->_LCsGLONASS.push_back(t_lc::GIM);
     288        }
     289        if (opt->_pseudoObsTropo) {
     290          opt->_LCsGPS.push_back(t_lc::Tz0);
    270291        }
    271292      }
     
    281302          opt->_LCsGLONASS.push_back(t_lc::GIM);
    282303        }
     304        if (opt->_pseudoObsTropo) {
     305          opt->_LCsGPS.push_back(t_lc::Tz0);
     306        }
    283307      }
    284308    }
     
    296320          opt->_LCsGLONASS.push_back(t_lc::GIM);
    297321        }
     322        if (opt->_pseudoObsTropo) {
     323          opt->_LCsGPS.push_back(t_lc::Tz0);
     324        }
    298325      }
    299326    }
     
    309336          opt->_LCsGalileo.push_back(t_lc::GIM);
    310337        }
     338        if (opt->_pseudoObsTropo) {
     339          opt->_LCsGPS.push_back(t_lc::Tz0);
     340        }
    311341      }
    312342    }
     
    320350        if (opt->_pseudoObsIono) {
    321351          opt->_LCsGalileo.push_back(t_lc::GIM);
     352        }
     353        if (opt->_pseudoObsTropo) {
     354          opt->_LCsGPS.push_back(t_lc::Tz0);
    322355        }
    323356      }
     
    336369          opt->_LCsGalileo.push_back(t_lc::GIM);
    337370        }
     371        if (opt->_pseudoObsTropo) {
     372          opt->_LCsGPS.push_back(t_lc::Tz0);
     373        }
    338374      }
    339375    }
     
    349385          opt->_LCsBDS.push_back(t_lc::GIM);
    350386        }
     387        if (opt->_pseudoObsTropo) {
     388          opt->_LCsGPS.push_back(t_lc::Tz0);
     389        }
    351390      }
    352391    }
     
    360399        if (opt->_pseudoObsIono) {
    361400          opt->_LCsBDS.push_back(t_lc::GIM);
     401        }
     402        if (opt->_pseudoObsTropo) {
     403          opt->_LCsGPS.push_back(t_lc::Tz0);
    362404        }
    363405      }
     
    375417        if (opt->_pseudoObsIono) {
    376418          opt->_LCsBDS.push_back(t_lc::GIM);
     419        }
     420        if (opt->_pseudoObsTropo) {
     421          opt->_LCsGPS.push_back(t_lc::Tz0);
    377422        }
    378423      }
     
    417462    opt->_aprSigPhaseBias = 1000.0;
    418463    // TODO: Find realistic values!!!!!!
    419     opt->_noiseIon        = 10.0;
     464    opt->_noiseIon        = 1.00;
    420465    opt->_noiseCodeBias   = 1.00;
    421466    opt->_noisePhaseBias  = 5.00;
    422     opt->_sigmaGIMdiff    = 2.00; //pseudo observation GIM: STEC(ref_sat) - STEC(sat)
     467    // pseudo observations
     468    opt->_sigmaGIMdiff    = 2.00; // Todo: add to bncWindow
     469    opt->_sigmaTz0        = 0.10;
    423470
    424471    _options << opt;
  • trunk/BNC/src/pppOptions.h

    r8905 r8961  
    5353  double                  _maxResL1;
    5454  double                  _sigmaGIMdiff;
    55   double                  _maxResGIMdiff;
     55  double                  _sigmaTz0;
    5656  bool                    _eleWgtCode;
    5757  bool                    _eleWgtPhase;
     
    7777  std::vector<t_lc::type> _LCsBDS;
    7878  bool                    _pseudoObsIono;
     79  bool                    _pseudoObsTropo;
    7980  bool                    _refSatRequired;
    8081};
  • trunk/BNC/src/pppWidgets.cpp

    r8905 r8961  
    155155#else
    156156  _modelObs->addItems(QString("Ionosphere-free PPP,Uncombined PPP,PPP-RTK,DCM with Code Biases,DCM with Phase Biases").split(","));
    157   _pseudoObs->addItems(QString("no,Ionosphere").split(","));
     157  _pseudoObs->addItems(QString("no,Ionosphere,Iono+Tropo").split(","));
    158158#endif
    159159
Note: See TracChangeset for help on using the changeset viewer.