3D 邻近 (3D Analyst)

摘要

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

用法

语法

Near3D_3d (in_features, near_features, {search_radius}, {location}, {angle}, {delta})
参数说明数据类型
in_features

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

Feature Layer
near_features

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

Feature Layer
search_radius
(可选)

将要确定距离和 FID 的输入要素和邻近要素之间的最大距离。如果未指定搜索半径,将使用所有邻近要素。

Linear Unit
location
(可选)

确定是否将六个坐标字段(两组 XYZ 值)添加到各输入要素。这些值为输入要素的三个坐标(NEAR_FROMX、NEAR_FROMY、NEAR_FROMZ)和最近要素的三个坐标(NEAR_X、NEAR_Y、NEAR_Z)。无论如何设置“位置”选项,始终将添加字段 NEAR_FID 和 NEAR_DIST。

  • NO_LOCATION不保存 X、Y 和 Z 坐标。这是默认设置。
  • LOCATION保存 X、Y 和 Z 坐标。六个附加属性字段将被添加到各输入字段中。
Boolean
angle
(可选)

确定是否计算输入要素与最邻近要素之间的角度并将计算所得角度存储到 NEAR_ANG_H 和 NEAR_ANG_V 字段中。两个角度值都以度为单位,一度表示圆的 1/360,小于一度的度数以小数形式表示。水平角度范围从 180° 到 -180°;0° 为东,90° 为北,180° (-180°) 为西,-90° 为南。垂直角度在水平方向为零度,垂直向上为 90°,垂直向下为 -90°。

  • NO_ANGLE不保存角度。这是默认设置。
  • ANGLE角度将被添加到结果中,且如果这些字段尚不存在,将创建这些字段。
Boolean
delta
(可选)

确定是否计算输入要素与最邻近要素在主轴方向上的距离并将计算所得距离存储到 NEAR_DELTX、NEAR_DELTY 和 NEAR_DELTZ 字段中。

  • NO_DELTA不计算增量。这是默认设置。
  • DELTA计算增量。将向结果中添加三个附加字段(NEAR_DELTX、NEAR_DELTY 和 NEAR_DELTZ)。
Boolean

代码示例

Near3D 示例 1(Python 窗口)

The following sample demonstrates the use of this tool in the Python window:

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)

环境

相关主题

许可信息

ArcView: 需要 3D Analyst
ArcEditor: 需要 3D Analyst
ArcInfo: 需要 3D Analyst

7/10/2012