Serializable
, EventDetector
public class EclipseDetector extends AbstractDetector<EclipseDetector>
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 calling AbstractDetector.withHandler(EventHandler)
after construction.
Propagator.addEventDetector(EventDetector)
,
Serialized FormDEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Constructor | Description |
---|---|
EclipseDetector(double maxCheck,
double threshold,
PVCoordinatesProvider occulted,
double occultedRadius,
PVCoordinatesProvider occulting,
double occultingRadius) |
Build a new eclipse detector.
|
EclipseDetector(double maxCheck,
PVCoordinatesProvider occulted,
double occultedRadius,
PVCoordinatesProvider occulting,
double occultingRadius) |
Build a new eclipse detector.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadius,
PVCoordinatesProvider occulting,
double occultingRadius) |
Build a new eclipse detector.
|
Modifier and Type | Method | Description |
---|---|---|
protected EclipseDetector |
create(double newMaxCheck,
double newThreshold,
int nawMaxIter,
EventHandler<? super EclipseDetector> newHandler) |
Build a new instance.
|
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 |
getTotalEclipse() |
Get the total eclipse detection flag.
|
EclipseDetector |
withPenumbra() |
Setup the detector to penumbra detection.
|
EclipseDetector |
withUmbra() |
Setup the detector to full umbra detection.
|
eventOccurred, getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, resetState, withHandler, withMaxCheck, withMaxIter, withThreshold
public EclipseDetector(PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius)
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
).
occulted
- the body to be occultedoccultedRadius
- the radius of the body to be occulted (m)occulting
- the occulting bodyoccultingRadius
- the occulting body radius (m)public EclipseDetector(double maxCheck, PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius)
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.
maxCheck
- maximal checking interval (s)occulted
- the body to be occultedoccultedRadius
- the radius of the body to be occulted in metersocculting
- the occulting bodyoccultingRadius
- the occulting body radius in meterspublic EclipseDetector(double maxCheck, double threshold, PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius)
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.
maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)occulted
- the body to be occultedoccultedRadius
- the radius of the body to be occulted in metersocculting
- the occulting bodyoccultingRadius
- the occulting body radius in metersprotected EclipseDetector create(double newMaxCheck, double newThreshold, int nawMaxIter, EventHandler<? super EclipseDetector> newHandler)
create
in class AbstractDetector<EclipseDetector>
newMaxCheck
- maximum checking interval (s)newThreshold
- convergence threshold (s)nawMaxIter
- maximum number of iterations in the event time searchnewHandler
- event handler to call at event occurrencespublic EclipseDetector withUmbra()
This will override a penumbra/umbra flag if it has been configured previously.
withPenumbra()
public EclipseDetector withPenumbra()
This will override a penumbra/umbra flag if it has been configured previously.
withUmbra()
public PVCoordinatesProvider getOcculting()
public double getOccultingRadius()
public PVCoordinatesProvider getOcculted()
public double getOccultedRadius()
public boolean getTotalEclipse()
public double g(SpacecraftState s)
g
in interface EventDetector
g
in class AbstractDetector<EclipseDetector>
s
- the current state information: date, kinematics, attitudeCopyright © 2002-2019 CS Systèmes d'information. All rights reserved.