org.orekit.propagation.events
Class EclipseDetector

java.lang.Object
  extended by org.orekit.propagation.events.AbstractDetector
      extended by org.orekit.propagation.events.EclipseDetector
All Implemented Interfaces:
java.io.Serializable, EventDetector

public class EclipseDetector
extends AbstractDetector

Finder for satellite eclipse related events.

This class finds eclipse events, i.e. satellite within umbra (total eclipse) or penumbra (partial eclipse).

The default implementation behavior is to continue propagation when entering the eclipse and to stop propagation when exiting the eclipse. This can be changed by overriding the eventOccurred method in a derived class.

Version:
$Revision: 3034 $ $Date: 2010-01-21 14:39:33 +0100 (jeu. 21 janv. 2010) $
Author:
Pascal Parraud
See Also:
Propagator.addEventDetector(EventDetector), Serialized Form

Field Summary
 
Fields inherited from class org.orekit.propagation.events.AbstractDetector
DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
 
Fields inherited from interface org.orekit.propagation.events.EventDetector
CONTINUE, RESET_DERIVATIVES, RESET_STATE, STOP
 
Constructor Summary
EclipseDetector(double maxCheck, double threshold, PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius)
          Build a new eclipse detector.
EclipseDetector(double maxCheck, double threshold, PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius, boolean totalEclipse)
          Build a new eclipse detector .
EclipseDetector(double maxCheck, PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius)
          Build a new eclipse detector.
EclipseDetector(double maxCheck, PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius, boolean totalEclipse)
          Build a new eclipse detector.
EclipseDetector(PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius)
          Build a new eclipse detector.
EclipseDetector(PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius, boolean totalEclipse)
          Build a new eclipse detector.
 
Method Summary
 int eventOccurred(SpacecraftState s, boolean increasing)
          Handle an eclipse event and choose what to do next.
 double g(SpacecraftState s)
          Compute the value of the switching function.
 PVCoordinatesProvider getOcculted()
          Get the occulted body.
 double getOccultedRadius()
          Get the occulted body radius (m).
 PVCoordinatesProvider getOcculting()
          Get the occulting body.
 double getOccultingRadius()
          Get the occulting body radius (m).
 boolean geTotaltEclipse()
          Get the total eclipse detection flag.
 
Methods inherited from class org.orekit.propagation.events.AbstractDetector
getMaxCheckInterval, getMaxIterationCount, getThreshold, resetState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EclipseDetector

public EclipseDetector(PVCoordinatesProvider occulted,
                       double occultedRadius,
                       PVCoordinatesProvider occulting,
                       double occultingRadius,
                       boolean totalEclipse)
Build a new eclipse detector.

The new instance is either an umbra detector or a penumbra detector with default values for maximal checking interval (AbstractDetector.DEFAULT_MAXCHECK) and convergence threshold (AbstractDetector.DEFAULT_THRESHOLD).

Parameters:
occulted - the body to be occulted
occultedRadius - the radius of the body to be occulted (m)
occulting - the occulting body
occultingRadius - the occulting body radius (m)
totalEclipse - umbra (true) or penumbra (false) detection flag

EclipseDetector

public EclipseDetector(double maxCheck,
                       PVCoordinatesProvider occulted,
                       double occultedRadius,
                       PVCoordinatesProvider occulting,
                       double occultingRadius,
                       boolean totalEclipse)
Build a new eclipse detector.

The new instance is either an umbra detector or a penumbra detector with default value for convergence threshold (AbstractDetector.DEFAULT_THRESHOLD).

The maximal interval between eclipse checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

Parameters:
maxCheck - maximal checking interval (s)
occulted - the body to be occulted
occultedRadius - the radius of the body to be occulted (m)
occulting - the occulting body
occultingRadius - the occulting body radius (m)
totalEclipse - umbra (true) or penumbra (false) detection flag

EclipseDetector

public EclipseDetector(double maxCheck,
                       double threshold,
                       PVCoordinatesProvider occulted,
                       double occultedRadius,
                       PVCoordinatesProvider occulting,
                       double occultingRadius,
                       boolean totalEclipse)
