Label | Explanation | Data Type |
Input Observer Point Features | The 3D points representing observers. Each feature will have its own output. | Feature Layer |
Output Feature Class | The 3D features that will either be lines that represent the skyline or multipatches that represent silhouettes. | Feature Class |
Input Surface (Optional) | The topographic surface that will be used to define the horizon. If no surface is provided, a virtual surface will be used, defined by the Virtual Surface Radius and Virtual Surface Elevation parameter values. | LAS Dataset Layer; Mosaic 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 no input surface is provided. The default is 1,000 meters. | Linear Unit |
Virtual Surface Elevation (Optional) | The elevation of the virtual surface that will be used to define the horizon in lieu of an actual surface. This parameter is ignored if an actual surface is provided. The default is 0. | Linear Unit |
Input Features (Optional) | The features used to determine the skyline. If no features are specified, the skyline will consist solely of the horizon line as defined by the topographic or virtual surface. | Feature Layer |
Feature Level of Detail (Optional) | Specifies the level of detail at which each feature will be examined.
| String |
From Azimuth (Optional) | The azimuth, in degrees, from which the skyline analysis will start. The analysis starts from the observer point and goes to the right, from the From Azimuth parameter value until the To Azimuth parameter value is reached. The value must be greater than -360 and less than 360. The default is 0. | Double; Field |
To Azimuth (Optional) | The direction, in degrees, at which the skyline analysis will complete. The analysis starts from the observer point and goes to the right, from the From Azimuth parameter value until the To Azimuth parameter value is reached. The value must be no more than 360 degrees greater than the From Azimuth parameter value. The default is 360. | Double; Field |
Azimuth Increment (Optional) | The angular interval, in degrees, at which the horizon will be evaluated while conducting the skyline analysis between the From Azimuth parameter value and the To Azimuth parameter value. The value must be no greater than the To Azimuth parameter value minus the From Azimuth parameter value. The default is 1. | Double; Field |
Maximum Horizon Radius (Optional) | The maximum distance from the observer location that a horizon will be sought. A value of zero indicates that no limit will be imposed. The default is 0. | Linear Unit |
Segment Skyline (Optional) | Specifies whether the resulting skyline will have one feature for each observer point or each observer's skyline will be segmented by the unique elements that contribute to the skyline. This parameter is only available if one or more multipatch features are specified for the Input Features parameter. If silhouettes are being generated, this parameter will indicate whether divergent rays will be used. For sun shadows, uncheck the parameter.
| Boolean |
Scale To Percent (Optional) | The percent of the original vertical angle (angle above the horizon, or angle of elevation) or elevation each skyline vertex will be placed. If a value of 0 or 100 is used, scaling will not occur. The default is 100. | Double |
Scale According To (Optional) | Specifies how scaling will be performed.
| String |
Scale Method (Optional) | Specifies the vertex that will be used for scale calculation.
| String |
Use Curvature (Optional) | Specifies whether the curvature of the earth will be used when generating the ridgeline. This parameter is only available when a raster surface is specified for the Input Surface parameter.
| Boolean |
Use Refraction (Optional) | Specifies whether atmospheric refraction will be applied when generating the ridgeline from an input surface. This option is only available when a raster surface is specified for the Input Surface parameter.
| Boolean |
Refraction Factor (Optional) | The refraction coefficient that will be used if atmospheric refraction is applied. 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. The default is 0, or full resolution. | Double |
Create Silhouettes (Optional) | Specifies whether output features will represent skylines defining the barrier between the input data and the open sky or silhouettes representing the facade of observable input features. This option is only available if one or more multipatch features are specified for the Input Features parameter.
| Boolean |
Summary
Generates a line or multipatch feature class containing the results from a skyline or silhouette analysis.
Illustration

