标注 | 说明 | 数据类型 |
输入表面 | 集成网格场景图层、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 |
输出要素类 | 确定可见性所依据的输出线要素类。 将创建两个属性字段。 VisCode 字段表示沿线的可见性:1 表示可见,2 表示不可见。 TarIsVis 字段表示目标可见性,0 表示不可见,1 表示可见。 | Feature Class |
输出障碍点要素类 (可选) | 观测和目标位置的高度通过 3D 要素的 z 值和通过 2D 要素的表面插值获得。 | Feature Class |
使用曲率 (可选) |
指定在视线分析时是否将考虑地球的曲率。 若激活此参数,则表面必须具有采用含已定义 z 单位的投影坐标定义的空间参考。
| Boolean |
使用折射 (可选) |
指定在通过作用表面生成一条视线时是否将考虑大气折射。 如果使用了多面体要素,则此参数不适用。
| Boolean |
折射系数 (可选) | 要用于折射系数中的值。 默认值为 0.13。 | Double |
金字塔等级分辨率 (可选) | 将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0(z 容差),或全分辨率(窗口大小)。 | Double |
输入要素 (可选) | 可以定义其他阻碍元素(例如,建筑物)的多面体要素。 此输入不支持折射选项。 | Feature Layer |
插图
使用情况
只有输入线的端点用于定义观察点和目标点。 视线应该是直线,包括两个折点,分别代表用于确定可见性的观测点和目标位置。
如果可见目标处于不同的要素类中,则要考虑通过构造视线工具创建视线。 例如,可以通过以特定间隔对目标线要素进行采样来生成视线,以测试沿路径的可见性。
输出线将沿着输入视线的可见与不可见部分进行划分。 如果只用表面确定视线可见性,输出线就将采用表面的剖面。 如果在计算通视分析时提供了多面体要素,则输出线将会沿着输入视线的轨线。
输出线要素的属性表包含以下字段:
- SourceOID-用于计算可见性的线要素的唯一 ID。
- VisCode-沿线的可见性。 值为 1 表示可见,值为 2 表示不可见。 该字段仅在输出几何是线的情况下存在。
- TarIsVis-沿线的目标可见性。 值为 1 表示可见,值为 0表示不可见。 该字段仅在输出几何是线的情况下存在。
- OBSTR_MPID-阻挡目标点可见性的障碍。 将为每个输入视线的可见部分和遮挡部分创建单独的线要素。 未被遮挡的部分的值为 -9999,被多面体遮挡的部分的值为遮挡要素的唯一 ID,被表面遮挡的部分的值为 -1。
参数
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})
名称 | 说明 | 数据类型 |
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 | 确定可见性所依据的输出线要素类。 将创建两个属性字段。 VisCode 字段表示沿线的可见性:1 表示可见,2 表示不可见。 TarIsVis 字段表示目标可见性,0 表示不可见,1 表示可见。 | Feature Class |
out_obstruction_feature_class (可选) | 观测和目标位置的高度通过 3D 要素的 z 值和通过 2D 要素的表面插值获得。 | Feature Class |
use_curvature (可选) |
指定在视线分析时是否将考虑地球的曲率。 若启用此参数,则表面必须具有采用含已定义 z 单位的投影坐标定义的空间参考。
| Boolean |
use_refraction (可选) |
指定在通过作用表面生成一条视线时是否将考虑大气折射。 如果使用了多面体要素,则此参数不适用。
| Boolean |
refraction_factor (可选) | 要用于折射系数中的值。 默认值为 0.13。 | Double |
pyramid_level_resolution (可选) | 将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0(z 容差),或全分辨率(窗口大小)。 | Double |
in_features (可选) | 可以定义其他阻碍元素(例如,建筑物)的多面体要素。 此输入不支持折射选项。 | Feature Layer |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = "C:/data"
arcpy.ddd.LineOfSight("tin", "line.shp", "los.shp", "buldings_multipatch.shp",
"obstruction.shp")
下面的示例演示了如何在独立 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)