public class VisibilityFromStationDetector extends AbstractDetectorWithTropoCorrection
The tropospheric correction used can be set by the user.
The default implementation behavior is to
continue
propagation at raising and
to stop
propagation at setting. This can
be changed by using one of the provided constructors.
This detector can takes into account signal propagation duration through
AbstractDetector.setPropagationDelayType(PropagationDelayType)
(default is signal being instantaneous).
TroposphericCorrection
,
EventDetector
,
GeometricStationAntenna
,
Serialized FormAbstractDetector.PropagationDelayType
EventDetector.Action
Modifier and Type | Field and Description |
---|---|
static int |
RAISING
Flag for raising detection (slopeSelection = 0).
|
static int |
RAISING_SETTING
Flag for raising/setting detection (slopeSelection = 2).
|
static int |
SETTING
Flag for setting detection (slopeSelection = 1).
|
DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
DECREASING, INCREASING, INCREASING_DECREASING
Constructor and Description |
---|
VisibilityFromStationDetector(GeometricStationAntenna stationModel,
AngularCorrection correctionModel,
double maxCheck,
double threshold)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(GeometricStationAntenna stationModel,
AngularCorrection correctionModel,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(GeometricStationAntenna stationModel,
AngularCorrection correctionModel,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting,
boolean removeRaising,
boolean removeSetting)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(GeometricStationAntenna stationModel,
AngularCorrection correctionModel,
int slopeSelection,
double maxCheck,
double threshold,
EventDetector.Action action,
boolean remove)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(TopocentricFrame topoFrame,
double[][] azimElevMask,
AngularCorrection correctionModel,
double maxCheck,
double threshold)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(TopocentricFrame topoFrame,
double[][] azimElevMask,
AngularCorrection correctionModel,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(TopocentricFrame topoFrame,
double[][] azimElevMask,
AngularCorrection correctionModel,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting,
boolean removeRaising,
boolean removeSetting)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
Modifier and Type | Method and Description |
---|---|
EventDetector |
copy()
A copy of the detector.
|
EventDetector.Action |
eventOccurred(SpacecraftState s,
boolean increasing,
boolean forward)
Handle "visibility from station" event and choose what to do next.
|
double |
g(SpacecraftState s)
Compute the value of the switching function.
|
EventDetector.Action |
getActionAtRaising()
Returns action at raising detection.
|
EventDetector.Action |
getActionAtSetting()
Returns action at setting detection.
|
BodyShape |
getBodyShape()
Getter for the Earth shape.
|
GeodeticPoint |
getStationGeodeticPoint()
Getter for the station geodetic point.
|
void |
init(SpacecraftState s0,
AbsoluteDate t)
Initialize event handler at the start of a propagation.
|
boolean |
removeAtRaising()
Returns true if detection is removed after raising detection.
|
boolean |
removeAtSetting()
Returns true if detection is removed after setting detection.
|
boolean |
shouldBeRemoved()
This method is called after
EventDetector.eventOccurred(fr.cnes.sirius.patrius.propagation.SpacecraftState, boolean, boolean) has been triggered. |
getCorrectedVector, getCorrection, getStation
getMaxCheckInterval, getMaxIterationCount, getPropagationDelayType, getSignalEmissionDate, getSignalReceptionDate, getSlopeSelection, getThreshold, resetState, setPropagationDelayType
public static final int RAISING
public static final int SETTING
public static final int RAISING_SETTING
public VisibilityFromStationDetector(TopocentricFrame topoFrame, double[][] azimElevMask, AngularCorrection correctionModel, double maxCheck, double threshold)
The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
The default implementation behavior is to
continue
propagation at raising
and to stop
propagation at setting.
topoFrame
- the station's topocentric frameazimElevMask
- azimElevMask the azimuth - elevation mask (rad)correctionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)public VisibilityFromStationDetector(TopocentricFrame topoFrame, double[][] azimElevMask, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting)
The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
topoFrame
- the station's topocentric frameazimElevMask
- azimElevMask the azimuth - elevation mask (rad)correctionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raising
- action performed when propagation at raisingsetting
- action performed when propagation at settingpublic VisibilityFromStationDetector(TopocentricFrame topoFrame, double[][] azimElevMask, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, boolean removeRaising, boolean removeSetting)
The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
topoFrame
- the station's topocentric frameazimElevMask
- azimElevMask the azimuth - elevation mask (rad)correctionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raising
- action performed when propagation at raisingsetting
- action performed when propagation at settingremoveRaising
- true if detector should be removed at raisingremoveSetting
- true if detector should be removed at settingpublic VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, double maxCheck, double threshold)
The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
The default implementation behavior is to
continue
propagation at raising
and to stop
propagation at setting.
stationModel
- the station sensor geometric modelcorrectionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)public VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting)
The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
stationModel
- the station sensor geometric modelcorrectionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raising
- action performed when propagation at raisingsetting
- action performed when propagation at settingpublic VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, boolean removeRaising, boolean removeSetting)
The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
stationModel
- the station sensor geometric modelcorrectionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)maxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)raising
- action performed when propagation at raisingsetting
- action performed when propagation at settingremoveRaising
- true if detector should be removed at raisingremoveSetting
- true if detector should be removed at settingpublic VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, int slopeSelection, double maxCheck, double threshold, EventDetector.Action action, boolean remove)
The maximal interval between elevation checks should be smaller than the half duration of the minimal pass to handle, otherwise some short passes could be missed.
stationModel
- the station sensor geometric modelcorrectionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)slopeSelection
- slope selectionmaxCheck
- maximal checking interval (s)threshold
- convergence threshold (s)action
- action performed when propagation at raising/setting depending on slope
selectionremove
- true if detector should be removed at raising/setting depending on slope
selectionpublic 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.
init
in interface EventDetector
init
in class AbstractDetector
s0
- initial statet
- target time for the integrationpublic EventDetector.Action eventOccurred(SpacecraftState s, boolean increasing, boolean forward) throws PatriusException
eventOccurred
in interface EventDetector
eventOccurred
in class AbstractDetector
s
- the current state information : date, kinematics, attitudeincreasing
- if true, the value of the switching function increases when times increases
around event.forward
- if true, the integration variable (time) increases during integration.PatriusException
- if some specific error occurspublic boolean shouldBeRemoved()
EventDetector.eventOccurred(fr.cnes.sirius.patrius.propagation.SpacecraftState, boolean, boolean)
has been triggered. It returns true if the
current detector should be removed after first event detection. WARNING: this method
can be called only once a event has been triggered. Before, the value is not available.shouldBeRemoved
in interface EventDetector
shouldBeRemoved
in class AbstractDetector
public double g(SpacecraftState s) throws PatriusException
This function measures the angular distance between the current apparent vector to the spacecraft and the border of the station's field of view. It is positive when the spacecraft is in the field
g
in interface EventDetector
g
in class AbstractDetector
s
- the current state information: date, kinematics, attitudePatriusException
- if some specific error occurspublic EventDetector copy()
The following attributes are not deeply copied:
AngularCorrection
GeometricStationAntenna
public GeodeticPoint getStationGeodeticPoint()
public BodyShape getBodyShape()
public EventDetector.Action getActionAtRaising()
public EventDetector.Action getActionAtSetting()
public boolean removeAtRaising()
public boolean removeAtSetting()
Copyright © 2020 CNES. All rights reserved.