描述
添加关于具有 Z 值的要素类中的要素的高程属性的信息。
会检查每个 3D 形状,并且所选属性会被追加到输入要素类的属性表中。输出选项会根据要素几何的不同而有所不同。
使用方法
以下 Z 属性可用:
要素几何 Z 属性 点
点的 Z 值。
多点
多点记录中的点计数和所有点的最小、最大和平均 Z 值。
折线和面
线或面周长的折点计数和 3D 距离。
线或面周长的最小、最大和平均 Z 值及坡度。
多面体
闭合多面体的表面积和体积。
沿多面体表面的最小、最大和平均 Z 值及坡度。
坡度以百分比值或度数的形式返回,对于支持此属性的各种几何类型计算的结果不同。
- 沿每个线段计算线要素的坡度值和面周长:
- 最小坡度值根据坡度值最接近 0 或水平等级的线段获得。
- 最大坡度根据具有最大计算值的线段获得。
- 平均坡度通过按 3D 长度对每条线段进行加权后对所有线段的坡度求平均值获得。这会导致较长线段的影响比较短线段更大。
- 多面体要素的坡度值将针对各三角面计算得出。
- 最小坡度根据值最接近 0 或水平等级的面获得。
- 最大坡度根据具有最大值的面获得。
- 平均坡度通过按三维区域对每条线段进行加权后对所有三角面的坡度求平均值获得。这会导致较大区域对结果值的影响比较小区域更大。
- 面要素的坡度值沿着边缘计算,使用的方法与线段应用的方法一样。
- 沿每个线段计算线要素的坡度值和面周长:
只能对闭合多面体计算体积。非闭合多面体要素将返回值 0.0。在 Solaris 平台上,设计的局限性当前将使工具无法确定多面体是否闭合,因此假定所有多面体均为闭合多面体,将针对所有多面体计算体积测量。
语法
arcpy.ddd.AddZInformation(in_feature_class, out_property, {noise_filtering})
参数 | 说明 | 数据类型 |
in_feature_class | 待处理的输入要素。 | Feature Layer |
out_property [out_property,...] | 将添加到输入要素类属性表中的 Z 属性。可用选项如下:
| String |
noise_filtering (可选) | 一个用于从生成的计算中排除部分要素的可选数值。当 3D 输入包含相对较小的要素(具有极端坡度值,可能会使统计结果产生偏差)时,这将十分有用。如果 3D 输入的线性单位为米时,指定值 0.001 将导致排除长度小于 0.001 米的线或面边。对于多面体要素,相同值将导致排除其面积小于 0.001 平方米的子部分。此参数不适用于点和多点要素。 面积过滤器在输入为多面体的情况下提供,而长度过滤器在输入为线或面的情况下提供。 | String |
派生输出
名称 | 说明 | 数据类型 |
output_feature_class | 更新后的启用 Z 值的要素类。 | 要素图层 |
代码示例
AddZInformation 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.AddZInformation_3d('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
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set environment settings
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.AddZInformation_3d(inFC, Prop, noise)
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)
环境
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst