Class FieldElevationExtremumDetector<T extends CalculusFieldElement<T>>
- java.lang.Object
-
- org.orekit.propagation.events.FieldAbstractDetector<FieldElevationExtremumDetector<T>,T>
-
- org.orekit.propagation.events.FieldElevationExtremumDetector<T>
-
- Type Parameters:
T
- type of the field element
- All Implemented Interfaces:
FieldEventDetector<T>
public class FieldElevationExtremumDetector<T extends CalculusFieldElement<T>> extends FieldAbstractDetector<FieldElevationExtremumDetector<T>,T>
Detector for elevation extremum with respect to a ground point.This detector identifies when a spacecraft reaches its extremum elevation with respect to a ground point.
As in most cases only the elevation maximum is needed and the minimum is often irrelevant, this detector is often wrapped into an
event slope filter
configured withFilterType.TRIGGER_ONLY_DECREASING_EVENTS
(i.e. when the elevation derivative decreases from positive values to negative values, which correspond to a maximum). Setting up this filter saves some computation time as the elevation minimum occurrences are not even looked at. It is however still often necessary to do an additional filtering- Since:
- 12.0
- Author:
- Luc Maisonobe
-
-
Field Summary
-
Fields inherited from class org.orekit.propagation.events.FieldAbstractDetector
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
-
-
Constructor Summary
Constructors Modifier Constructor Description FieldElevationExtremumDetector(Field<T> field, TopocentricFrame topo)
Build a new detector.protected
FieldElevationExtremumDetector(FieldAdaptableInterval<T> maxCheck, T threshold, int maxIter, FieldEventHandler<T> handler, TopocentricFrame topo)
Protected constructor with full parameters.FieldElevationExtremumDetector(T maxCheck, T threshold, TopocentricFrame topo)
Build a detector.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected FieldElevationExtremumDetector<T>
create(FieldAdaptableInterval<T> newMaxCheck, T newThreshold, int newMaxIter, FieldEventHandler<T> newHandler)
Build a new instance.T
g(FieldSpacecraftState<T> s)
Compute the value of the detection function.T
getElevation(FieldSpacecraftState<T> s)
Get the elevation value.TopocentricFrame
getTopocentricFrame()
Returns the topocentric frame centered on ground point.-
Methods inherited from class org.orekit.propagation.events.FieldAbstractDetector
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
-
-
-
-
Constructor Detail
-
FieldElevationExtremumDetector
public FieldElevationExtremumDetector(Field<T> field, TopocentricFrame topo)
Build a new detector.The new instance uses default values for maximal checking interval (
FieldAbstractDetector.DEFAULT_MAXCHECK
) and convergence threshold (FieldAbstractDetector.DEFAULT_THRESHOLD
).- Parameters:
field
- field to which elements belongtopo
- topocentric frame centered on ground point
-
FieldElevationExtremumDetector
public FieldElevationExtremumDetector(T maxCheck, T threshold, TopocentricFrame topo)
Build a detector.- Parameters:
maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)topo
- topocentric frame centered on ground point
-
FieldElevationExtremumDetector
protected FieldElevationExtremumDetector(FieldAdaptableInterval<T> maxCheck, T threshold, int maxIter, FieldEventHandler<T> handler, TopocentricFrame topo)
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:
maxCheck
- maximum checking intervalthreshold
- convergence threshold (s)maxIter
- maximum number of iterations in the event time searchhandler
- event handler to call at event occurrencestopo
- topocentric frame centered on ground point
-
-
Method Detail
-
create
protected FieldElevationExtremumDetector<T> create(FieldAdaptableInterval<T> newMaxCheck, T newThreshold, int newMaxIter, FieldEventHandler<T> newHandler)
Build a new instance.- Specified by:
create
in classFieldAbstractDetector<FieldElevationExtremumDetector<T extends CalculusFieldElement<T>>,T extends CalculusFieldElement<T>>
- Parameters:
newMaxCheck
- maximum checking intervalnewThreshold
- convergence threshold (s)newMaxIter
- maximum number of iterations in the event time searchnewHandler
- event handler to call at event occurrences- Returns:
- a new instance of the appropriate sub-type
-
getTopocentricFrame
public TopocentricFrame getTopocentricFrame()
Returns the topocentric frame centered on ground point.- Returns:
- topocentric frame centered on ground point
-
getElevation
public T getElevation(FieldSpacecraftState<T> s)
Get the elevation value.- Parameters:
s
- the current state information: date, kinematics, attitude- Returns:
- spacecraft elevation
-
g
public T g(FieldSpacecraftState<T> s)
Compute the value of the detection function.The value is the spacecraft elevation first time derivative.
- Specified by:
g
in interfaceFieldEventDetector<T extends CalculusFieldElement<T>>
- Specified by:
g
in classFieldAbstractDetector<FieldElevationExtremumDetector<T extends CalculusFieldElement<T>>,T extends CalculusFieldElement<T>>
- Parameters:
s
- the current state information: date, kinematics, attitude- Returns:
- spacecraft elevation first time derivative
-
-