描述
计算每个输入要素到一个或多个邻近要素类中的最近要素的三维距离。
使用
所有输入要素必须有 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 - 包含最近要素的要素类的路径。仅当指定了多个“邻近要素”时,才会添加此字段。
语法
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 (可选) | 确定是否将输入要素和邻近要素上的最近点的坐标添加到输入属性表。
| Boolean |
angle (可选) | 确定是否将输入要素与最近要素之间的算术水平角和垂直角添加到输入属性表中。
| Boolean |
delta (可选) | 确定是否向输入属性表添加输入要素与最近要素之间沿 X、Y 和 Z 轴的距离。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
out_feature_class | 更新后的输入要素。 | 要素图层 |
代码示例
Near3D 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
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
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
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.MakeFeatureLayer_management(nearFC, 'Near Layer', SQL_Expression)
result = arcpy.GetCount_management('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.Near3D_3d(inFC, 'nearLayer', '', 'LOCATION', 'ANGLE')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
环境
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst