|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.orekit.propagation.events.AbstractDetector org.orekit.propagation.events.NodeDetector
public class NodeDetector
Finder for node crossing events.
This class finds equator crossing events (i.e. ascending and/or descending node crossing).
The default implementation behavior is to stop
propagation at node crossing. This
can be changed by overriding one of the following constructors :
NodeDetector
: the
defined action is performed at ascending OR/AND descending node depending on slope selection defined.
NodeDetector
: the
defined actions are performed at ascending AND descending node.
Beware that node detection will fail for almost equatorial orbits. If for example a node detector is used to trigger
an ImpulseManeuver
and the maneuver turn the orbit plane to
equator, then the detector may completely fail just after the maneuver has been performed! This is a real case that
has been encountered during validation ...
Propagator.addEventDetector(EventDetector)
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from interface org.orekit.propagation.events.EventDetector |
---|
EventDetector.Action |
Field Summary | |
---|---|
static int |
ASCENDING
Flag for ascending node detection (slopeSelection = 0). |
static int |
ASCENDING_DESCENDING
Flag for both ascending and descending node detection (slopeSelection = 2). |
static int |
DESCENDING
Flag for descending node detection (slopeSelection = 1). |
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 | |
---|---|
NodeDetector(Frame frame,
double maxCheck,
double threshold,
EventDetector.Action ascendingNode,
EventDetector.Action descendingNode)
Build a new instance for both ascending and descending node detection. |
|
NodeDetector(Frame frame,
double maxCheck,
double threshold,
EventDetector.Action ascendingNode,
EventDetector.Action descendingNode,
boolean removeAscendingNode,
boolean removeDescendingNode)
Build a new instance for both ascending and descending node detection. |
|
NodeDetector(Frame frame,
int slopeSelection,
double maxCheck,
double threshold)
Build a new instance. |
|
NodeDetector(Frame frame,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action action)
Build a new instance. |
|
NodeDetector(Frame frame,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action action,
boolean removeCrossingNode)
Build a new instance. |
|
NodeDetector(Orbit orbit,
Frame frame,
int slopeSelection)
Build a new instance. |
|
NodeDetector(Orbit orbit,
Frame frame,
int slopeSelection,
double threshold)
Build a new instance. |
Method Summary | |
---|---|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle a node crossing event and choose what to do next. |
double |
g(SpacecraftState s)
Compute the value of the switching function. |
Frame |
getFrame()
Get the frame in which the equator is defined. |
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, init, resetState |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int ASCENDING
public static final int DESCENDING
public static final int ASCENDING_DESCENDING
Constructor Detail |
---|
public NodeDetector(Orbit orbit, Frame frame, int slopeSelection)
The orbit is used only to set an upper bound for the max check interval to period/3 and to set the convergence threshold according to orbit size.
The default implementation behavior is to stop
propagation at node crossing.
orbit
- initial orbitframe
- frame in which the equator is defined (typical
values are J2000
or
ITRF 2005
)slopeSelection
- ASCENDING
for ascending node detection,DESCENDING
for descending node detection,ASCENDING_DESCENDING
for both ascending and
descending node detection.public NodeDetector(Orbit orbit, Frame frame, int slopeSelection, double threshold)
The orbit is used only to set an upper bound for the max check interval to period/3.
The default implementation behavior is to stop
propagation at node crossing.
orbit
- initial orbitframe
- frame in which the equator is defined (typical
values are J2000
or
ITRF 2005
)slopeSelection
- ASCENDING
for ascending node detection,DESCENDING
for descending node detection,ASCENDING_DESCENDING
for both ascending and
descending node detection.threshold
- convergence threshold (s)public NodeDetector(Frame frame, int slopeSelection, double maxCheck, double threshold)
The default implementation behavior is to stop
propagation at node crossing.
frame
- frame in which the equator is defined (typical
values are J2000
or
ITRF 2005
)slopeSelection
- ASCENDING
for ascending node detection,DESCENDING
for descending node detection,ASCENDING_DESCENDING
for both ascending and
descending node detection.maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)public NodeDetector(Frame frame, double maxCheck, double threshold, EventDetector.Action ascendingNode, EventDetector.Action descendingNode)
frame
- frame in which the equator is defined (typical
values are J2000
or
ITRF 2005
)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)ascendingNode
- action performed at ascending node crossingdescendingNode
- action performed at descending node crossingpublic NodeDetector(Frame frame, double maxCheck, double threshold, EventDetector.Action ascendingNode, EventDetector.Action descendingNode, boolean removeAscendingNode, boolean removeDescendingNode)
frame
- frame in which the equator is defined (typical
values are J2000
or
ITRF 2005
)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)ascendingNode
- action performed at ascending node crossingdescendingNode
- action performed at descending node crossingremoveAscendingNode
- true if detector should be removed at ascending node crossingremoveDescendingNode
- true if detector should be removed at descending node crossingpublic NodeDetector(Frame frame, int slopeSelection, double maxCheck, double threshold, EventDetector.Action action)
frame
- frame in which the equator is defined (typical
values are J2000
or
ITRF 2005
)slopeSelection
- ASCENDING
for ascending node detection,DESCENDING
for descending node detection,ASCENDING_DESCENDING
for both ascending and
descending node detection.maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)action
- action to be performed at node crossingpublic NodeDetector(Frame frame, int slopeSelection, double maxCheck, double threshold, EventDetector.Action action, boolean removeCrossingNode)
frame
- frame in which the equator is defined (typical
values are J2000
or
ITRF 2005
)slopeSelection
- ASCENDING
for ascending node detection,DESCENDING
for descending node detection,ASCENDING_DESCENDING
for both ascending and
descending node detection.maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)action
- action to be performed at node crossingremoveCrossingNode
- true if detector should be removed at node crossingMethod Detail |
---|
public Frame getFrame()
public EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward) throws OrekitException
The default implementation behavior is to stop
propagation at node crossing.
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.
OrekitException
- if some specific error occurspublic boolean shouldBeRemoved()
AbstractDetector
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.
shouldBeRemoved
in interface EventDetector
shouldBeRemoved
in class AbstractDetector
public double g(SpacecraftState s) throws OrekitException
g
in interface EventDetector
g
in class AbstractDetector
s
- the current state information: date, kinematics, attitude
OrekitException
- if some specific error occurs
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |