public class FootprintOverlapDetector extends AbstractDetector<FootprintOverlapDetector>
Field Of View
.
This detector is a mix between to FieldOfViewDetector
and GeographicZoneDetector
. 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 to stop
propagation
at FOV exit. This can be changed by calling
AbstractDetector.withHandler(EventHandler)
after construction.
Propagator.addEventDetector(EventDetector)
,
FieldOfViewDetector
,
GeographicZoneDetector
,
Serialized FormDEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Constructor and Description |
---|
FootprintOverlapDetector(FieldOfView fov,
OneAxisEllipsoid body,
org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet zone,
double samplingStep)
Build a new instance.
|
Modifier and Type | Method and Description |
---|---|
protected FootprintOverlapDetector |
create(double newMaxCheck,
double newThreshold,
int newMaxIter,
EventHandler<? super FootprintOverlapDetector> 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 |
getFieldOfView()
Get the Field Of View.
|
org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet |
getZone()
Get the geographic zone triggering the events.
|
eventOccurred, getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, resetState, withHandler, withMaxCheck, withMaxIter, withThreshold
public FootprintOverlapDetector(FieldOfView fov, OneAxisEllipsoid body, org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet zone, double samplingStep) throws OrekitException
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.
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)OrekitException
- if the geographic zone cannot be sampledprotected FootprintOverlapDetector create(double newMaxCheck, double newThreshold, int newMaxIter, EventHandler<? super FootprintOverlapDetector> newHandler)
create
in class AbstractDetector<FootprintOverlapDetector>
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 occurrencespublic org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet getZone()
The zone is mapped on the unit sphere
public FieldOfView getFieldOfView()
public BodyShape getBody()
public double g(SpacecraftState s) throws OrekitException
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.
g
in interface EventDetector
g
in class AbstractDetector<FootprintOverlapDetector>
s
- the current state information: date, kinematics, attitudeOrekitException
- if some specific error occursCopyright © 2002-2017 CS Systèmes d'information. All rights reserved.