Class AdjustableEmitterSignalTimer

java.lang.Object
org.orekit.signal.AdjustableEmitterSignalTimer

public class AdjustableEmitterSignalTimer extends Object
Class for computing signal time of travel with an adjustable emitter and a fixed receiver's position and date. The delay is calculated via a fixed-point algorithm with customizable settings (even enabling instantaneous transmission). Note that a couple of iterations are usually enough for Earth orbits.
Since:
14.0
Author:
Romain Serra
  • Field Details

    • C_RECIPROCAL

      protected static final double C_RECIPROCAL
      Reciprocal for light speed.
      See Also:
    • DEFAULT_MAX_ITER

      protected static final int DEFAULT_MAX_ITER
      Maximum number of iterations.
      See Also:
  • Constructor Details

    • AdjustableEmitterSignalTimer

      public AdjustableEmitterSignalTimer(PVCoordinatesProvider adjustableEmitterPVProvider)
      Constructor with default iteration settings.
      Parameters:
      adjustableEmitterPVProvider - adjustable emitter
    • AdjustableEmitterSignalTimer

      public AdjustableEmitterSignalTimer(PVCoordinatesProvider adjustableEmitterPVProvider, ConvergenceChecker<Double> checker)
      Constructor.
      Parameters:
      adjustableEmitterPVProvider - adjustable emitter
      checker - convergence checker for fixed-point algorithm
  • Method Details

    • computeEmissionCondition

      public SignalEmissionCondition computeEmissionCondition(SignalReceptionCondition receptionCondition, AbsoluteDate approxEmissionDate)
      Compute the signal emission condition on a link leg (typically downlink or uplink).
      Parameters:
      receptionCondition - signal reception condition
      approxEmissionDate - approximate emission date
      Returns:
      emission condition
    • computeDelay

      public double computeDelay(SignalReceptionCondition receptionCondition)
      Compute propagation delay on a link leg (typically downlink or uplink) without custom guess.
      Parameters:
      receptionCondition - signal reception condition
      Returns:
      positive delay between signal emission and signal reception dates
    • computeDelay

      public double computeDelay(SignalReceptionCondition receptionCondition, AbsoluteDate approxEmissionDate)
      Compute propagation delay on a link leg (typically downlink or uplink).
      Parameters:
      receptionCondition - signal reception condition
      approxEmissionDate - approximate emission date
      Returns:
      positive delay between signal emission and signal reception dates
    • computeShift

      protected double computeShift(double offset, double delay)
      Computes the time shift.
      Parameters:
      offset - time offset
      delay - time delay
      Returns:
      time shift to use in computation
    • getConvergenceChecker

      public ConvergenceChecker<Double> getConvergenceChecker()
      Getter for the convergence checker.
      Returns:
      checker
    • compute

      protected double compute(PVCoordinatesProvider pvCoordinatesProvider, double initialOffset, Vector3D fixedPosition, AbsoluteDate guessDate, Frame frame)
      Compute propagation delay on a link leg (typically downlink or uplink). The max. iteration number and convergence checker can be tweaked to emulate no-delay a.k.a. instantaneous transmission.
      Parameters:
      pvCoordinatesProvider - adjustable emitter/receiver
      initialOffset - guess for the time off set
      fixedPosition - fixed receiver/emitter position
      guessDate - guess for emission/reception date
      frame - Inertial frame in which receiver/emitter is defined.
      Returns:
      positive delay between signal emission and signal reception dates