ArcGIS for Desktop

  • Documentation
  • Pricing
  • Support

  • My Profile
  • Help
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS for Desktop

A complete professional GIS

ArcGIS for Server

GIS in your enterprise

ArcGIS for Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Pricing
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

Help

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • More...

Skyline

  • Summary
  • Illustration
  • Usage
  • Syntax
  • Code Sample
  • Environments
  • Licensing Information

Summary

Generates a line or multipatch feature class containing the results from a skyline or silhouette analysis.

Learn more about how Skyline works

Illustration

Skyline

Usage

  • The Skyline tool is often used in conjunction with the Skyline Barrier tool and sometimes with the Skyline Graph tool. Other applications of this tool are described in Analyzing threats to 3D flight paths and corridors.

  • The Skyline tool can be used to create feature silhouettes that can be extruded into shadow volumes with the Skyline Barrier tool. See further information in How Skyline works.

  • The following fields will be added to the output feature class that contains the skylines:

    • OBSV_PT_ID—The FID of the observer point used to create this skyline.
    • ORIGFTR_ID—FID of the feature, such as a building.
  • The following fields will be added to the output feature class that contains the silhouettes:

    • OBSV_PT_ID—The FID of the observer point used to create this silhouette.
    • ORIGFTR_ID—The FID of the original feature, such as a building, represented by this silhouette.
    • DIR_VECT_X—The X component of the unit vector representing the direction of the light rays from the observer.
    • DIR_VECT_Y—The Y component of the unit vector representing the direction of the light rays from the observer.
    • DIR_VECT_Z—The Z component of the unit vector representing the direction of the light rays from the observer.
    • FEAT_CTR_X—The X component of the center of the envelope of the original feature (for example, building).
    • FEAT_CTR_Y—The Y component of the center of the envelope of the feature.
    • FEAT_CTR_Z—The Z component of the center of the envelope of the feature.
    • BHND_CTR_X—The X component of the center of the envelope of the feature, moved to behind the feature.
    • BHND_CTR_Y—The Y component of the center of the envelope of the feature, moved to behind the feature.
    • BHND_CTR_Z—The Z component of the center of the envelope of the feature, moved to behind the feature.
    • USED_PARLL—Whether the silhouette was created using parallel light rays (1 for yes and 0 for no).
    • MADE_VERT—Whether the silhouette was made vertical, rather than perpendicular to the light rays (1 for yes and 0 for no).
    • MOVED_BHND—Whether the silhouette was moved to behind the feature, rather than staying at its center (1 for yes and 0 for no).

Syntax

Skyline_3d (in_observer_point_features, out_feature_class, {in_surface}, {virtual_surface_radius}, {virtual_surface_elevation}, {in_features}, {feature_lod}, {from_azimuth_value_or_field}, {to_azimuth_value_or_field}, {azimuth_increment_value_or_field}, {max_horizon_radius}, {segment_skyline}, {scale_to_percent}, {scale_according_to}, {scale_method}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {create_silhouettes})
ParameterExplanationData Type
in_observer_point_features

The 3D points representing observers. Each feature will have its own output.

Feature Layer
out_feature_class

The 3D features that will either be lines that represent the skyline or multipatches that represent silhouettes.

Feature Class
in_surface
(Optional)

The topographic surface that will be used to define the horizon. If no surface is provided, then a virtual surface will be employed using the virtual_surface_radius and virtual_surface_elevation parameters.

LAS Dataset Layer; Raster Layer; TIN Layer; Terrain Layer
virtual_surface_radius
(Optional)

The radius of the virtual surface that will be used to define the horizon when a topographic surface is not provided. The default is 1,000 meters.

The following units are supported:

  • UNKNOWN
  • INCHES
  • FEET
  • YARDS
  • MILES
  • MILLIMETERS
  • CENTIMETERS
  • DECIMETERS
  • METERS
  • KILOMETERS
Linear Unit
virtual_surface_elevation
(Optional)

The elevation of the virtual surface for defining the horizon in lieu of an actual surface. It is ignored if an actual surface is provided. The default is 0.

The following units are supported:

  • UNKNOWN
  • INCHES
  • FEET
  • YARDS
  • MILES
  • MILLIMETERS
  • CENTIMETERS
  • DECIMETERS
  • METERS
  • KILOMETERS
Linear Unit
in_features
(Optional)

The features used in determining the skyline. If no features are specified, then the skyline will consist solely of the horizon line as defined by the topographic or virtual surface.

Feature Layer
feature_lod
(Optional)

The level of detail at which each feature should be examined in the skyline analysis.

  • FULL_DETAIL —Every edge within the feature is considered in the skyline analysis (only edges of triangles and exterior rings are considered). This time intensive operation is the most precise, and is also the default option.
  • CONVEX_FOOTPRINT —The skyline analysis will use the upper perimeter of the convex hull of each feature's footprint extruded to the elevation of the highest vertex within the feature.
  • ENVELOPE — The skyline analysis will use the perimeter of the 3-dimensional feature envelope. This is the fastest technique.
String
from_azimuth_value_or_field
(Optional)
Double; Field
to_azimuth_value_or_field
(Optional)

The direction, in degrees, at which the skyline analysis should be completed. The analysis starts from the observer point and goes to the right, from the From Azimuth until the To Azimuth is reached. Must be no more than 360 greater than the From Azimuth. The default is 360.

Double; Field
azimuth_increment_value_or_field
(Optional)

The angular interval, in degrees, at which the horizon should be evaluated while conducting the skyline analysis between the From Azimuth and the To Azimuth. Must be no greater than the To Azimuth minus the From Azimuth. The default is 1.

Double; Field
max_horizon_radius
(Optional)

The maximum distance for which a horizon should be sought from the observer location. A value of zero indicates that there should be no limit imposed. The default is 0.

The following units are supported:

  • UNKNOWN
  • INCHES
  • FEET
  • YARDS
  • MILES
  • MILLIMETERS
  • CENTIMETERS
  • DECIMETERS
  • METERS
  • KILOMETERS
Double
segment_skyline
(Optional)

Determines whether the resulting skyline will have one feature for each observer point, or if each observer's skyline will be segmented by the unique elements that contribute to the skyline.

If silhouettes are being generated, then this parameter will indicate whether divergent rays should be used; for sun shadows, this should generally be NO_SEGMENT_SKYLINE

  • NO_SEGMENT_SKYLINE —Each skyline feature will represent one observer. This is the default.
  • SEGMENT_SKYLINE —Each observer's skyline will be segmented by the unique elements that contribute to the skyline.
Boolean
scale_to_percent
(Optional)

Indicates to what percent of the original vertical angle (angle above the horizon, or angle of elevation) or elevation each skyline vertex should be placed. If either 0 or 100 is entered, then no scaling will occur. The default is 100.

Double
scale_according_to
(Optional)

The values according to which the scaling should be determined.

  • VERTICAL_ANGLE —Scaling is done by considering the vertical angle of each vertex relative to the observer point. This is the default.
  • ELEVATION —Scaling is done by considering the elevation of each vertex relative to the observer point.
String
scale_method
(Optional)

The vertex to be used to calculate against.

  • SKYLINE_MAXIMUM —Vertices will be scaled relative to the vertical angle (or the elevation) of the vertex with the highest vertical angle (or elevation). This is the default.
  • EACH_VERTEX —Vertices will be scaled relative to the original vertical angle (or elevation) of each vertex.
String
use_curvature
(Optional)

Indicates whether the earth's curvature should be taken into consideration when generating the ridgeline from a functional surface.

  • CURVATURE —The earth's curvature will be taken into consideration.
  • NO_CURVATURE —The earth's curvature will not be taken into consideration. This is the default.
Boolean
use_refraction
(Optional)

Indicates whether atmospheric refraction will be applied when generating the ridgeline from a functional surface.

  • NO_REFRACTION — Atmospheric refraction will not be taken into consideration. This is the default.
  • REFRACTION —Atmospheric refraction will be taken into consideration.
Boolean
refraction_factor
(Optional)

The refraction coefficient to be used if atmospheric refraction is being considered. The default is 0.13.

Double
pyramid_level_resolution
(Optional)

The z-tolerance or window-size resolution of the terrain pyramid level that will be used by this tool. The default is 0, or full resolution.

Double
create_silhouettes
(Optional)

Specifies whether output features will represent skylines or silhouettes.

  • NO_CREATE_SILHOUETTES —The resulting polyline features will represent the skyline. This is the default.
  • CREATE_SILHOUETTES —The resulting multipatch features will represent silhouettes.
Boolean

Code Sample

Skyline 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.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
Skyline 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
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"
    # Make sure output has a unique name
    outFC = arcpy.CreateUniqueName("skyline_output.shp")
    inSurface = "sample.gdb/featuredataset/terrain"
    obstructionFCs = "buildings.shp; billboards.shp"
    surfRad = "1000 meters"
    surfElev = "100 meters"
    LOD = "FULL_DETAIL"
    fromAzim = 0
    toAzim = 360
    incAzim = 1
    maxHorizRad = 0
    segSky = "SEGMENT_SKYLINE"
    scale = 100
    scaleAcc = "ELEVATION"
    scaleMethod = "SKYLINE_MAXIMUM"
    
    # Execute Skyline
    arcpy.Skyline_3d(inPts, outFC, inSurface, surfRad, surfElev, 
                     obstructionFCs, LOD, fromAzim, toAzim, incAzim, 
                     maxHorizRad, segSky, scale, scaleAcc, scaleMethod)


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

  • Current Workspace
  • Output Coordinate System
  • Geographic Transformations
  • XY Resolution
  • XY Tolerance
  • Output XY Domain
  • Z Resolution
  • Z Tolerance
  • Output Z Domain
  • Output CONFIG Keyword
  • Auto Commit
  • Output Spatial Grid 1
  • Output Spatial Grid 2
  • Output Spatial Grid 3
  • Terrain Memory Usage

Licensing Information

  • ArcGIS for Desktop Basic: Requires 3D Analyst
  • ArcGIS for Desktop Standard: Requires 3D Analyst
  • ArcGIS for Desktop Advanced: Requires 3D Analyst

Related Topics

  • An overview of the Visibility toolset
  • Fundamentals of Surfaces
  • Analyze Visibility
Feedback on this topic?

ArcGIS for Desktop

  • Home
  • Documentation
  • Pricing
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

  • About Us
  • Careers
  • Insiders Blog
  • User Conference
  • Developer Summit
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Privacy | Legal