天际线障碍物 (3D Analyst)

许可等级:BasicStandardAdvanced

摘要

生成一个表示天际线障碍物或阴影体的多面体要素类。

了解有关“天际线障碍物”工作原理的详细信息

插图

Skyline Barrier

用法

语法

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})
参数说明数据类型
in_observer_point_features

包含观察点的点要素类。

Feature Layer
in_features

表示天际线的输入线要素类或表示轮廓的输入多面体要素类。

Feature Layer
out_feature_class

放置天际线障碍物或阴影体的输出要素类。

Feature Class
min_radius_value_or_field
(可选)

从观察点扩展到三角形边的最小半径。默认值是 0 表示没有最小值。

Linear Unit; Field
max_radius_value_or_field
(可选)

从观察点扩展到三角形边的最大半径。默认值是 0 表示没有最大值。

Linear Unit; Field
closed
(可选)

可以根据生成的多面体是否呈现为实体,选择是否通过裙面和底面闭合天际线障碍物。

  • NO_CLOSED多面体未添加裙面和底面,只有表示从观察点到天际线的表面的多面体。这是默认设置。
  • CLOSED 多面体添加有裙面和底面,从而形成一个封闭的实体。
Boolean
base_elevation
(可选)

闭合多面体的底面高程;如果障碍物不闭合则忽略。默认值为 0。

Linear Unit; Field
project_to_plane
(可选)

障碍物的前端(距离观察点较近)和后端(距离观察点较远)是否应该分别投影到垂直平面。通常选中(开启)该选项来创建阴影体。

  • NO_PROJECT_TO_PLANE障碍物将从观察点扩展到天际线(或当最小和最大半径为非零值时为较近或较远)。这是默认设置。
  • PROJECT_TO_PLANE 障碍物将从垂直平面扩展到垂直平面。
Boolean

代码实例

SkylineBarrier 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具:

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 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具:

'''****************************************************************************
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)

环境

相关主题

许可信息

ArcGIS for Desktop Basic:需要 3D Analyst
ArcGIS for Desktop Standard:需要 3D Analyst
ArcGIS for Desktop Advanced:需要 3D Analyst
9/15/2013