Build a new eclipse detector .

The new instance is either an umbra detector or a penumbra detector.

The maximal interval between eclipse checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

Parameters:
maxCheck - maximal checking interval (s)
threshold - convergence threshold (s)
occulted - the body to be occulted
occultedRadius - the radius of the body to be occulted (m)
occulting - the occulting body
occultingRadius - the occulting body radius (m)
totalEclipse - umbra (true) or penumbra (false) detection flag

EclipseDetector

public EclipseDetector(PVCoordinatesProvider occulted,
                       double occultedRadius,
                       PVCoordinatesProvider occulting,
                       double occultingRadius)
Build a new eclipse detector.

The new instance is a total eclipse (umbra) detector with default values for maximal checking interval (AbstractDetector.DEFAULT_MAXCHECK) and convergence threshold (AbstractDetector.DEFAULT_THRESHOLD).

Parameters:
occulted - the body to be occulted
occultedRadius - the radius of the body to be occulted (m)
occulting - the occulting body
occultingRadius - the occulting body radius (m)

EclipseDetector

public EclipseDetector(double maxCheck,
                       PVCoordinatesProvider occulted,
                       double occultedRadius,
                       PVCoordinatesProvider occulting,
                       double occultingRadius)
Build a new eclipse detector.

The new instance is a total eclipse (umbra) detector with default value for convergence threshold (AbstractDetector.DEFAULT_THRESHOLD).

The maximal interval between eclipse checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

Parameters:
maxCheck - maximal checking interval (s)
occulted - the body to be occulted
occultedRadius - the radius of the body to be occulted in meters
occulting - the occulting body
occultingRadius - the occulting body radius in meters

EclipseDetector

public EclipseDetector(double maxCheck,
                       double threshold,
                       PVCoordinatesProvider occulted,
                       double occultedRadius,
                       PVCoordinatesProvider occulting,
                       double occultingRadius)
Build a new eclipse detector.

The new instance is a total eclipse (umbra) detector.

The maximal interval between eclipse checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.

Parameters:
maxCheck - maximal checking interval (s)
threshold - convergence threshold (s)
occulted - the body to be occulted
occultedRadius - the radius of the body to be occulted in meters
occulting - the occulting body
occultingRadius - the occulting body radius in meters
Method Detail

getOcculting

public PVCoordinatesProvider getOcculting()
Get the occulting body.

Returns:
the occulting body

getOccultingRadius

public double getOccultingRadius()
Get the occulting body radius (m).

Returns:
the occulting body radius

getOcculted

public PVCoordinatesProvider getOcculted()
Get the occulted body.

Returns:
the occulted body

getOccultedRadius

public double getOccultedRadius()
Get the occulted body radius (m).

Returns:
the occulted body radius

geTotaltEclipse

public boolean geTotaltEclipse()
Get the total eclipse detection flag.

Returns:
the total eclipse detection flag (true for umbra events detection, false for penumbra events detection)

eventOccurred

public int eventOccurred(SpacecraftState s,
                         boolean increasing)
                  throws OrekitException
Handle an eclipse event and choose what to do next.

The default implementation behavior is to continue propagation when entering the eclipse and to stop propagation when exiting the eclipse.

Specified by:
eventOccurred in interface EventDetector
Specified by:
eventOccurred in class AbstractDetector
Parameters:
s - the current state information : date, kinematics, attitude
increasing - if true, the value of the switching function increases when times increases around event.
Returns:
EventDetector.STOP or EventDetector.CONTINUE
Throws:
OrekitException - if some specific error occurs

g

public double g(SpacecraftState s)
         throws OrekitException
Compute the value of the switching function. This function becomes negative when entering the region of shadow and positive when exiting.

Specified by:
g in interface EventDetector
Specified by:
g in class AbstractDetector
Parameters:
s - the current state information: date, kinematics, attitude
Returns:
value of the switching function
Throws:
OrekitException - if some specific error occurs


Copyright © 2002-2010 CS Communication & Systèmes. All Rights Reserved.