3D 邻近 (3D Analyst)

摘要

计算每个输入要素到一个或多个邻近要素类中的最近要素的三维距离。

使用情况

  • 所有输入要素必须有 Z 值,且所有几何类型均受支持。也可将输入要素指定为邻近要素以确定同一要素类中的最近要素。

  • 可将以下字段添加到输入要素的属性表中:

    • NEAR_FID - 最近要素的 FID。值 -1 表示在指定的搜索半径范围内未找到匹配项。
    • NEAR_DIST - 输入要素上的最近点与最近要素上的最近点之间的 2D 距离(水平距离)。
    • NEAR_DIST3 - 输入要素上的最近点与最近要素上的最近点之间的 3D 距离(斜距)。
    • NEAR_DELTX - 在 X 轴方向上,输入要素上的最近点与最近要素上的最近点之间的距离。
    • NEAR_DELTY - 在 Y 轴方向上,输入要素上的最近点与最近要素上的最近点之间的距离。
    • NEAR_DELTZ - 在 Z 轴方向上,输入要素上的最近点与最近要素上的最近点之间的距离。
    • NEAR_FROMX - 输入要素上距离最近要素最近的点的 X 坐标。
    • NEAR_FROMY - 输入要素上距离最近要素最近的点的 Y 坐标。
    • NEAR_FROMZ - 输入要素上距离最近要素最近的点的 Z 坐标。
    • NEAR_X - 最近要素上最近点的 X 坐标。
    • NEAR_Y - 最近要素上最近点的 Y 坐标。
    • NEAR_Z - 最近要素上最近点的 Z 坐标。
    • NEAR_ANG_H - 相对最近点的算术水平角,以度表示。
    • NEAR_ANG_V - 相对最近点的高程角,以度表示。水平为零;垂直向上为 90;垂直向下为 -90。
    • NEAR_FC - 包含最近要素的要素类的路径。仅当指定了多个“邻近要素”时,才会添加此字段。
    注:

    如果前面提及的字段已存在,则将更新这些字段的值。

参数

标注说明数据类型
输入要素

输入要素类,将使用有关最近要素的信息设置其要素属性。

Feature Layer
邻近要素

将计算到输入要素邻近性的一个或多个要素。如果指定了多个要素类,则将向输入要素类额外添加一个名为 NEAR_FC 的字段,以识别包含最近要素的邻近要素类。

Feature Layer
搜索半径
(可选)

将根据给定输入为其确定最近要素的最大距离。如果未指定值,则将确定在任意距离处的最近要素。

Linear Unit
位置
(可选)

确定是否将输入要素和邻近要素上的最近点的坐标添加到输入属性表。

  • 未选中 - 不会向输入要素添加坐标。这是默认设置。
  • 选中 - 会向输入要素添加坐标。
Boolean
(可选)

确定是否将输入要素与最近要素之间的算术水平角和垂直角添加到输入属性表中。

  • 未选中 - 不会向输入属性表添加角。这是默认设置。
  • 选中 - 会向输入属性表中的 NEAR_ANG_HNEAR_ANG_V 字段添加算术水平角和垂直角。
Boolean
增量
(可选)

确定是否向输入属性表添加输入要素与最近要素之间沿 X、Y 和 Z 轴的距离。

  • 未选中 - 不会向输入属性表添加距离。这是默认设置。
  • 选中 - 会计算 NEAR_DELTXNEAR_DELTYNEAR_DELTZ 字段中沿 X、Y 和 Z 轴的距离。
Boolean

派生输出

标注说明数据类型
更新后的输入要素

更新后的输入要素。

要素图层

arcpy.ddd.Near3D(in_features, near_features, {search_radius}, {location}, {angle}, {delta})
名称说明数据类型
in_features

输入要素类,将使用有关最近要素的信息设置其要素属性。

Feature Layer
near_features
[near_features,...]

将计算到输入要素邻近性的一个或多个要素。如果指定了多个要素类,则将向输入要素类额外添加一个名为 NEAR_FC 的字段,以识别包含最近要素的邻近要素类。

Feature Layer
search_radius
(可选)

将根据给定输入为其确定最近要素的最大距离。如果未指定值,则将确定在任意距离处的最近要素。

Linear Unit
location
(可选)

确定是否将输入要素和邻近要素上的最近点的坐标添加到输入属性表。

  • NO_LOCATION不会向输入要素添加坐标。这是默认设置。
  • LOCATION向输入要素添加坐标。
Boolean
angle
(可选)

确定是否将输入要素与最近要素之间的算术水平角和垂直角添加到输入属性表中。

  • NO_ANGLE不会向输入属性表添加角。这是默认设置。
  • ANGLE会向输入属性表中的 NEAR_ANG_HNEAR_ANG_V 字段添加算术水平角和垂直角。
Boolean
delta
(可选)

确定是否向输入属性表添加输入要素与最近要素之间沿 X、Y 和 Z 轴的距离。

  • NO_DELTA不会向输入属性表添加距离。这是默认设置。
  • DELTA会计算 NEAR_DELTXNEAR_DELTYNEAR_DELTZ 字段中沿 X、Y 和 Z 轴的距离。
Boolean

派生输出

名称说明数据类型
out_feature_class

更新后的输入要素。

要素图层

代码示例

Near3D 示例 1(Python 窗口)

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

arcpy.env.workspace = "C:/data"
arcpy.Near3D_3d("points_3D.shp", "buildings_multipatch.shp", "30", "LOCATION", "ANGLE", "DELTA")
Near3D 示例 2(独立脚本)

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

'''****************************************************************************
Name: Near 3D Example
Description: This script demonstrates how to use
             the Near 3D tool to identify the nearest z-aware features
             that satisfy the results from a queried feature.
****************************************************************************'''
# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = 'C:/data'
# Set Local Variables
inFC = 'homes.shp'
nearFC = 'radiotowers.shp'
# See the 'Building an SQL expression' topic for more information
# Query the field 'MATERIAL' for the string 'Reinforced Concrete'
SQL_Expression = "'"'MATERIAL'"' = 'Reinforced Concrete'"
#Execute Make Feature Layer
arcpy.management.MakeFeatureLayer(nearFC, 'Near Layer', SQL_Expression)
result = arcpy.management.GetCount('Near Layer')
if int(result.getOutput(0)) == 0:
    arcpy.AddMessage('{0} has no features that satisfy the query: {1}'\
         .format(nearFC, SQL_Expression))
else:
    #Execute Near3D
    arcpy.ddd.Near3D(inFC, 'nearLayer', '', 'LOCATION', 'ANGLE')

相关主题