Class TLcdLOSRadarPropagationFunction
 All Implemented Interfaces:
ILcdLOSPropagationFunction
,ILcdLOSRadarPropagationFunction
The visibility of a point is limited by the terrain, represented by the terrain elevation provider
and by the cone of silence, represented by the minimum and maximum angle in the vertical direction.
The area between these angles holds the visual field for the given azimuth. Both angles start from
0
at the ground to 180
at zenith.
The propagation function supports both radar and visual lineofsight computations. The Kfactor
in the constructor is an indication of the reflection of the waves on the atmosphere. For radar
lineofsight computations, values should be greater than 1
, usually 4/3
.
For visual lineofsight computations the value should be equal to 1
.
The matrix resulting from this propagation function can contain the following special values:
ILcdLOSRadarPropagationFunction.INVISIBLE
: for points where the object is invisible.ILcdLOSRadarPropagationFunction.UNKNOWN
: for points where the visibility is unknown. For example when no elevation data or invalid data was found at that point.
The following image gives a visual explanation of this propagation function. The green line denotes the result given this terrain profile and the visibility properties of the helicopter pilot.

Field Summary
Fields inherited from interface com.luciad.tea.ILcdLOSRadarPropagationFunction
INVISIBLE, UNKNOWN

Constructor Summary
ConstructorDescriptionTLcdLOSRadarPropagationFunction
(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aKFactor) Creates a propagation function which computes the minimal height from which one is visible from the center point of a circular area.TLcdLOSRadarPropagationFunction
(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aMaxRadarTiltAngle, double aMaxRadarTiltAzimuth, double aKFactor) Creates a propagation function which computes the minimal height from which one is visible from the center point of a circular area.TLcdLOSRadarPropagationFunction
(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aMaxRadarTiltAngle, double aMaxRadarTiltAzimuth, double aKFactor, TLcdLOSOptions aLOSOption) Creates a propagation function which computes the minimal height from which one is visible from the center point of a circular area. 
Method Summary
Modifier and TypeMethodDescriptionvoid
applyForAzimuthSFCT
(double aAzimuth, ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT) Computes the minimal heights from which one is visible around the center point of a lineofsight coverage for a given azimuth and stores the resulting heights in the lineofsight coverage matrix.createLOSCoverageMatrix
(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference) Creates a coverage matrix using the lineofsight coverageaLOSCoverage
and the matrix referenceaMatrixReference
.Returns the altitude mode indicating the definition of the resulting lineofsight values.Returns the earth representation mode used by this instance.double
Returns the Kfactor indicating the reflection of radar waves on the atmosphere.double
Returns the maximum radar tilt angle in degrees, starting from 0 at the horizontal plane to 90 at zenith.double
Returns the azimuth in degrees where the maximum radar tilt angle occurs.double
Returns the maximum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith.double
Returns the minimum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith.Returns the elevation provider used to retrieve the terrain elevation data.void
initialize
(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference) Initialize the propagation function with the given coverageaLOSCoverage
and the given matrix referenceaMatrixReference
.

Constructor Details

TLcdLOSRadarPropagationFunction
public TLcdLOSRadarPropagationFunction(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aKFactor) Creates a propagation function which computes the minimal height from which one is visible from the center point of a circular area. Note that the terrain elevation provider cannot be set tonull
, otherwise aNullPointerException
will be thrown.Currently, two earth representation modes are supported. If another representation mode is used, an
IllegalArgumentException
will be thrown.TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
The radar tilt angle is set to zero, meaning that the radar scans in a horizontal plane, the minimum and maximum viewing angles are constant independent of the viewing direction.
 Parameters:
aEarthRepresentationMode
 The mode indicating which earth representation to use.aTerrainElevationProvider
 The terrain elevation provider.aAltitudeMode
 The altitude mode indicating the definition of the resulting values.aMinVerticalAngle
 The minimum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the minimum vertical angle when the radar tilt angle is set to zero.aMaxVerticalAngle
 The maximum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the maximum vertical angle when the radar tilt angle is set to zero.aKFactor
 A factor indicating the reflection of radar waves on the atmosphere. For radar computations, values should be greater than 1, usually 4/3. Setting the value equal to 1 will yield the same results as visual lineofsight computations. Throws:
NullPointerException
 when the argumentaTerrainElevationProvider
isnull
.IllegalArgumentException
 if the argument
