public class TLcdLOSRadarPropagationFunction extends Object implements ILcdLOSRadarPropagationFunction
0
at the ground to 180
at zenith.
The propagation function supports both radar and visual line-of-sight computations. The K-factor
in the constructor is an indication of the reflection of the waves on the atmosphere. For radar
line-of-sight computations, values should be greater than 1
, usually 4/3
.
For visual line-of-sight 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.INVISIBLE, UNKNOWN
Constructor and Description |
---|
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.
|
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.
|
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 line-of-sight
coverage for a given azimuth and stores the resulting heights in the line-of-sight coverage matrix.
|
ILcdLOSCoverageMatrix |
createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage,
ILcdGeoReference aMatrixReference)
Creates a coverage matrix using the line-of-sight coverage
aLOSCoverage and the matrix
reference aMatrixReference . |
TLcdCoverageAltitudeMode |
getAltitudeMode()
Returns the altitude mode indicating the definition of the resulting line-of-sight values.
|
TLcdEarthRepresentationMode |
getEarthRepresentationMode()
Returns the earth representation mode used by this instance.
|
double |
getKFactor()
Returns the K-factor 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 TLcdLOSRadarPropagationFunction(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aKFactor)
null
, otherwise a NullPointerException
will be thrown.
Currently, two earth representation modes are supported. If another representation mode is used,
an IllegalArgumentException
will be thrown.
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.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
line-of-sight computations.NullPointerException
- when the argument aTerrainElevationProvider
is
null
.IllegalArgumentException
- aEarthRepresentationMode
is not one of the following
expected values (TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
,aAltitudeMode
is TLcdCoverageAltitudeMode.ABOVE_OBJECT
,aMinVerticalAngle
or aMaxVerticalAngle
lies outside the interval [0, 180] andaKFactor
is smaller than or equal to zero.public TLcdLOSRadarPropagationFunction(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aMaxRadarTiltAngle, double aMaxRadarTiltAzimuth, double aKFactor)
null
, otherwise a NullPointerException
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
applyForAzimuthSFCT(double, ILcdLOSCoverageMatrix)
. If the computed viewing
angle falls outside the viewing interval [0, 180], the angle outside the interval is clipped to
either 0
or 180
.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 line-of-sight computations.NullPointerException
- when the argument aTerrainElevationProvider
is
null
.IllegalArgumentException
- aEarthRepresentationMode
is not one of the following
expected values (TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
,aAltitudeMode
is TLcdCoverageAltitudeMode.ABOVE_OBJECT
,aMinVerticalAngle
or aMaxVerticalAngle
lies outside the interval [0, 180],aMaxRadarTiltAngle
lies outside the interval [0, 90] andaKFactor
is smaller than or equal to zero.public TLcdLOSRadarPropagationFunction(TLcdEarthRepresentationMode aEarthRepresentationMode, ALcdTerrainElevationProvider aTerrainElevationProvider, TLcdCoverageAltitudeMode aAltitudeMode, double aMinVerticalAngle, double aMaxVerticalAngle, double aMaxRadarTiltAngle, double aMaxRadarTiltAzimuth, double aKFactor, TLcdLOSOptions aLOSOption)
null
, otherwise a NullPointerException
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
applyForAzimuthSFCT(double, ILcdLOSCoverageMatrix)
. If the computed viewing
angle falls outside the viewing interval [0, 180], the angle outside the interval is clipped to
either 0
or 180
.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 line-of-sight computations.aLOSOption
- A LOS option object containing parameters for the internals of this
propagation function and its resulting coveragesNullPointerException
- when the argument aTerrainElevationProvider
is
null
.IllegalArgumentException
- aEarthRepresentationMode
is not one of the following
expected values (TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS
or
TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS
,aAltitudeMode
is TLcdCoverageAltitudeMode.ABOVE_OBJECT
,aMinVerticalAngle
or aMaxVerticalAngle
lies outside the interval [0, 180],aMaxRadarTiltAngle
lies outside the interval [0, 90] 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 line-of-sight 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)
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