Class TLspLOSProperties

java.lang.Object
com.luciad.tea.lightspeed.los.TLspLOSProperties

public final class TLspLOSProperties extends Object
Represents a set of properties that is used by the TLspLOSCalculator for performing the actual Line-Of-Sight (LOS) calculations.

The properties that are contained by the TLspLOSProperties object are the following:

  • Angle Arc (degrees): the angle is taken to be positive in a clock-wise direction
  • Angle Start (degrees): is defined 90 degrees clockwise from the north bound azimuth
  • Angle Step (degrees): the discretization step used to divide the angle arc into radials along which the LOS is calculated
  • Radius Max (meters): the radius that defines the LOS area
  • Radius Step (meters): the discretization step used to determine the points along each radial where LOS should be calculated
  • Radius Sample Distances (meters): Alternative to specifying the radius step and maximum radius: the distances from the center used to determine the points along each radial where LOS should be calculated
  • Center Point: the center point of the LOS area
  • Center Point Altitude Mode: defines how the altitude of the center point should be interpreted
  • Center Point Reference: the reference in which the center point is defined
  • Min Vertical Angle (degrees): the minimum angle of the cone-of-silence
  • Max Vertical Angle (degrees): the maximum angle of the cone-of-silence
  • Max Radar Tilt Angle (degrees): used in radar LOS calculations to define the tilt angle of the radar
  • Max Radar Tilt Azimuth (degrees): used in radar LOS calculations to define the tilt azimuth of the radar
  • K Factor: used in radar LOS calculations to define the K factor of the radar
