Package org.orekit.propagation.events
EventDetector instances are registered to any Propagator. When the event associated with the detector occurs, the propagator interrupts
the propagation and calls the eventOccurred
method of the event handler, which can do whatever the user want and either stop or resume
propagation, optionally resetting the state.
If the registered events detectors are configured to stop propagation when triggered, the propagator can be run with an arbitrary large target date, relying on the events occurrence to stop propagation exactly at the right time.
The package provides some predefined events:
AlignmentDetectordetects satellite/body alignment (and by default stop when reaching alignment)AngularSeparationDetectordetects angular separation thresholds crossing between spacecraft and a beacon (typically the Sun) as seen from an observer (typically a ground station)AltitudeDetectordetects altitude crossing (and by default stop at descending)ApsideDetectordetects apside crossing (and by default stop at perigee)DateDetectordetects occurrence of a predefine instant (and by default stop there)EclipseDetectordetects satellite entering/exiting an eclipse (and by default stop on exit)ElevationDetectordetects satellite raising/setting (and by default stop at setting)ElevationExtremumDetectordetects satellite maximum/minimum elevation (and by default stop at minimum)FieldOfViewDetectordetects moving target entering/exiting satellite sensor Field Of View with an arbitrarily shaped boundary (and by default continue on entry and stop on exit)FootprintOverlapDetectordetects geographic zone entering or exiting Field Of View of a spacecraft sensor (and by default stop at zone exit)GeographicZoneDetectordetects geographic boundaries crossings (and by default stop at zone exit)GroundFieldOfViewDetectordetects spacecraft entering/exiting ground based Field Of View with an arbitrarily shaped boundary (and by default continue on entry and stop on exit)LatitudeCrossingDetectordetects satellite crossing a parallel (and by default stop at northward crossing)LatitudeRangeCrossingDetectordetects satellite crossing a parallel range (and by default stop exiting range)LatitudeExtremumDetectordetects satellite maximum/minimum latitude (and by default stop at minimum)LongitudeCrossingDetectordetects satellite crossing a meridian (the increasing/decreasing flag is irrelevant for this detector)LongitudeRangeCrossingDetectordetects satellite crossing a meridian range (and by default stop exiting range)LongitudeExtremumDetectordetects satellite maximum/minimum longitude (and by default stop at minimum)NodeDetectordetects node crossing (and by default stop at ascending node)PositionAngleDetectordetects anomaly, latitude argument or longitude argument crossings, with either true eccentric or mean angles (the increasing/decreasing flag is irrelevant for this detector)
In addition to raw events, the class also provides EventsLogger to gather all events that occurred during a propagation, EventShifter which allows to slightly shift an
event in time (for example to trigger something say 5 minutes before eclipse entry), EventSlopeFilter and EventEnablingPredicateFilter to trigger
only specific types of events, without losing computation time by locating events user is not
interested in. Also the BooleanDetector allows
the user to combine other event detectors using Boolean logic.
The low level interfaces and classes are heavily based on similar classes from the ode.events package from the Hipparchus library. The changes are mainly adaptations of the signatures to space dynamics.
- the type of dependent variable t has been changed from
doubletoAbsoluteDate - the type of state vector y has been changed from
double[]toSpacecraftState
- Author:
- Luc Maisonobe, Pascal Parraud
-
ClassDescriptionAbstractDetector<T extends AbstractDetector<T>>Common parts shared by several events finders.AbstractGeographicalDetector<T extends AbstractDetector<T>>Abstract class for detectors using a body shape.AbstractTopocentricDetector<T extends AbstractDetector<T>>Abstract class for detectors using a topocentric frame.Finder for satellite/body alignment events in orbital plane.Finder for satellite altitude crossing events.Detects when spacecraft comes close to a moving beacon, as seen from a moving observer.Detects when two moving objects come close to each other, as seen from spacecraft.Finder for apside crossing events.Finder for beta angle crossing events.This class provides AND and OR operations for event detectors.Event detector for eclipses from a single, infinitely-distant light source, occulted by a spherical central body.Finder for date events.Base class for modifying an existing detector.Finder for satellite eclipse related events.Finder for satellite raising/setting events that allows for the setting of azimuth and/or elevation bounds or a ground azimuth/elevation mask input.Detector for elevation extremum with respect to a ground point.This interface represents an event enabling predicate function.Class containing parameters for event detection.This interface represents space-dynamics aware events detectors.Interface for building event detectors for force models and maneuver parameters.Wrapper used to detect events only when enabled by an external predicated function.Wrapper shifting events occurrences times.This class logs events detectors events during propagation.Class for logged events entries.EventSlopeFilter<T extends EventDetector>Wrapper used to detect only increasing or decreasing events.EventState<T extends EventDetector>This class handles the state for one
event detectorduring integration steps.Class to hold the data related to an event occurrence that is needed to decide how to modify integration.Detector of local extrema with angular separation.Finder for extremum approach events.Common parts shared by several events finders.FieldAbstractGeographicalDetector<D extends FieldAbstractDetector<D,T>, T extends CalculusFieldElement<T>> Abstract class for detectors using a body shape.FieldAbstractTopocentricDetector<D extends FieldAbstractDetector<D,T>, T extends CalculusFieldElement<T>> Abstract class for detectors using a topocentric frame.FieldAltitudeDetector<T extends CalculusFieldElement<T>>Finder for satellite altitude crossing events.FieldAngularSeparationDetector<T extends CalculusFieldElement<T>>Detects when spacecraft comes close to a moving beacon, as seen from a moving observer.FieldApsideDetector<T extends CalculusFieldElement<T>>Finder for apside crossing events.FieldBetaAngleDetector<T extends CalculusFieldElement<T>>Finder for beta angle crossing events.FieldBooleanDetector<T extends CalculusFieldElement<T>>This class provides AND and OR operations for event detectors.FieldCylindricalShadowEclipseDetector<T extends CalculusFieldElement<T>>Event detector for eclipses from a single, infinitely-distant light source, occulted by a spherical central body.FieldDateDetector<T extends CalculusFieldElement<T>>Finder for date events.FieldDetectorModifier<T extends CalculusFieldElement<T>>Base class for modifying an existing getDetector().FieldEclipseDetector<T extends CalculusFieldElement<T>>Finder for satellite eclipse related events.FieldElevationDetector<T extends CalculusFieldElement<T>>Finder for satellite raising/setting events that allows for the setting of azimuth and/or elevation bounds or a ground azimuth/elevation mask input.FieldElevationExtremumDetector<T extends CalculusFieldElement<T>>Detector for elevation extremum with respect to a ground point.FieldEnablingPredicate<T extends CalculusFieldElement<T>>This interface represents an event enabling predicate function.FieldEventDetectionSettings<T extends CalculusFieldElement<T>>Class containing parameters for event detection.FieldEventDetector<T extends CalculusFieldElement<T>>This interface represents space-dynamics aware events detectors.FieldEventEnablingPredicateFilter<T extends CalculusFieldElement<T>>Wrapper used to detect events only when enabled by an external predicated function.FieldEventShifter<T extends CalculusFieldElement<T>>Wrapper shifting events occurrences times.FieldEventsLogger<T extends CalculusFieldElement<T>>This class logs events detectors events during propagation.FieldEventsLogger.FieldLoggedEvent<T extends CalculusFieldElement<T>>Class for logged events entries.Wrapper used to detect only increasing or decreasing events.This class handles the state for oneevent detectorduring integration steps.FieldEventState.EventOccurrence<T extends CalculusFieldElement<T>>Class to hold the data related to an event occurrence that is needed to decide how to modify integration.FieldExtremumAngularSeparationDetector<T extends CalculusFieldElement<T>>Detector of local extrema with angular separation.FieldExtremumApproachDetector<T extends CalculusFieldElement<T>>Finder for extremum approach events.FieldFunctionalDetector<T extends CalculusFieldElement<T>>A detector that implements theFieldFunctionalDetector.g(FieldSpacecraftState)function using a lambda that can be set usingFieldFunctionalDetector.withFunction(Function).FieldGroundAtNightDetector<T extends CalculusFieldElement<T>>Detector for ground location being at night.FieldLatitudeCrossingDetector<T extends CalculusFieldElement<T>>Detector for geographic latitude crossing.FieldLatitudeExtremumDetector<T extends CalculusFieldElement<T>>Detector for latitude extrema.FieldLatitudeRangeCrossingDetector<T extends CalculusFieldElement<T>>Detector for geographic latitude crossing.FieldLongitudeCrossingDetector<T extends CalculusFieldElement<T>>Detector for geographic longitude crossing.FieldLongitudeExtremumDetector<T extends CalculusFieldElement<T>>Detector for longitude extrema.FieldLongitudeRangeCrossingDetector<T extends CalculusFieldElement<T>>Detector for geographic longitude crossing.FieldNegateDetector<T extends CalculusFieldElement<T>>An event detector that negates the sign on another event detector'sgfunction.FieldNodeDetector<T extends CalculusFieldElement<T>>Finder for node crossing events.Finder for target entry/exit events with respect to a satellite sensorField Of View.FieldParameterDrivenDateIntervalDetector<T extends CalculusFieldElement<T>>Detector for date intervals that may be offset thanks to parameter drivers.FieldPlaneCrossingDetector<T extends CalculusFieldElement<T>>Finder for plane crossing events.FieldRelativeDistanceDetector<T extends CalculusFieldElement<T>>Detector of specific value for the distance relative to another trajectory (using the Euclidean norm).FieldSingleDateDetector<T extends CalculusFieldElement<T>>Finder for single date detection.FieldTimeIntervalDetector<T extends CalculusFieldElement<T>>Detector for time intervals.Enumerate forfiltering events.Detector triggered by geographical region entering/leaving a spacecraft sensorField Of View.A detector that implements theFunctionalDetector.g(SpacecraftState)function using a lambda that can be set usingFunctionalDetector.withFunction(ToDoubleFunction).Detector for entry/exit of a zone defined by geographic boundaries.Detector for ground location being at night.Finder for satellite entry/exit events with respect to a sensorField Of Viewattached to an arbitrary frame.Detector for inter-satellites direct view (i.e. no masking by central body limb).Detector for geographic latitude crossing.Detector for geographic latitude extremum.Detector for geographic latitude crossing.Detector for geographic longitude crossing.Detector for geographic longitude extremum.Detector for geographic longitude crossing.Detector for Earth magnetic field strength.An event detector that negates the sign on another event detector'sgfunction.Finder for node crossing events.Detector for date intervals that may be offset thanks to parameter drivers.Finder for plane crossing events.Detector for in-orbit position angle.Detector of specific value for the distance relative to another trajectory (using the Euclidean norm).Finder for single date detection.Detector for time intervals.Enumerate for triggering visibility of spherical bodies.