public class EclipseDetector extends AbstractEclipseDetector
This class finds eclipse events, i.e. satellite 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 can takes into account signal propagation duration through
AbstractSignalPropagationDetector.setPropagationDelayType(PropagationDelayType, Frame) (default is signal being
instantaneous).
It can be taken only if the occulted body is defined through a PVCoordinatesProvider and
not an
IDirection.
WARNING : Do not use this detector to detect ground target visibilities or occulted bodies with null radius. Actually, the lighting ratio used to compute g function is based on geometric angle comparison and considers that if the vehicle is closer to the occulted body than to the occulting body then the occulted body is not occulted. This is not true if the occulted body is a target on the ground of the occulting body and In this case, it will detect a period out of eclipse longer than it should be.
Propagator.addEventDetector(EventDetector),
Serialized FormAbstractSignalPropagationDetector.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 |
|---|
EclipseDetector(IDirection occulted,
BodyShape occulting,
double lightingRatio,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector with defined actions when entering and exiting the eclipse.
|
EclipseDetector(IDirection occulted,
PVCoordinatesProvider occulting,
double occultingRadius,
double maxCheck,
double threshold)
Build a new eclipse detector.
|
EclipseDetector(IDirection occulted,
PVCoordinatesProvider occulting,
double occultingRadius,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit)
Build a new eclipse detector with defined actions when entering and exiting the eclipse.
|
EclipseDetector(IDirection occulted,
PVCoordinatesProvider occulting,
double occultingRadius,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector with defined actions when entering and exiting the eclipse.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
double lightingRatio,
double maxCheck,
double threshold)
Build a new eclipse detector based on a lighting ratio.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
double lightingRatio,
double maxCheck,
double threshold,
EventDetector.Action action,
boolean remove,
int slopeSelection)
Build a new eclipse detector based on a lighting ratio and with slope selection.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
double lightingRatio,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit)
Build a new eclipse detector based on a lighting ratio.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
double lightingRatio,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector based on a lighting ratio.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
double lightingRatio,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit,
int slopeSelection)
Build a new eclipse detector based on a lighting ratio and with slope selection.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
double lightingRatio,
double maxCheck,
double threshold,
int slopeSelection)
Build a new eclipse detector based on a lighting ratio and with slope selection.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
double lightingRatio,
double maxCheck,
double threshold)
Build a new eclipse detector based on a lighting ratio.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
double lightingRatio,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit)
Build a new eclipse detector based on a lighting ratio.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
double lightingRatio,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector based on a lighting ratio.
|
EclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
double lightingRatio,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action action,
boolean remove)
Constructor with slope selection.
|
| Modifier and Type | Method and Description |
|---|---|
EventDetector |
copy()
A copy of the detector.
|
double |
g(SpacecraftState state)
Compute the value of the switching function.
|
IDirection |
getOccultedDirection()
Returns the occulted body direction.
|
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 EclipseDetector(IDirection occulted, PVCoordinatesProvider occulting, double occultingRadius, double maxCheck, double threshold)
The occulting body is a sphere and the occulted body is a direction; the concept of umbra/penumbra does not apply to this detector.
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.
occulted - the direction to be occultedocculting - the occulting bodyoccultingRadius - the occulting body radius (m)maxCheck - maximal checking interval (s)threshold - convergence threshold (s)public EclipseDetector(IDirection occulted, PVCoordinatesProvider occulting, double occultingRadius, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit)
The occulting body is a sphere and the occulted body is a direction; the concept of umbra/penumbra does not apply to this detector.
occulted - the direction to be occultedocculting - the occulting bodyoccultingRadius - the occulting body radius (m)maxCheck - maximal checking interval (s)threshold - convergence threshold (s)entry - action performed when entering the eclipseexit - action performed when exiting the eclipsepublic EclipseDetector(IDirection occulted, PVCoordinatesProvider occulting, double occultingRadius, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit)
The occulting body is a sphere and the occulted body is a direction; the concept of umbra/penumbra does not apply to this detector.
occulted - the direction to be occultedocculting - the occulting bodyoccultingRadius - the occulting body radius (m)maxCheck - 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 EclipseDetector(IDirection occulted, BodyShape occulting, double lightingRatio, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit)
The occulting body is a sphere and the occulted body is a direction; the concept of umbra/penumbra does apply to this detector by means of the lighting ratio.
occulted - the direction to be occultedocculting - the occulting bodylightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra eventsmaxCheck - 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 zoneremoveExit - when the spacecraft point leaves the zonepublic EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, double lightingRatio, double maxCheck, double threshold)
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
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.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occulting - the occulting bodyoccultingRadius - the occulting body radius (m)lightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - maximal checking interval (s)threshold - convergence threshold (s)public EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, double lightingRatio, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit)
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occulting - the occulting bodyoccultingRadius - the occulting body radius (m)lightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - maximal checking interval (s)threshold - convergence threshold (s)entry - action performed when entering the eclipseexit - action performed when exiting the eclipsepublic EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, double lightingRatio, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit)
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occulting - the occulting bodyoccultingRadius - the occulting body radius (m)lightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - 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 EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, double lightingRatio, double maxCheck, double threshold)
BodyShape.
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
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.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodylightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - maximal checking interval (s)threshold - convergence threshold (s)public EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, double lightingRatio, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit)
BodyShape.
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodylightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - maximal checking interval (s)threshold - convergence threshold (s)entry - action performed when entering the eclipseexit - action performed when exiting the eclipsepublic EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, double lightingRatio, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit)
BodyShape.
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodylightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - 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 EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, double lightingRatio, double maxCheck, double threshold, int slopeSelection)
BodyShape.
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodylightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - maximal checking interval (s)threshold - convergence threshold (s)slopeSelection - slope selectionArithmeticException - if occultingBodyRadius is NaN.public EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, double lightingRatio, double maxCheck, double threshold, EventDetector.Action action, boolean remove, int slopeSelection)
BodyShape.
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodylightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - maximal checking interval (s)threshold - convergence threshold (s)action - action performed when entering/exiting the eclipse depending on slope selectionremove - when the spacecraft point enters or exit the zone depending on slope selectionslopeSelection - slope selectionArithmeticException - if occultingBodyRadius is NaN.public EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, double lightingRatio, double maxCheck, double threshold, EventDetector.Action entry, EventDetector.Action exit, boolean removeEntry, boolean removeExit, int slopeSelection)
BodyShape.
The lighting ratio, whose value is between 0 and 1, establishes when an eclipse event should
be triggered. If 0, an event is detected only when the occulted body is completely hidden
(equivalent to an umbra detector), if 1, an event is detected every time the occulted body is
just partially hidden (equivalent to a penumbra detector).
As a general rule, the lighting ratio is equal to 1 - the ratio between the hidden apparent
area of the occulted body and its total apparent area.
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occultingBodyIn - the occulting bodylightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - 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.slopeSelection - slope selectionArithmeticException - if occultingBodyRadius is NaN.public EclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, double lightingRatio, int slopeSelection, double maxCheck, double threshold, EventDetector.Action action, boolean remove)
occulted - the occulted bodyoccultedRadiusIn - the occulted body radius (m)occulting - the occulting bodyoccultingRadius - the occulting body radius (m)lightingRatio - the lighting ratio: 0 when total eclipse events should be detected, 1
for penumbra events.maxCheck - maximal checking interval (s)threshold - convergence threshold (s)slopeSelection - slope selectionaction - action performed when entering/exiting the eclipse depending on slope selectionremove - when the spacecraft point enters or exit the zone depending on slope selectionpublic IDirection getOccultedDirection()
public boolean isTotalEclipse()
isTotalEclipse in class AbstractEclipseDetectorpublic double g(SpacecraftState state) throws PatriusException
g in interface EventDetectorg in class AbstractDetectorstate - statePatriusException - if some specific error occurspublic EventDetector copy()
The following attributes are not deeply copied:
PVCoordinatesProviderPVCoordinatesProviderApparentRadiusProviderCopyright © 2025 CNES. All rights reserved.