摘要
创建表格和可选图表,用于说明一个或多个多面体、栅格、TIN 或 terrain 表面上的线要素的剖面。
插图
用法
如果填充了输出图表名称参数并且在 ArcMap、ArcScene 或 ArcGlobe 中执行工具,则生成的图表将会显示在屏幕上。
输出表提供生成剖面图所需的信息。每个线要素均通过沿线引入新折点,以捕捉剖面特征的方式,沿其重叠剖面目标增密。沿此增密方法创建的输入线的高程和距离,和有关线要素及剖面目标的其余信息一起存储在输出表中。其字段中的值可用于在多种外部应用程序中创建图表。字段表示:
- FIRST_DIST - 到剖面段中第一个折点的距离。
- FIRST_Z - 剖面段中第一个折点的高度。
- SEC_DIST - 剖面段中第二个折点的距离。
- SEC_Z - 剖面段中第二个折点的高度。
- LINE_ID - 用于定义剖面的线要素的唯一 ID。
- SRC_TYPE - 剖面源的数据类型,即表面或多面体。
- SRC_ID - 要描绘剖面的多面体要素的唯一 ID。不适用于表面输入。
- SRC_NAME - 剖面源的名称和路径。
语法
StackProfile_3d (in_line_features, profile_targets, out_table, {out_graph})
参数 | 说明 | 数据类型 |
in_line_features | 将在表面输入上描绘剖面的线要素。 | Feature Layer |
profile_targets [profile_targets,...] | 剖面的数据,可由多面体要素和表面模型(如栅格、TIN、terrain 或 LAS 数据集)的任意组合组成。 | Feature Layer; LAS Dataset Layer; Raster Layer; Terrain Layer; TIN Layer |
out_table | 输出表存储每个剖面的插值测量值。 | Table |
out_graph (可选) | 可在 ArcMap、ArcScene 或 ArcGlobe 中查看的输出图形的名称。 | Graph |
代码实例
堆栈剖面 (StackProfile) 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.StackProfile_3d('profile_line.shp', 'dem.tif; buildings.shp',
'profile_values.dbf', 'Surface Profile')
堆栈剖面 (StackProfile) 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''**********************************************************************
Name: Save Profiles to Graph Files
Description: Creates profile graphs of multipatch and surface features,
which are then saved as graph files.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
# Set Local Variables
profileLine = arcpy.GetParameterAsText(0)
profileTargets = arcpy.GetParameterAsText(1) # input las files
profileTable = arcpy.CreateUniqueName('profile_table', 'in_memory')
graphName = "Sample Graph"
outGraph = arcpy.GetParameterAsText(2) # output graph file
try:
arcpy.CheckOutExtension('3D')
# Execute StackProfile
arcpy.ddd.StackProfile(profileLine, profileTargets, profileTable, graphName)
# Execute SaveGraph
arcpy.management.SaveGraph(graphName, outGraph)
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)