添加表面信息 (3D Analyst)

摘要

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

使用情况

  • 忽略 3D 要素的 z 值。 每个要素都会汇总与其几何相交的表面 z 属性。 点从表面上的 x,y 位置获取 z 值,线通过沿其长度插入表面测量值来获取 z 属性,面则汇总其区域内的表面 z 属性。

  • 输出属性参数选项会写入到输入要素的属性表中。 各要素定义被评估的表面属性的位置,以及可根据要素几何报告的属性类型。

    要素几何表面属性

    从表面上点的 x,y 坐标插入的点高程。

    多点

    多点记录中所有点的最小、最大和平均高程

    折线

    沿着表面的线的 3D 距离

    沿着表面的线的最小、最大和平均高程和坡度

    与面重叠的表面的 3D 区域

    来自表面的最小、最大和平均高程和坡度

  • 坡度值以百分比单位(百分度)进行测量,线要素的坡度值沿着线的各线段进行计算。

    • 最小坡度值根据值最接近 0 或水平等级的线段获得。
    • 最大坡度根据具有最大计算值的线段获得。
    • 折线的平均坡度是通过对每个线段的坡度进行加权平均获得的。 权重基于每个线段的 3D 长度。 这种计算方法会导致较长线段对结果计算的影响比较短线段更大。
  • 使用噪点过滤器来排除以异常测量值为特征的部分表面参与到坡度计算中。 线要素由捕捉表面剖面的折点来分段,按长度过滤这些线段会消除可能由不希望出现的表面测量值产生的短线段影响。 同理,面要素的面积过滤器会排除三角化网格面中的狭长三角形参与到坡度计算中。 对于栅格表面,像元质心子集用于构造可应用面积过滤器的三角化网格面。

参数

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

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

Feature Layer
输入表面

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

LAS Dataset Layer; Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer
输出属性

指定将添加到输入要素类属性表中的表面高程属性。

  • Z将添加针对每个单点要素的 x,y 位置插值的表面 z 值。
  • Z 最小值将添加由面、沿线的长度或多点记录中各点的插值定义的面积中最低的表面 z 值。
  • Z 最大值将添加由面、沿线的长度或多点记录中各点的插值定义的面积中最高的表面高程。
  • Z 平均值将添加由面、沿线的长度或多点记录中各点的插值定义的面积中的平均表面高程。
  • 表面面积将添加由每个面定义的区域的 3D 表面区域。
  • 表面长度将添加沿表面线的 3D 距离。
  • 最小坡度将添加沿线或面定义的区域中的最接近零的坡度值。
  • 最大坡度将添加沿线或面定义的区域中的最高坡度值。
  • 平均坡度将添加沿线或面定义的区域中的平均坡度值。
String
方法
(可选)

指定将用于确定表面相关信息的插值方法。

  • 双线性将使用的插值方法专用于从四个最邻近的像元中确定像元值的栅格表面。 这是为栅格表面提供的唯一选项。
  • 线性将根据由包含查询点 x,y 位置的三角形定义的平面获取高程。 此为 TIN、terrain 和 LAS 数据集的默认插值方法。
  • 自然邻域法通过将基于区域的权重应用于查询点的自然邻域获取高程。
  • 合并最小 Z 值将根据在查询点自然邻域中找到的最小 z 值获取高程。
  • 合并最大 Z 值将根据在查询点自然邻域中找到的最大 z 值获取高程。
  • 合并最近的 Z 值将根据在查询点自然邻域中找到的最邻近值获取高程。
  • 合并最接近平均值的 z 值将根据距查询点所有自然邻域的平均值最近的 z 值获取高程。
String
采样距离
(可选)

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

Double
Z 因子
(可选)

Z 值将乘上的系数。 此值通常用于转换 z 线性单位来匹配 x,y 线性单位。 默认值为 1,此时高程值保持不变。 如果输入表面的空间参考具有已指定线性单位的 z 基准,则此参数不可用。

Double
金字塔等级分辨率
(可选)

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

Double
噪点过滤
(可选)

指定是否排除以异常测量值为特征的部分表面参与到坡度计算过程中。 其他属性不受此参数影响。

线要素提供长度过滤器,其中 3D 长度短于指定值的线段将在坡度计算中被排除掉。 面要素提供面积过滤器,其中将排除表面积小于指定值的面。

String

派生输出

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

更新后的输入要素。

Feature Layer

arcpy.ddd.AddSurfaceInformation(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; Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer
out_property
[out_property,...]

指定将添加到输入要素类属性表中的表面高程属性。

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

指定将用于确定表面相关信息的插值方法。

  • BILINEAR将使用的插值方法专用于从四个最邻近的像元中确定像元值的栅格表面。 这是为栅格表面提供的唯一选项。
  • LINEAR将根据由包含查询点 x,y 位置的三角形定义的平面获取高程。 此为 TIN、terrain 和 LAS 数据集的默认插值方法。
  • NATURAL_NEIGHBORS通过将基于区域的权重应用于查询点的自然邻域获取高程。
  • CONFLATE_ZMIN将根据在查询点自然邻域中找到的最小 z 值获取高程。
  • CONFLATE_ZMAX将根据在查询点自然邻域中找到的最大 z 值获取高程。
  • CONFLATE_NEAREST将根据在查询点自然邻域中找到的最邻近值获取高程。
  • CONFLATE_CLOSEST_TO_MEAN将根据距查询点所有自然邻域的平均值最近的 z 值获取高程。
String
sample_distance
(可选)

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

Double
z_factor
(可选)

Z 值将乘上的系数。 此值通常用于转换 z 线性单位来匹配 x,y 线性单位。 默认值为 1,此时高程值保持不变。 如果输入表面的空间参考具有已指定线性单位的 z 基准,则此参数不可用。

Double
pyramid_level_resolution
(可选)

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

Double
noise_filtering
(可选)

指定是否排除以异常测量值为特征的部分表面参与到坡度计算过程中。 其他属性不受此参数影响。

线要素提供长度过滤器,其中 3D 长度短于指定值的线段将在坡度计算中被排除掉。 面要素提供面积过滤器,其中将排除表面积小于指定值的面。

String

派生输出

名称说明数据类型
output_feature_class

更新后的输入要素。

Feature Layer

代码示例

AddSurfaceInformation 示例 1(Python 窗口)

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

arcpy.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

# Set Local Variables
arcpy.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.")

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题