描述
决定穿过潜在障碍物并由 3D 要素和表面组合定义的视线可见性。
使用方法
该工具通过添加新字段或更新现有字段来修改视线输入。可以在可见字段名参数中指定字段名。可见视线的字段值为 1,阻碍视线的字段值为 0。如果您没有对输入要素的写入权限或不想修改输入数据,可以创建输入的副本以便与该工具一同使用。有关详细信息以及避免数据被意外更改的策略,请参阅无输出的工具。
-
只有输入线的端点用于定义观察点和目标点。理想的视线应该是直线,包括两个折点,分别代表用于确定可见性的观测点和目标位置。
-
如果观察点位置由点要素定义且可见性目标由存储在其他要素类中的数据表示,则考虑使用构造视线工具。
由于进行障碍物检查不必投影数据(可能多次),如果所有输入都在同一空间参考中进行,工具将运行得更加快速。这尤其适用于彼此相同的空间参考中的所有障碍物;视线的空间参考并不十分重要,因为它们易于投影。
- 如果想要确定不可见视线的阻碍位置,请考虑使用通视分析工具。
语法
arcpy.ddd.Intervisibility(sight_lines, obstructions, {visible_field})
参数 | 说明 | 数据类型 |
sight_lines | 3D 视线。 | Feature Layer |
obstructions [obstructions,...] | 阻碍视线的多面体要素和表面。如果图层已经定义了基本高度和拉伸属性,则可以指定面或线要素图层。 | Feature Layer; Mosaic Layer; Raster Layer; TIN Layer |
visible_field (可选) | 要存储可见性结果的字段的名称。生成的值 0 表示视线的起点和终点相互不可见。值 1 表示视线的起点和终点相互可见。默认字段名称为 VISIBLE。如果字段已存在,则会覆盖该字段的值。 | String |
派生输出
名称 | 说明 | 数据类型 |
out_feature_class | 更新后的 3D 视线。 | 要素图层 |
代码示例
Intervisibility 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Intervisibility_3d("sightlines.shp", ["3dbuildings.shp", "topo_tin"], "Visibility")
Intervisibility 示例 2(独立窗口)
下面的示例演示了如何在独立 Python 脚本中使用此工具。此脚本演示如何根据以表面和建筑物要素表示的障碍物来从观察点和目标线计算视线的通视性。
# Import system modules
import arcpy
# Set environments
arcpy.env.workspace = 'C:/data'
print("Constructing Sightlines")
arcpy.ddd.ConstructSightLines("Observers.shp", "Targets.shp", "sightlines.shp",
observer_height_field='Shape.Z', target_height_field='Shape.Z')
print("Calculating Intervisibility")
arcpy.ddd.Intervisibility("Sightlines.shp", obstructions=["DTM_Tin", "data.gdb/buildings"],
visible_field="Visibility")
环境
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst