添加 Z 信息 (3D Analyst)
摘要
添加关于具有 Z 值的要素类中的要素的高程属性的信息。
会检查每个 3D 形状,并且所选属性会被追加到输入要素类的属性表中。输出选项会根据要素几何的不同而有所不同。
用法
-
以下 Z 属性可用:
- 点 - Z 值
- 多点 - Z 最小值、Z 最大值、Z 平均值、点计数
- 折线 - Z 最小值、Z 最大值、Z 平均值、3D 长度、最小坡度、最大坡度、平均坡度、折点计数
- 面 - Z 最小值、Z 最大值、Z 平均值、3D 长度、最小坡度、最大坡度、平均坡度、折点计数
- 多面体 - Z 最小值、Z 最大值、表面面积、体积、最小坡度、最大坡度、平均坡度
-
坡度以百分比值或度数的形式返回,对于支持此属性的各种几何类型计算的结果不同。
- 线要素的坡度值将针对各线段计算:
- 最小坡度根据值最接近 0 或水平度的线段获得。
- 最大坡度根据具有最大计算值的线段获得。
- 平均坡度通过按 3D 长度对每条线段进行加权后对所有线段的坡度求平均值获得。这会导致较长线段的影响比较短线段更大。
- 多面体要素的坡度值将针对各三角面计算得出。
- 最小坡度根据值最接近 0 或水平度的面获得。
- 最大坡度根据具有最大值的面获得。
- 平均坡度通过按三维区域对每条线段进行加权后对所有三角面的坡度求平均值获得。这会导致较大区域对结果值的影响比较小区域更大。
- 面要素的坡度值沿着边缘计算,使用的方法与线段应用的方法一样。
- 线要素的坡度值将针对各线段计算:
只能对闭合多面体计算体积。非闭合多面体要素将返回值 0.0。在 Solaris 平台上,设计的局限性当前将使工具无法确定多面体是否闭合,因此假定所有多面体均为闭合多面体,将针对所有多面体计算体积测量。
语法
AddZInformation_3d (in_feature_class, out_property, {noise_filtering})
参数 | 说明 | 数据类型 |
in_feature_class |
待输入的要素类。 | Feature Layer |
out_property [out_property,...] | 将添加到输入要素类属性表中的 Z 属性。可用的选项如下:
| String |
noise_filtering (可选) |
提供可用于在进行统计计算时排除一小部分要素的选项。此选项非常适用于获得准确的最大坡度估值,因为一小部分要素的坡度值通常较极端,可能使统计结果产生偏差。 面积或长度选项中给出的值将被用于排除这部分要素。此参数不适用于点和多点要素。
| String |
代码实例
添加 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')
添加 Z 信息 (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)
相关主题
许可信息
ArcGIS for Desktop Basic:需要 3D Analyst
ArcGIS for Desktop Standard:需要 3D Analyst
ArcGIS for Desktop Advanced:需要 3D Analyst
9/15/2013