|
||||||||||
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.ApparentElevationDetector
public class ApparentElevationDetector
Finder for satellite apparent elevation events.
This class finds apparent elevation events (i.e. apparent satellite raising and setting from a terrestrial viewpoint).
Apparent elevation is the sum of geometrical elevation and refraction angle, the latter is 0 at zenith, about 1 arcminute at 45°, and 34 arcminutes at the horizon for optical wavelengths.
This event only makes sense for positive apparent elevation in the Earth environment
and it is not suited for near zenithal detection, where the simple
ElevationDetector
fits better.
Refraction angle is computed according to Saemundssen formula quoted by Meeus. For reference, see Astronomical Algorithms (1998), 2nd ed, (ISBN 0-943396-61-1), chap. 15.
This formula is about 30 arcseconds of accuracy very close to the horizon, as variable atmospheric effects become very important.
Local pressure and temperature can be set to correct refraction at the viewpoint.
The default implementation behavior is to continue
propagation at raising and to
stop
propagation
at setting. This can be changed by using the constructor
ApparentElevationDetector
.
Propagator.addEventDetector(EventDetector)
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from interface org.orekit.propagation.events.EventDetector |
---|
EventDetector.Action |
Field Summary | |
---|---|
static double |
DEFAULT_PRESSURE
Default local pressure at viewpoint (Pa). |
static double |
DEFAULT_TEMPERATURE
Default local temperature at viewpoint (K). |
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 | |
---|---|
ApparentElevationDetector(double elevation,
TopocentricFrame topo)
Build a new apparent elevation detector. |
|
ApparentElevationDetector(double elevation,
TopocentricFrame topo,
double maxCheck)
Build a new apparent elevation detector. |
|
ApparentElevationDetector(double elevation,
TopocentricFrame topo,
double maxCheck,
double threshold)
Build a new apparent elevation detector. |
|
ApparentElevationDetector(double elevation,
TopocentricFrame topo,
double maxCheck,
double threshold,
EventDetector.Action raisingAction,
EventDetector.Action settingAction)
Build a new apparent elevation detector with specified actions at raising and setting. |
|
ApparentElevationDetector(double elevation,
TopocentricFrame topo,
double maxCheck,
double threshold,
EventDetector.Action raisingAction,
EventDetector.Action settingAction,
boolean raisingRemove,
boolean settingRemove)
Build a new apparent elevation detector with specified actions at raising and setting. |
Method Summary | |
---|---|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle an apparent elevation event and choose what to do next. |
double |
g(SpacecraftState s)
Compute the value of the switching function. |
double |
getElevation()
Get the threshold apparent elevation value. |
double |
getPressure()
Get the local pressure at topocentric frame origin. |
double |
getTemperature()
Get the local temperature at topocentric frame origin. |
TopocentricFrame |
getTopocentricFrame()
Get the topocentric frame. |
void |
setPressure(double pressure)
Set the local pressure at topocentric frame origin if needed. |
void |
setTemperature(double temperature)
Set the local temperature at topocentric frame origin if needed. |
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 double DEFAULT_PRESSURE
public static final double DEFAULT_TEMPERATURE
Constructor Detail |
---|
public ApparentElevationDetector(double elevation, TopocentricFrame topo)
This simple constructor takes default values for maximal checking
interval (AbstractDetector.DEFAULT_MAXCHECK
) and convergence threshold
(AbstractDetector.DEFAULT_THRESHOLD
).
The default implementation behavior is to continue
propagation at raising
and to stop
propagation at setting.
elevation
- threshold elevation valuetopo
- topocentric frame in which elevation should be evaluatedpublic ApparentElevationDetector(double elevation, 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.
The default implementation behavior is to continue
propagation at raising
and to stop
propagation at setting.
elevation
- threshold elevation value (rad)topo
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)public ApparentElevationDetector(double elevation, 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.
elevation
- threshold elevation value (rad)topo
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)public ApparentElevationDetector(double elevation, TopocentricFrame topo, double maxCheck, double threshold, EventDetector.Action raisingAction, EventDetector.Action settingAction)
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.
elevation
- threshold elevation value (rad)topo
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raisingAction
- action performed at raisingsettingAction
- action performed at settingpublic ApparentElevationDetector(double elevation, TopocentricFrame topo, double maxCheck, double threshold, EventDetector.Action raisingAction, EventDetector.Action settingAction, boolean raisingRemove, boolean settingRemove)
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.
elevation
- threshold elevation value (rad)topo
- topocentric frame in which elevation should be evaluatedmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raisingAction
- action performed at raisingsettingAction
- action performed at settingraisingRemove
- true if detector should be removed at raisingsettingRemove
- true if detector should be removed at settingMethod Detail |
---|
public void setPressure(double pressure)
Otherwise the default value for the local pressure is set to DEFAULT_PRESSURE
.
pressure
- the pressure to set (Pa)public void setTemperature(double temperature)
Otherwise the default value for the local temperature is set to DEFAULT_TEMPERATURE
.
temperature
- the temperature to set (K)public double getElevation()
public TopocentricFrame getTopocentricFrame()
public double getPressure()
public double getTemperature()
public 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 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 double g(SpacecraftState s) throws OrekitException
This function measures the difference between the current apparent elevation and the threshold apparent elevation.
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 |