org.orekit.propagation.events
Class ExtremaElevationDetector

java.lang.Object
  extended by org.orekit.propagation.events.AbstractDetector
      extended by org.orekit.propagation.events.ExtremaElevationDetector
All Implemented Interfaces:
Serializable, EventDetector

public class ExtremaElevationDetector
extends AbstractDetector

Detects the time when the spacecraft reaches the elevation extrema in a given topocentric frame. The local minimum or maximum is chosen through a constructor parameter, with values MIN, MAX and MIN_MAX for both.

The default implementation behaviour is to stop propagation when the minimum/maximum elevation is reached. This can be changed by using provided constructors.

Since:
1.2
Version:
$Id: ExtremaElevationDetector.java 17582 2017-05-10 12:58:16Z bignon $
Author:
Thomas Trapier
See Also:
EventDetector, Serialized Form
Concurrency :
not thread-safe
Concurrency comment :
the link to the tree of frames makes this class not thread-safe

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.orekit.propagation.events.EventDetector
EventDetector.Action
 
Field Summary
static int MAX
          Flag for local maximum elevation detection.
static int MIN
          Flag for local minimum elevation detection.
static int MIN_MAX
          Flag for both local minimum and maximum elevation detection.
 
Fields inherited from class org.orekit.propagation.events.AbstractDetector
DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
 
Fields inherited from interface org.orekit.propagation.events.EventDetector
DECREASING, INCREASING, INCREASING_DECREASING
 
Constructor Summary
ExtremaElevationDetector(TopocentricFrame topoFrame, int extremumType, double maxCheck)
          Constructor for a min and max elevation detector.
ExtremaElevationDetector(TopocentricFrame topoFrame, int extremumType, double maxCheck, double threshold)
          Constructor for a min or max elevation detector.
ExtremaElevationDetector(TopocentricFrame topoFrame, int extremumType, double maxCheck, double threshold, EventDetector.Action action)
          Constructor for a min or max elevation detector.
ExtremaElevationDetector(TopocentricFrame topoFrame, int extremumType, double maxCheck, double threshold, EventDetector.Action action, boolean remove)
          Constructor for a min or max elevation detector.
 
Method Summary
 EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward)
          Handle an extrema distance event and choose what to do next.
 double g(SpacecraftState s)
          Compute the value of the switching function.
 TopocentricFrame getTopocentricFrame()
           
 void init(SpacecraftState s0, AbsoluteDate t)
          Initialize event handler at the start of a propagation.
 boolean shouldBeRemoved()
          This method is called after EventDetector.eventOccurred(org.orekit.propagation.SpacecraftState, boolean, boolean) has been triggered.
 
Methods inherited from class org.orekit.propagation.events.AbstractDetector
getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, resetState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MIN

public static final int MIN
Flag for local minimum elevation detection.

See Also:
Constant Field Values

MAX

public static final int MAX
Flag for local maximum elevation detection.

See Also:
Constant Field Values

MIN_MAX

public static final int MIN_MAX
Flag for both local minimum and maximum elevation detection.

See Also:
Constant Field Values
Constructor Detail

ExtremaElevationDetector

public ExtremaElevationDetector(TopocentricFrame topoFrame,
                                int extremumType,
                                double maxCheck)
Constructor for a min and max elevation detector.

This constructor takes default value for convergence threshold (AbstractDetector.DEFAULT_THRESHOLD).

The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

Parameters:
topoFrame - topocentric frame in which elevation should be evaluated
extremumType - MIN for minimal elevation detection, MAX for maximal elevation detection or MIN_MAX for both shortest and farthest elevation detection
maxCheck - maximal checking interval (s)

ExtremaElevationDetector

public ExtremaElevationDetector(TopocentricFrame topoFrame,
                                int extremumType,
                                double maxCheck,
                                double threshold)
Constructor for a min or max elevation detector.

The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

The default implementation behavior is to stop propagation when the expected extremum is reached.

Parameters:
topoFrame - topocentric frame in which elevation should be evaluated
extremumType - MIN for minimal elevation detection, MAX for maximal elevation detection or MIN_MAX for both shortest and farthest elevation detection
maxCheck - maximal checking interval (s)
threshold - convergence threshold (s)

ExtremaElevationDetector

public ExtremaElevationDetector(TopocentricFrame topoFrame,
                                int extremumType,
                                double maxCheck,
                                double threshold,
                                EventDetector.Action action)
Constructor for a min or max elevation detector.

The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

Parameters:
topoFrame - topocentric frame in which elevation should be evaluated
extremumType - MIN for minimal elevation detection, MAX for maximal elevation detection or MIN_MAX for both shortest and farthest elevation detection
maxCheck - maximal checking interval (s)
threshold - convergence threshold (s)
action - action performed at extrema elevation detection

ExtremaElevationDetector

public ExtremaElevationDetector(TopocentricFrame topoFrame,
                                int extremumType,
                                double maxCheck,
                                double threshold,
                                EventDetector.Action action,
                                boolean remove)
Constructor for a min or max elevation detector.

The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

Parameters:
topoFrame - topocentric frame in which elevation should be evaluated
extremumType - MIN for minimal elevation detection, MAX for maximal elevation detection or MIN_MAX for both shortest and farthest elevation detection
maxCheck - maximal checking interval (s)
threshold - convergence threshold (s)
action - action performed at extrema elevation detection
remove - true if detector should be removed at extrema elevation detection
Since:
3.1
Method Detail

init

public void init(SpacecraftState s0,
                 AbsoluteDate t)
Description copied from class: AbstractDetector
Initialize event handler 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.

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

eventOccurred

public EventDetector.Action eventOccurred(SpacecraftState s,
                                          boolean increasing,
                                          boolean forward)
                                   throws OrekitException
Handle an extrema distance event and choose what to do next.

Specified by:
eventOccurred in interface EventDetector
Specified by:
eventOccurred in class AbstractDetector
Parameters:
s - the current state information : date, kinematics, attitude
increasing - if true, the value of the switching function increases when times increases around event
forward - if true, the integration variable (time) increases during integration.
Returns:
the action performed when the expected extrema elevation is reached
Throws:
OrekitException - if some specific error occurs

shouldBeRemoved

public boolean shouldBeRemoved()
This method is called after EventDetector.eventOccurred(org.orekit.propagation.SpacecraftState, boolean, boolean) has been triggered. It returns true if the current detector should be removed after first event detection. WARNING: this method can be called only once a event has been triggered. Before, the value is not available.

Specified by:
shouldBeRemoved in interface EventDetector
Specified by:
shouldBeRemoved in class AbstractDetector
Returns:
true if the current detector should be removed after first event detection

g

public double g(SpacecraftState s)
         throws OrekitException
Description copied from class: AbstractDetector
Compute the value of the switching function. This function must be continuous (at least in its roots neighborhood), as the integrator will need to find its roots to locate the events.

Specified by:
g in interface EventDetector
Specified by:
g in class AbstractDetector
Parameters:
s - the current state information: date, kinematics, attitude for forces and events computation, mass provider, and additional states
Returns:
value of the switching function
Throws:
OrekitException - if some specific error occurs

getTopocentricFrame

public TopocentricFrame getTopocentricFrame()
Returns:
the Topocentric frame in which elevation should be evaluated.


Copyright © 2017 CNES. All Rights Reserved.