通视分析 (3D Analyst)

摘要

确定包含表面和可选多面体数据集的障碍物上视线的可见性。

了解有关“通视分析”工作原理的详细信息

插图

“通视分析”工具图示

使用情况

  • 只有输入线的端点用于定义观察点和目标点。 视线应该是直线,包括两个折点,分别代表用于确定可见性的观测点和目标位置。

  • 如果可见目标位于不同的要素类中,请考虑使用构造视线工具创建视线。 例如,可以通过以特定间隔对目标线要素进行采样来生成视线,以测试沿路径的可见性。

  • 输出线将沿着输入视线的可见与不可见部分进行划分。 如果只用表面确定视线可见性,输出线就将采用表面的剖面。 如果在计算通视分析时提供了多面体要素,则输出线将会沿着输入视线的轨线。

  • 输出线要素类将包含以下字段:

    • SourceOID- 用于计算可见性的输入线要素的唯一 ID。
    • VisCode- 指示输出线是表示视线的可见部分还是不可见部分。 根据视线是否部分遮挡,可能会将每条视线划分为多个要素。 此属性用于标识此类视线的每个部分的可见性状态。 值为 1 指示该线可见,值为 2 指示其不可见。 此字段仅存在于输出线要素中。
    • TarIsVis- 指示从观察点是否可见目标点。 值为 1 指示目标可见,值为 0 指示其不可见。 此字段仅存在于输出线要素中。
    • OBSTR_MPID- 阻挡目标点可见性的障碍点。 将为每条输入视线的可见部分和遮挡部分创建单独的线要素。 未被遮挡的部分将具有值 -9999,被多部分遮挡的部分具有遮挡要素的唯一 ID,被表面遮挡的部分的值为 -1。

    如果选中输出图形属性参数,则输出线要素类将具有以下附加字段:

    • OBSERVERZ- 观察点的高程,包含可能已应用的任何垂直偏移。
    • TARGETZ- 目标点的高程,包含可能已应用的任何垂直偏移。
    • OBSTR_DIST- 从观察点到遮挡目标可见性的点的水平距离。 如果未遮挡视线,则此值将为 -1.0。

    了解有关创建剖面图的详细信息

参数

标注说明数据类型
输入表面

集成网格场景图层、LAS 数据集、栅格、TIN 或者将用于确定可见性的地形表面。

TIN Layer; Raster Layer; Mosaic Layer; Terrain Layer; LAS Dataset Layer; Scene Layer; File
输入线要素

视线要素,其第一个折点定义为观测点,最后一个折点标识目标位置。 当视线为 2D 要素时,将根据输入表面得出观察点和目标高度。 当视线为 3D 要素时,将根据要素的 z 坐标获得观察点和目标高度。

将以距基础表面的偏移来评估 2D 线。 将应用默认偏移 1 以将点提升至表面上方。 可以使用 OffsetA 字段为观察点定义自定义偏移高度;可以使用 OffsetB 字段为目标定义自定义偏移。

Feature Layer
输出要素类

确定可见性所依据的输出线要素类。

Feature Class
输出障碍点要素类
(可选)

可选点要素类,用于标识观察点视线上第一个障碍物对其目标的位置。

Feature Class
使用曲率
(可选)

指定在视线分析时是否将考虑地球的曲率。 若激活此参数,则表面必须具有采用含已定义 z 单位的投影坐标定义的空间参考。

  • 未选中 - 将不考虑地球的曲率。 这是默认设置。
  • 选中 - 将考虑地球的曲率。
Boolean
使用折射
(可选)

指定在通过作用表面生成一条视线时是否将考虑大气折射。 如果使用了多面体要素,则此参数不适用。

  • 未选中 - 将不考虑大气折射。 这是默认设置。
  • 选中 - 将考虑大气折射。
Boolean
折射系数
(可选)

将用于折射系数中的值。 默认值为 0.13。

Double
金字塔等级分辨率
(可选)

将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0,即全分辨率。

Double
输入要素
(可选)

可以定义其他阻碍元素(例如,建筑物)的多面体要素。 此输入不支持折射选项。

Feature Layer
输出图形属性
(可选)

指定输出视线属性是否将包含附加字段,这些字段具有可在剖面图中使用的信息。

