public class MagneticFieldDetector extends AbstractDetector<MagneticFieldDetector>
The detector is based on the field intensity calculated at the
satellite's latitude and longitude, either at sea level or at
satellite altitude, depending on the value chosen for the
atSeaLevel
indicator.
It can detect flyovers of the South-Atlantic anomaly with
a classically accepted limit value of 32,000 nT at sea level.
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Modifier | Constructor and Description |
---|---|
protected |
MagneticFieldDetector(AdaptableInterval maxCheck,
double threshold,
int maxIter,
EventHandler handler,
double limit,
GeoMagneticFieldFactory.FieldModel model,
OneAxisEllipsoid body,
boolean atSeaLevel,
DataContext dataContext)
Protected constructor with full parameters.
|
|
MagneticFieldDetector(double maxCheck,
double threshold,
double limit,
GeoMagneticFieldFactory.FieldModel model,
OneAxisEllipsoid body,
boolean atSeaLevel)
Build a detector.
|
|
MagneticFieldDetector(double maxCheck,
double threshold,
double limit,
GeoMagneticFieldFactory.FieldModel model,
OneAxisEllipsoid body,
boolean atSeaLevel,
DataContext dataContext)
Build a detector.
|
|
MagneticFieldDetector(double limit,
GeoMagneticFieldFactory.FieldModel model,
OneAxisEllipsoid body)
Build a new detector.
|
|
MagneticFieldDetector(double limit,
GeoMagneticFieldFactory.FieldModel model,
OneAxisEllipsoid body,
boolean atSeaLevel)
Build a new detector.
|
Modifier and Type | Method and Description |
---|---|
protected MagneticFieldDetector |
create(AdaptableInterval newMaxCheck,
double newThreshold,
int newMaxIter,
EventHandler newHandler)
Build a new instance.
|
double |
g(SpacecraftState s)
Compute the value of the detection function.
|
void |
init(SpacecraftState s0,
AbsoluteDate t)
Initialize event handler at the start of a propagation.
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
@DefaultDataContext public MagneticFieldDetector(double limit, GeoMagneticFieldFactory.FieldModel model, OneAxisEllipsoid body)
This constructor uses:
default data context
default value
for maximal checking intervaldefault value
for convergence thresholdatSeaLevel
switch set to falselimit
- threshold value for magnetic field detection, in Teslasmodel
- magnetic field modelbody
- Earth body shapeMagneticFieldDetector(double, double, double, GeoMagneticFieldFactory.FieldModel, OneAxisEllipsoid, boolean, DataContext)
@DefaultDataContext public MagneticFieldDetector(double limit, GeoMagneticFieldFactory.FieldModel model, OneAxisEllipsoid body, boolean atSeaLevel)
This constructor uses:
default data context
default value
for maximal checking intervaldefault value
for convergence threshold limit
- threshold value for magnetic field detection, in Teslasmodel
- magnetic field modelbody
- Earth body shapeatSeaLevel
- switch for calculating field intensity at sea level (true) or satellite altitude (false)MagneticFieldDetector(double, double, double, GeoMagneticFieldFactory.FieldModel, OneAxisEllipsoid, boolean, DataContext)
@DefaultDataContext public MagneticFieldDetector(double maxCheck, double threshold, double limit, GeoMagneticFieldFactory.FieldModel model, OneAxisEllipsoid body, boolean atSeaLevel)
This method uses the default data context
.
maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)limit
- threshold value for magnetic field detection, in Teslasmodel
- magnetic field modelbody
- Earth body shapeatSeaLevel
- switch for calculating field intensity at sea level (true) or satellite altitude (false)MagneticFieldDetector(double, double, double, GeoMagneticFieldFactory.FieldModel, OneAxisEllipsoid, boolean, DataContext)
public MagneticFieldDetector(double maxCheck, double threshold, double limit, GeoMagneticFieldFactory.FieldModel model, OneAxisEllipsoid body, boolean atSeaLevel, DataContext dataContext)
maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)limit
- threshold value for magnetic field detection, in Teslasmodel
- magnetic field modelbody
- Earth body shapeatSeaLevel
- switch for calculating field intensity at sea level (true) or satellite altitude (false)dataContext
- used to look up the magnetic field model.protected MagneticFieldDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, double limit, GeoMagneticFieldFactory.FieldModel model, OneAxisEllipsoid body, boolean atSeaLevel, DataContext dataContext)
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.
maxCheck
- maximal checking intervalthreshold
- convergence threshold (s)maxIter
- maximum number of iterations in the event time searchhandler
- event handler to call at event occurrenceslimit
- threshold value for magnetic field detection, in Teslasmodel
- magnetic field modelbody
- Earth body shapeatSeaLevel
- switch for calculating field intensity at sea level (true) or satellite altitude (false)dataContext
- used to look up the magnetic field model.protected MagneticFieldDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
create
in class AbstractDetector<MagneticFieldDetector>
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 void init(SpacecraftState s0, AbsoluteDate t)
This method is called once at the start of the propagation. It may be used by the event handler to initialize some internal data if needed.
The default implementation does nothing
This implementation sets the direction of propagation and initializes the event
handler. If a subclass overrides this method it should call super.init(s0, t)
.
init
in interface EventDetector
init
in class AbstractDetector<MagneticFieldDetector>
s0
- initial statet
- target time for the integrationpublic double g(SpacecraftState s)
The returned value is the difference between the field intensity at spacecraft location,
taking atSeaLevel
switch into account, and the fixed threshold value.
g
in interface EventDetector
g
in class AbstractDetector<MagneticFieldDetector>
s
- the current state information: date, kinematics, attitudeCopyright © 2002-2023 CS GROUP. All rights reserved.