Usage
This tool requires all input data to be in a projected coordinate system. An input feature class that is not in a projected coordinate system can be reprojected using the Project tool, and an input raster surface can be reprojected using the Project Raster tool.
The Segment Skyline parameter can be used to determine how much of the skyline is defined by specific multipatch features or the surrounding elevation surface. This can help provide an understanding about whether specific places of interest contribute to a given observation point's skyline.
The Skyline tool can be used to create feature silhouettes that can be extruded into shadow volumes with the Skyline Barrier tool. The shadows generated through this process will be created at a slight offset from the geometry of the input features. Alternatively, the Sun Shadow Volume tool can be used to generate shadows that extend from the feature geometry to produce accurate shadow volume. The placement of shadows on a surface can also be achieved using the Sun Shadow Frequency tool.
The following fields will be added to the Output Feature Class parameter value that contains the skylines:
- OBSV_PT_ID—The FID of the observer point used to create this skyline
- ORIGFTR_ID—The FID of the feature, such as a building
The following fields will be added to the Output Feature Class parameter value 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 z-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 behind the feature
- BHND_CTR_Y—The y-component of the center of the envelope of the feature, moved behind the feature
- BHND_CTR_Z—The z-component of the center of the envelope of the feature, moved 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)
Atmospheric refraction and earth curvature correction will only be applied when the Input Surface parameter value is a raster dataset. If the surface is defined by a TIN, terrain, or LAS dataset, use one of the following tools to export the data to a raster:
Parameters
arcpy.ddd.Skyline(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})
Name | Explanation | Data 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, a virtual surface will be used, defined by the virtual_surface_radius and virtual_surface_elevation parameter values. | LAS Dataset Layer; Mosaic 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 no input surface is provided. The default is 1,000 meters. | Linear Unit |
virtual_surface_elevation (Optional) | The elevation of the virtual surface that will be used to define the horizon in lieu of an actual surface. This parameter is ignored if an actual surface is provided. The default is 0. | Linear Unit |
in_features [in_features,...] (Optional) | The features used to determine the skyline. If no features are specified, the skyline will consist solely of the horizon line as defined by the topographic or virtual surface. | Feature Layer |
feature_lod (Optional) | Specifies the level of detail at which each feature will be examined.
| String |
from_azimuth_value_or_field (Optional) | The azimuth, in degrees, from which the skyline analysis will start. The analysis starts from the observer point and goes to the right, from the from_azimuth_value_or_field parameter value until the to_azimuth_value_or_field parameter value is reached. The value must be greater than -360 and less than 360. The default is 0. | Double; Field |
to_azimuth_value_or_field (Optional) | The direction, in degrees, at which the skyline analysis will complete. The analysis starts from the observer point and goes to the right, from the from_azimuth_value_or_field parameter value until the to_azimuth_value_or_field parameter value is reached. The value must be no more than 360 degrees greater than the from_azimuth_value_or_field parameter value. The default is 360. | Double; Field |
azimuth_increment_value_or_field (Optional) | The angular interval, in degrees, at which the horizon will be evaluated while conducting the skyline analysis between the from_azimuth_value_or_field parameter value and the to_azimuth_value_or_field parameter value. The value must be no greater than the to_azimuth_value_or_field parameter value minus the from_azimuth_value_or_field parameter value. The default is 1. | Double; Field |
max_horizon_radius (Optional) | The maximum distance from the observer location that a horizon will be sought. A value of zero indicates that no limit will be imposed. The default is 0. | Linear Unit |
segment_skyline (Optional) | Specifies whether the resulting skyline will have one feature for each observer point or each observer's skyline will be segmented by the unique elements that contribute to the skyline. This parameter is only available if multipatch features are specified for the in_features parameter. If silhouettes are being generated, this parameter will indicate whether divergent rays will be used. For sun shadows, use the NO_SEGMENT_SKYLINE option.
| Boolean |
scale_to_percent (Optional) | The percent of the original vertical angle (angle above the horizon, or angle of elevation) or elevation each skyline vertex will be placed. If a value of 0 or 100 is used, scaling will not occur. The default is 100. | Double |
scale_according_to (Optional) | Specifies how scaling will be performed.
| String |
scale_method (Optional) | Specifies the vertex that will be used for scale calculation.
| String |
use_curvature (Optional) | Specifies whether the curvature of the earth will be used when generating the ridgeline from a functional surface. This parameter is only available when a raster surface is specified for the in_surface parameter.
| Boolean |
use_refraction (Optional) | Specifies whether atmospheric refraction will be applied when generating the ridgeline from a functional surface. This option is only available when a raster surface is specified for the in_surface parameter.
| Boolean |
refraction_factor (Optional) | The refraction coefficient that will be used if atmospheric refraction is applied. 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. The default is 0, or full resolution. | Double |
create_silhouettes (Optional) | Specifies whether output features will represent skylines defining the barrier between the input data and the open sky or silhouettes representing the facade of observable input features. This option is only available if one or more multipatch features are specified for the in_features parameter.
| Boolean |
Code sample
The following sample demonstrates the use of this tool in the Python window.
arcpy.env.workspace = "C:/data"
arcpy.ddd.Skyline("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
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"
# 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.ddd.Skyline(inPts, outFC, inSurface, surfRad, surfElev,
obstructionFCs, LOD, fromAzim, toAzim, incAzim,
maxHorizRad, segSky, scale, scaleAcc, scaleMethod)
Environments
Licensing information
- Basic: Requires 3D Analyst
- Standard: Requires 3D Analyst
- Advanced: Requires 3D Analyst