public class CentralBodyMaskCircularFOVDetector extends AbstractSignalPropagationDetector
This class handles fields of view with a circular boundary.
This class handles central body as a ellipsoid
.
The default implementation behaviour is to
stop
propagation when the target is in
the field of view outside of eclipse. This can be changed by using one of the provided constructors.
This detector can takes into account signal propagation duration through
AbstractSignalPropagationDetector.setPropagationDelayType(PropagationDelayType, fr.cnes.sirius.patrius.frames.Frame)
(default is signal being instantaneous).
Propagator.addEventDetector(fr.cnes.sirius.patrius.events.EventDetector)
,
BodyShape
,
IEllipsoid
,
EclipseDetector
,
CircularFieldOfViewDetector
,
Serialized FormAbstractSignalPropagationDetector.DatationChoice, AbstractSignalPropagationDetector.PropagationDelayType
EventDetector.Action
actionAtEntry, actionAtExit, DEFAULT_MAXCHECK, DEFAULT_MAXITER, DEFAULT_THRESHOLD, removeAtEntry, removeAtExit, shouldBeRemovedFlag
DECREASING, INCREASING, INCREASING_DECREASING
Constructor and Description |
---|
CentralBodyMaskCircularFOVDetector(EclipseDetector eclipseDetectorIn,
CircularFieldOfViewDetector circularFOVDetectorIn,
double maxCheck,
double threshold,
EventDetector.Action action,
boolean remove)
Constructor with EclipseDetector and CircularFieldOfViewDetector.
|
CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody,
double occultedBodyRadius,
BodyShape occultingBody,
boolean totalEclipseFlag,
Vector3D center,
double halfAperture)
Constructor with default maxcheck and default threshold, creating a circularFOVDetector and
an EllipsoidEclipseDetector
|
CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody,
double occultedBodyRadius,
BodyShape occultingBody,
boolean totalEclipseFlag,
Vector3D center,
double halfAperture,
double maxCheck,
double threshold)
Constructor with user maxcheck and threshold creating a circularFOVDetector and an
EllipsoidEclipseDetector
|
CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody,
double occultedBodyRadius,
BodyShape occultingBody,
boolean totalEclipseFlag,
Vector3D center,
double halfAperture,
double maxCheck,
double threshold,
EventDetector.Action action)
Constructor with user maxcheck and threshold creating a circularFOVDetector and an
EllipsoidEclipseDetector
|
CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody,
double occultedBodyRadius,
BodyShape occultingBody,
boolean totalEclipseFlag,
Vector3D center,
double halfAperture,
double maxCheck,
double threshold,
EventDetector.Action action,
boolean remove)
Constructor with user maxcheck and threshold creating a circularFOVDetector and an
EllipsoidEclipseDetector
|
Modifier and Type | Method and Description |
---|---|
EventDetector |
copy()
A copy of the detector.
|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle a target in field of view outside eclipse reaching event and choose what to do next.
|
double |
g(SpacecraftState s)
The switching function is the minimum value between the eclipse detector g function and the
circularFOVDetector
|
CircularFieldOfViewDetector |
getCircularFOVDetector()
Get the circular FOV detector.
|
AbstractSignalPropagationDetector.DatationChoice |
getDatationChoice()
Specify if the datation choice corresponds to the emitter date or the receiver date.
|
EclipseDetector |
getEclipseDetector()
Get the eclipse detector.
|
PVCoordinatesProvider |
getEmitter(SpacecraftState s)
Getter for the signal emitter.
|
PVCoordinatesProvider |
getReceiver(SpacecraftState s)
Getter for the signal receiver.
|
void |
init(SpacecraftState s0,
AbsoluteDate t)
Initialize event handler at the start of a propagation.
|
getEpsilonSignalPropagation, getInertialFrame, getMaxIterSignalPropagation, getPropagationDelayType, getSignalEmissionDate, getSignalEmissionDate, getSignalReceptionDate, getSignalReceptionDate, setEpsilonSignalPropagation, setMaxIterSignalPropagation, setPropagationDelayType
filterEvent, getActionAtEntry, getActionAtExit, getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, isRemoveAtEntry, isRemoveAtExit, logEventsOverTimeInterval, resetState, setMaxCheckInterval, setMaxIter, shouldBeRemoved
public CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody, double occultedBodyRadius, BodyShape occultingBody, boolean totalEclipseFlag, Vector3D center, double halfAperture, double maxCheck, double threshold)
The default implementation behaviour is to
stop
propagation when the target is
visible.
occultedBody
- the target to detect in field of view outside of eclipseoccultedBodyRadius
- the radius of this targetoccultingBody
- the ellipsoid body shape of the central body potentially occulting the
targettotalEclipseFlag
- true to detect only when the target is fully visible, false to detect
also when the target is partially visiblecenter
- the sight axis direction of the field of view in satellite framehalfAperture
- the half aperture of the field of viewmaxCheck
- maximum check (see AbstractDetector
)threshold
- threshold (see AbstractDetector
)EclipseDetector
,
CircularFieldOfViewDetector
public CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody, double occultedBodyRadius, BodyShape occultingBody, boolean totalEclipseFlag, Vector3D center, double halfAperture, double maxCheck, double threshold, EventDetector.Action action)
occultedBody
- the target to detect in field of view outside of eclipseoccultedBodyRadius
- the radius of this targetoccultingBody
- the ellipsoid body shape of the central body potentially occulting the
targettotalEclipseFlag
- true to detect only when the target is fully visible, false to detect
also when the target is partially visiblecenter
- the sight axis direction of the field of view in satellite framehalfAperture
- the half aperture of the field of viewmaxCheck
- maximum check (see AbstractDetector
)threshold
- threshold (see AbstractDetector
)action
- action performed at circularFOV detectionEclipseDetector
,
CircularFieldOfViewDetector
public CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody, double occultedBodyRadius, BodyShape occultingBody, boolean totalEclipseFlag, Vector3D center, double halfAperture, double maxCheck, double threshold, EventDetector.Action action, boolean remove)
occultedBody
- the target to detect in field of view outside of eclipseoccultedBodyRadius
- the radius of this targetoccultingBody
- the ellipsoid body shape of the central body potentially occulting the
targettotalEclipseFlag
- true to detect only when the target is fully visible, false to detect
also when the target is partially visiblecenter
- the sight axis direction of the field of view in satellite framehalfAperture
- the half aperture of the field of viewmaxCheck
- maximum check (see AbstractDetector
)threshold
- threshold (see AbstractDetector
)action
- action performed at circularFOV detectionremove
- if detector should be removedEclipseDetector
,
CircularFieldOfViewDetector
public CentralBodyMaskCircularFOVDetector(EclipseDetector eclipseDetectorIn, CircularFieldOfViewDetector circularFOVDetectorIn, double maxCheck, double threshold, EventDetector.Action action, boolean remove)
eclipseDetectorIn
- Eclipse detectorcircularFOVDetectorIn
- circular field of viewmaxCheck
- maximum check (see AbstractDetector
)threshold
- threshold (see AbstractDetector
)action
- action performed at circularFOV detectionremove
- if detector should be removedEclipseDetector
,
CircularFieldOfViewDetector
public CentralBodyMaskCircularFOVDetector(PVCoordinatesProvider occultedBody, double occultedBodyRadius, BodyShape occultingBody, boolean totalEclipseFlag, Vector3D center, double halfAperture)
occultedBody
- the target to detect in field of view outside of eclipseoccultedBodyRadius
- the radius of this targetoccultingBody
- the ellipsoid body shape of the central body potentially occulting the
targettotalEclipseFlag
- true to detect only when the target is fully visible, false to detect
also when the target is partially visiblecenter
- the sight axis direction of the field of view in satellite framehalfAperture
- the half aperture of the field of viewEclipseDetector
,
CircularFieldOfViewDetector
public void init(SpacecraftState s0, AbsoluteDate t)
This method is called once at the start of the propagation. It may be used by the event handler to initialize some internal data if needed.
init
in interface EventDetector
init
in class AbstractDetector
s0
- initial statet
- target time for the integrationpublic EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward) throws PatriusException
eventOccurred
in interface EventDetector
eventOccurred
in class AbstractDetector
s
- the current state of propagationincreasing
- if true, the value of the switching function increases when times increases
around eventforward
- if true, the integration variable (time) increases during integration.PatriusException
- if some specific error occurspublic double g(SpacecraftState s) throws PatriusException
g
in interface EventDetector
g
in class AbstractDetector
s
- the current state of propagationPatriusException
- if some specific error occurspublic EclipseDetector getEclipseDetector()
public CircularFieldOfViewDetector getCircularFOVDetector()
public PVCoordinatesProvider getEmitter(SpacecraftState s)
getEmitter
in class AbstractSignalPropagationDetector
s
- the spacecraft state used by the detectorpublic PVCoordinatesProvider getReceiver(SpacecraftState s)
getReceiver
in class AbstractSignalPropagationDetector
s
- the spacecraft state used by the detectorpublic AbstractSignalPropagationDetector.DatationChoice getDatationChoice()
getDatationChoice
in class AbstractSignalPropagationDetector
public EventDetector copy()
The following attributes are not deeply copied:
CircularFieldOfViewDetector
Copyright © 2023 CNES. All rights reserved.