How Line Of Sight (3D Analyst) works

The Line Of Sight tool calculates intervisibility between pairs of points given their position in 3D space and relative to a surface or features. It also determines what is visible along the lines between these points as they are profiled on the surface.

This tool requires two inputs, a surface and a line feature class. The surface may be a raster, triangulated irregular network (TIN), or terrain dataset. The line feature class may contain one or more records. Each record represents a separate line-of-sight calculation. The first and last vertices of each polyline are used as observer and target points. Other vertices are ignored. With input 3D polyline feature classes, the observer and target positions in 3D space are used directly. All 2D lines will have observer and target heights interpolated from the surface with a default offset of 1 applied to the observers to raise them above the surface. The tool will look to see if fields named OffsetA and OffsetB exist in the feature class. If so, the values of the offsets will be applied, OffsetA to the observer and OffsetB to the target.

If a multipatch feature class is also provided, then each line of sight will be checked against the features. If the line of sight hits 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.

A 3D polyline feature class is produced. One or two lines are made for each input. If there is one output, it means the line is either entirely visible or entirely invisible. Two output lines indicate there are some portions that are visible and some that are not. A VisCode field in the output indicates which is which: a VisCode value of 1 means visible, and a value of 2 means invisible. A SourceOID field is added that contains the object/feature ID of the input so you can determine which output records are associated with which input records. A TarIsVis field is also added to the output that indicates whether the target point is visible from the observer. A value of 0 indicates the target is not visible; a value of 1 indicates it is.

If no multipatch feature class is provided, then the 3D line output is draped onto the surface. If a multipatch feature class is provided, then the output lines run straight through space and obstructions from the observer to the target.

The output feature classes will also contain a field named OBSTR_MPID, which represents the OID of the multipatch that obstructs the line of sight. If no multipatch obstructs the line of sight, then the field contains a value of -1 or -9999. If the target is obstructed by the surface the value will be -1. If the target is visible the value will be -9999.

An optional output obstruction point feature class can be produced. A line-of-sight obstruction point represents the first location along the 3D line defined by the observer and target that is intersected by the surface. Whether an obstruction point is produced for a given input record depends on whether the observer-target line is intersected. A SourceOID field is added that contains the object/feature ID of the input so you can determine which output records are associated with which input records.

Curvature and refraction corrections

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

Refraction takes the bending of light in the atmosphere into consideration. You can see farther with refraction than you could otherwise. The default value used is 0.13 and represents a good average value. Knowledge of how factors like humidity affect refraction are needed to specify a more accurate value for a given application.

Corrections are made when projection information for the surface is present. In addition, the ground UNITS and surface ZUNITS must be in FEET, METERS, or units/meter. The formula used for the correction is:

                       Dist2               Dist2    
    Zactual = Zsurface - --------- + Rrefr * ---------
                       DiamEarth           DiamEarth 


- Dist is the planimetric distance between the observation feature and the observed location.
- Diam is the diameter of the earth.
- Rrefr is refractivity coeeficient of light.

The default value for the diameter of the earth (Diam earth ) is defined as 12,740,000 metres and the default value for the refractivity coefficient (R refr ) is 0.13. Different values for R refr can be used to factor in variations in atmospheric conditions on visibility.