标注 | 说明 | 数据类型 |
输入观察点要素 | 表示观察点的 3D 点。 每个要素都将具有自己的输出。 | Feature Layer |
输出要素类 | 表示天际线的线或表示轮廓的多面体的3D 要素。 | Feature Class |
输入表面 (可选) | 将用于定义地平线的地形面。 如果未提供表面,则将使用通过虚拟表面半径和虚拟表面高程参数值定义的虚拟表面。 | LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer |
虚拟表面半径 (可选) | 如果未提供地形面,则将使用虚拟表面半径定义地平线。 默认值是 1,000 米。 | Linear Unit |
虚拟表面高程 (可选) | 代替实际表面来定义地平线的虚拟表面的高程。 如果提供了实际表面,则可忽略此参数。 默认值为 0。 | Linear Unit |
输入要素 (可选) | 用于确定天际线的要素。 如果没有指定要素,则天际线将只由地平线(通过地形面或虚拟表面定义)构成。 | Feature Layer |
要素细节层次 (可选) | 指定检查每个要素的细节层次。
| String |
起始方位角 (可选) | 开始天际线分析的方位角,以度为单位。 天际线分析以观察点为起点,并从起始方位角参数值向右移动,直到结束方位角参数值。 此值必须大于 -360 且小于 360。 默认值为 0。 | Double; Field |
结束方位角 (可选) | 完成天际线分析的方位角,以度为单位。 天际线分析以观察点为起点,并从起始方位角参数值向右移动,直到结束方位角参数值。 此值必须大于起始方位角参数值,且不得超过 360 度。 默认值为 360。 | Double; Field |
方位角增量 (可选) | 在起始方位角参数值和结束方位角参数值之间执行天际线分析以计算地平线时的角度间隔,以度为单位。 此值不得大于结束方位角参数值减去起始方位角参数值的差。 默认值为 1。 | Double; Field |
最大可视半径 (可选) | 从观察点位置应能搜索到地平线的最大距离。 零值表明不施加限制。 默认值为 0。 | Linear Unit |
分段天际线 (可选) | 指定生成的天际线是为每个观察点对应一个要素,还是每个观察点的天际线将按照构成天际线的唯一元素进行分段。 此参数只有在已指定输入多面体时才有效。 如果正在生成轮廓,则此参数将指示是否使用发散光线。 对于太阳阴影,取消选中该参数。
| Boolean |
缩放至百分比 (可选) | 放置每个天际线折点应依据的原始垂直角(地平线以上的角或高程角)或高程的缩放百分比。 如果使用的值为 0 或 100,则不会进行缩放。 默认值为 100。 | Double |
缩放依据 (可选) | 指定将如何确定缩放。
| String |
缩放方法 (可选) | 指定将用于缩放计算的折点。
| String |
使用曲率 (可选) | 指定在生成山脊线时是否使用地球曲率。 此选项仅在为输入表面参数指定栅格表面时可用。
| Boolean |
使用折射 (可选) | 指定根据输入表面生成山脊线时,是否要考虑应用大气折射。 此选项仅在为输入表面参数指定栅格表面时可用。
| Boolean |
折射系数 (可选) | 应用大气折射时将使用的折射系数。 默认值为 0.13。 | Double |
金字塔等级分辨率 (可选) | 将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0,或全分辨率。 | Double |
创建轮廓 (可选) | 指定输出要素是表示天际线还是轮廓。
| Boolean |
插图
使用情况
天际线工具可以用来创建要素轮廓,通过天际线障碍工具可将这些轮廓拉伸成阴影体。
以下字段将会添加到包含天际线的输出要素类参数值:
- OBSV_PT_ID - 用于创建天际线的观察点 FID。
- ORIGFTR_ID - 要素的 FID,如建筑物。
以下字段将会添加到包含轮廓的输出要素类参数值:
- OBSV_PT_ID - 用于创建轮廓的轮廓点 FID
- ORIGFTR_ID - 轮廓表示的原始要素(如建筑物)的 FID
- DIR_VECT_X - 表示来自观察点的光线方向的单位矢量的 x 分量
- DIR_VECT_Y - 表示来自观察点的光线方向的单位矢量的 y 分量
- DIR_VECT_Z - 表示来自观察点的光线方向的单位矢量的 z 分量
- FEAT_CTR_X - 原始要素(如建筑物)包络中心的 z 分量
- FEAT_CTR_Y - 要素包络中心的 y 分量
- FEAT_CTR_Z - 要素包络中心的 z 分量
- BHND_CTR_X - 移动到要素后面的要素包络中心的 x 分量
- BHND_CTR_Y - 移动到要素后面的要素包络中心的 y 分量
- BHND_CTR_Z - 移动到要素后面的要素包络中心的 z 分量
- USED_PARLL - 是否使用平行光线创建轮廓(1 代表是,0 代表否)
- MADE_VERT - 是否使轮廓保持竖直,而不是垂直于光线(1 代表是,0 代表否)
- MOVED_BHND - 是否将轮廓移动到要素后面,而不是将其留在要素中心(1 代表是,0 代表否)
仅当输入表面参数值为栅格数据集时,才会应用大气折射和地球曲率校正。 如果表面由 TIN、地形或 LAS 数据集定义,请使用以下工具之一将数据导出到栅格:
参数
arcpy.ddd.Skyline(in_observer_point_features, out_feature_class, {in_surface}, {virtual_surface_radius}, {virtual_surface_elevation}, {in_features}, {feature_lod}, {from_azimuth_value_or_field}, {to_azimuth_value_or_field}, {azimuth_increment_value_or_field}, {max_horizon_radius}, {segment_skyline}, {scale_to_percent}, {scale_according_to}, {scale_method}, {use_curvature}, {use_refraction}, {refraction_factor}, {pyramid_level_resolution}, {create_silhouettes})
名称 | 说明 | 数据类型 |
in_observer_point_features | 表示观察点的 3D 点。 每个要素都将具有自己的输出。 | Feature Layer |
out_feature_class | 表示天际线的线或表示轮廓的多面体的3D 要素。 | Feature Class |
in_surface (可选) | 将用于定义地平线的地形面。 如果未提供表面,则将使用通过 virtual_surface_radius 和 virtual_surface_elevation 参数值定义的虚拟表面。 | LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer; Terrain Layer |
virtual_surface_radius (可选) | 如果未提供地形面,则将使用虚拟表面半径定义地平线。 默认值是 1,000 米。 | Linear Unit |
virtual_surface_elevation (可选) | 代替实际表面来定义地平线的虚拟表面的高程。 如果提供了实际表面,则可忽略此参数。 默认值为 0。 | Linear Unit |
in_features [in_features,...] (可选) | 用于确定天际线的要素。 如果没有指定要素,则天际线将只由地平线(通过地形面或虚拟表面定义)构成。 | Feature Layer |
feature_lod (可选) | 指定检查每个要素的细节层次。
| String |
from_azimuth_value_or_field (可选) | 开始天际线分析的方位角,以度为单位。 天际线分析以观察点为起点,并从 from_azimuth_value_or_field 参数值向右移动,直到 to_azimuth_value_or_field 参数值。 此值必须大于 -360 且小于 360。 默认值为 0。 | Double; Field |
to_azimuth_value_or_field (可选) | 完成天际线分析的方位角,以度为单位。 天际线分析以观察点为起点,并从 from_azimuth_value_or_field 参数值向右移动,直到 to_azimuth_value_or_field 参数值。 此值必须大于 from_azimuth_value_or_field 参数值,且不得超过 360 度。 默认值为 360。 | Double; Field |
azimuth_increment_value_or_field (可选) | 在 from_azimuth_value_or_field 参数值和 to_azimuth_value_or_field 参数值之间执行天际线分析以计算地平线时的角度间隔,以度为单位。 此值不得大于 to_azimuth_value_or_field 参数值减去 from_azimuth_value_or_field 参数值的差。 默认值为 1。 | Double; Field |
max_horizon_radius (可选) | 从观察点位置应能搜索到地平线的最大距离。 零值表明不施加限制。 默认值为 0。 | Linear Unit |
segment_skyline (可选) | 指定生成的天际线是为每个观察点对应一个要素,还是每个观察点的天际线将按照构成天际线的唯一元素进行分段。 此参数只有在已指定输入多面体时才启用。 如果正在生成轮廓,则此参数将指示是否使用发散光线。 对于太阳阴影,将该参数设置为 NO_SEGMENT_SKYLINE。
| Boolean |
scale_to_percent (可选) | 放置每个天际线折点应依据的原始垂直角(地平线以上的角或高程角)或高程的缩放百分比。 如果使用的值为 0 或 100,则不会进行缩放。 默认值为 100。 | Double |
scale_according_to (可选) | 指定将如何确定缩放。
| String |
scale_method (可选) | 指定将用于缩放计算的折点。
| String |
use_curvature (可选) | 指定根据功能性表面生成山脊线时,是否考虑使用地球曲率。 此选项仅在为 in_surface 参数指定栅格表面时可用。
| Boolean |
use_refraction (可选) | 指定根据功能性表面生成山脊线时,是否要考虑应用大气折射。 此选项仅在为 in_surface 参数指定栅格表面时可用。
| Boolean |
refraction_factor (可选) | 应用大气折射时将使用的折射系数。 默认值为 0.13。 | Double |
pyramid_level_resolution (可选) | 将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。 默认值为 0,或全分辨率。 | Double |
create_silhouettes (可选) | 指定输出要素是表示天际线还是轮廓。
| Boolean |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = "C:/data"
arcpy.Skyline_3d("observers.shp", "skyline_output.shp", "sample.gdb/featuredataset/terrain")
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: Skyline Example
Description: This script demonstrates how to use the
Skyline tool.
****************************************************************************'''
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = 'C:/data'
# Set Local Variables
inPts = "observers.shp"
# Make sure output has a unique name
outFC = arcpy.CreateUniqueName("skyline_output.shp")
inSurface = "sample.gdb/featuredataset/terrain"
obstructionFCs = "buildings.shp; billboards.shp"
surfRad = "1000 meters"
surfElev = "100 meters"
LOD = "FULL_DETAIL"
fromAzim = 0
toAzim = 360
incAzim = 1
maxHorizRad = 0
segSky = "SEGMENT_SKYLINE"
scale = 100
scaleAcc = "ELEVATION"
scaleMethod = "SKYLINE_MAXIMUM"
# Execute Skyline
arcpy.Skyline_3d(inPts, outFC, inSurface, surfRad, surfElev,
obstructionFCs, LOD, fromAzim, toAzim, incAzim,
maxHorizRad, segSky, scale, scaleAcc, scaleMethod)
环境
特殊情况
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst