Class GLONASSAnalyticalPropagator

All Implemented Interfaces:
Propagator, PVCoordinatesProvider

public class GLONASSAnalyticalPropagator extends AbstractAnalyticalPropagator
This class aims at propagating a GLONASS orbit from GLONASSOrbitalElements.

Caution: The Glonass analytical propagator can only be used with GLONASSAlmanac. Using this propagator with a GLONASSFdmaNavigationMessage is prone to error.

Since:
10.0
Author:
Bryan Cazabonne
See Also:
  • Method Details

    • propagateInEcef

      public PVCoordinates propagateInEcef(AbsoluteDate date)
      Gets the PVCoordinates of the GLONASS SV in ECEF frame.

      The algorithm is defined at Appendix M.1 from GLONASS Interface Control Document, with automatic differentiation added to compute velocity and acceleration.

      Parameters:
      date - the computation date
      Returns:
      the GLONASS SV PVCoordinates in ECEF frame
    • getMass

      protected double getMass(AbsoluteDate date)
      Get the mass.
      Specified by:
      getMass in class AbstractAnalyticalPropagator
      Parameters:
      date - target date for the orbit
      Returns:
      mass mass
    • getMU

      public static double getMU()
      Get the Earth gravity coefficient used for GLONASS propagation.
      Returns:
      the Earth gravity coefficient.
    • getGLONASSOrbitalElements

      public GLONASSOrbitalElements getGLONASSOrbitalElements()
      Gets the underlying GLONASS orbital elements.
      Returns:
      the underlying GLONASS orbital elements
    • getECI

      public Frame getECI()
      Gets the Earth Centered Inertial frame used to propagate the orbit.
      Returns:
      the ECI frame
    • getECEF

      public Frame getECEF()
      Gets the Earth Centered Earth Fixed frame used to propagate GLONASS orbits.
      Returns:
      the ECEF frame
    • getFrame

      public Frame getFrame()
      Get the frame in which the orbit is propagated.

      The propagation frame is the definition frame of the initial state, so this method should be called after this state has been set, otherwise it may return null.

      Specified by:
      getFrame in interface Propagator
      Overrides:
      getFrame in class AbstractPropagator
      Returns:
      frame in which the orbit is propagated
      See Also:
    • resetInitialState

      public void resetInitialState(SpacecraftState state)
      Reset the propagator initial state.
      Specified by:
      resetInitialState in interface Propagator
      Overrides:
      resetInitialState in class AbstractPropagator
      Parameters:
      state - new initial state to consider
    • resetIntermediateState

      protected void resetIntermediateState(SpacecraftState state, boolean forward)
      Reset an intermediate state.
      Specified by:
      resetIntermediateState in class AbstractAnalyticalPropagator
      Parameters:
      state - new intermediate state to consider
      forward - if true, the intermediate state is valid for propagations after itself
    • propagateOrbit

      public Orbit propagateOrbit(AbsoluteDate date)
      Extrapolate an orbit up to a specific target date.
      Specified by:
      propagateOrbit in class AbstractAnalyticalPropagator
      Parameters:
      date - target date for the orbit
      Returns:
      extrapolated parameters