这些字段中的值将提供用于生成剖面图的信息,该剖面图包含观察点、潜在障碍物以及每条视线的目标点的制图表达,以及连接观察点和目标的直接视线的可见性。

  • 选中 - 图形属性将包含在输出中。 这是默认设置。
  • 未选中 - 图形属性将不会包含在输出中。
Boolean

arcpy.ddd.LineOfSight(in_surface, in_line_feature_class, out_los_feature_class, {out_obstruction_feature_class}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {in_features}, {output_graphing_attributes})
名称说明数据类型
in_surface

集成网格场景图层、LAS 数据集、栅格、TIN 或者将用于确定可见性的地形表面。

TIN Layer; Raster Layer; Mosaic Layer; Terrain Layer; LAS Dataset Layer; Scene Layer; File
in_line_feature_class

视线要素,其第一个折点定义为观测点,最后一个折点标识目标位置。 当视线为 2D 要素时,将根据输入表面得出观察点和目标高度。 当视线为 3D 要素时,将根据要素的 z 坐标获得观察点和目标高度。

将以距基础表面的偏移来评估 2D 线。 将应用默认偏移 1 以将点提升至表面上方。 可以使用 OffsetA 字段为观察点定义自定义偏移高度;可以使用 OffsetB 字段为目标定义自定义偏移。

Feature Layer
out_los_feature_class

确定可见性所依据的输出线要素类。

Feature Class
out_obstruction_feature_class
(可选)

可选点要素类,用于标识观察点视线上第一个障碍物对其目标的位置。

Feature Class
use_curvature
(可选)

指定在视线分析时是否将考虑地球的曲率。 若启用此参数,则表面必须具有采用含已定义 z 单位的投影坐标定义的空间参考。

  • CURVATURE将考虑地球的曲率。
  • NO_CURVATURE将不考虑地球的曲率。 这是默认设置。
Boolean
use_refraction
(可选)

指定在通过作用表面生成一条视线时是否将考虑大气折射。 如果使用了多面体要素,则此参数不适用。

  • REFRACTION将考虑大气折射。
  • NO_REFRACTION将不考虑大气折射。 这是默认设置。
Boolean
refraction_factor
(可选)

将用于折射系数中的值。 默认值为 0.13。

Double
pyramid_level_resolution
(可选)

将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0,即全分辨率。

Double
in_features
(可选)

可以定义其他阻碍元素(例如,建筑物)的多面体要素。 此输入不支持折射选项。

Feature Layer
output_graphing_attributes
(可选)

指定输出视线属性是否将包含附加字段,这些字段具有可在剖面图中使用的信息。

这些字段中的值将提供用于生成剖面图的信息,该剖面图包含观察点、潜在障碍物以及每条视线的目标点的制图表达,以及连接观察点和目标的直接视线的可见性。

  • OUTPUT_GRAPHING_ATTRIBUTES图形属性将包含在输出中。 这是默认设置。
  • NO_OUTPUT_GRAPHING_ATTRIBUTES图形属性将不会包含在输出中。
Boolean

代码示例

LineOfSight 示例 1(Python 窗口)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.LineOfSight("tin", "line.shp", "los.shp", "buldings_multipatch.shp", 
                    "obstruction.shp")
LineOfSight 示例 2(独立脚本)

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

'''*********************************************************************
Name: Sight Line Visibility of Parade Path
Description: This script demonstrates how to create a sight line feature class
             from a pair of observer and target points.
*********************************************************************'''
# Import system modules
import arcpy

# Set Local Variables:
arcpy.env.workspace = 'C:/data'

# Setting up input and output variables:
obs = "observer_pts.shp"
tar = "parade_path.shp"
sightlines = "output_sightlines.shp"
height = "<None>"
join_field = "#"
sampling = 0.5
direction = "OUTPUT_THE_DIRECTION"
surface = 'elevation.tif'
bldgs = 'buildings.shp'

arcpy.ddd.ConstructSightLines(obs, tar, sightlines, height, height,
                              join_field, sampling, direction)
arcpy.ddd.LineOfSight(surface, sightlines, "Parade_LOS.shp",
                      "Obstructions.shp", in_features=bldgs)

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题