天际线障碍物 (3D Analyst)
插图
用法
障碍物类似于从观察点到天际线的第一个折点画一条线,然后扫描通过天际线的所有折点的线所形成的三角扇。可考虑将此工具用于确定要素(如表示建筑物的多面体)是否与通过它而突出的障碍物发生冲突,或者拟建的建筑物是否要改变天际线。
首先使用天际线工具生成天际线或轮廓。轮廓可表示出从观察点发的出光线所投射阴影的体积。
-
最小半径和最大半径参数可定义从观察点发出的三角形边的长度。如果将最小半径或最大半径指定为默认值 0,则分析中不使用最小或最大长度。
如果选择创建一个闭合多面体,则输出将拉伸到基础高程参数中定义的高度,并将创建一个水平环以形成闭合多面体的底部。如果指定的基础高程大于天际线障碍物中的最高折点,那么底面实际上将是上限。
新的多面体要素类有以下字段:
- OBSV_PT_ID - 观察点的 FID,通过它来创建天际线,转而用天际线来创建天际线障碍物多面体。
- ORIGFTR_ID - 以天际线线段或用来创建阴影体的轮廓表示的原始要素(如建筑物)的 FID。
- SILHOUE_ID - 用来创建阴影体的多面体要素(轮廓)的 FID(只用于轮廓)。
语法
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 (可选) |
可以根据生成的多面体是否呈现为实体,选择是否通过裙面和底面闭合天际线障碍物。
| Boolean |
base_elevation (可选) |
闭合多面体的底面高程;如果障碍物不闭合则忽略。默认值为 0。 | Linear Unit; Field |
project_to_plane (可选) |
障碍物的前端(距离观察点较近)和后端(距离观察点较远)是否应该分别投影到垂直平面。通常选中(开启)该选项来创建阴影体。
| Boolean |
代码示例
SkylineBarrier 示例 1(Python 窗口)
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 示例 2(独立脚本)
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)
环境
相关主题
许可信息
ArcView: 需要 3D Analyst
ArcEditor: 需要 3D Analyst
ArcInfo: 需要 3D Analyst
7/10/2012