Changeset 9485 in ntrip for trunk/BNC/src


Ignore:
Timestamp:
Jul 20, 2021, 10:41:07 PM (3 years ago)
Author:
stuerze
Message:

minor changes

Location:
trunk/BNC/src
Files:
4 edited

Legend:

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

    r9473 r9485  
    397397  _model._azSat  = atan2(neu[1], neu[0]);
    398398
     399  // Sun unit vector
     400  ColumnVector xSun = t_astro::Sun(_time.mjddec());
     401  xSun /= xSun.norm_Frobenius();
     402
     403  // Satellite unit vectors sz, sy, sx
     404  ColumnVector sz = -rSat / rSat.norm_Frobenius();
     405  ColumnVector sy = crossproduct(sz, xSun);
     406  ColumnVector sx = crossproduct(sy, sz);
     407
     408  sx /= sx.norm_Frobenius();
     409  sy /= sy.norm_Frobenius();
     410
     411  // LOS unit vector satellite --> receiver
     412  ColumnVector rho = rRec - rSat;
     413  rho /= rho.norm_Frobenius();
     414
     415  // LOS vector in satellite frame
     416  ColumnVector u(3);
     417  u(1) = dotproduct(sx, rho);
     418  u(2) = dotproduct(sy, rho);
     419  u(3) = dotproduct(sz, rho);
     420
     421  // Azimuth and elevation in satellite antenna frame
     422  _model._elTx = atan2(u(3),sqrt(pow(u(2),2)+pow(u(1),2)));
     423  _model._azTx = atan2(u(2),u(1));
     424
     425
    399426  // Satellite Clocks
    400427  // ----------------
     
    423450      t_frequency::type frqType = static_cast<t_frequency::type>(ii);
    424451      bool found;
    425       _model._antPCO[ii] = PPP_CLIENT->antex()->rcvCorr(station->antName(), frqType,
    426                                                         _model._eleSat, _model._azSat, found);
     452      QString prn(_prn.toString().c_str());
     453      _model._antPCO[ii]  = PPP_CLIENT->antex()->rcvCorr(station->antName(), frqType, _model._eleSat, _model._azSat, found);
     454      _model._antPCO[ii] += PPP_CLIENT->antex()->satCorr(prn, frqType,  _model._elTx, _model._azTx, found);
     455      if (OPT->_isAPC) {
     456        // the PCOs as given in the satellite antenna correction for all frequencies
     457        // have to be reduced by the PCO of the reference frequency
     458        if      (_prn.system() == 'G') {
     459          _model._antPCO[ii] -= PPP_CLIENT->antex()->satCorr(prn, t_frequency::G1, _model._elTx, _model._azTx, found);
     460        }
     461        else if (_prn.system() == 'R') {
     462          _model._antPCO[ii] -= PPP_CLIENT->antex()->satCorr(prn, t_frequency::R1, _model._elTx, _model._azTx, found);
     463        }
     464        else if (_prn.system() == 'E') {
     465          _model._antPCO[ii] -= PPP_CLIENT->antex()->satCorr(prn, t_frequency::E1, _model._elTx, _model._azTx, found);
     466        }
     467        else if (_prn.system() == 'C') {
     468          _model._antPCO[ii] -= PPP_CLIENT->antex()->satCorr(prn, t_frequency::C2, _model._elTx, _model._azTx, found);
     469        }
     470      }
    427471    }
    428472  }
  • trunk/BNC/src/PPP/pppSatObs.h

    r9419 r9485  
    9292      _eleSat    = 0.0;
    9393      _azSat     = 0.0;
     94      _elTx      = 0.0;
     95      _azTx      = 0.0;
    9496      _recClkM   = 0.0;
    9597      _satClkM   = 0.0;
     
    113115    double _eleSat;
    114116    double _azSat;
     117    double _elTx;
     118    double _azTx;
    115119    double _recClkM;
    116120    double _satClkM;
  • trunk/BNC/src/PPP_SSR_I/pppFilter.cpp

    r9481 r9485  
    386386
    387387    // Sun unit vector
    388     ColumnVector xSun = t_astro::Sun(satData->tt.mjd());
     388    ColumnVector xSun = t_astro::Sun(satData->tt.mjddec());
    389389    xSun /= xSun.norm_Frobenius();
    390390
  • trunk/BNC/src/pppWidgets.cpp

    r9443 r9485  
    206206  // WhatsThis, PPP (2)
    207207  // ------------------
    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.</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 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>"));
    209209
    210210  // WhatsThis, PPP (3)
     
    583583     if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1"));
    584584     if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6"));
    585      if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.10"));
     585     if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("6e-4"));
    586586     if (iCol == 10) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0"));
    587587  }
Note: See TracChangeset for help on using the changeset viewer.