public abstract class AbstractEclipseDetector extends AbstractSignalPropagationDetector
AbstractSignalPropagationDetector,
Serialized FormAbstractSignalPropagationDetector.EventDatationType, AbstractSignalPropagationDetector.PropagationDelayTypeEventDetector.Action| Modifier and Type | Field and Description |
|---|---|
static int |
ENTRY
Flag for eclipse entry detection (slopeSelection = 1).
|
static int |
ENTRY_EXIT
Flag for eclipse entry/exit detection (slopeSelection = 2).
|
protected static double |
EPSILON_LIGHTING_RATIO
Threshold for the lighting ratio: if ratio >= 1 - ε --> ratio = 1, if ratio <=
ε --> ratio = 0.
|
static int |
EXIT
Flag for eclipse exit detection (slopeSelection = 0).
|
protected static String |
UNSUPPORTED_MODE_EXCEPTION
Exception message if the compatibility mode is unsupported.
|
actionAtEntry, actionAtExit, DEFAULT_MAXCHECK, DEFAULT_MAXITER, DEFAULT_THRESHOLD, removeAtEntry, removeAtExit, shouldBeRemovedFlagDECREASING, INCREASING, INCREASING_DECREASING| Constructor and Description |
|---|
AbstractEclipseDetector(BodyShape occulting,
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.
|
AbstractEclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
BodyShape occultingBodyIn,
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.
|
AbstractEclipseDetector(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.
|
AbstractEclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action action,
boolean remove)
Constructor with slope selection.
|
AbstractEclipseDetector(PVCoordinatesProvider occulted,
double occultedRadiusIn,
PVCoordinatesProvider occulting,
double occultingRadius,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action entry,
EventDetector.Action exit,
boolean removeEntry,
boolean removeExit)
Build a new eclipse detector based on a lighting ratio.
|
| Modifier and Type | Method and Description |
|---|---|
protected LightingRatio |
buildLightingRatioComputer(PVCoordinatesProvider occultedBody)
Builds the LightingRatio object
|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle an eclipse event and choose what to do next.
|
PVCoordinatesProvider |
getEmitter(SpacecraftState s)
Getter for the signal emitter.
|
AbstractSignalPropagationDetector.EventDatationType |
getEventDatationType()
Specify if the event datation type corresponds to the emitter date or the receiver date.
|
PVCoordinatesProvider |
getOcculted()
Get the occulted body.
|
double |
getOccultedRadius()
Get the occulted body radius (m).
|
PVCoordinatesProvider |
getOcculting()
Get the occulting body.
|
protected BodyShape |
getOccultingBodyShape()
Get the occulting body shape
|
ApparentRadiusProvider |
getOccultingRadiusProvider()
Returns the occulting radius provider.
|
PVCoordinatesProvider |
getReceiver(SpacecraftState s)
Getter for the signal receiver.
|
boolean |
isInEclipse(SpacecraftState s)
Get the eclipse flag.
|
abstract boolean |
isTotalEclipse()
Get the total eclipse detection flag.
|
protected void |
setOcculted(PVCoordinatesProvider occultedBody)
Set the occulted body.
|
void |
setPropagationDelayType(AbstractSignalPropagationDetector.PropagationDelayType propagationDelayType,
Frame frame)
Setter for the propagation delay computation type.
|
getEpsilonSignalPropagation, getInertialFrame, getLinkTypeHandler, getMaxIterSignalPropagation, getOtherDate, getPropagationDelayType, getSignalEmissionDate, getSignalEmissionDate, getSignalReceptionDate, getSignalReceptionDate, setEpsilonSignalPropagation, setMaxIterSignalPropagationfilterEvent, g, getActionAtEntry, getActionAtExit, getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, init, isRemoveAtEntry, isRemoveAtExit, logEventsOverTimeInterval, resetState, setMaxCheckInterval, setMaxIter, shouldBeRemovedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcopyprotected static final String UNSUPPORTED_MODE_EXCEPTION
protected static final double EPSILON_LIGHTING_RATIO
public static final int EXIT
public static final int ENTRY
public static final int ENTRY_EXIT
public AbstractEclipseDetector(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.
occulting - 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 AbstractEclipseDetector(BodyShape occulting, 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.
occulting - the occulting bodymaxCheck - 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 AbstractEclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, int slopeSelection, 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)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 AbstractEclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, BodyShape occultingBodyIn, 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 bodymaxCheck - 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 AbstractEclipseDetector(PVCoordinatesProvider occulted, double occultedRadiusIn, PVCoordinatesProvider occulting, double occultingRadius, 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)slopeSelection - slope selectionmaxCheck - 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 selectionpublic PVCoordinatesProvider getOcculting()
protected BodyShape getOccultingBodyShape()
public PVCoordinatesProvider getOcculted()
protected final void setOcculted(PVCoordinatesProvider occultedBody)
occultedBody - the occulted bodypublic double getOccultedRadius()
public ApparentRadiusProvider getOccultingRadiusProvider()
public abstract boolean isTotalEclipse()
public boolean isInEclipse(SpacecraftState s) throws PatriusException
s - the current state information : date, kinematics, attitudePatriusException - if some specific error occurs while retrieving the value of the switching function g(s)public EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward)
eventOccurred in interface EventDetectoreventOccurred in class AbstractDetectors - 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.public void setPropagationDelayType(AbstractSignalPropagationDetector.PropagationDelayType propagationDelayType, Frame frame)
setPropagationDelayType in class AbstractSignalPropagationDetectorpropagationDelayType - Propagation delay type used in events computationframe - Frame to use for signal propagation with delay (may be null if propagation delay type is
considered instantaneous). Warning: the usage of a pseudo inertial frame is tolerated, however it will
lead to some inaccuracies due to the non-invariance of the frame with respect to time. For this reason,
it is suggested to use the ICRF frame or a frame which is frozen with respect to the ICRF.public PVCoordinatesProvider getEmitter(SpacecraftState s)
getEmitter in class AbstractSignalPropagationDetectors - the spacecraft state used by the detectorpublic PVCoordinatesProvider getReceiver(SpacecraftState s)
getReceiver in class AbstractSignalPropagationDetectors - the spacecraft state used by the detectorpublic AbstractSignalPropagationDetector.EventDatationType getEventDatationType()
getEventDatationType in class AbstractSignalPropagationDetectorprotected LightingRatio buildLightingRatioComputer(PVCoordinatesProvider occultedBody)
occultedBody - occulted bodyCopyright © 2025 CNES. All rights reserved.