|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.orekit.propagation.events.AbstractDetector
org.orekit.propagation.events.GroundMaskElevationDetector
public class GroundMaskElevationDetector
Finder for satellite azimuth-elevation events with respect to a mask.
This class finds elevation events (i.e. satellite raising and setting) with respect to an azimuth-elevation mask.
An azimuth-elevation mask defines the physical horizon for a local point, origin of some topocentric frame.
Azimuth is defined according to getAzimuth
.
Elevation is defined according to getElevation
.
The azimuth elevation mask must be supplied as a twodimensional array with multiples lines of pairs of azimuth-elevation angles. First row will be filled with azimuth values, second row with elevation values, as in the following snippet:
double [][] mask = { {FastMathFastMath.toRadians(0), FastMath.toRadians(10)}, {FastMathFastMath.toRadians(45), FastMath.toRadians(8)}, {FastMathFastMath.toRadians(90), FastMath.toRadians(6)}, {FastMathFastMath.toRadians(135), FastMath.toRadians(4)}, {FastMathFastMath.toRadians(180), FastMath.toRadians(5)}, {FastMathFastMath.toRadians(225), FastMath.toRadians(6)}, {FastMathFastMath.toRadians(270), FastMath.toRadians(8)}, {FastMathFastMath.toRadians(315), FastMath.toRadians(9)} };
No assumption is made on azimuth values and ordering. The only restraint is that only one elevation value can be associated to identical azimuths modulo 2PI.
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 FormNested Class Summary |
---|
Nested classes/interfaces inherited from interface org.orekit.propagation.events.EventDetector |
---|
EventDetector.Action |
Field Summary |
---|
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 | |
---|---|
GroundMaskElevationDetector(double[][] azimelev,
TopocentricFrame topo)
Build a new azimuth-elevation detector. |
|
GroundMaskElevationDetector(double[][] azimelev,
TopocentricFrame topo,
double maxCheck)
Build a new azimuth-elevation detector. |
|
GroundMaskElevationDetector(double[][] azimelev,
TopocentricFrame topo,
double maxCheck,
double threshold)
Build a new azimuth-elevation detector. |
|
GroundMaskElevationDetector(double[][] azimelev,
TopocentricFrame topo,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting)
Build a new azimuth-elevation detector. |
|
GroundMaskElevationDetector(double[][] azimelev,
TopocentricFrame topo,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting,
boolean removeRaising,
boolean removeSetting)
Build a new azimuth-elevation detector. |
Method Summary | |
---|---|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle an azimuth-elevation event and choose what to do next. |
double |
g(SpacecraftState s)
Compute the value of the switching function. |
double |
getElevation(double azimuth)
Get the interpolated elevation for a given azimuth according to the mask. |
TopocentricFrame |
getTopocentricFrame()
Get the topocentric frame. |
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 |
Constructor Detail |
---|
public GroundMaskElevationDetector(double[][] azimelev, TopocentricFrame topo)
This simple constructor takes default values for maximal checking
interval (AbstractDetector.DEFAULT_MAXCHECK
) and convergence threshold
(AbstractDetector.DEFAULT_THRESHOLD
).
azimelev
- azimuth-elevation mask (rad)topo
- topocentric frame in which elevation should be evaluated
IllegalArgumentException
- if azimuth-elevation mask is not supportedpublic GroundMaskElevationDetector(double[][] azimelev, TopocentricFrame topo, 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.
azimelev
- azimuth-elevation mask (rad)topo
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)
IllegalArgumentException
- if azimuth-elevation mask is not supportedpublic GroundMaskElevationDetector(double[][] azimelev, TopocentricFrame topo, 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.
azimelev
- azimuth-elevation mask (rad)topo
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)
IllegalArgumentException
- if azimuth-elevation mask is not supportedpublic GroundMaskElevationDetector(double[][] azimelev, TopocentricFrame topo, 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.
azimelev
- azimuth-elevation mask (rad)topo
- 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 setting
IllegalArgumentException
- if azimuth-elevation mask is not supportedpublic GroundMaskElevationDetector(double[][] azimelev, TopocentricFrame topo, 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.
azimelev
- azimuth-elevation mask (rad)topo
- 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 setting
IllegalArgumentException
- if azimuth-elevation mask is not supportedMethod Detail |
---|
public TopocentricFrame getTopocentricFrame()
public EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward) throws OrekitException
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()
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 occurspublic double getElevation(double azimuth)
azimuth
- azimuth (rad)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |