添加 Z 信息 (3D Analyst)

摘要

添加关于启用 z 值的要素类中的要素的高程属性的信息。

会检查每个 3D 形状,并且所选属性会被追加到输入要素类的属性表中。 输出选项会根据要素几何的不同而有所不同。

使用情况

  • 以下 z 属性可用:

    要素几何z 属性

    点的 z 值。

    多点

    多点记录中的点计数和所有点的最小、最大和平均 z 值。

    折线和面

    线或面周长的折点计数和 3D 距离。

    线或面周长的最小、最大和平均 z 值及坡度。

    多面体

    闭合多面体的表面积和体积。

    沿多面体表面的最小、最大和平均 z 值及坡度。

  • 坡度以百分比值或度数的形式返回,对于支持此属性的各种几何类型计算的结果不同。 值 -1 表示要素是垂直的。

    • 沿每个线段计算线要素的坡度值和面周长:
      • 最小坡度值根据坡度值最接近 0 或水平等级的线段获得。
      • 最大坡度根据具有最大计算值的线段获得。
      • 平均坡度通过按 3D 长度对每条线段进行加权后对所有线段的坡度求平均值获得。 这会导致较长线段的影响比较短线段更大。
    • 多面体要素的坡度值将针对各三角面计算得出。
      • 最小坡度根据值最接近 0 或水平等级的面获得。
      • 最大坡度根据具有最大值的面获得。
      • 平均坡度通过按三维区域对每条线段进行加权后对所有三角面的坡度求平均值获得。 这会导致较大区域对结果值的影响比较小区域更大。
    • 面要素的坡度值沿着边缘计算,使用的方法与线段应用的方法一样。
  • 面要素的平均 z 值的计算方式与线要素相同。 面的内部将被忽略,因为仅会评估边界。 将每个线段中点的 z 值乘以该线段的 3D 长度,然后将所有线段的乘积相加。 然后,将总和除以线要素或面边界的总 3D 长度以生成结果。

  • 每个多面体要素的平均 z 值的计算方法是将每个三角形中点的 z 值乘以该三角形的 3D 面积。 将给定要素中所有三角形的乘积相加,然后除以多面体要素的总 3D 表面积,以产生结果。

  • 只能对闭合多面体计算体积。 非闭合多面体要素将返回值 0.0。 在 Solaris 平台上,设计的局限性当前将使工具无法确定多面体是否闭合,因此假定所有多面体均为闭合多面体,将针对所有多面体计算体积测量。

参数

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

将处理的输入要素。

Feature Layer
输出属性

指定将添加到输入要素类的属性表的 z 属性。

  • Spot Z单点要素的高程点。
  • 点计数每个多点要素中的点数。
  • 最低 Z 值每个多点、折线、面或多面体要素中找到的最低 z 值。
  • 最高 Z 值每个多点、折线、面或多面体要素中找到的最高 z 值。
  • Z 平均值每个多点、折线、面或多面体要素中找到的平均 z 值。
  • 三维长度每个折线或面要素的三维长度。
  • 表面面积多面体要素表面的总面积。
  • 折点数每个折线或面要素的折点总数。
  • 最低坡度针对每个折线、面或多面体要素计算的最低坡度值。
  • 最高坡度针对每个折线、面或多面体要素计算的最高坡度值。
  • 平均坡度针对每个折线、面或多面体要素计算的平均坡度值。
  • 体积由每个多面体要素闭合起来的空间的体积。
String
噪点过滤
(可选)

一个用于从生成的计算中排除部分要素的数值。 当 3D 输入包含相对较小的要素(具有极端坡度值,可能会使统计结果产生偏差)时,这将十分有用。 如果 3D 输入的线性单位为米时,指定值 0.001 将导致排除长度小于 0.001 米的线或面边。 对于多面体要素,相同值将导致排除其面积小于 0.001 平方米的子部分。 此参数不适用于点和多点要素。

String

派生输出

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

更新后的启用 z 值的要素类。

Feature Layer

arcpy.ddd.AddZInformation(in_feature_class, out_property, {noise_filtering})
名称说明数据类型
in_feature_class

将处理的输入要素。

Feature Layer
out_property
[out_property,...]

指定将添加到输入要素类的属性表的 z 属性。

  • Z单点要素的高程点。
  • POINT_COUNT每个多点要素中的点数。
  • Z_MIN每个多点、折线、面或多面体要素中找到的最低 z 值。
  • Z_MAX每个多点、折线、面或多面体要素中找到的最高 z 值。
  • Z_MEAN每个多点、折线、面或多面体要素中找到的平均 z 值。
  • LENGTH_3D每个折线或面要素的三维长度。
  • SURFACE_AREA多面体要素表面的总面积。
  • VERTEX_COUNT每个折线或面要素的折点总数。
  • MIN_SLOPE针对每个折线、面或多面体要素计算的最低坡度值。
  • MAX_SLOPE针对每个折线、面或多面体要素计算的最高坡度值。
  • AVG_SLOPE针对每个折线、面或多面体要素计算的平均坡度值。
  • VOLUME由每个多面体要素闭合起来的空间的体积。
String
noise_filtering
(可选)

一个用于从生成的计算中排除部分要素的数值。 当 3D 输入包含相对较小的要素(具有极端坡度值,可能会使统计结果产生偏差)时,这将十分有用。 如果 3D 输入的线性单位为米时,指定值 0.001 将导致排除长度小于 0.001 米的线或面边。 对于多面体要素,相同值将导致排除其面积小于 0.001 平方米的子部分。 此参数不适用于点和多点要素。

String

派生输出

名称说明数据类型
output_feature_class

更新后的启用 z 值的要素类。

Feature Layer

代码示例

AddZInformation 示例 1(Python 窗口)

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.AddZInformation('lines_3D.shp', 'Z_MEAN; LENGTH_3D; AVG_SLOPE', 
                        'NO_FILTER')
AddZInformation 示例 2(独立脚本)

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

'''******************************************************************
Name: AddZInformation Example
Description: This script demonstrates AddZInformation on all 
             z-aware features in a target workspace.
******************************************************************'''
# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = 'C:/data'
# Create list of feature classes
fcList = arcpy.ListFeatureClasses()
if fcList:
    for fc in fcList:
        desc = arcpy.Describe(fc)
        if desc.hasZ:
            # Set Local Variables
            noise = 'No_Filter'
            if desc.shapeType == 'Polygon':
                Prop = ['Z_MIN', 'Z_MAX', 'VERTEX_COUNT']
            elif desc.shapeType == 'Point':
                Prop = 'Z'
            elif desc.shapeType == 'Multipoint':
                Prop = ['Z_MIN', 'Z_MAX', 'Z_MEAN']
            elif desc.shapeType == 'Polyline':
                Prop = 'LENGTH_3D'
            print('Completed adding Z information.')
            # Execute AddZInformation
            arcpy.ddd.AddZInformation(inFC, Prop, noise)

相关主题