public class TLcdLOSRadarPropagationFunctionSkyBackground extends Object implements ILcdLOSRadarPropagationFunction
This propagation function needs an ILcdLOSPropagationFunction
on which it will base its
lineofsight computations. The radar propagation function computes the minimal heights from which
one is visible. The visibility with sky in background is computed using the resulting value of the
last matrix entry corresponding to the given azimuth.
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. The thin black line corresponds to the lineofsight coverage matrix, needed by this function.
INVISIBLE, UNKNOWN
Constructor and Description 

TLcdLOSRadarPropagationFunctionSkyBackground(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction,
TLcdCoverageAltitudeMode aAltitudeMode)
Creates a propagation function which computes the minimal height from which one is visible from the
center point of a circular area with the sky as background.

TLcdLOSRadarPropagationFunctionSkyBackground(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction,
TLcdCoverageAltitudeMode aAltitudeMode,
TLcdLOSOptions aLOSOption)
Creates a propagation function which computes the minimal height from which one is visible from the
center point of a circular area with the sky as background.

Modifier and Type  Method and Description 

void 
applyForAzimuthSFCT(double aAzimuth,
ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT)
Computes the minimal heights from which one is visible around the center point of a lineofsight
coverage with the sky as background for a given azimuth and stores the resulting heights in the
lineofsight coverage matrix.

ILcdLOSCoverageMatrix 
createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage,
ILcdGeoReference aMatrixReference)
Creates a coverage matrix using the lineofsight coverage
aLOSCoverage and the matrix
reference aMatrixReference . 
TLcdCoverageAltitudeMode 
getAltitudeMode()
Returns the altitude mode indicating the definition of the resulting lineofsight values.

TLcdEarthRepresentationMode 
getEarthRepresentationMode()
Returns the earth representation mode used by this instance.

double 
getKFactor()
Returns the Kfactor indicating the reflection of radar waves on the atmosphere.

double 
getMaxRadarTiltAngle()
Returns the maximum radar tilt angle in degrees, starting from 0 at the horizontal
plane to 90 at zenith.

double 
getMaxRadarTiltAzimuth()
Returns the azimuth in degrees where the maximum radar tilt angle occurs.

double 
getMaxVerticalAngle()
Returns the maximum angle of the vertical extent in degrees, starting from 0 at
the ground to 180 at zenith.

double 
getMinVerticalAngle()
Returns the minimum angle of the vertical extent in degrees, starting from 0 at
the ground to 180 at zenith.

ALcdTerrainElevationProvider 
getTerrainElevationProvider()
Returns the elevation provider used to retrieve the terrain elevation data.

void 
initialize(ILcdLOSCoverage aLOSCoverage,
ILcdGeoReference aMatrixReference)
Initialize the propagation function with the given coverage
aLOSCoverage and the given
matrix reference aMatrixReference . 
public TLcdLOSRadarPropagationFunctionSkyBackground(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, TLcdCoverageAltitudeMode aAltitudeMode)
null
. If this condition is not met, a NullPointerException
will
be thrown.aLOSRadarPropagationFunction
 The propagation function on which to base its computations.aAltitudeMode
 The altitude mode indicating the definition of the resulting values.NullPointerException
 when the argument aLOSRadarPropagationFunction
is
null
.IllegalArgumentException
 aLOSRadarPropagationFunction
does not use the following
earth representation mode: TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
or if it uses the
altitude mode TLcdCoverageAltitudeMode.ABOVE_OBJECT
,aAltitudeMode
is TLcdCoverageAltitudeMode.ABOVE_OBJECT
andaKFactor
is smaller than or equal to zero.public TLcdLOSRadarPropagationFunctionSkyBackground(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, TLcdCoverageAltitudeMode aAltitudeMode, TLcdLOSOptions aLOSOption)
null
. If this condition is not met, a NullPointerException
will
be thrown.aLOSRadarPropagationFunction
 The propagation function on which to base its computations.aAltitudeMode
 The altitude mode indicating the definition of the resulting values.aLOSOption
 A LOS option object containing parameters for the internals of this
propagation function and its resulting coveragesNullPointerException
 when the argument aLOSRadarPropagationFunction
is
null
.IllegalArgumentException
 aLOSRadarPropagationFunction
does not use the following
earth representation mode: TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
or if it uses the
altitude mode TLcdCoverageAltitudeMode.ABOVE_OBJECT
,aAltitudeMode
is TLcdCoverageAltitudeMode.ABOVE_OBJECT
andaKFactor
is smaller than or equal to zero.public ILcdLOSCoverageMatrix createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
ILcdLOSPropagationFunction
aLOSCoverage
and the matrix
reference aMatrixReference
. The result of this method is used as input parameter for the
method applyForAzimuthSFCT
, 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 this ILcdPropagationFunction
. An ILcdLOSPropagationFunction
does not modify the values of the associatedPointX and
associatedPointY for its created ILcdLOSCoverageMatrix
.
createLOSCoverageMatrix
in interface ILcdLOSPropagationFunction
aLOSCoverage
 The covered area and the intermediate step sizes.aMatrixReference
 The reference in which this matrix is defined.public void initialize(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
ILcdLOSPropagationFunction
aLOSCoverage
and the given
matrix reference aMatrixReference
. 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.initialize
in interface ILcdLOSPropagationFunction
aLOSCoverage
 The covered area to use.aMatrixReference
 The matrix reference in which to compute the matrix values.public void applyForAzimuthSFCT(double aAzimuth, ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT)
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.
applyForAzimuthSFCT
in interface ILcdLOSPropagationFunction
aAzimuth
 The azimuth in degrees.aLOSCoverageMatrixSFCT
 The coverage matrix to update.NullPointerException
 if the aLOSCoverageMatrixSFCT is null
.public TLcdEarthRepresentationMode getEarthRepresentationMode()
ILcdLOSRadarPropagationFunction
getEarthRepresentationMode
in interface ILcdLOSRadarPropagationFunction
public TLcdCoverageAltitudeMode getAltitudeMode()
ILcdLOSRadarPropagationFunction
getAltitudeMode
in interface ILcdLOSRadarPropagationFunction
public double getKFactor()
ILcdLOSRadarPropagationFunction
getKFactor
in interface ILcdLOSRadarPropagationFunction
public double getMaxVerticalAngle()
ILcdLOSRadarPropagationFunction
getMaxVerticalAngle
in interface ILcdLOSRadarPropagationFunction
public double getMinVerticalAngle()
ILcdLOSRadarPropagationFunction
getMinVerticalAngle
in interface ILcdLOSRadarPropagationFunction
public double getMaxRadarTiltAngle()
ILcdLOSRadarPropagationFunction
getMaxRadarTiltAngle
in interface ILcdLOSRadarPropagationFunction
public double getMaxRadarTiltAzimuth()
ILcdLOSRadarPropagationFunction
getMaxRadarTiltAzimuth
in interface ILcdLOSRadarPropagationFunction
public ALcdTerrainElevationProvider getTerrainElevationProvider()
ILcdLOSRadarPropagationFunction
getTerrainElevationProvider
in interface ILcdLOSRadarPropagationFunction