aEarthRepresentationMode
is not one of the following expected values (TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
orTLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
,  if the
aAltitudeMode
isTLcdCoverageAltitudeMode.ABOVE_OBJECT
,  if the argument
aMinVerticalAngle
oraMaxVerticalAngle
lies outside the interval [0, 180] and  if the argument
aKFactor
is smaller than or equal to zero.
 if the argument

TLcdLOSRadarPropagationFunction
public TLcdLOSRadarPropagationFunction(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aMaxRadarTiltAngle, double aMaxRadarTiltAzimuth, double aKFactor) Creates a propagation function which computes the minimal height from which one is visible from the center point of a circular area. Note that the terrain elevation provider cannot be set tonull
, otherwise aNullPointerException
will be thrown.Currently, two earth representation modes are supported. If another representation mode is used, an
IllegalArgumentException
will be thrown.TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
The specified radar tilt angle is used to recomputed the minimum and maximum viewing angles in the method
applyForAzimuthSFCT(double, ILcdLOSCoverageMatrix)
. If the computed viewing angle falls outside the viewing interval [0, 180], the angle outside the interval is clipped to either0
or180
. Parameters:
aEarthRepresentationMode
 The mode indicating which earth representation to use.aTerrainElevationProvider
 The terrain elevation provider.aAltitudeMode
 The altitude mode indicating the definition of the resulting values.aMinVerticalAngle
 The minimum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the minimum vertical angle when the radar tilt angle is set to zero.aMaxVerticalAngle
 The maximum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the maximum vertical angle when the radar tilt angle is set to zero.aMaxRadarTiltAngle
 The maximum radar tilt angle in degrees, starting from 0 at the horizontal plane to 90 at zenith.aMaxRadarTiltAzimuth
 The azimuth in degrees where the maximum radar tilt angle occurs.aKFactor
 A factor indicating the reflection of radar waves on the atmosphere. For radar computations, values should be greater than 1, usually 4/3. If equal to 1 this will produce the same result as direct lineofsight computations. Throws:
NullPointerException
 when the argumentaTerrainElevationProvider
isnull
.IllegalArgumentException
 if the argument
aEarthRepresentationMode
is not one of the following expected values (TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
orTLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
,  if the
aAltitudeMode
isTLcdCoverageAltitudeMode.ABOVE_OBJECT
,  if the argument
aMinVerticalAngle
oraMaxVerticalAngle
lies outside the interval [0, 180],  if the argument
aMaxRadarTiltAngle
lies outside the interval [0, 90] and  if the argument
aKFactor
is smaller than or equal to zero.
 if the argument

TLcdLOSRadarPropagationFunction
public TLcdLOSRadarPropagationFunction(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aMaxRadarTiltAngle, double aMaxRadarTiltAzimuth, double aKFactor, TLcdLOSOptions aLOSOption) Creates a propagation function which computes the minimal height from which one is visible from the center point of a circular area. Note that the terrain elevation provider cannot be set tonull
, otherwise aNullPointerException
will be thrown.Currently, two earth representation modes are supported. If another representation mode is used, an
IllegalArgumentException
will be thrown.TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
The specified radar tilt angle is used to recomputed the minimum and maximum viewing angles in the method
applyForAzimuthSFCT(double, ILcdLOSCoverageMatrix)
. If the computed viewing angle falls outside the viewing interval [0, 180], the angle outside the interval is clipped to either0
or180
. Parameters:
aEarthRepresentationMode
 The mode indicating which earth representation to use.aTerrainElevationProvider
 The terrain elevation provider.aAltitudeMode
 The altitude mode indicating the definition of the resulting values.aMinVerticalAngle
 The minimum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the minimum vertical angle when the radar tilt angle is set to zero.aMaxVerticalAngle
 The maximum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the maximum vertical angle when the radar tilt angle is set to zero.aMaxRadarTiltAngle
 The maximum radar tilt angle in degrees, starting from 0 at the horizontal plane to 90 at zenith.aMaxRadarTiltAzimuth
 The azimuth in degrees where the maximum radar tilt angle occurs.aKFactor
 A factor indicating the reflection of radar waves on the atmosphere. For radar computations, values should be greater than 1, usually 4/3. If equal to 1 this will produce the same result as direct lineofsight computations.aLOSOption
 A LOS option object containing parameters for the internals of this propagation function and its resulting coverages Throws:
NullPointerException
 when the argumentaTerrainElevationProvider
isnull
.IllegalArgumentException
 if the argument
aEarthRepresentationMode
is not one of the following expected values (TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
orTLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
,  if the
aAltitudeMode
isTLcdCoverageAltitudeMode.ABOVE_OBJECT
,  if the argument
aMinVerticalAngle
oraMaxVerticalAngle
lies outside the interval [0, 180],  if the argument
aMaxRadarTiltAngle
lies outside the interval [0, 90] and  if the argument
aKFactor
is smaller than or equal to zero.
 if the argument


Method Details

createLOSCoverageMatrix
public ILcdLOSCoverageMatrix createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference) Description copied from interface:ILcdLOSPropagationFunction
Creates a coverage matrix using the lineofsight coverageaLOSCoverage
and the matrix referenceaMatrixReference
. The result of this method is used as input parameter for the methodapplyForAzimuthSFCT
, which will store the actual matrix values. The matrix should be consistent with the given coverage. This means that all matrix rows and columns represent evenly spaced radii and azimuths as defined by the radial and angular step sizes of the lineofsight coverage.The method
ILcdLOSPropagationFunction.initialize(com.luciad.tea.ILcdLOSCoverage, com.luciad.reference.ILcdGeoReference)
is called with the same arguments as supplied with this method.The
ILcdLOSCoverageMatrix
created by this method is guaranteed to be capable of determining its own associatedPointX and associatedPointY properties. These values are not calculated by thisILcdPropagationFunction
. AnILcdLOSPropagationFunction
does not modify the values of the associatedPointX and associatedPointY for its createdILcdLOSCoverageMatrix
. Specified by:
createLOSCoverageMatrix
in interfaceILcdLOSPropagationFunction
 Parameters:
aLOSCoverage
 The covered area and the intermediate step sizes.aMatrixReference
 The reference in which this matrix is defined. Returns:
 the created coverage matrix.

initialize
Description copied from interface:ILcdLOSPropagationFunction
Initialize the propagation function with the given coverageaLOSCoverage
and the given matrix referenceaMatrixReference
. For performance reasons, it is recommended that this method initializes all fields that are common to all computations or which do not depend on a specific azimuth. Specified by:
initialize
in interfaceILcdLOSPropagationFunction
 Parameters:
aLOSCoverage
 The covered area to use.aMatrixReference
 The matrix reference in which to compute the matrix values.

applyForAzimuthSFCT
Computes the minimal heights from which one is visible around the center point of a lineofsight coverage for a given azimuth and stores the resulting heights in the lineofsight coverage matrix.Note that this implementation assumes that the default value of a matrix entry corresponds to the value for invisible points (which is
ILcdLOSRadarPropagationFunction.INVISIBLE
). Refer to the class documentation for more information about the different special values. Specified by:
applyForAzimuthSFCT
in interfaceILcdLOSPropagationFunction
 Parameters:
aAzimuth
 The azimuth in degrees.aLOSCoverageMatrixSFCT
 The coverage matrix to update. Throws:
NullPointerException
 if the aLOSCoverageMatrixSFCT isnull
.

getEarthRepresentationMode
Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the earth representation mode used by this instance. Specified by:
getEarthRepresentationMode
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the earth representation mode used by this instance.

getAltitudeMode
Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the altitude mode indicating the definition of the resulting lineofsight values. Specified by:
getAltitudeMode
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the altitude mode indicating the definition of the resulting lineofsight values.

getKFactor
public double getKFactor()Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the Kfactor indicating the reflection of radar waves on the atmosphere. For radar computations, values should be greater than 1, usually 4/3. Setting the value equal to 1 will yield the same results as visual lineofsight computations. Specified by:
getKFactor
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the Kfactor indicating the reflection of radar waves on the atmosphere.

getMaxVerticalAngle
public double getMaxVerticalAngle()Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the maximum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the maximum vertical angle when the radar tilt angle is set to zero. Specified by:
getMaxVerticalAngle
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the maximum angle of the vertical extent in degrees.

getMinVerticalAngle
public double getMinVerticalAngle()Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the minimum angle of the vertical extent in degrees, starting from 0 at the ground to 180 at zenith. It is the minimum vertical angle when the radar tilt angle is set to zero. Specified by:
getMinVerticalAngle
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the minimum angle of the vertical extent in degrees.

getMaxRadarTiltAngle
public double getMaxRadarTiltAngle()Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the maximum radar tilt angle in degrees, starting from 0 at the horizontal plane to 90 at zenith. Specified by:
getMaxRadarTiltAngle
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the maximum radar tilt angle in degrees.

getMaxRadarTiltAzimuth
public double getMaxRadarTiltAzimuth()Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the azimuth in degrees where the maximum radar tilt angle occurs. Specified by:
getMaxRadarTiltAzimuth
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the azimuth in degrees where the maximum radar tilt angle occurs.

getTerrainElevationProvider
Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the elevation provider used to retrieve the terrain elevation data. Specified by:
getTerrainElevationProvider
in interfaceILcdLOSRadarPropagationFunction
 Returns:
 the elevation provider used to retrieve the terrain elevation data.
