Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Friends | List of all members
gnsstk::ObsRngDev Class Reference

Detailed Description

A single (one observation from one sv), Observed Range Deviation (ORD). It contains all of the parameters that define an ORD and includes metadata on ORD computation such as SV position and health.

Definition at line 73 of file ObsRngDev.hpp.

#include <ObsRngDev.hpp>

Public Member Functions

void applyClockOffset (double clockOffset)
 
vfloat getAzimuth () const noexcept
 
vfloat getElevation () const noexcept
 
vshort getHealth () const noexcept
 
vshort getIODC () const noexcept
 
vdouble getIono () const noexcept
 
double getORD () const noexcept
 
SatID getSvID () const noexcept
 
const CommonTimegetTime () const noexcept
 
vdouble getTrop () const noexcept
 
 ObsRngDev () noexcept
 
 ObsRngDev (const double prange, const SatID &svid, const CommonTime &time, const Position &rxpos, NavLibrary &navLib, EllipsoidModel &em, bool svTime=false, NavSearchOrder order=NavSearchOrder::User, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
 ObsRngDev (const double prange, const SatID &svid, const CommonTime &time, const Position &rxpos, NavLibrary &navLib, EllipsoidModel &em, const IonoModelStore &ion, CarrierBand band, bool svTime=false, NavSearchOrder order=NavSearchOrder::User, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
 ObsRngDev (const double prange, const SatID &svid, const CommonTime &time, const Position &rxpos, NavLibrary &navLib, EllipsoidModel &em, const TropModel &tm, bool svTime=false, NavSearchOrder order=NavSearchOrder::User, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
 ObsRngDev (const double prange, const SatID &svid, const CommonTime &time, const Position &rxpos, NavLibrary &navLib, EllipsoidModel &em, const TropModel &tm, const IonoModelStore &ion, CarrierBand band, bool svTime=false, NavSearchOrder order=NavSearchOrder::User, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
 ObsRngDev (const double prange1, const double prange2, const SatID &svid, const CommonTime &time, const Position &rxpos, NavLibrary &navLib, const EllipsoidModel &em, const TropModel &tm, bool svTime=false, double gamma=GAMMA_GPS, NavSearchOrder order=NavSearchOrder::User, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
 ObsRngDev (const double prange1, const double prange2, const SatID &svid, const CommonTime &time, const Position &rxpos, NavLibrary &navLib, EllipsoidModel &em, bool svTime=false, double gamma=GAMMA_GPS, NavSearchOrder order=NavSearchOrder::User, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
virtual ~ObsRngDev () noexcept
 destructor More...
 

Public Attributes

vfloat azimuth
 SV azimuth. More...
 
vfloat elevation
 SV elevation. More...
 
vshort health
 SV health bitfield. More...
 
vshort iodc
 ephemeris IODC More...
 
vdouble iono
 iono correction (meters) More...
 
CommonTime obstime
 time of SV observation More...
 
double ord
 difference between expected and observed range More...
 
vdouble rho
 expected geometric range More...
 
SatID svid
 PRN number of observed SV. More...
 
vdouble trop
 trop correction (meters) More...
 
unsigned wonky
 A bitmask defined by the application to flag questionable data. More...
 

Static Public Attributes

static GNSSTK_EXPORT bool debug =false
 

Private Member Functions

void computeOrd (double obs, const Position &rxpos, NavLibrary &navLib, const EllipsoidModel &em, bool svTime, NavSearchOrder order, SVHealth xmitHealth, NavValidityType valid)
 
void computeOrdRx (double obs, const Position &rxpos, NavLibrary &navLib, const EllipsoidModel &em, NavSearchOrder order, SVHealth xmitHealth, NavValidityType valid)
 
void computeOrdTx (double obs, const Position &rxpos, NavLibrary &navLib, const EllipsoidModel &em, NavSearchOrder order, SVHealth xmitHealth, NavValidityType valid)
 
void computeTrop (const TropModel &tm)
 

Friends

std::ostream & operator<< (std::ostream &s, const ObsRngDev &r) noexcept
 

Constructor & Destructor Documentation

◆ ObsRngDev() [1/7]

gnsstk::ObsRngDev::ObsRngDev ( )
inlinenoexcept

default constructor. Creates an empty, useless object to facilitate STL containers of this object.

Definition at line 82 of file ObsRngDev.hpp.

◆ ObsRngDev() [2/7]

gnsstk::ObsRngDev::ObsRngDev ( const double  prange,
const SatID svid,
const CommonTime time,
const Position rxpos,
NavLibrary navLib,
EllipsoidModel em,
bool  svTime = false,
NavSearchOrder  order = NavSearchOrder::User,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Creates an ORD, with no ionospheric correction and a default trop correction.

Parameters
[in]prangeThe observed pseudorange
[in]svidThe SV being observed
[in]timeThe time of the observation
[in]rxposThe earth-centered, earth-fixed receiver position
[in]navLibA store of either broadcast or precise ephemerides
[in]emAn EllipsoidModel for performing range calculations
[in]svTimeTrue if prange is in SV time, false for RX time.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
[in]xmitHealthThe desired health status of the satellite transmitting the nav data.
[in]validSpecify whether to search only for valid or invalid messages, or both.

Definition at line 58 of file ObsRngDev.cpp.

◆ ObsRngDev() [3/7]

gnsstk::ObsRngDev::ObsRngDev ( const double  prange,
const SatID svid,
const CommonTime time,
const Position rxpos,
NavLibrary navLib,
EllipsoidModel em,
const IonoModelStore ion,
CarrierBand  band,
bool  svTime = false,
NavSearchOrder  order = NavSearchOrder::User,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Creates an ORD, applies a single-frequency nav-message based ionospheric correction and a default trop correction.

Parameters
[in]prangeThe observed pseudorange
[in]svidThe PRN number of the observed SV
[in]timeThe time of the observation
[in]rxposThe earth-centered, earth-fixed receiver position
[in]navLibA store of either broadcast or precise ephemerides
[in]emAn EllipsoidModel for performing range calculations
[in]ionA store of nav based ionospheric models
[in]fqThe GPS band (L1, L2, L5) from which the obs was made
[in]svTimeTrue if prange is in SV time, false for RX time.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
[in]xmitHealthThe desired health status of the satellite transmitting the nav data.
[in]validSpecify whether to search only for valid or invalid messages, or both.

Definition at line 80 of file ObsRngDev.cpp.

◆ ObsRngDev() [4/7]

gnsstk::ObsRngDev::ObsRngDev ( const double  prange,
const SatID svid,
const CommonTime time,
const Position rxpos,
NavLibrary navLib,
EllipsoidModel em,
const TropModel tm,
bool  svTime = false,
NavSearchOrder  order = NavSearchOrder::User,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Creates an ORD, applies no ionospheric correction and a user-specified trop correction.

Parameters
[in]prangeThe observed pseudorange
[in]svidThe PRN number of the observed SV
[in]timeThe time of the observation
[in]rxposThe earth-centered, earth-fixed receiver position
[in]navLibA store of either broadcast or precise ephemerides
[in]emAn EllipsoidModel for performing range calculations
[in]tmA TropModel for performing trop calculation
[in]svTimeTrue if prange is in SV time, false for RX time.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
[in]xmitHealthThe desired health status of the satellite transmitting the nav data.
[in]validSpecify whether to search only for valid or invalid messages, or both.

Definition at line 106 of file ObsRngDev.cpp.

◆ ObsRngDev() [5/7]

gnsstk::ObsRngDev::ObsRngDev ( const double  prange,
const SatID svid,
const CommonTime time,
const Position rxpos,
NavLibrary navLib,
EllipsoidModel em,
const TropModel tm,
const IonoModelStore ion,
CarrierBand  band,
bool  svTime = false,
NavSearchOrder  order = NavSearchOrder::User,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Creates an ORD, applies a single-frequency nav-message based ionospheric correction and a user-specified trop correction.

Parameters
[in]prangeThe observed pseudorange
[in]svidThe PRN number of the observed SV
[in]timeThe time of the observation
[in]rxposThe earth-centered, earth-fixed receiver position
[in]navLibA store of either broadcast or precise ephemerides
[in]emAn EllipsoidModel for performing range calculations
[in]tmA TropModel for performing trop calculation
[in]ionA store of nav based ionospheric models
[in]fqThe GPS band (L1, L2, L5) from which the obs was made
[in]svTimeTrue if prange is in SV time, false for RX time.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
[in]xmitHealthThe desired health status of the satellite transmitting the nav data.
[in]validSpecify whether to search only for valid or invalid messages, or both.

Definition at line 124 of file ObsRngDev.cpp.

◆ ObsRngDev() [6/7]

gnsstk::ObsRngDev::ObsRngDev ( const double  prange1,
const double  prange2,
const SatID svid,
const CommonTime time,
const Position rxpos,
NavLibrary navLib,
EllipsoidModel em,
bool  svTime = false,
double  gamma = GAMMA_GPS,
NavSearchOrder  order = NavSearchOrder::User,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Creates an ORD, applies a dual-frequency ionospheric correction and a default trop correction.

Parameters
[in]prange1The observed pseudorange on the first carrier
[in]prange2The observed pseudorange on the second carrier
[in]svidThe PRN number of the observed SV
[in]timeThe time of the observation
[in]rxposThe earth-centered, earth-fixed receiver position
[in]navLibA store of either broadcast or precise ephemerides
[in]emAn EllipsoidModel for performing range calculations
[in]svTimeTrue if prange is in SV time, false for RX time.
[in]gammaThe value of gamma: $\gamma_{12} = (f_{L1}/f_{L2})^2$
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
[in]xmitHealthThe desired health status of the satellite transmitting the nav data.
[in]validSpecify whether to search only for valid or invalid messages, or both.

Definition at line 149 of file ObsRngDev.cpp.

◆ ObsRngDev() [7/7]

gnsstk::ObsRngDev::ObsRngDev ( const double  prange1,
const double  prange2,
const SatID svid,
const CommonTime time,
const Position rxpos,
NavLibrary navLib,
const EllipsoidModel em,
const TropModel tm,
bool  svTime = false,
double  gamma = GAMMA_GPS,
NavSearchOrder  order = NavSearchOrder::User,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Creates an ORD, applies a dual-frequency ionospheric correction and a user-specified trop correction.

Parameters
[in]prange1The observed pseudorange on the first carrier
[in]prange2The observed pseudorange on the second carrier
[in]svidThe PRN number of the observed SV
[in]timeThe time of the observation
[in]rxposThe earth-centered, earth-fixed receiver position
[in]navLibA store of either broadcast or precise ephemerides
[in]emAn EllipsoidModel for performing range calculations
[in]tmA TropModel for performing trop calculations
[in]svTimeTrue if prange is in SV time, false for RX time.
[in]gammaThe value of gamma: $\gamma_{12} = (f_{L1}/f_{L2})^2$
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
[in]xmitHealthThe desired health status of the satellite transmitting the nav data.
[in]validSpecify whether to search only for valid or invalid messages, or both.

Definition at line 178 of file ObsRngDev.cpp.

◆ ~ObsRngDev()

virtual gnsstk::ObsRngDev::~ObsRngDev ( )
inlinevirtualnoexcept

destructor

Definition at line 277 of file ObsRngDev.hpp.

Member Function Documentation

◆ applyClockOffset()

void gnsstk::ObsRngDev::applyClockOffset ( double  clockOffset)
inline

Definition at line 347 of file ObsRngDev.hpp.

◆ computeOrd()

void gnsstk::ObsRngDev::computeOrd ( double  obs,
const Position rxpos,
NavLibrary navLib,
const EllipsoidModel em,
bool  svTime,
NavSearchOrder  order,
SVHealth  xmitHealth,
NavValidityType  valid 
)
inlineprivate

Definition at line 353 of file ObsRngDev.hpp.

◆ computeOrdRx()

void gnsstk::ObsRngDev::computeOrdRx ( double  obs,
const Position rxpos,
NavLibrary navLib,
const EllipsoidModel em,
NavSearchOrder  order,
SVHealth  xmitHealth,
NavValidityType  valid 
)
private

Definition at line 203 of file ObsRngDev.cpp.

◆ computeOrdTx()

void gnsstk::ObsRngDev::computeOrdTx ( double  obs,
const Position rxpos,
NavLibrary navLib,
const EllipsoidModel em,
NavSearchOrder  order,
SVHealth  xmitHealth,
NavValidityType  valid 
)
private

Definition at line 241 of file ObsRngDev.cpp.

◆ computeTrop()

void gnsstk::ObsRngDev::computeTrop ( const TropModel tm)
private

Definition at line 278 of file ObsRngDev.cpp.

◆ getAzimuth()

vfloat gnsstk::ObsRngDev::getAzimuth ( ) const
inlinenoexcept

returns the SV azimuth angle (in degrees) in relation to the rx

Returns
SV azimuth angle

Definition at line 299 of file ObsRngDev.hpp.

◆ getElevation()

vfloat gnsstk::ObsRngDev::getElevation ( ) const
inlinenoexcept

returns elevation (in degrees) of the SV in relation to the rx

Returns
SV elevation angle

Definition at line 306 of file ObsRngDev.hpp.

◆ getHealth()

vshort gnsstk::ObsRngDev::getHealth ( ) const
inlinenoexcept

returns the 6-bit SV health bitfield from epehemeris, subframe 1

Returns
SV health bitfield

Definition at line 313 of file ObsRngDev.hpp.

◆ getIODC()

vshort gnsstk::ObsRngDev::getIODC ( ) const
inlinenoexcept

returns the Issue Of Data, Clock (IODC) from ephemeris, subframe 1

Returns
ephemeris IODC

Definition at line 320 of file ObsRngDev.hpp.

◆ getIono()

vdouble gnsstk::ObsRngDev::getIono ( ) const
inlinenoexcept

returns the ionospheric offset (in meters)

Returns
ionospheric offset

Definition at line 334 of file ObsRngDev.hpp.

◆ getORD()

double gnsstk::ObsRngDev::getORD ( ) const
inlinenoexcept

returns the observed range deviation (ORD) (in meters)

Returns
ORD

Definition at line 327 of file ObsRngDev.hpp.

◆ getSvID()

SatID gnsstk::ObsRngDev::getSvID ( ) const
inlinenoexcept

returns the observed SV's identifier

Returns
svid

Definition at line 292 of file ObsRngDev.hpp.

◆ getTime()

const CommonTime& gnsstk::ObsRngDev::getTime ( ) const
inlinenoexcept

returns the time of the SV observation

Returns
time of SV observation

Definition at line 285 of file ObsRngDev.hpp.

◆ getTrop()

vdouble gnsstk::ObsRngDev::getTrop ( ) const
inlinenoexcept

returns the tropospheric offset (in meters)

Returns
tropospheric offset

Definition at line 341 of file ObsRngDev.hpp.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  s,
const ObsRngDev r 
)
friend

Definition at line 284 of file ObsRngDev.cpp.

Member Data Documentation

◆ azimuth

vfloat gnsstk::ObsRngDev::azimuth

SV azimuth.

Definition at line 395 of file ObsRngDev.hpp.

◆ debug

bool gnsstk::ObsRngDev::debug =false
static

Definition at line 350 of file ObsRngDev.hpp.

◆ elevation

vfloat gnsstk::ObsRngDev::elevation

SV elevation.

Definition at line 396 of file ObsRngDev.hpp.

◆ health

vshort gnsstk::ObsRngDev::health

SV health bitfield.

Definition at line 397 of file ObsRngDev.hpp.

◆ iodc

vshort gnsstk::ObsRngDev::iodc

ephemeris IODC

Definition at line 398 of file ObsRngDev.hpp.

◆ iono

vdouble gnsstk::ObsRngDev::iono

iono correction (meters)

Definition at line 400 of file ObsRngDev.hpp.

◆ obstime

CommonTime gnsstk::ObsRngDev::obstime

time of SV observation

Definition at line 390 of file ObsRngDev.hpp.

◆ ord

double gnsstk::ObsRngDev::ord

difference between expected and observed range

Definition at line 392 of file ObsRngDev.hpp.

◆ rho

vdouble gnsstk::ObsRngDev::rho

expected geometric range

Definition at line 399 of file ObsRngDev.hpp.

◆ svid

SatID gnsstk::ObsRngDev::svid

PRN number of observed SV.

Definition at line 391 of file ObsRngDev.hpp.

◆ trop

vdouble gnsstk::ObsRngDev::trop

trop correction (meters)

Definition at line 401 of file ObsRngDev.hpp.

◆ wonky

unsigned gnsstk::ObsRngDev::wonky

A bitmask defined by the application to flag questionable data.

Definition at line 393 of file ObsRngDev.hpp.


The documentation for this class was generated from the following files:


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:45