public class BodyInEclipseDetector extends AbstractEclipseDetector
This class finds eclipse events, i.e. celestial body within umbra (total eclipse) or penumbra (partial eclipse).
The default implementation behavior is to EventDetector.Action#CONTINUE continue
propagation when entering the eclipse and to EventDetector.Action#STOP stop
propagation when exiting the eclipse. This can be changed by using some constructors.
This detector takes into account signal propagation duration through
AbstractSignalPropagationDetector.setPropagationDelayType(PropagationDelayType, Frame) (default is signal being
instantaneous).
| Modifier and Type | Class and Description |
|---|---|
static class |
BodyInEclipseDetector.BodyInEclipseModelEnum
Enumerate for the types of available models for the BodyInEclipse calculations
|
AbstractSignalPropagationDetector.EventDatationType, AbstractSignalPropagationDetector.PropagationDelayTypeEventDetector.ActionENTRY, ENTRY_EXIT, EPSILON_LIGHTING_RATIO, EXIT, UNSUPPORTED_MODE_EXCEPTIONactionAtEntry, actionAtExit, DEFAULT_MAXCHECK, DEFAULT_MAXITER, DEFAULT_THRESHOLD, removeAtEntry, removeAtExit, shouldBeRemovedFlagDECREASING, INCREASING, INCREASING_DECREASING| Constructor and Description |
|---|
BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn,
double targetRadiusIn,
PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
boolean totalEclipseIn,
boolean bodyFullyInEclipseIn,
BodyInEclipseDetector.BodyInEclipseModelEnum modelIn,
int slopeSelection,
double maxCheck,
double threshold)
Build a new eclipse detector based on full shape for the occulting body.
|
BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn,
double targetRadiusIn,
PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
boolean totalEclipseIn,
boolean bodyFullyInEclipseIn,
BodyInEclipseDetector.BodyInEclipseModelEnum modelIn,
int slopeSelection,
double maxCheck,
double threshold,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector based on full shape for the occulting body.
|
BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn,
double targetRadiusIn,
PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
boolean totalEclipseIn,
boolean bodyFullyInEclipseIn,
BodyInEclipseDetector.BodyInEclipseModelEnum modelIn,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector based on full shape for the occulting body.
|
BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn,
double targetRadiusIn,
PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
boolean totalEclipseIn,
boolean bodyFullyInEclipseIn,
BodyInEclipseDetector.BodyInEclipseModelEnum modelIn,
int slopeSelection,
double maxCheck,
double threshold)
Build a new eclipse detector.
|
BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn,
double targetRadiusIn,
PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
boolean totalEclipseIn,
boolean bodyFullyInEclipseIn,
BodyInEclipseDetector.BodyInEclipseModelEnum modelIn,
int slopeSelection,
double maxCheck,
double threshold,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector.
|
BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn,
double targetRadiusIn,
PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
boolean totalEclipseIn,
boolean bodyFullyInEclipseIn,
BodyInEclipseDetector.BodyInEclipseModelEnum modelIn,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector.
|
| Modifier and Type | Method and Description |
|---|---|
BodyInEclipseDetector |
copy()
A copy of the detector.
|
double |
g(AbsoluteDate date)
Compute the value of the switching function at a given date.
|
double |
g(SpacecraftState state)
Compute the value of the switching function.
|
boolean |
isInEclipse(AbsoluteDate date)
Get the eclipse flag.
|
boolean |
isTotalEclipse()
Get the total eclipse detection flag.
|
buildLightingRatioComputer, eventOccurred, getEmitter, getEventDatationType, getOcculted, getOccultedRadius, getOcculting, getOccultingBodyShape, getOccultingRadiusProvider, getReceiver, isInEclipse, setOcculted, setPropagationDelayTypegetEpsilonSignalPropagation, getInertialFrame, getLinkTypeHandler, getMaxIterSignalPropagation, getOtherDate, getPropagationDelayType, getSignalEmissionDate, getSignalEmissionDate, getSignalReceptionDate, getSignalReceptionDate, setEpsilonSignalPropagation, setMaxIterSignalPropagationfilterEvent, getActionAtEntry, getActionAtExit, getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, init, isRemoveAtEntry, isRemoveAtExit, logEventsOverTimeInterval, resetState, setMaxCheckInterval, setMaxIter, shouldBeRemovedpublic BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn, double targetRadiusIn, PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, boolean totalEclipseIn, boolean bodyFullyInEclipseIn, BodyInEclipseDetector.BodyInEclipseModelEnum modelIn, int slopeSelection, double maxCheck, double threshold)
targetBodyIn - the target body ephemeristargetRadiusIn - the target body radius (m)occulted - the occulted body ephemerisoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodytotalEclipseIn - true for total eclipse (umbra), false for partial eclipse (penumbra)bodyFullyInEclipseIn - true for body fully in eclipse, false for body partially in
eclipsemodelIn - the model to use (exact or approx)slopeSelection - slope selectionmaxCheck - maximal checking interval (s)threshold - convergence threshold (s)public BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn, double targetRadiusIn, PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, boolean totalEclipseIn, boolean bodyFullyInEclipseIn, BodyInEclipseDetector.BodyInEclipseModelEnum modelIn, int slopeSelection, double maxCheck, double threshold, boolean removeEntry, boolean removeExit)
targetBodyIn - the target body ephemeristargetRadiusIn - the target body radius (m)occulted - the occulted body ephemerisoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodytotalEclipseIn - true for total eclipse (umbra), false for partial eclipse (penumbra)bodyFullyInEclipseIn - true for body fully in eclipse, false for body partially in
eclipsemodelIn - the model to use (exact or approx)slopeSelection - slope selectionmaxCheck - maximal checking interval (s)threshold - convergence threshold (s)removeEntry - when the spacecraft point enters the zone.removeExit - when the spacecraft point leaves the zone.public BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn, double targetRadiusIn, PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, boolean totalEclipseIn, boolean bodyFullyInEclipseIn, BodyInEclipseDetector.BodyInEclipseModelEnum modelIn, int slopeSelection, double maxCheck, double threshold)
targetBodyIn - the target body ephemeristargetRadiusIn - the target body radius (m)occulted - the occulted body ephemerisoccultedRadiusIn - the occulted body radius (m)occulting - the occulting body ephemerisoccultingRadius - the occulting body radius (m)totalEclipseIn - true for total eclipse (umbra), false for partial eclipse (penumbra)bodyFullyInEclipseIn - true for body fully in eclipse, false for body partially in
eclipsemodelIn - the model to use (exact or approx)slopeSelection - slope selectionmaxCheck - maximal checking interval (s)threshold - convergence threshold (s)public BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn, double targetRadiusIn, PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, boolean totalEclipseIn, boolean bodyFullyInEclipseIn, BodyInEclipseDetector.BodyInEclipseModelEnum modelIn, int slopeSelection, double maxCheck, double threshold, boolean removeEntry, boolean removeExit)
targetBodyIn - the target body ephemeristargetRadiusIn - the target body radius (m)occulted - the occulted body ephemerisoccultedRadiusIn - the occulted body radius (m)occulting - the occulting body ephemerisoccultingRadius - the occulting body radius (m)totalEclipseIn - true for total eclipse (umbra), false for partial eclipse (penumbra)bodyFullyInEclipseIn - true for body fully in eclipse, false for body partially in
eclipsemodelIn - the model to use (exact or approx)slopeSelection - slope selectionmaxCheck - maximal checking interval (s)threshold - convergence threshold (s)removeEntry - when the spacecraft point enters the zone.removeExit - when the spacecraft point leaves the zone.public BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn, double targetRadiusIn, PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, boolean totalEclipseIn, boolean bodyFullyInEclipseIn, BodyInEclipseDetector.BodyInEclipseModelEnum modelIn, int slopeSelection, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit)
targetBodyIn - the target body ephemeristargetRadiusIn - the target body radius (m)occulted - the occulted body ephemerisoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodytotalEclipseIn - true for total eclipse (umbra), false for partial eclipse (penumbra)bodyFullyInEclipseIn - true for body fully in eclipse, false for body partially in
eclipsemodelIn - the model to use (exact or approx)slopeSelection - slope selectionmaxCheck - maximal checking interval (s)threshold - convergence threshold (s)entry - action performed when entering the eclipseexit - action performed when exiting the eclipseremoveEntry - when the spacecraft point enters the zone.removeExit - when the spacecraft point leaves the zone.public BodyInEclipseDetector(PVCoordinatesProvider targetBodyIn, double targetRadiusIn, PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, boolean totalEclipseIn, boolean bodyFullyInEclipseIn, BodyInEclipseDetector.BodyInEclipseModelEnum modelIn, int slopeSelection, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit)
targetBodyIn - the target body ephemeristargetRadiusIn - the target body radius (m)occulted - the occulted body ephemerisoccultedRadiusIn - the occulted body radius (m)occulting - the occulting body ephemerisoccultingRadius - the occulting body radius (m)totalEclipseIn - true for total eclipse (umbra), false for partial eclipse (penumbra)bodyFullyInEclipseIn - true for body fully in eclipse, false for body partially in
eclipsemodelIn - the model to use (exact or approx)slopeSelection - slope selectionmaxCheck - maximal checking interval (s)threshold - convergence threshold (s)entry - action performed when entering the eclipseexit - action performed when exiting the eclipseremoveEntry - when the spacecraft point enters the zone.removeExit - when the spacecraft point leaves the zone.public double g(SpacecraftState state) throws PatriusException
g in interface EventDetectorg in class AbstractDetectorstate - statePatriusException - if some specific error occurspublic double g(AbsoluteDate date) throws PatriusException
date - date of computationPatriusExceptionpublic boolean isTotalEclipse()
isTotalEclipse in class AbstractEclipseDetectorpublic boolean isInEclipse(AbsoluteDate date) throws PatriusException
date - the current datePatriusException - if some specific error occurs while retrieving the value of the switching function g(s)public BodyInEclipseDetector copy()
The following attributes are not deeply copied:
PVCoordinatesProviderPVCoordinatesProviderApparentRadiusProviderCopyright © 2025 CNES. All rights reserved.