Class FieldAngularSeparationDetector<T extends CalculusFieldElement<T>>
- Type Parameters:
T- type of the field elements
- All Implemented Interfaces:
FieldEventDetector<T>
The main use case for this detector is when the observer is in fact a ground
station, modeled as a TopocentricFrame and when the beacon
is the Sun, for computing
interferences for the telemetry link. Another similar case is when the beacon is
another spacecraft, for interferences computation.
The default handler behavior is to stop
propagation when spacecraft enters the proximity zone. This can be changed by calling
#withHandler(EventHandler) after construction.
- Since:
- 13.1
- Author:
- Luc Maisonobe, Romain Serra
- See Also:
-
Field Summary
Fields inherited from class org.orekit.propagation.events.FieldAbstractDetector
DEFAULT_MAX_CHECK, DEFAULT_MAX_ITER, DEFAULT_THRESHOLD -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFieldAngularSeparationDetector(FieldEventDetectionSettings<T> detectionSettings, FieldEventHandler<T> handler, ExtendedPositionProvider beacon, ExtendedPositionProvider observer, T proximityAngle) Protected constructor with full parameters.FieldAngularSeparationDetector(ExtendedPositionProvider beacon, ExtendedPositionProvider observer, T proximityAngle) Build a new angular separation detector. -
Method Summary
Modifier and TypeMethodDescriptionprotected FieldAngularSeparationDetector<T> create(FieldEventDetectionSettings<T> detectionSettings, FieldEventHandler<T> newHandler) Build a new instance.g(FieldSpacecraftState<T> s) Compute the value of the switching function.Get the beacon at the center of the proximity zone.Get the observer for the spacecraft.Get the proximity angle (rad).toEventDetector(EventHandler eventHandler) Build non-Field instance.Methods inherited from class org.orekit.propagation.events.FieldAbstractDetector
checkIfForward, getDetectionSettings, getEventFunction, getHandler, init, isForward, withDetectionSettings, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThresholdMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.events.FieldEventDetector
finish, getMaxCheckInterval, getMaxIterationCount, getThreshold, reset
-
Constructor Details
-
FieldAngularSeparationDetector
public FieldAngularSeparationDetector(ExtendedPositionProvider beacon, ExtendedPositionProvider observer, T proximityAngle) Build a new angular separation detector.- Parameters:
beacon- beacon at the center of the proximity zoneobserver- observer for the spacecraft, that may also see the beacon at the same time if they are too close to each otherproximityAngle- proximity angle as seen from observer, at which events are triggered (rad)
-
FieldAngularSeparationDetector
protected FieldAngularSeparationDetector(FieldEventDetectionSettings<T> detectionSettings, FieldEventHandler<T> handler, ExtendedPositionProvider beacon, ExtendedPositionProvider observer, T proximityAngle) Protected constructor with full parameters.This constructor is not public as users are expected to use the builder API with the various
withXxx()methods to set up the instance in a readable manner without using a huge amount of parameters.- Parameters:
detectionSettings- detection settingshandler- event handler to call at event occurrencesbeacon- beacon at the center of the proximity zoneobserver- observer for the spacecraft, that may also see the beacon at the same time if they are too close to each otherproximityAngle- proximity angle as seen from observer, at which events are triggered (rad)- Since:
- 13.0
-
-
Method Details
-
create
protected FieldAngularSeparationDetector<T> create(FieldEventDetectionSettings<T> detectionSettings, FieldEventHandler<T> newHandler) Build a new instance.- Specified by:
createin classFieldAbstractDetector<FieldAngularSeparationDetector<T extends CalculusFieldElement<T>>,T extends CalculusFieldElement<T>> - Parameters:
detectionSettings- detection settingsnewHandler- event handler to call at event occurrences- Returns:
- a new instance of the appropriate sub-type
-
getBeacon
Get the beacon at the center of the proximity zone.- Returns:
- beacon at the center of the proximity zone
-
getObserver
Get the observer for the spacecraft.- Returns:
- observer for the spacecraft
-
getProximityAngle
Get the proximity angle (rad).- Returns:
- the proximity angle
-
g
Compute the value of the switching function.This function measures the angular separation between beacon and spacecraft as seen from the observer minus the proximity angle. It therefore triggers decreasing events when the spacecraft enters the proximity zone and increasing events when it leaves the proximity zone.
No shadowing effect is taken into account, so this method is computed and may trigger events even when the spacecraft is below horizon for an observer which is a ground station. If such effects must be taken into account the detector must be associated with a
predicate filterwhere thepredicate functionis based on elevation.- Parameters:
s- the current state information: date, kinematics, attitude- Returns:
- value of the switching function
-
toEventDetector
Build non-Field instance.- Overrides:
toEventDetectorin classFieldAbstractDetector<FieldAngularSeparationDetector<T extends CalculusFieldElement<T>>,T extends CalculusFieldElement<T>> - Parameters:
eventHandler- event handler- Returns:
- event detector
-