Class FieldGnssOrbitalElements<T extends CalculusFieldElement<T>,O extends GNSSOrbitalElements<O>>

java.lang.Object
org.orekit.propagation.analytical.gnss.data.FieldGnssOrbitalElements<T,O>
Type Parameters:
T - type of the field elements
O - type of the orbital elements (non-field version)
All Implemented Interfaces:
FieldOrbitalParameters<T>, FieldGNSSClockElements<T>, FieldTimeStamped<T>
Direct Known Subclasses:
FieldAbstractNavigationMessage, FieldBeidouAlmanac, FieldGalileoAlmanac, FieldGPSAlmanac, FieldNavICAlmanac, FieldQZSSAlmanac

public abstract class FieldGnssOrbitalElements<T extends CalculusFieldElement<T>,O extends GNSSOrbitalElements<O>> extends Object implements FieldOrbitalParameters<T>, FieldGNSSClockElements<T>
This class provides the minimal set of orbital elements needed by the FieldGnssPropagator.
Since:
13.0
Author:
Luc Maisonobe
  • Constructor Details

    • FieldGnssOrbitalElements

      protected FieldGnssOrbitalElements(double angularVelocity, int weeksInCycle, TimeScales timeScales, String type, int prn, FieldGNSSDate<T> toe, FieldKeplerianOrbit<T> orbit, T aDot, T deltaN0, T deltaN0Dot, T iDot, T omegaDot, T cuc, T cus, T crc, T crs, T cic, T cis, T af0, T af1, T af2, T tgd, FieldGNSSDate<T> 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
    • FieldGnssOrbitalElements

      protected FieldGnssOrbitalElements(double angularVelocity, int weeksInCycle, TimeScales timeScales, String type, int prn, FieldGNSSDate<T> toe, FieldKeplerianOrbit<T> orbit, T[] nonKeplerian, T tgd, FieldGNSSDate<T> 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
      nonKeplerian - 15 non-Keplerian parameters (in the order given by NonKeplerianDriversFactory
      tgd - group delay differential TGD for L1-L2 correction
      toc - time of clock
      Since:
      14.0
  • Method Details

    • getDate

      public FieldAbsoluteDate<T> getDate()
      Get the date.
      Specified by:
      getDate in interface FieldTimeStamped<T extends CalculusFieldElement<T>>
      Returns:
      date attached to the object
    • getTimeOfEphemeris

      public FieldGNSSDate<T> getTimeOfEphemeris()
      Get the time of ephemeris.
      Returns:
      time of ephemeris
      Since:
      14.0
    • getTimeOfClock

      public FieldGNSSDate<T> getTimeOfClock()
      Get the time of clock.
      Specified by:
      getTimeOfClock in interface FieldGNSSClockElements<T extends CalculusFieldElement<T>>
      Returns:
      the time of clock
    • toNonField

      public abstract O toNonField()
      Create a non-field version of the instance.
      Returns:
      non-field version of the instance
    • toArray

      public T[] toArray()
      Create an array with the 15 non-Keplerian parameters.

      The array is ordered according to NonKeplerianDriversFactory order.

      Returns:
      array with the 15 non-Keplerian parameters
    • toField

      public abstract <U extends CalculusFieldElement<U>> FieldGnssOrbitalElements<U,O> toField(FieldKeplerianOrbit<U> keplerian, U[] nonKeplerian, Function<T,U> converter)
      Create another field version of the instance.
      Type Parameters:
      U - type of the new field elements
      Parameters:
      keplerian - orbit in the correct gradient field
      nonKeplerian - non-Keplerian parameters
      converter - converter for remaining elements
      Returns:
      field version of the instance
    • 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 FieldKeplerianOrbit<T> getOrbit()
      Get the underlying Keplerian orbit.
      Returns:
      underlying Keplerian orbit
      Since:
      14.0
    • getADot

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

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

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

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

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

      public T 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 T 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 T 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 T 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 T 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 T 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 T getAf0()
      Gets the Zeroth Order Clock Correction.
      Specified by:
      getAf0 in interface FieldGNSSClockElements<T extends CalculusFieldElement<T>>
      Returns:
      the Zeroth Order Clock Correction (s)
      See Also:
    • getAf1

      public T getAf1()
      Gets the First Order Clock Correction.
      Specified by:
      getAf1 in interface FieldGNSSClockElements<T extends CalculusFieldElement<T>>
      Returns:
      the First Order Clock Correction (s/s)
      See Also:
    • getAf2

      public T getAf2()
      Gets the Second Order Clock Correction.
      Specified by:
      getAf2 in interface FieldGNSSClockElements<T extends CalculusFieldElement<T>>
      Returns:
      the Second Order Clock Correction (s/s²)
      See Also:
    • getTgd

      public T getTgd()
      Get the estimated group delay differential TGD for L1-L2 correction.
      Specified by:
      getTgd in interface FieldGNSSClockElements<T extends CalculusFieldElement<T>>
      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