Class AngularSeparationDetector

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

public class AngularSeparationDetector extends AbstractDetector<AngularSeparationDetector>
Detects when spacecraft comes close to a moving beacon, as seen from a moving observer.

The main use case for this detector is when the observer is in fact a ground station, modeled as a TopocentricFrame and when the beacon is the Sun, for computing interferences for the telemetry link. Another similar case is when the beacon is another spacecraft, for interferences computation.

The default handler behavior is to stop propagation when spacecraft enters the proximity zone. This can be changed by calling AbstractDetector.withHandler(EventHandler) after construction.

Since:
8.0
Author:
Luc Maisonobe
See Also:
  • Field Details

  • Constructor Details

    • AngularSeparationDetector

      public AngularSeparationDetector(PVCoordinatesProvider beacon, PVCoordinatesProvider observer, double proximityAngle)
      Build a new angular separation detector.
      Parameters:
      beacon - beacon at the center of the proximity zone
      observer - observer for the spacecraft, that may also see the beacon at the same time if they are too close to each other
      proximityAngle - proximity angle as seen from observer, at which events are triggered (rad)
    • AngularSeparationDetector

      protected AngularSeparationDetector(EventDetectionSettings detectionSettings, EventHandler handler, PVCoordinatesProvider beacon, PVCoordinatesProvider observer, double proximityAngle)
      Protected constructor with full parameters.

      This constructor is not public as users are expected to use the builder API with the various withXxx() methods to set up the instance in a readable manner without using a huge amount of parameters.

      Parameters:
      detectionSettings - detection settings
      handler - event handler to call at event occurrences
      beacon - beacon at the center of the proximity zone
      observer - observer for the spacecraft, that may also see the beacon at the same time if they are too close to each other
      proximityAngle - proximity angle as seen from observer, at which events are triggered (rad)
      Since:
      13.0
  • Method Details

    • create

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

      public PVCoordinatesProvider getBeacon()
      Get the beacon at the center of the proximity zone.
      Returns:
      beacon at the center of the proximity zone
    • getObserver

      public PVCoordinatesProvider getObserver()
      Get the observer for the spacecraft.
      Returns:
      observer for the spacecraft
    • getProximityAngle

      public double getProximityAngle()
      Get the proximity angle (rad).
      Returns:
      the proximity angle
    • g

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

      This function measures the angular separation between beacon and spacecraft as seen from the observer minus the proximity angle. It therefore triggers decreasing events when the spacecraft enters the proximity zone and increasing events when it leaves the proximity zone.

      No shadowing effect is taken into account, so this method is computed and may trigger events even when the spacecraft is below horizon for an observer which is a ground station. If such effects must be taken into account the detector must be associated with a predicate filter where the predicate function is based on elevation.

      Parameters:
      s - the current state information: date, kinematics, attitude
      Returns:
      value of the switching function