Class GroundAtNightDetector
- java.lang.Object
-
- org.orekit.propagation.events.AbstractDetector<GroundAtNightDetector>
-
- org.orekit.propagation.events.GroundAtNightDetector
-
- All Implemented Interfaces:
EventDetector
public class GroundAtNightDetector extends AbstractDetector<GroundAtNightDetector>
Detector for ground location being at night.This detector is mainly useful for scheduling optical measurements (either passive telescope observation of satellites against the stars background or active satellite laser ranging).
The
g
function of this detector is positive when ground is at night (i.e. Sun is below dawn/dusk elevation angle).- Since:
- 9.3
- Author:
- Luc Maisonobe
-
-
Field Summary
Fields Modifier and Type Field Description static double
ASTRONOMICAL_DAWN_DUSK_ELEVATION
Sun elevation at astronomical dawn/dusk (18° below horizon).static double
CIVIL_DAWN_DUSK_ELEVATION
Sun elevation at civil dawn/dusk (6° below horizon).static double
NAUTICAL_DAWN_DUSK_ELEVATION
Sun elevation at nautical dawn/dusk (12° below horizon).-
Fields inherited from class org.orekit.propagation.events.AbstractDetector
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
-
-
Constructor Summary
Constructors Modifier Constructor Description GroundAtNightDetector(TopocentricFrame groundLocation, PVCoordinatesProvider sun, double dawnDuskElevation, AtmosphericRefractionModel refractionModel)
Simple constructor.protected
GroundAtNightDetector(TopocentricFrame groundLocation, PVCoordinatesProvider sun, double dawnDuskElevation, AtmosphericRefractionModel refractionModel, AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler)
Private constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected GroundAtNightDetector
create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
Build a new instance.double
g(SpacecraftState state)
Compute the value of the switching function.-
Methods inherited from class org.orekit.propagation.events.AbstractDetector
create, getDetectionSettings, getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withDetectionSettings, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.events.EventDetector
finish
-
-
-
-
Field Detail
-
CIVIL_DAWN_DUSK_ELEVATION
public static final double CIVIL_DAWN_DUSK_ELEVATION
Sun elevation at civil dawn/dusk (6° below horizon).
-
NAUTICAL_DAWN_DUSK_ELEVATION
public static final double NAUTICAL_DAWN_DUSK_ELEVATION
Sun elevation at nautical dawn/dusk (12° below horizon).
-
ASTRONOMICAL_DAWN_DUSK_ELEVATION
public static final double ASTRONOMICAL_DAWN_DUSK_ELEVATION
Sun elevation at astronomical dawn/dusk (18° below horizon).
-
-
Constructor Detail
-
GroundAtNightDetector
public GroundAtNightDetector(TopocentricFrame groundLocation, PVCoordinatesProvider sun, double dawnDuskElevation, AtmosphericRefractionModel refractionModel)
Simple constructor.Beware that
Earth standard refraction model
does apply only for elevations above -2°. It is therefore not suitable for used withCIVIL_DAWN_DUSK_ELEVATION
(-6°),NAUTICAL_DAWN_DUSK_ELEVATION
(-12°) orASTRONOMICAL_DAWN_DUSK_ELEVATION
(-18°). TheITU 453 refraction model
which can compute refraction at large negative elevations should be preferred.- Parameters:
groundLocation
- ground location to checksun
- provider for Sun positiondawnDuskElevation
- Sun elevation below which we consider night is dark enough (rad) (typicallyASTRONOMICAL_DAWN_DUSK_ELEVATION
)refractionModel
- reference to refraction model (null if refraction should be ignored)
-
GroundAtNightDetector
protected GroundAtNightDetector(TopocentricFrame groundLocation, PVCoordinatesProvider sun, double dawnDuskElevation, AtmosphericRefractionModel refractionModel, AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler)
Private constructor.- Parameters:
groundLocation
- ground location from which measurement is performedsun
- provider for Sun positiondawnDuskElevation
- Sun elevation below which we consider night is dark enough (rad) (typicallyASTRONOMICAL_DAWN_DUSK_ELEVATION
)refractionModel
- reference to refraction model (null if refraction should be ignored),maxCheck
- maximum checking intervalthreshold
- convergence threshold (s)maxIter
- maximum number of iterations in the event time searchhandler
- event handler to call at event occurrences
-
-
Method Detail
-
create
protected GroundAtNightDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
Build a new instance.- Specified by:
create
in classAbstractDetector<GroundAtNightDetector>
- 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
-
g
public double g(SpacecraftState state)
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 of this detector is positive when ground is at night (i.e. Sun is below dawn/dusk elevation angle).This function only depends on date, not on the actual position of the spacecraft.
- Parameters:
state
- the current state information: date, kinematics, attitude- Returns:
- value of the switching function
-
-