添加表面信息 (3D Analyst)

许可等级:BasicStandardAdvanced

摘要

归属从表面中获取的带有空间信息的要素。

用法

语法

AddSurfaceInformation_3d (in_feature_class, in_surface, out_property, {method}, {sample_distance}, {z_factor}, {pyramid_level_resolution}, {noise_filtering})
参数说明数据类型
in_feature_class

定义位置的点、多点、折线或面要素,用于确定一个或多个表面属性。

Feature Layer
in_surface

用于内插 z 值的 LAS 数据集、栅格、terrain 或 TIN 表面。

LAS Dataset Layer; Raster Layer; Terrain Layer; TIN Layer
out_property

将添加到输入要素类属性表中的表面高程属性。下表汇总了可用属性关键字及其支持的几何类型:

  • Z针对每个单点要素的 XY 位置插值的表面高程。
  • Z_MIN由面沿线的长度或多点记录中各点的插值定义的面积中最低的表面高程。
  • Z_MAX由面沿线的长度或多点记录中各点的插值定义的面积中最高的表面高程。
  • Z_MEAN由面沿线的长度或多点记录中各点的插值定义的面积中的平均表面高程。
  • SURFACE_AREA由每个面定义的区域的 3D 表面区域。
  • SURFACE_LENGTH沿着表面的线的 3D 距离。
  • MIN_SLOPE沿线或面定义的区域中的最接近零的坡度值。
  • MAX_SLOPE沿线或面定义的区域中的最高坡度值。
  • AVG_SLOPE沿线或面定义的区域中的平均坡度值。
String
method
(可选)

用于确定表面信息的插值方法。双线性插值法始终用于栅格表面,而下列选项可用三角化网格面中:

  • LINEAR 通过包含查询点的表面三角形的平面对 Z 值进行插值。这是默认设置。
  • NATURAL_NEIGHBORS 将基于区域的权重应用于查询点的自然邻域中的表面测量值。
  • CONFLATE_ZMIN 使用查询点的自然邻域中表面测量值的最小 Z 值。
  • CONFLATE_ZMAX 使用查询点的自然邻域中表面测量值的最大 Z 值。
  • CONFLATE_NEAREST 从 XY 与查询点距离最近的表面测量值获取 Z 值。
  • CONFLATE_CLOSEST_TO_MEAN 从查询点的自然邻域中的表面测量值获取 Z 值,该查询点的值最接近邻近测量值的平均值。
String
sample_distance
(可选)

用于内插 z 值的间距。默认情况下,如果输入表面是栅格,则使用栅格像元大小;如果输入是 terrain 或 TIN 数据集,则使用三角化网格面的自然增密。

Double
z_factor
(可选)

Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。

Double
pyramid_level_resolution
(可选)

此工具将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。默认值为 0(z 容差),或全分辨率(窗口大小)。

Double
noise_filtering
(可选)

排除以异常测量值为特征的部分表面参与到坡度计算过程中。线要素会提供长度过滤器,而面要素则提供面积过滤器,并且与任意一个过滤器选项对应的值都会以要素坐标系的线性单位进行评估。非坡度属性不受此参数影响。

  • NO_FILTER不会使用任何噪点过滤器来限制将线段或表面三角形作为坡度计算的因素考虑。这是默认设置。
  • AREA <值>3D 区域小于指定值的表面三角形会在坡度计算过程中被排除掉。
  • LENGTH <值> 插值到表面后 3D 长度小于指定值的线段会在坡度计算过程中被排除掉。
String

代码实例

添加表面信息 (AddSurfaceInformation) 示例 1(Python 窗口)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.AddSurfaceInformation_3d("points.shp", "my_tin", "Z", "LINEAR")
添加表面信息 (AddSurfaceInformation) 示例 2(独立脚本)

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

'''*********************************************************************
Name: AddSurfaceInformation Example
Description: This script demonstrates how to use AddSurfaceInformation 
             on all 2D feature classes in a target workspace.
*********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback

try:
    arcpy.CheckOutExtension("3D")
    # Set Local Variables
    env.workspace = 'c:/data'
    inSurface = 'fgdb.gdb/municipal/terrain'
    pyramid = 5
    method = "BILINEAR"
    # Create list of feature classes
    fcList = arcpy.ListFeatureClasses()
    if fcList:
        for fc in fcList:
            desc = arcpy.Describe(fc)
            # Determine if the feature is 2D
            if not desc.hasZ:
                if desc.shapeType == "Polygon":
                    # Desired properties separated by semi-colons
                    Prop = "Z_MIN;Z_MAX" 
                elif desc.shapeType == "Point":
                    Prop = "Z"
                elif desc.shapeType == "Multipoint":
                    Prop = "Z_MIN;Z_MAX;Z_MEAN"
                elif desc.shapeType == "Polyline":
                    Prop = "LENGTH_3D"
                # Execute AddSurfaceInformation
                arcpy.ddd.AddSurfaceInformation(fc, inSurface, Prop, 
                                                method, 15, 1, pyramid)
                print "Completed adding surface information."
    arcpy.CheckInExtension('3D')

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)

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 需要 3D Analyst
ArcGIS for Desktop Standard: 需要 3D Analyst
ArcGIS for Desktop Advanced: 需要 3D Analyst
5/10/2014