org.orekit.propagation.events
Class ExtremaElevationDetector
java.lang.Object
org.orekit.propagation.events.AbstractDetector
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 14677 2015-11-25 14:52:39Z rodrigues $
- 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
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. |
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. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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
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 evaluatedextremumType
- MIN
for minimal elevation detection,
MAX
for maximal elevation detection
or MIN_MAX
for both shortest and
farthest elevation detectionmaxCheck
- 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 evaluatedextremumType
- MIN
for minimal elevation detection,
MAX
for maximal elevation detection
or MIN_MAX
for both shortest and
farthest elevation detectionmaxCheck
- 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 evaluatedextremumType
- MIN
for minimal elevation detection,
MAX
for maximal elevation detection
or MIN_MAX
for both shortest and
farthest elevation detectionmaxCheck
- 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 evaluatedextremumType
- MIN
for minimal elevation detection,
MAX
for maximal elevation detection
or MIN_MAX
for both shortest and
farthest elevation detectionmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)action
- action performed at extrema elevation detectionremove
- true if detector should be removed at extrema elevation detection- Since:
- 3.1
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 statet
- 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, attitudeincreasing
- if true, the value of the switching function increases
when times increases around eventforward
- 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 © 2016 CNES. All Rights Reserved.