Class TLcdLOSPropagationFunctionFixedHeight

java.lang.Object
com.luciad.tea.TLcdLOSPropagationFunctionFixedHeight
All Implemented Interfaces:
ILcdLOSPropagationFunction

public class TLcdLOSPropagationFunctionFixedHeight extends Object implements ILcdLOSPropagationFunction
Computes the visibility of points at a fixed height from the center point of a line-of-sight coverage.

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. These heights, combined with the cone of visibility, are compared to the given fixed height, resulting in one of the following values:

  • VISIBLE: for points where the object is visible.
  • INVISIBLE: for points where the object is invisible.
  • CONE_OF_SILENCE: for the points corresponding to the cone of silence around the given point.
  • 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 visible area at the given fixed height, the red line corresponds to the invisible area and the blue line to the area represented by the cone of silence. The thin black line corresponds to the line-of-sight coverage matrix, needed by this function.

Fixed height line-of-sight propagation, above ellipsoid.

Fixed height line-of-sight propagation, above ground.
  • Field Details

    • INVISIBLE

      public static final int INVISIBLE
      The resulting value for points where the object is invisible due to the obstruction of the terrain. For example when a point lies behind a hill or in a valley.
      See Also:
    • UNKNOWN

      public static final int UNKNOWN
      The resulting value for points where the visibility is unknown. For example when no elevation data or invalid data was found at that point.
      See Also:
    • CONE_OF_SILENCE

      public static final int CONE_OF_SILENCE
      The resulting value for the points corresponding to the cone of silence around the given point. This value is used for points which become visible if the vertical angle of the radar is set to [0, 180].
      See Also:
    • VISIBLE

      public static final int VISIBLE
      The resulting value for points where the object is visible.
      See Also:
  • Constructor Details

    • TLcdLOSPropagationFunctionFixedHeight

      public TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, double aFixedHeightAboveEllipsoid)
      Creates a propagation function which computes the visibility of points at a fixed height from a given point. Note that the propagation function cannot be set to null. If this condition is not met, a NullPointerException will be thrown.
      Parameters:
      aLOSRadarPropagationFunction - The propagation function on which to base its computations.
      aFixedHeightAboveEllipsoid - The fixed height value defined in meters above ellipsoid.
      Throws:
      NullPointerException - when the argument aLOSRadarPropagationFunction is null.
      IllegalArgumentException - if the argument aLOSRadarPropagationFunction does not use the mode TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS or TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS and if it uses the altitude mode TLcdCoverageAltitudeMode.ABOVE_OBJECT.
    • TLcdLOSPropagationFunctionFixedHeight

      public TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, double aFixedHeight, TLcdCoverageAltitudeMode aFixedHeightMode)
      Creates a propagation function which computes the visibility of points at a fixed height from a given point. Note that the propagation function cannot be set to null. If this condition is not met, a NullPointerException will be thrown.
      Parameters:
      aLOSRadarPropagationFunction - The propagation function on which to base its computations.
      aFixedHeight - The fixed height value.
      aFixedHeightMode - The altitude mode indicating how to interpret the fixed height.
      Throws:
      NullPointerException - when the argument aLOSRadarPropagationFunction is null.
      IllegalArgumentException - if the argument aLOSRadarPropagationFunction does not use the mode TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS or TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS, if it uses the altitude mode TLcdCoverageAltitudeMode.ABOVE_OBJECT and if the argument aFixedHeight is set to TLcdCoverageAltitudeMode.ABOVE_OBJECT.
    • TLcdLOSPropagationFunctionFixedHeight

      public TLcdLOSPropagationFunctionFixedHeight(ILcdLOSRadarPropagationFunction aLOSRadarPropagationFunction, double aFixedHeight, TLcdCoverageAltitudeMode aFixedHeightMode, TLcdLOSOptions aLOSOption)
      Creates a propagation function which computes the visibility of points at a fixed height from a given point. Note that the propagation function cannot be set to null. If this condition is not met, a NullPointerException will be thrown.
      Parameters:
      aLOSRadarPropagationFunction - The propagation function on which to base its computations.
      aFixedHeight - The fixed height value.
      aFixedHeightMode - The altitude mode indicating how to interpret the fixed height.
      aLOSOption - A LOS option object containing parameters for the internals of this propagation function and its resulting coverages
      Throws:
      NullPointerException - when the argument aLOSRadarPropagationFunction is null.
      IllegalArgumentException - if the argument aLOSRadarPropagationFunction does not use the mode TLcdEarthRepresentationMode.SPHERICAL_FIXED_RADIUS or TLcdEarthRepresentationMode.SPHERICAL_EULER_RADIUS, if it uses the altitude mode TLcdCoverageAltitudeMode.ABOVE_OBJECT and if the argument aFixedHeight is set to TLcdCoverageAltitudeMode.ABOVE_OBJECT.
  • Method Details

    • createLOSCoverageMatrix

      public ILcdLOSCoverageMatrix createLOSCoverageMatrix(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
      Description copied from interface: ILcdLOSPropagationFunction
      Creates a coverage matrix using the line-of-sight coverage 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.

      Specified by:
      createLOSCoverageMatrix in interface ILcdLOSPropagationFunction
      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

      public void initialize(ILcdLOSCoverage aLOSCoverage, ILcdGeoReference aMatrixReference)
      Description copied from interface: ILcdLOSPropagationFunction
      Initialize the propagation function with the given coverage 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.
      Specified by:
      initialize in interface ILcdLOSPropagationFunction
      Parameters:
      aLOSCoverage - The covered area to use.
      aMatrixReference - The matrix reference in which to compute the matrix values.
    • applyForAzimuthSFCT

      public void applyForAzimuthSFCT(double aAzimuth, ILcdLOSCoverageMatrix aLOSCoverageMatrixSFCT)
      Computes the visibility of points at a fixed height from the center point of a line-of-sight coverage for a given azimuth and stores the resulting values 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 is INVISIBLE). Refer to the class documentation for more information about the different visibility values used in this propagation function.

      Specified by:
      applyForAzimuthSFCT in interface ILcdLOSPropagationFunction
      Parameters:
      aAzimuth - The azimuth in degrees.
      aLOSCoverageMatrixSFCT - The coverage matrix to update.
      Throws:
      NullPointerException - if the aLOSCoverageMatrixSFCT is null.