How Line Of Sight works

The Line Of Sight tool calculates intervisibility between the first and last vertex of each line feature given its position in 3D space relative to the obstructions provided by a surface or multipatch feature class. The first vertex defines the observation point, whereas the last is the observation target. Visibility is determined along the sight line between these points, and any intermediary vertices in lines with more than two vertices are ignored.

The height of the observation and target points for 2D lines are interpolated from the surface with a default offset of 1 applied to the observer location so that it is above the surface. For 3D line features, the observer and target elevation is solely obtained from the feature's geometry. Additional offsets can be applied to the observation and target points by adding fields named OffsetA and OffsetB. The value in OffsetA will be added to the observer's elevation, whereas OffsetB will be added to the target.

If no multipatch feature is provided, the output line is draped onto the surface. If a multipatch feature is provided, its features will be factored into the visibility analysis along with the surface, and the resulting lines will extend directly from the observer to the target location.

The output 3D lines store one feature for each sight line that is entirely visible or invisible, and two features for each sight line that is partially visible. The SourceOID field indicates the input feature used to define the sight line, and the values in the VisCode field indicate the visibility of the sight line, where 1 means visible and 2 means invisible. The TarIsVis field describes whether the target point is visible from the observer by using a value of 1 to denote visibility and 0 for nonvisibility. A field named OBSTR_MPID is also added to identify the multipatch obstructing the sight line. If the target is obstructed by the surface, this field's value will be -1. If the target is visible, it will be -9999.

An optional obstruction point feature class can be produced to visualize the first location along the sight line that impedes the observer's visibility of the target. If the sight line is obstructed by any part of the surface before hitting a feature, then the obstruction point is on the surface. If the line of sight hits a feature before hitting any part of the surface, then the obstruction point will be at the actual point of intersection, and the rest of the line of sight can be considered to be invisible. It contains a SourceOID field that identifies the input line associated with the obstruction.

Curvature and atmospheric refraction corrections

The curvature option makes adjustments to take the curvature of the earth into consideration when performing line-of-sight calculations. It can only be used when the spatial reference of the input surface is in a projected coordinate system and z-coordinate units are defined.

Enabling the refraction option will compensate for the influence of atmospheric refraction, which forces light to bend as it passes through the atmosphere. The amount of this deviation is controlled by variations in air pressure and density, humidity, temperature, and elevation. As with curvature, correcting for atmospheric refraction requires the surface's spatial reference to be in a projected coordinate system and have its z-coordinate units defined.

The formula used for the correction is:

Z = Z0 + D2(R - 1) ÷ d

where:

3/7/2014