Class PositionAngleDetector

java.lang.Object
org.orekit.propagation.events.AbstractDetector<PositionAngleDetector>
org.orekit.propagation.events.PositionAngleDetector
All Implemented Interfaces:
EventDetector

public class PositionAngleDetector extends AbstractDetector<PositionAngleDetector>
Detector for in-orbit position angle.

The detector is based on anomaly for Keplerian orbits, latitude argument for circular orbits, or longitude argument for equinoctial orbits. It does not support Cartesian orbits. The angles can be either true, mean or eccentric angles.

Since:
7.1
Author:
Luc Maisonobe
  • Constructor Details

  • Method Details

    • create

      protected PositionAngleDetector create(EventDetectionSettings detectionSettings, EventHandler newHandler)
      Build a new instance.
      Specified by:
      create in class AbstractDetector<PositionAngleDetector>
      Parameters:
      detectionSettings - detection settings
      newHandler - event handler to call at event occurrences
      Returns:
      a new instance of the appropriate sub-type
    • getOrbitType

      public OrbitType getOrbitType()
      Get the orbit type defining the angle type.
      Returns:
      orbit type defining the angle type
    • getPositionAngleType

      public PositionAngleType getPositionAngleType()
      Get the type of position angle.
      Returns:
      type of position angle
    • getAngle

      public double getAngle()
      Get the fixed angle to be crossed (radians).
      Returns:
      fixed angle to be crossed (radians)
    • init

      public void init(SpacecraftState s0, AbsoluteDate t)
      Initialize event detector at the start of a propagation.

      This method is called once at the start of the propagation. It may be used by the event handler to initialize some internal data if needed.

      The default implementation initializes the handler.

      This implementation sets the direction of propagation and initializes the event handler. If a subclass overrides this method it should call super.init(s0, t).

      Specified by:
      init in interface EventDetector
      Overrides:
      init in class AbstractDetector<PositionAngleDetector>
      Parameters:
      s0 - initial state
      t - target time for the integration
    • g

      public double g(SpacecraftState s)
      Compute the value of the detection function.

      The value is the angle difference between the spacecraft and the fixed angle to be crossed, with some sign tweaks to ensure continuity. These tweaks imply the increasing flag in events detection becomes irrelevant here! As an example, the angle always increase in a Keplerian orbit, but this g function will increase and decrease so it will cross the zero value once per orbit, in increasing and decreasing directions on alternate orbits..

      Parameters:
      s - the current state information: date, kinematics, attitude
      Returns:
      angle difference between the spacecraft and the fixed angle, with some sign tweaks to ensure continuity