public class FieldEclipseDetector<T extends RealFieldElement<T>> extends FieldAbstractDetector<FieldEclipseDetector<T>,T>
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 FieldAbstractDetector.withHandler(FieldEventHandler)
after construction.
FieldPropagator.addEventDetector(FieldEventDetector)
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Constructor and Description |
---|
FieldEclipseDetector(PVCoordinatesProvider occulted,
double occultedRadius,
PVCoordinatesProvider occulting,
double occultingRadius,
Field<T> field)
Build a new eclipse detector.
|
FieldEclipseDetector(T maxCheck,
PVCoordinatesProvider occulted,
double occultedRadius,
PVCoordinatesProvider occulting,
double occultingRadius)
Build a new eclipse detector.
|
FieldEclipseDetector(T maxCheck,
T threshold,
PVCoordinatesProvider occulted,
double occultedRadius,
PVCoordinatesProvider occulting,
double occultingRadius)
Build a new eclipse detector.
|
Modifier and Type | Method and Description |
---|---|
protected FieldEclipseDetector<T> |
create(T newMaxCheck,
T newThreshold,
int nawMaxIter,
FieldEventHandler<? super FieldEclipseDetector<T>,T> newHandler)
Build a new instance.
|
T |
g(FieldSpacecraftState<T> 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.
|
FieldEclipseDetector<T> |
withPenumbra()
Setup the detector to penumbra detection.
|
FieldEclipseDetector<T> |
withUmbra()
Setup the detector to full umbra detection.
|
eventOccurred, getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, resetState, withHandler, withMaxCheck, withMaxIter, withThreshold
public FieldEclipseDetector(PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius, Field<T> field)
The new instance is a total eclipse (umbra) detector with default
values for maximal checking interval (FieldAbstractDetector.DEFAULT_MAXCHECK
)
and convergence threshold (FieldAbstractDetector.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)field
- field used by defaultpublic FieldEclipseDetector(T maxCheck, PVCoordinatesProvider occulted, double occultedRadius, PVCoordinatesProvider occulting, double occultingRadius)
The new instance is a total eclipse (umbra) detector with default
value for convergence threshold (FieldAbstractDetector.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 FieldEclipseDetector(T maxCheck, T 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 FieldEclipseDetector<T> create(T newMaxCheck, T newThreshold, int nawMaxIter, FieldEventHandler<? super FieldEclipseDetector<T>,T> newHandler)
create
in class FieldAbstractDetector<FieldEclipseDetector<T extends RealFieldElement<T>>,T extends RealFieldElement<T>>
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 FieldEclipseDetector<T> withUmbra()
This will override a penumbra/umbra flag if it has been configured previously.
withPenumbra()
public FieldEclipseDetector<T> 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 T g(FieldSpacecraftState<T> s)
g
in interface FieldEventDetector<T extends RealFieldElement<T>>
g
in class FieldAbstractDetector<FieldEclipseDetector<T extends RealFieldElement<T>>,T extends RealFieldElement<T>>
s
- the current state information: date, kinematics, attitudeCopyright © 2002-2020 CS GROUP. All rights reserved.