Skyline Graph (3D Analyst)


Calculates sky visibility and generates an optional table and polar graph.

The table and graph represent the horizontal and vertical angles going from the observer point to each of the vertices on the skyline.


Skyline Graph


  • The azimuth and vertical angle from each observer point to each vertex in the skyline is evaluated, and can be exported to a stand-alone table by specifying the Output Angles Table. The following fields will be present in this table:

    • HORIZ_ANG—The horizontal angle.
    • ZENITH_ANG—The zenith angle.

    If Additional Fields is selected:

    • FEATURE_ID—The skyline feature that obstructs the observer's view of the sky.
    • VERTEX_X—The X coordinate of the vertex.
    • VERTEX_Y—The Y coordinate of the vertex.
    • VERTEX_Z—The Z coordinate of the vertex.
    • DIST_2D—The horizontal distance from the observer to the vertex.
    • DIST_3D—The slope distance from the observer to the vertex.
  • The arithmetic horizontal angle is equal to 90 minus the azimuth, and the zenith angle is 90 minus the vertical angle. (An arithmetic horizontal angle of 0 is due east, and 90 is due north; a zenith angle of 90 is horizontal, and 0 is straight up.)

  • The percentage of visible sky is always listed in the results. This value is equal to the area above the skyline, divided by the area above the base visible angle (one of the parameters, with a default of zero, meaning at the same elevation as the observer), and is calculated only within the azimuth range of the skyline.


arcpy.3d.SkylineGraph(in_observer_point_features, in_line_features, {base_visibility_angle}, {additional_fields}, {out_angles_table}, {out_graph})
ParameterExplanationData Type

The input features containing one or more observer points.

Feature Layer

The line features that represent the skyline.

Feature Layer

The baseline vertical angle that is used for calculating the percentage of visible sky. 0 is the horizon, 90 is straight up; -90 is straight down. The default is 0.


Indicates whether additional fields will be added to the angles table.

  • NO_ADDITIONAL_FIELDSAdditional fields will not be added. This is the default.
  • ADDITIONAL_FIELDSAdditional fields will be added.

The table to be created for outputting the angles.


This parameter is not supported.


Derived Output

NameExplanationData Type

The average percentage of visible sky for all observers. This value is expressed as a value between 0 to 1, where 0.8 represents 80 percent visibility of the skyline.


Code sample

SkylineGraph example 1 (Python window)

The following sample demonstrates the use of this tool in the Python window.

arcpy.env.workspace = "C:/data"
arcpy.SkylineGraph_3d("observers.shp", "skyline_outline.shp", 0, 
                      "ADDITIONAL_FIELDS", "table.dbf")
SkylineGraph example 2 (stand-alone script)

The following sample demonstrates the use of this tool in a stand-alone Python script.

Name: Skyline Example
Description: This script demonstrates how to use the 
             Skyline tool.
# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = 'C:/data'

# Set Local Variables
inPts = "observers.shp"
inLines = "skyline_outline.shp"
baseVisibility = 25

# Ensure output table has unique name
outTable = arcpy.CreateUniqueName("angles_table.dbf")

#Execute SkylineGraph
arcpy.SkylineGraph_3d(inPts, inLines, 0, "ADDITIONAL_FIELDS", outTable)

Licensing information

  • Basic: Requires 3D Analyst
  • Standard: Requires 3D Analyst
  • Advanced: Requires 3D Analyst

Related topics