public class VisibilityFromStationDetector extends AbstractStationToSatDetector
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
AbstractSignalPropagationDetector.setPropagationDelayType(PropagationDelayType, Frame)
(default is signal being instantaneous).
TroposphericCorrection
,
EventDetector
,
GeometricStationAntenna
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
VisibilityFromStationDetector.LinkType
Type of link (it can be uplink or downlink).
|
AbstractSignalPropagationDetector.DatationChoice, AbstractSignalPropagationDetector.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).
|
actionAtEntry, actionAtExit, DEFAULT_MAXCHECK, DEFAULT_MAXITER, DEFAULT_THRESHOLD, removeAtEntry, removeAtExit, shouldBeRemovedFlag
DECREASING, INCREASING, INCREASING_DECREASING
Constructor and Description |
---|
VisibilityFromStationDetector(GeometricStationAntenna stationModel,
AngularCorrection correctionModel,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting,
boolean removeRaising,
boolean removeSetting,
VisibilityFromStationDetector.LinkType linkTypeIn)
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,
VisibilityFromStationDetector.LinkType linkTypeIn)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(GeometricStationAntenna stationModel,
AngularCorrection correctionModel,
double maxCheck,
double threshold,
VisibilityFromStationDetector.LinkType linkTypeIn)
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,
VisibilityFromStationDetector.LinkType linkTypeIn)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(GeometricStationAntenna stationModel,
SensorModel sensorModel,
AngularCorrection correctionModel,
boolean withMasking,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting,
boolean removeRaising,
boolean removeSetting,
VisibilityFromStationDetector.LinkType linkTypeIn)
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,
VisibilityFromStationDetector.LinkType linkTypeIn)
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,
VisibilityFromStationDetector.LinkType linkTypeIn)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(TopocentricFrame topoFrame,
double[][] azimElevMask,
AngularCorrection correctionModel,
double maxCheck,
double threshold,
VisibilityFromStationDetector.LinkType linkTypeIn)
Build a new apparent elevation detector with parameterizable tropospheric correction.
|
VisibilityFromStationDetector(TopocentricFrame topoFrame,
double[][] azimElevMask,
SensorModel sensorModel,
AngularCorrection correctionModel,
boolean withMasking,
double maxCheck,
double threshold,
EventDetector.Action raising,
EventDetector.Action setting,
boolean removeRaising,
boolean removeSetting,
VisibilityFromStationDetector.LinkType linkTypeIn)
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 state)
Compute the value of the switching function.
|
BodyShape |
getBodyShape()
Getter for the body shape.
|
BodyPoint |
getStationBodyPoint()
Getter for the station body point.
|
void |
init(SpacecraftState s0,
AbsoluteDate t)
Initialize event handler at the start of a propagation.
|
void |
setPropagationDelayType(AbstractSignalPropagationDetector.PropagationDelayType propagationDelayType,
Frame frame)
Setter for the propagation delay computation type.
|
getAssembly, getCorrectedVector, getCorrection, getDatationChoice, getEmitter, getLinkType, getMinMaskingDistance, getReceiver, getSensor, getStation, getStationDate, isMaskingCheck
getEpsilonSignalPropagation, getInertialFrame, getMaxIterSignalPropagation, getPropagationDelayType, getSignalEmissionDate, getSignalEmissionDate, getSignalReceptionDate, getSignalReceptionDate, setEpsilonSignalPropagation, setMaxIterSignalPropagation
filterEvent, getActionAtEntry, getActionAtExit, getMaxCheckInterval, getMaxIterationCount, getSlopeSelection, getThreshold, isRemoveAtEntry, isRemoveAtExit, logEventsOverTimeInterval, resetState, setMaxCheckInterval, setMaxIter, shouldBeRemoved
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, VisibilityFromStationDetector.LinkType linkTypeIn)
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
- 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)linkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(TopocentricFrame topoFrame, double[][] azimElevMask, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, VisibilityFromStationDetector.LinkType linkTypeIn)
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
- 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 settinglinkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(TopocentricFrame topoFrame, double[][] azimElevMask, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, boolean removeRaising, boolean removeSetting, VisibilityFromStationDetector.LinkType linkTypeIn)
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
- 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 settinglinkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(TopocentricFrame topoFrame, double[][] azimElevMask, SensorModel sensorModel, AngularCorrection correctionModel, boolean withMasking, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, boolean removeRaising, boolean removeSetting, VisibilityFromStationDetector.LinkType linkTypeIn)
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
- the azimuth - elevation mask (rad)sensorModel
- sensor model of the spacecraft used for masking computations (not used otherwise, can be set to null). The
sensor model of the main part frame of the assembly must have a parent frame! Make sure that the main
target of this sensor model is the above station!correctionModel
- the elevation correction model for the station (set null to ignore tropospheric correction)withMasking
- set true to compute maskings of spacecraft's sensor by occulting bodies: in this case, there is no
visibility if one of the masking bodies of the sensor is between the spacecraft and the stationmaxCheck
- 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 settinglinkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, double maxCheck, double threshold, VisibilityFromStationDetector.LinkType linkTypeIn)
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)linkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, VisibilityFromStationDetector.LinkType linkTypeIn)
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 settinglinkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, boolean removeRaising, boolean removeSetting, VisibilityFromStationDetector.LinkType linkTypeIn)
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 settinglinkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(GeometricStationAntenna stationModel, SensorModel sensorModel, AngularCorrection correctionModel, boolean withMasking, double maxCheck, double threshold, EventDetector.Action raising, EventDetector.Action setting, boolean removeRaising, boolean removeSetting, VisibilityFromStationDetector.LinkType linkTypeIn)
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 modelsensorModel
- sensor model of the spacecraft used for masking computations (not used otherwise, can be set to null). The
sensor model of the main part frame of the assembly must have a parent frame! Make sure that the main
target of this sensor model is the above station!correctionModel
- the elevation correction model for the station (set null to ignore
tropospheric correction)withMasking
- set true to compute maskings of spacecraft's sensor by occulting bodies: in this case, there is no
visibility if one of the masking bodies of the sensor is between the spacecraft and the stationmaxCheck
- 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 settinglinkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public VisibilityFromStationDetector(GeometricStationAntenna stationModel, AngularCorrection correctionModel, int slopeSelection, double maxCheck, double threshold, EventDetector.Action action, boolean remove, VisibilityFromStationDetector.LinkType linkTypeIn)
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.
No occulting body check through this constructor.
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 selectionlinkTypeIn
- the type of link (it can be uplink or downlink). Downlink means satellite to station.public 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 eventforward
- if true, the integration variable (time) increases during integrationPatriusException
- if some specific error occurspublic double g(SpacecraftState state) 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
More calculations are performed in case masking check is asked for: the distance between spacecraft's sensor line of sight and the occulting object is computed. This distance is positive if no masking occurs, negative otherwise.
g
in interface EventDetector
g
in class AbstractStationToSatDetector
state
- statePatriusException
- if some specific error occurspublic void setPropagationDelayType(AbstractSignalPropagationDetector.PropagationDelayType propagationDelayType, Frame frame)
setPropagationDelayType
in class AbstractSignalPropagationDetector
propagationDelayType
- Propagation delay type used in events computationframe
- Frame to use for signal propagation with delay (may be null if propagation delay type is
considered instantaneous). Warning: the usage of a pseudo inertial frame is tolerated, however it will
lead to some inaccuracies due to the non-invariance of the frame with respect to time. For this reason,
it is suggested to use the ICRF frame or a frame which is frozen with respect to the ICRF.public EventDetector copy()
The following attributes are not deeply copied:
AngularCorrection
GeometricStationAntenna
public BodyPoint getStationBodyPoint()
public BodyShape getBodyShape()
Copyright © 2023 CNES. All rights reserved.