public class ElevationDetector extends AbstractDetector
This class finds elevation events (i.e. satellite raising and setting).
The default implementation behavior is to continue
propagation at raising and to stop
propagation at setting. This
can be changed by using provided constructors.
Propagator.addEventDetector(EventDetector)
,
Serialized FormEventDetector.Action
DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
DECREASING, INCREASING, INCREASING_DECREASING
Constructor and Description |
---|
ElevationDetector(double elevationIn,
TopocentricFrame topoIn)
Build a new elevation detector.
|
ElevationDetector(double elevationIn,
TopocentricFrame topoIn,
double maxCheck)
Build a new elevation detector.
|
ElevationDetector(double elevationIn,
TopocentricFrame topoIn,
double maxCheck,
double threshold)
Build a new elevation detector.
|
ElevationDetector(double elevationIn,
TopocentricFrame topoIn,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting)
Build a new elevation detector.
|
ElevationDetector(double elevationIn,
TopocentricFrame topoIn,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting,
boolean removeRaising,
boolean removeSetting)
Build a new elevation detector.
|
Modifier and Type | Method and Description |
---|---|
EventDetector |
copy()
A copy of the detector.
|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle an elevation event and choose what to do next.
|
double |
g(SpacecraftState s)
Compute the value of the switching function.
|
double |
getElevation()
Get the threshold elevation value.
|
TopocentricFrame |
getTopocentricFrame()
Get the topocentric frame.
|
boolean |
shouldBeRemoved()
This method is called after
EventDetector.eventOccurred(fr.cnes.sirius.patrius.propagation.SpacecraftState, boolean, boolean) has been triggered. |
getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, init, resetState
public ElevationDetector(double elevationIn, TopocentricFrame topoIn)
This simple constructor takes default values for maximal checking interval (
AbstractDetector.DEFAULT_MAXCHECK
) and convergence threshold (AbstractDetector.DEFAULT_THRESHOLD
).
elevationIn
- threshold elevation value (rad)topoIn
- topocentric frame in which elevation should be evaluatedpublic ElevationDetector(double elevationIn, TopocentricFrame topoIn, double maxCheck)
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.
elevationIn
- threshold elevation value (rad)topoIn
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)public ElevationDetector(double elevationIn, TopocentricFrame topoIn, double maxCheck, double 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.
The default implementation behavior is to continue
propagation at raising and to stop
propagation at setting.
elevationIn
- threshold elevation value (rad)topoIn
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)public ElevationDetector(double elevationIn, TopocentricFrame topoIn, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting)
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.
elevationIn
- threshold elevation value (rad)topoIn
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raising
- action performed when propagation at raisingsetting
- action performed when propagation at settingpublic ElevationDetector(double elevationIn, TopocentricFrame topoIn, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, boolean removeRaising, boolean removeSetting)
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.
elevationIn
- threshold elevation value (rad)topoIn
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raising
- action performed when propagation at raisingsetting
- action performed when propagation at settingremoveRaising
- if detector should be removed at raisingremoveSetting
- if detector should be removed at settingpublic double getElevation()
public TopocentricFrame getTopocentricFrame()
public EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward) throws PatriusException
eventOccurred
in interface EventDetector
eventOccurred
in class AbstractDetector
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.PatriusException
- if some specific error occurspublic boolean shouldBeRemoved()
EventDetector.eventOccurred(fr.cnes.sirius.patrius.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.shouldBeRemoved
in interface EventDetector
shouldBeRemoved
in class AbstractDetector
public double g(SpacecraftState s) throws PatriusException
g
in interface EventDetector
g
in class AbstractDetector
s
- the current state information: date, kinematics, attitudePatriusException
- if some specific error occurspublic EventDetector copy()
The following attributes are not deeply copied:
TopocentricFrame
Copyright © 2018 CNES. All Rights Reserved.