Class FootprintOverlapDetector
- java.lang.Object
-
- org.orekit.propagation.events.AbstractDetector<FootprintOverlapDetector>
-
- org.orekit.propagation.events.FootprintOverlapDetector
-
- All Implemented Interfaces:
EventDetector
public class FootprintOverlapDetector extends AbstractDetector<FootprintOverlapDetector>
Detector triggered by geographical region entering/leaving a spacecraft sensorField Of View
.This detector is a mix between to
FieldOfViewDetector
andGeographicZoneDetector
. Similar to the first detector above, it triggers events related to entry/exit of targets in a Field Of View, taking attitude into account. Similar to the second detector above, its target is an entire geographic region (which can even be split in several non-connected patches and can have holes).This detector is typically used for ground observation missions with agile satellites than can look away from nadir.
The default implementation behavior is to
continue
propagation at FOV entry and tostop
propagation at FOV exit. This can be changed by callingAbstractDetector.withHandler(EventHandler)
after construction.- Since:
- 7.1
- Author:
- Luc Maisonobe
- See Also:
Propagator.addEventDetector(EventDetector)
,FieldOfViewDetector
,GeographicZoneDetector
-
-
Field Summary
-
Fields inherited from class org.orekit.propagation.events.AbstractDetector
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
-
-
Constructor Summary
Constructors Modifier Constructor Description FootprintOverlapDetector(FieldOfView fov, OneAxisEllipsoid body, SphericalPolygonsSet zone, double samplingStep)
Build a new instance.protected
FootprintOverlapDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, FieldOfView fov, OneAxisEllipsoid body, SphericalPolygonsSet zone, double samplingStep, List<org.orekit.propagation.events.FootprintOverlapDetector.SamplingPoint> sampledZone)
Protected constructor with full parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected FootprintOverlapDetector
create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
Build a new instance.double
g(SpacecraftState s)
Compute the value of the switching function.BodyShape
getBody()
Get the body on which the geographic zone is defined.FieldOfView
getFOV()
Get the Field Of View.SphericalPolygonsSet
getZone()
Get the geographic zone triggering the events.-
Methods inherited from class org.orekit.propagation.events.AbstractDetector
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
-
-
-
-
Constructor Detail
-
FootprintOverlapDetector
public FootprintOverlapDetector(FieldOfView fov, OneAxisEllipsoid body, SphericalPolygonsSet zone, double samplingStep)
Build a new instance.The maximal interval between distance to FOV boundary checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
- Parameters:
fov
- sensor field of viewbody
- body on which the geographic zone is definedzone
- geographic zone to considersamplingStep
- linear step used for sampling the geographic zone (in meters)- Since:
- 10.1
-
FootprintOverlapDetector
protected FootprintOverlapDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, FieldOfView fov, OneAxisEllipsoid body, SphericalPolygonsSet zone, double samplingStep, List<org.orekit.propagation.events.FootprintOverlapDetector.SamplingPoint> sampledZone)
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 occurrencesbody
- body on which the geographic zone is definedzone
- geographic zone to considerfov
- sensor field of viewsampledZone
- sampling of the geographic zonesamplingStep
- linear step used for sampling the geographic zone (in meters)
-
-
Method Detail
-
create
protected FootprintOverlapDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
Build a new instance.- Specified by:
create
in classAbstractDetector<FootprintOverlapDetector>
- Parameters:
newMaxCheck
- maximum checking interval (s)newThreshold
- 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
-
getZone
public SphericalPolygonsSet getZone()
Get the geographic zone triggering the events.The zone is mapped on the unit sphere
- Returns:
- geographic zone triggering the events
-
getFOV
public FieldOfView getFOV()
Get the Field Of View.- Returns:
- Field Of View
- Since:
- 10.1
-
getBody
public BodyShape getBody()
Get the body on which the geographic zone is defined.- Returns:
- body on which the geographic zone is defined
-
g
public double g(SpacecraftState s)
Compute the value of the switching function. This function must be continuous (at least in its roots neighborhood), as the integrator will need to find its roots to locate the events.The g function value is the minimum offset among the region points with respect to the Field Of View boundary. It is positive if all region points are outside of the Field Of View, and negative if at least some of the region points are inside of the Field Of View. The minimum is computed by sampling the region, considering only the points for which the spacecraft is above the horizon. The accuracy of the detection depends on the linear sampling step set at detector construction. If the spacecraft is below horizon for all region points, an arbitrary positive value is returned.
As per the previous definition, when the region enters the Field Of View, a decreasing event is generated, and when the region leaves the Field Of View, an increasing event is generated.
- Specified by:
g
in interfaceEventDetector
- Specified by:
g
in classAbstractDetector<FootprintOverlapDetector>
- Parameters:
s
- the current state information: date, kinematics, attitude- Returns:
- value of the switching function
-
-