Package com.luciad.tea
Class TLcdLOSRadarPropagationFunctionSkyBackground
java.lang.Object
com.luciad.tea.TLcdLOSRadarPropagationFunctionSkyBackground
- All Implemented Interfaces:
ILcdLOSPropagationFunction
,ILcdLOSRadarPropagationFunction
public class TLcdLOSRadarPropagationFunctionSkyBackground
extends Object
implements ILcdLOSRadarPropagationFunction
Computes the minimal heights from which one is visible around the center point of a line-of-sight
coverage with the sky as background. These heights are assigned along the given azimuth and stored
in the polar matrix view. This implementation takes the whole horizon of the line-of-sight coverage
into account while checking for terrain background. If this horizon is too close, the results will
be incorrect since terrain background just outside the horizon are not taken into account.
This propagation function needs an
ILcdLOSPropagationFunction
on which it will base its
line-of-sight 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.
-
Field Summary
Fields inherited from interface com.luciad.tea.ILcdLOSRadarPropagationFunction
INVISIBLE, UNKNOWN
-
Constructor Summary
ConstructorDescriptionTLcdLOSRadarPropagationFunctionSkyBackground
(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. -
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 line-of-sight coverage with the sky as background for a given azimuth and stores the resulting heights in the line-of-sight coverage matrix.createLOSCoverageMatrix
(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference) Creates a coverage matrix using the line-of-sight coverageaLOSCoverage
and the matrix referenceaMatrixReference
.Returns the altitude mode indicating the definition of the resulting line-of-sight values.Returns the earth representation mode used by this instance.double
Returns the K-factor 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
-
TLcdLOSRadarPropagationFunctionSkyBackground
public 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. Note that the propagation function cannot be set tonull
. If this condition is not met, aNullPointerException
will be thrown.- Parameters:
aLOSRadarPropagationFunction
- The propagation function on which to base its computations.aAltitudeMode
- The altitude mode indicating the definition of the resulting values.- Throws:
NullPointerException
- when the argumentaLOSRadarPropagationFunction
isnull
.IllegalArgumentException
-- if the argument
aLOSRadarPropagationFunction
does not use the following earth representation mode:TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
orTLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
or if it uses the altitude modeTLcdCoverageAltitudeMode.ABOVE_OBJECT
, - if the
aAltitudeMode
isTLcdCoverageAltitudeMode.ABOVE_OBJECT
and - if the argument
aKFactor
is smaller than or equal to zero.
- if the argument
-
TLcdLOSRadarPropagationFunctionSkyBackground
public 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. Note that the propagation function cannot be set tonull
. If this condition is not met, aNullPointerException
will be thrown.- Parameters:
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 coverages- Throws:
NullPointerException
- when the argumentaLOSRadarPropagationFunction
isnull
.IllegalArgumentException
-- if the argument
aLOSRadarPropagationFunction
does not use the following earth representation mode:TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
orTLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
or if it uses the altitude modeTLcdCoverageAltitudeMode.ABOVE_OBJECT
, - if the
aAltitudeMode
isTLcdCoverageAltitudeMode.ABOVE_OBJECT
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 line-of-sight 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 line-of-sight coverage. The methodILcdLOSPropagationFunction.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 line-of-sight coverage with the sky as background for a given azimuth and stores the resulting heights in the line-of-sight coverage matrix. Note that this implementation assumes that the default value of a matrix entry corresponds to the value for invisible points (which isILcdLOSRadarPropagationFunction.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 line-of-sight values.- Specified by:
getAltitudeMode
in interfaceILcdLOSRadarPropagationFunction
- Returns:
- the altitude mode indicating the definition of the resulting line-of-sight values.
-
getKFactor
public double getKFactor()Description copied from interface:ILcdLOSRadarPropagationFunction
Returns the K-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 line-of-sight computations.- Specified by:
getKFactor
in interfaceILcdLOSRadarPropagationFunction
- Returns:
- the K-factor 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.
-