Class GNSSOrbitalElements<O extends GNSSOrbitalElements<O>>

java.lang.Object
org.orekit.propagation.analytical.gnss.data.GNSSOrbitalElements<O>
Type Parameters:
O - type of the orbital elements
All Implemented Interfaces:
OrbitalParameters, GNSSClockElements, TimeStamped
Direct Known Subclasses:
AbstractNavigationMessage, BeidouAlmanac, GalileoAlmanac, GPSAlmanac, NavICAlmanac, QZSSAlmanac

public abstract class GNSSOrbitalElements<O extends GNSSOrbitalElements<O>> extends Object implements OrbitalParameters, GNSSClockElements
This class provides the minimal set of orbital elements needed by GNSSPropagator.
Since:
13.0
Author:
Pascal Parraud, Luc Maisonobe
  • Constructor Details

    • GNSSOrbitalElements

      protected GNSSOrbitalElements(double angularVelocity, int weeksInCycle, TimeScales timeScales, String type, int prn, GNSSDate toe, KeplerianOrbit orbit, double aDot, double deltaN0, double deltaN0Dot, double iDot, double omegaDot, double cuc, double cus, double crc, double crs, double cic, double cis, double af0, double af1, double af2, double tgd, GNSSDate toc)
      Creates a new instance.
      Parameters:
      angularVelocity - mean angular velocity of the Earth for the GNSS model
      weeksInCycle - number of weeks in the GNSS cycle
      timeScales - known time scales
      type - type (null if not a navigation message)
      prn - PRN number of the satellite
      toe - time of ephemeris (must be consistent with orbit)
      orbit - Keplerian orbit in Earth-frozen frame
      aDot - change rate in semi-major axis (m/s)
      deltaN0 - delta of satellite mean motion
      deltaN0Dot - change rate in Δn₀
      iDot - inclination rate (rad/s)
      omegaDot - rate of right ascension (rad/s)
      cuc - amplitude of the cosine harmonic correction term to the argument of latitude
      cus - amplitude of the sine harmonic correction term to the argument of latitude
      crc - amplitude of the cosine harmonic correction term to the orbit radius
      crs - amplitude of the sine harmonic correction term to the orbit radius
      cic - amplitude of the cosine harmonic correction term to the inclination
      cis - amplitude of the sine harmonic correction term to the inclination
      af0 - zero-th order clock correction (s)
      af1 - first order clock correction (s/s)
      af2 - second order clock correction (s/s²)
      tgd - group delay differential TGD for L1-L2 correction
      toc - time of clock
      Since:
      14.0
    • GNSSOrbitalElements

      protected GNSSOrbitalElements(FieldGnssOrbitalElements<T,A> original)
      Constructor from field instance.
      Type Parameters:
      T - type of the field elements
      A - type of the orbital elements (non-field version)
      Parameters:
      original - regular field instance
  • Method Details

    • getDate

      public AbsoluteDate getDate()
      Get the date.
      Specified by:
      getDate in interface TimeStamped
      Returns:
      date attached to the object
    • getTimeOfEphemeris

      public GNSSDate getTimeOfEphemeris()
      Get the time of ephemeris.
      Returns:
      time of ephemeris
      Since:
      14.0
    • getTimeOfClock

      public GNSSDate getTimeOfClock()
      Get the time of clock.
      Specified by:
      getTimeOfClock in interface GNSSClockElements
      Returns:
      the time of clock
    • toField

      public <T extends CalculusFieldElement<T>> FieldGnssOrbitalElements<T,O> toField(Field<T> field)
      Create a field version of the instance.
      Type Parameters:
      T - type of the field elements
      Parameters:
      field - field
      Returns:
      field version of the instance
      Since:
      14.0
    • toField

      public abstract <T extends CalculusFieldElement<T>> FieldGnssOrbitalElements<T,O> toField(FieldKeplerianOrbit<T> keplerian, T[] nonKeplerian, DoubleFunction<T> converter)
      Create another field version of the instance.
      Type Parameters:
      T - type of the field elements
      Parameters:
      keplerian - orbit in the correct gradient field
      nonKeplerian - non-Keplerian parameters
      converter - converter for remaining elements
      Returns:
      gradient version of the instance
      Since:
      14.0
    • getTimeScales

      public TimeScales getTimeScales()
      Get known time scales.
      Returns:
      known time scales
    • getType

      public String getType()
      Get the message type.
      Returns:
      message type (null if not a navigation message)
    • getAngularVelocity

      public double getAngularVelocity()
      Get the mean angular velocity of the Earth of the GNSS model.
      Returns:
      mean angular velocity of the Earth of the GNSS model
    • getWeeksInCycle

      public int getWeeksInCycle()
      Get for the duration of the GNSS cycle in weeks.
      Returns:
      the duration of the GNSS cycle in weeks
    • getCycleDuration

      public double getCycleDuration()
      Get for the duration of the GNSS cycle in seconds.
      Returns:
      the duration of the GNSS cycle in seconds
    • getPrn

      public int getPrn()
      Get the PRN number of the satellite.
      Returns:
      PRN number of the satellite
    • getOrbit

      public KeplerianOrbit getOrbit()
      Get the underlying Keplerian orbit.
      Returns:
      underlying Keplerian orbit
      Since:
      14.0
    • getADot

      public double getADot()
      Get change rate in semi-major axis.
      Returns:
      the change rate in semi-major axis
      Since:
      14.0
    • getDeltaN0

      public double getDeltaN0()
      Get the delta of satellite mean motion.
      Returns:
      the delta of satellite mean motion
      Since:
      14.0
    • getDeltaN0Dot

      public double getDeltaN0Dot()
      Get the change rate in Δn₀.
      Returns:
      change rate in Δn₀
      Since:
      14.0
    • getIDot

      public double getIDot()
      Get rate of inclination angle.
      Returns:
      rate of inclination angle (rad/s)
    • getOmegaDot

      public double getOmegaDot()
      Get rate of right ascension.
      Returns:
      rate of right ascension (rad/s)
    • getCuc

      public double getCuc()
      Get amplitude of the cosine harmonic correction term to the argument of latitude.
      Returns:
      amplitude of the cosine harmonic correction term to the argument of latitude (rad)
    • getCus

      public double getCus()
      Get amplitude of the sine harmonic correction term to the argument of latitude.
      Returns:
      amplitude of the sine harmonic correction term to the argument of latitude (rad)
    • getCrc

      public double getCrc()
      Get amplitude of the cosine harmonic correction term to the orbit radius.
      Returns:
      amplitude of the cosine harmonic correction term to the orbit radius (m)
    • getCrs

      public double getCrs()
      Get amplitude of the sine harmonic correction term to the orbit radius.
      Returns:
      amplitude of the sine harmonic correction term to the orbit radius (m)
    • getCic

      public double getCic()
      Get amplitude of the cosine harmonic correction term to the angle of inclination.
      Returns:
      amplitude of the cosine harmonic correction term to the angle of inclination (rad)
    • getCis

      public double getCis()
      Get amplitude of the sine harmonic correction term to the angle of inclination.
      Returns:
      amplitude of the sine harmonic correction term to the angle of inclination (rad)
    • getAf0

      public double getAf0()
      Gets the Zeroth Order Clock Correction.
      Specified by:
      getAf0 in interface GNSSClockElements
      Returns:
      the Zeroth Order Clock Correction (s)
      See Also:
    • getAf1

      public double getAf1()
      Gets the First Order Clock Correction.
      Specified by:
      getAf1 in interface GNSSClockElements
      Returns:
      the First Order Clock Correction (s/s)
      See Also:
    • getAf2

      public double getAf2()
      Gets the Second Order Clock Correction.
      Specified by:
      getAf2 in interface GNSSClockElements
      Returns:
      the Second Order Clock Correction (s/s²)
      See Also:
    • getTgd

      public double getTgd()
      Get the estimated group delay differential TGD for L1-L2 correction.
      Specified by:
      getTgd in interface GNSSClockElements
      Returns:
      the estimated group delay differential TGD for L1-L2 correction (s)
    • isCivilianMessage

      public boolean isCivilianMessage()
      Check if elements correspond to a civilian message.
      Returns:
      true if elements correspond to a civilian message
    • factory

      public GNSSOrbitalElementsFactory<O> factory(Frame inertial, Frame bodyFixed)
      Factory for the orbital elements.
      Parameters:
      inertial - reference inertial frame
      bodyFixed - body fixed frame (will be frozen at date to build the orbital elements
      Returns:
      factory for the orbital elements
      Since:
      14.0
    • baseFactory

      protected abstract GNSSOrbitalElementsFactory<O> baseFactory(Frame inertial, Frame bodyFixed)
      Factory for the orbital elements.
      Parameters:
      inertial - reference inertial frame
      bodyFixed - body fixed frame (will be frozen at date to build the orbital elements
      Returns:
      factory for the orbital elements
      Since:
      14.0