Since:
2012.0
  • Constructor Details

    • TLspLOSProperties

      public TLspLOSProperties()
      Creates a new LOS properties object.

      The properties themselves are set to the following default values:

      PropertyDefault value
      Angle Arc360.0 (degrees)
      Angle Start0.0 (degrees)
      Angle Step3.0 (degrees)
      Radius Max10000.0 (meters)
      Radius Step100.0 (meters)
      Radius Sample Distancesnull
      Center Point(0.0, 0.0) (lon,lat)
      Center Point Altitude ModeABOVE_ELLIPSOID
      Center Point ReferenceWGS84
      Min Vertical Angle60.0 (degrees)
      Max Vertical Angle120.0 (degrees)
      Max Radar Tilt Angle0.0 (degrees)
      Max Radar Tilt Azimuth0.0
      K Factor4.0 / 3.0
    • TLspLOSProperties

      public TLspLOSProperties(TLspLOSProperties aProperties)
      Copy constructor.
      Parameters:
      aProperties - the properties object whose properties will be copied into the new instance
  • Method Details

    • getAngleArc

      public double getAngleArc()
      Returns the angle arc in degrees, defined in a clockwise fashion.
      Returns:
      the angle arc in degrees
    • setAngleArc

      public void setAngleArc(double aAngleArc)
      Sets the angle arc to the given value, defined in a clockwise fashion. The given angle will be normalized to lie between 0 and 360 degrees. The angle must be greater than or equal to the angle step.
      Parameters:
      aAngleArc - the new angle arc in degrees
    • getAngleStart

      public double getAngleStart()
      Returns the start of the angle with respect to the 3 o'clock line. So an angle of 0 would imply a 90 clockwise angle with the azimuth that is north bound.
      Returns:
      the start of the angle in degrees.
    • setAngleStart

      public void setAngleStart(double aAngleStart)
      Sets the start of the angle to the given value. This is an angle with respect to the 3 o'clock line, which is 90 degrees clock-wise from the north bound azimuth. The given angle will be normalized to lie between 0 and 360 degrees.
      Parameters:
      aAngleStart - the new start angle in degrees
    • getAngleStep

      public double getAngleStep()
      Returns the discretization step used for partitioning the arc angle in the LOS calculations.
      Returns:
      the angle discretization step in degrees
    • setAngleStep

      public void setAngleStep(double aAngleStep)
      Sets the angle discretization step to the given value. The value must be less than or equal to the angle arc.
      Parameters:
      aAngleStep - the new angle discretization step in degrees
    • getRadius

      public double getRadius()
      Returns the radius of the area in which the LOS calculations should be performed. If radius sample distances are set, this radius property is ignored. The radius is then determined by the maximum radius sample distance.
      Returns:
      the radius of the LOS area in meters
      See Also:
    • setRadius

      public void setRadius(double aRadius)
      Sets the radius of the LOS area to the given value. The value must be greater than or equal to the radius step. If radius sample distances are set, this radius property is ignored. The radius is then determined by the maximum radius sample distance.
      Parameters:
      aRadius - the radius in meters
      See Also:
    • getRadiusStep

      public double getRadiusStep()
      Returns the discretization step used for partitioning the radials used in the LOS calculations. If radius sample distances are set, this radius step property is ignored. The steps are then implicitly defined by the radius sample distances.
      Returns:
      the radius discretization step in meters
      See Also:
    • setRadiusStep

      public void setRadiusStep(double aRadiusStep)
      Sets the radius discretization step to the given value. The value must be less than or equal to the radius. If radius sample distances are set, this radius step property is ignored. The steps are then implicitly defined by the radius sample distances.
      Parameters:
      aRadiusStep - the new radius discretization step in meters
      See Also:
    • getRadiusSampleDistances

      public List<Double> getRadiusSampleDistances()
      Returns the distances in meters from center at which to sample. If not set, the radius and radius step are used to determine the distances and this method returns null.
      Returns:
      distances in meters from center at which to sample
      Since:
      2018.1
      See Also:
    • setRadiusSampleDistances

      public void setRadiusSampleDistances(List<Double> aRadiusSampleDistances)
      You can specify a radius and a radius step to configure uniform sampling. Alternatively, you can use this method to specify the radius sample distances yourself. The given values are the distances from the center at which to sample.

      Custom sampling is for example useful to increase the range of a LOS coverage without impacting performance and accuracy much by using larger steps farther away from the center.

      The values must be unique and nonnegative. The order does not matter.

      By default, this property is not set and thus the radius and radius step define the radius sampling. If this property is set, the radius and radius step properties are ignored.

      Use null to unset this property. The radius and radius step will then again be used to determine the radius sampling.
      Parameters:
      aRadiusSampleDistances - the distances in meters from center at which to sample
      Since:
      2018.1
    • getCenterPoint

      public ILcdPoint getCenterPoint()
      Returns the center point of the LOS area. The center point is defined in the reference that is specified by getCenterPointReference().
      Returns:
      the center point of the LOS area
    • setCenterPoint

      public void setCenterPoint(ILcdPoint aCenterPoint)
      Sets the center point of the LOS area to the given value. Note that nothing special is done when setting this point, so if the given point is defined in another reference than specified by getCenterPointReference(), then the user should also set the correct reference by using setCenterPointReference(com.luciad.reference.ILcdGeoReference).
      Parameters:
      aCenterPoint - the new value of the center point
    • getCenterPointAltitude

      public double getCenterPointAltitude()
      Utility function that returns the the altitude of the center point with respect to the ellipsoid (i.e. ABOVE_ELLIPSOID).

      NOTE: since the value returned by this method is defined as ABOVE_ELLIPSOID, you should convert the value to the correct altitude mode (i.e. getCenterPointAltitudeMode()) before using it.

      Returns:
      the altitude of the center point in meters
    • getCenterPointAltitudeMode

      public TLcdCoverageAltitudeMode getCenterPointAltitudeMode()
      Returns the altitude mode in which the center point altitude is defined.
      Returns:
      the altitude mode in which the center point altitude is defined
    • setCenterPointAltitudeMode

      public void setCenterPointAltitudeMode(TLcdCoverageAltitudeMode aCenterPointAltitudeMode)
      Sets the altitude mode for the center point altitude to the given value.
      Parameters:
      aCenterPointAltitudeMode - the new center point altitude mode
    • getCenterPointReference

      public ILcdGeoReference getCenterPointReference()
      Returns the reference in which the center point is defined.
      Returns:
      the reference in which the center point is defined
    • setCenterPointReference

      public void setCenterPointReference(ILcdGeoReference aCenterPointReference)
      Sets the reference in which the center point is defined to the given reference.
      Parameters:
      aCenterPointReference - the new center point reference
    • getMinVerticalAngle

      public double getMinVerticalAngle()
      Returns the minimum angle of the (vertical) cone of silence used for calculating the LOS.
      Returns:
      the minimum vertical angle in degrees
    • setMinVerticalAngle

      public void setMinVerticalAngle(double aMinVerticalAngle)
      Sets the minimum vertical angle to the given value.
      Parameters:
      aMinVerticalAngle - the new minimum vertical angle in degrees
    • getMaxVerticalAngle

      public double getMaxVerticalAngle()
      Returns the maximum angle of the (vertical) cone of silence used for calculating the LOS.
      Returns:
      the maximum vertical angle in degrees
    • setMaxVerticalAngle

      public void setMaxVerticalAngle(double aMaxVerticalAngle)
      Set the maximum vertical angle to the given value.
      Parameters:
      aMaxVerticalAngle - the new maximum vertical angle in degrees
    • getMaxRadarTiltAngle

      public double getMaxRadarTiltAngle()
      Returns the maximum tilt angle of the radar.
      Returns:
      the maximum tilt angle in degrees
    • setMaxRadarTiltAngle

      public void setMaxRadarTiltAngle(double aMaxRadarTiltAngle)
      Sets the maximum tilt angle to the given value.
      Parameters:
      aMaxRadarTiltAngle - the new maximum tilt angle in degrees
    • getMaxRadarTiltAzimuth

      public double getMaxRadarTiltAzimuth()
      Returns the maximum radar tilt azimuth.
      Returns:
      the maximum radar tilt azimuth
    • setMaxRadarTiltAzimuth

      public void setMaxRadarTiltAzimuth(double aMaxRadarTiltAzimuth)
      Sets the maximum radar tilt azimuth to the given value.
      Parameters:
      aMaxRadarTiltAzimuth - the new maximum radar tilt azimuth
    • getKFactor

      public double getKFactor()
      Returns K-factor used for the radar propagation function during the LOS calculations.
      Returns:
      the K-Factor for the radar propagation function
    • setKFactor

      public void setKFactor(double aKFactor)
      Sets the K-factor for the radar propagation function to the given value.
      Parameters:
      aKFactor - the new K-factor value
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object