Skyline Barrier (3D Analyst)

License Level:BasicStandardAdvanced

Summary

Generates a multipatch feature class representing a skyline barrier or shadow volume.

Learn more about how Skyline Barrier works

Illustration

Skyline Barrier

Usage

Syntax

SkylineBarrier_3d (in_observer_point_features, in_features, out_feature_class, {min_radius_value_or_field}, {max_radius_value_or_field}, {closed}, {base_elevation}, {project_to_plane})
ParameterExplanationData Type
in_observer_point_features

The point feature class containing the observer points.

Feature Layer
in_features

The input line feature class which represents the skylines, or the input multipatch feature class which represents the silhouettes.

Feature Layer
out_feature_class

The output feature class into which the skyline barrier or shadow volume is placed.

Feature Class
min_radius_value_or_field
(Optional)

The minimum radius to which triangle edges should be extended from the observer point. The default is 0, meaning no minimum.

Linear Unit; Field
max_radius_value_or_field
(Optional)

The maximum radius to which triangle edges should be extended from the observer point. The default is 0, meaning no maximum.

Linear Unit; Field
closed
(Optional)

Whether to close the skyline barrier with a skirt and a base so that the resulting multipatch will appear to be a solid.

  • NO_CLOSEDNo skirt or base is added to the multipatch; just the multipatch representing the surface going from the observer to the skyline is represented. This is the default.
  • CLOSED A skirt and a base are added to the multipatch so as to form what appears to be a closed solid.
Boolean
base_elevation
(Optional)

The elevation of the base of the closed multipatch; it is ignored if the barrier is not to be closed. The default is 0.

Linear Unit; Field
project_to_plane
(Optional)

Whether the front (nearer to the observer) and back (farther from the observer) ends of the barrier should each be projected onto a vertical plane. This is typically checked (turned on) in order to create a shadow volume.

  • NO_PROJECT_TO_PLANEThe barrier will extend from the observer point to the skyline (or nearer or farther if nonzero values are provided for minimum and maximum radius). This is the default.
  • PROJECT_TO_PLANE The barrier will extend from a vertical plane to a vertical plane.
Boolean

Code Sample

SkylineBarrier example 1 (Python window)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.SkylineBarrier_3d("observers.shp", "skyline_outline.shp", "barrier_output.shp")
SkylineBarrier example 2 (stand-alone script)

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

'''****************************************************************************
Name: Skyline Barrier Example
Description: This script demonstrates how to use the 
             Skyline Barrier tool.

****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env

try:
    # Obtain a license for the ArcGIS 3D Analyst extension
    arcpy.CheckOutExtension('3D')
    # Set environment settings
    env.workspace = 'C:/data'
    # Set Local Variables
    inPts = 'observers.shp'
    inLine = 'skyline.shp'
    outFC = 'output_barriers.shp'
    minRadius = '0 METERS'
    maxRadius = '200 METERS'
    
    #Execute SkylineBarrier
    arcpy.SkylineBarrier_3d(inPts, inLine, outFC, minRadius,
                          maxRadius, 'CLOSED')

except arcpy.ExecuteError:
    print arcpy.GetMessages()
except:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)

Environments

Related Topics

Licensing Information

ArcGIS for Desktop Basic: Requires 3D Analyst
ArcGIS for Desktop Standard: Requires 3D Analyst
ArcGIS for Desktop Advanced: Requires 3D Analyst
3/7/2014