Linear Line Of Sight (Defense)

Available with Advanced license.

Available with 3D Analyst license.

Summary

Creates lines of sight between observers and targets.

Usage

  • This tool uses the Construct Sight Lines and Line Of Sight tools from the 3D Analyst toolbox.

  • The observer is the start point and the target is the endpoint of the line used to determine visibility.

  • One or more observers and one or more target point features will be used.

  • All observers are matched with all targets.

  • Resulting lines are colored to show visible sections (green) and nonvisible sections (red).

  • The following fields are added to the Output Sight Line Feature Class parameter value:

    • OID_OBSERV—The Object ID of the observer point used to create the sight line
    • OID_TARGET—The Object ID of the target point used to create the sight line
    • TarIsVis—Indicates whether the target is visible (1) or not visible (0) to the observer along each sight line
    • AZIMUTH—The azimuth from the observer location to the target
    • VERT_ANGLE—The viewing angle looking up or down (negative) from the observer to the target
  • The following fields are added to the Output Line Of Sight Feature Class parameter value:

    • OID_OBSERV—The Object ID of the observer point used to create the sight line
    • OID_TARGET—The Object ID of the target point used to create the sight line
    • VisCode—Indicates whether the surface segment is visible (1) or not visible (2) to the observer
    • TarIsVis—Indicates whether the target is visible (1) or not visible (0) to the observer along each sight line
    • AZIMUTH—The azimuth from the observer location to the target
    • ObsSPOT—The elevation of the observer
    • TgtSPOT—The elevation of the target
  • The following fields are added to the Output Observer Feature Class parameter value:

    • OID_OBSERV—The Object ID of the observer point used to create the sight line
    • OID_TARGET—The Object ID of the target point used to create the sight line
    • AZIMUTH—The azimuth from the observer location to the target
    • VERT_ANGLE—The viewing angle looking up or down (negative) from the observer to the target
    • TarIsVis—Indicates whether the target is visible (1) or not visible (0) to the observer along each sight line
    • Z—The surface elevation at the observer location
    • ObsSPOT—The elevation of the observer
  • The following fields are added to the Output Target Feature Class parameter value:

    • OID_OBSERV—The Object ID of the observer point used to create the sight line
    • OID_TARGET—The Object ID of the target point used to create the sight line
    • AZIMUTH—The azimuth from the observer location to the target
    • VERT_ANGLE—The viewing angle looking up or down (negative) from the observer to the target
    • TarIsVis—Indicates whether the target is visible (1) or not visible (0) to the observer along each sight line
    • Z—The surface elevation at the target location
    • TgtSPOT—The elevation of the target
  • Height units are in the units of the elevation surface.

  • The tool uses earth curvature and refractivity calculations if the input surface supports them.

  • If obstruction features are used, the resulting surface profile lines do not follow the surface profile but extend directly between observer and target. This changes the optional profile graph.

  • To access the optional profile graph, use the Explore tool to open the pop-up for the output line of sight feature's profile you want to view. Click the graph for a full-size view. The Explore tool is in the Navigate group on the Map tab.

Parameters

LabelExplanationData Type
Observers

The input observer points.

Feature Set
Targets

The input target points.

Feature Set
Input Elevation Surface

The input elevation raster surface.

Raster Layer; Mosaic Dataset; Mosaic Layer
Output Line Of Sight Feature Class

The output feature class showing lines of visible and nonvisible surface areas.

Feature Class
Output Sight Line Feature Class

The output line feature class showing the direct line of sight between observer and target.

Feature Class
Output Observer Feature Class

The output observer point feature class.

Feature Class
Output Target Feature Class

The output target point feature class.

Feature Class
Input Obstruction Features
(Optional)

The input multipatch feature that may obstruct the lines of sight.

Feature Layer
Observer Height Above Surface (meters)
(Optional)

The height that will be added to the surface elevation of the observer. The default is 2.

Double
Target Height Above Surface (meters)
(Optional)

The height that will be added to the surface elevation of the target. The default is 0.

Double
Add Profile Graph Attachment To Sight Line
(Optional)

Specifies whether the tool will add an attachment to the feature with the profile (cross section terrain graph) between observer and target.

  • No profile graphNo profile graph will be added. This is the default.
  • Adds a profile graphA profile graph will be added.
Boolean

arcpy.defense.LinearLineOfSight(in_observer_features, in_target_features, in_surface, out_los_feature_class, out_sight_line_feature_class, out_observer_feature_class, out_target_feature_class, {in_obstruction_features}, {observer_height_above_surface}, {target_height_above_surface}, {add_profile_attachment})
NameExplanationData Type
in_observer_features

The input observer points.

Feature Set
in_target_features

The input target points.

Feature Set
in_surface

The input elevation raster surface.

Raster Layer; Mosaic Dataset; Mosaic Layer
out_los_feature_class

The output feature class showing lines of visible and nonvisible surface areas.

Feature Class
out_sight_line_feature_class

The output line feature class showing the direct line of sight between observer and target.

Feature Class
out_observer_feature_class

The output observer point feature class.

Feature Class
out_target_feature_class

The output target point feature class.

Feature Class
in_obstruction_features
(Optional)

The input multipatch feature that may obstruct the lines of sight.

Feature Layer
observer_height_above_surface
(Optional)

The height that will be added to the surface elevation of the observer. The default is 2.

Double
target_height_above_surface
(Optional)

The height that will be added to the surface elevation of the target. The default is 0.

Double
add_profile_attachment
(Optional)

Specifies whether the tool will add an attachment to the feature with the profile (cross section terrain graph) between observer and target.

  • NO_PROFILE_GRAPHNo profile graph will be added. This is the default.
  • ADD_PROFILE_GRAPHA profile graph will be added.
Boolean

Code sample

LinearLineOfSight example 1 (Python window)

The following Python window script demonstrates how to use the LinearLineOfSight function.

import arcpy
arcpy.env.workspace = r"C:/Data.gdb"
arcpy.defense.LinearLineOfSight("LLOS_Obs",
                                "LLOS_Tar",
                                "n36.dt2",
                                "LineOfSight",
                                "SightLines",
                                "Observers",
                                "Targets",
                                None,
                                2,
                                0,
                                "NO_PROFILE_GRAPH")
LinearLineOfSight example 2 (stand-alone script)

The following example uses the LinearLineOfSight function in a sample workflow script.

# Description: Create Linear Line of Sight to test siting of a radio antenna

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = r"C:/Data.gdb"

# Select antenna to test
antenna_layer = "antennas"
whereClause = "antenna_call_sign = 'KJT'"
test_ant_layer = arcpy.management.MakeFeatureLayer(antenna_layer, whereClause)

# Select observer test location
obs_layer = "observer_locations"
whereClause = "site_name = 'test_site'"
test_obs_layer = arcpy.management.MakeFeatureLayer(obs_layer, whereClause)

# Inputs
input_surface = "n36.dt2"

# Create line of sight between selected antenna and observer locations
arcpy.defense.LinearLineOfSight(test_obs_layer,
                                test_ant_layer,
                                input_surface,
                                "LineOfSight",
                                "SightLines",
                                "Test_Observers",
                                "Test_Targets",
                                None,
                                2,
                                0,
                                "NO_PROFILE_GRAPH")