线性通视分析 (Defense)

在 Advanced 许可等级下可用。

需要 3D Analyst 许可。

摘要

在观察点和目标之间创建视线。

使用情况

  • 此工具使用 3D Analyst 工具箱中的构造视线通视分析

  • 观察点和目标分别是用于确定可见性的线的起点和终点。

  • 将使用一个或多个观察点和一个或多个目标点要素。

  • 所有观察点均需要与所有目标匹配。

  • 将对结果行着色以显示可见部分(绿色)和不可见部分(红色)。

  • 以下字段将被添加到输出视线要素类

    • OID_OBSERV- 用于创建视线的观察点的对象 ID
    • OID_TARGET- 用于创建视线的目标点的对象 ID
    • TarIsVis- 用于指示目标在各视线上对观察点可见 (1) 或不可见 (0)
    • AZIMUTH- 从观察点位置到目标的方位角
    • VERT_ANGLE- 从观察点到目标的向上或向下(负)视角
  • 以下字段将被添加到输出通视分析要素类

    • OID_OBSERV- 用于创建视线的观察点的对象 ID
    • OID_TARGET- 用于创建视线的目标点的对象 ID
    • VisCode- 用于指示表面片段对观察点可见 (1) 或不可见 (2)
    • TarIsVis- 用于指示目标在各视线上对观察点可见 (1) 或不可见 (0)
    • AZIMUTH- 从观察点位置到目标的方位角
    • ObsSPOT- 观察点的高度
    • TgtSPOT- 目标的高度
  • 以下字段将被添加到输出观察点要素类

    • OID_OBSERV- 用于创建通视分析的观察点的对象 ID
    • OID_TARGET- 用于创建通视分析的目标点的对象 ID
    • AZIMUTH- 从观察点位置到目标的方位角
    • VERT_ANGLE- 从观察点到目标的向上或向下(负)视角
    • TarIsVis- 用于指示目标在各视线上对观察点可见 (1) 或不可见 (0)
    • Z- 观察点位置的表面高程
    • ObsSPOT- 观察点的高度
  • 以下字段将被添加到输出目标要素类

    • OID_OBSERV- 用于创建通视分析的观察点的对象 ID
    • OID_TARGET- 用于创建通视分析的目标点的对象 ID
    • AZIMUTH- 从观察点位置到目标的方位角
    • VERT_ANGLE- 从观察点到目标的向上或向下(负)视角
    • TarIsVis- 用于指示目标在各视线上对观察点可见 (1) 或不可见 (0)
    • Z- 目标位置的表面高程
    • TgtSPOT- 目标的高度
  • 高度单位以高程表面单位为单位。

  • 如果输入表面支持地球曲率和折射率计算,则该工具将使用它们。

  • 如果使用了障碍物要素,则生成的表面剖面线将不遵循表面剖面,而是直接在观察点和目标之间延伸。 这将更改可选的剖面图。

参数

标注说明数据类型
观察点

输入观察点。

Feature Set
目标

输入目标点。

Feature Set
输入高程表面

输入高程栅格表面。

Raster Layer; Mosaic Dataset; Mosaic Layer
输出通视分析要素类

用于显示可见和不可见表面区域线的输出要素类。

Feature Class
输出视线要素类

用于显示观察点与目标之间的直接视线的输出线要素类。

Feature Class
输出观察点要素类

输出观察点要素类。

Feature Class
输出目标要素类

输出目标点要素类。

Feature Class
输入障碍物要素
(可选)

可能会遮挡视线的输入多面体要素。

Feature Layer
观察点表面上方高度(米)
(可选)

观察点表面高程以上的高度。 默认值为 2。

Double
目标表面上方高度(米)
(可选)

目标表面高程以上的高度。 默认值为 0。

Double
将剖面图附件添加到视线
(可选)

指定工具是否将观察点和目标之间的剖面(横截面地形图)附件添加到要素。

  • 无剖面图不会添加剖面图。 这是默认设置。
  • 添加剖面图将添加剖面图。
Boolean

arcpy.defense.LinearLineOfSight(in_observer_features, in_target_features, in_surface, out_los_feature_class, out_sight_line_feature_class, out_observer_feature_class, out_target_feature_class, {in_obstruction_features}, {observer_height_above_surface}, {target_height_above_surface}, {add_profile_attachment})
名称说明数据类型
in_observer_features

输入观察点。

Feature Set
in_target_features

输入目标点。

Feature Set
in_surface

输入高程栅格表面。

Raster Layer; Mosaic Dataset; Mosaic Layer
out_los_feature_class

用于显示可见和不可见表面区域线的输出要素类。

Feature Class
out_sight_line_feature_class

用于显示观察点与目标之间的直接视线的输出线要素类。

Feature Class
out_observer_feature_class

输出观察点要素类。

Feature Class
out_target_feature_class

输出目标点要素类。

Feature Class
in_obstruction_features
(可选)

可能会遮挡视线的输入多面体要素。

Feature Layer
observer_height_above_surface
(可选)

观察点表面高程以上的高度。 默认值为 2。

Double
target_height_above_surface
(可选)

目标表面高程以上的高度。 默认值为 0。

Double
add_profile_attachment
(可选)

指定工具是否将观察点和目标之间的剖面(横截面地形图)附件添加到要素。

  • NO_PROFILE_GRAPH不会添加剖面图。 这是默认设置。
  • ADD_PROFILE_GRAPH将添加剖面图。
Boolean

代码示例

LinearLineOfSight 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 LinearLineOfSight 函数。

import arcpy
arcpy.env.workspace = r"C:/Data.gdb"
arcpy.defense.LinearLineOfSight("LLOS_Obs",
                                "LLOS_Tar",
                                "n36.dt2",
                                "LineOfSight",
                                "SightLines",
                                "Observers",
                                "Targets",
                                None,
                                2,
                                0,
                                "NO_PROFILE_GRAPH")
LinearLineOfSight 示例 2(独立脚本)

以下示例将在示例工作流脚本中使用 LinearLineOfSight 函数。

# Description: Create Linear Line of Sight to test siting of a radio antenna

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = r"C:/Data.gdb"

# Select antenna to test
antenna_layer = "antennas"
whereClause = "antenna_call_sign = 'KJT'"
test_ant_layer = arcpy.management.MakeFeatureLayer(antenna_layer, whereClause)

# Select observer test location
obs_layer = "observer_locations"
whereClause = "site_name = 'test_site'"
test_obs_layer = arcpy.management.MakeFeatureLayer(obs_layer, whereClause)

# Inputs
input_surface = "n36.dt2"

# Create line of sight between selected antenna and observer locations
arcpy.defense.LinearLineOfSight(test_obs_layer,
                                test_ant_layer,
                                input_surface,
                                "LineOfSight",
                                "SightLines",
                                "Test_Observers",
                                "Test_Targets",
                                None,
                                2,
                                0,
                                "NO_PROFILE_GRAPH")

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 是

相关主题