Class ElevationExtremumDetector

  • All Implemented Interfaces:
    EventDetector

    public class ElevationExtremumDetector
    extends AbstractDetector<ElevationExtremumDetector>
    Detector for elevation extremum with respect to a ground point.

    This detector identifies when a spacecraft reaches its extremum elevation with respect to a ground point.

    As in most cases only the elevation maximum is needed and the minimum is often irrelevant, this detector is often wrapped into an event slope filter configured with FilterType.TRIGGER_ONLY_DECREASING_EVENTS (i.e. when the elevation derivative decreases from positive values to negative values, which correspond to a maximum). Setting up this filter saves some computation time as the elevation minimum occurrences are not even looked at. It is however still often necessary to do an additional filtering

    Since:
    7.1
    Author:
    Luc Maisonobe
    • Constructor Detail

      • ElevationExtremumDetector

        public ElevationExtremumDetector​(double maxCheck,
                                         double threshold,
                                         TopocentricFrame topo)
        Build a detector.
        Parameters:
        maxCheck - maximal checking interval (s)
        threshold - convergence threshold (s)
        topo - topocentric frame centered on ground point
      • ElevationExtremumDetector

        protected ElevationExtremumDetector​(AdaptableInterval maxCheck,
                                            double threshold,
                                            int maxIter,
                                            EventHandler handler,
                                            TopocentricFrame topo)
        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:
        maxCheck - maximum checking interval
        threshold - convergence threshold (s)
        maxIter - maximum number of iterations in the event time search
        handler - event handler to call at event occurrences
        topo - topocentric frame centered on ground point
    • Method Detail

      • create

        protected ElevationExtremumDetector create​(AdaptableInterval newMaxCheck,
                                                   double newThreshold,
                                                   int newMaxIter,
                                                   EventHandler newHandler)
        Build a new instance.
        Specified by:
        create in class AbstractDetector<ElevationExtremumDetector>
        Parameters:
        newMaxCheck - maximum checking interval (s)
        newThreshold - convergence threshold (s)
        newMaxIter - maximum number of iterations in the event time search
        newHandler - event handler to call at event occurrences
        Returns:
        a new instance of the appropriate sub-type
      • getTopocentricFrame

        public TopocentricFrame getTopocentricFrame()
        Returns the topocentric frame centered on ground point.
        Returns:
        topocentric frame centered on ground point
      • getElevation

        public double getElevation​(SpacecraftState s)
        Get the elevation value.
        Parameters:
        s - the current state information: date, kinematics, attitude
        Returns:
        spacecraft elevation
      • g

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

        The value is the spacecraft elevation first time derivative.

        Specified by:
        g in interface EventDetector
        Specified by:
        g in class AbstractDetector<ElevationExtremumDetector>
        Parameters:
        s - the current state information: date, kinematics, attitude
        Returns:
        spacecraft elevation first time derivative