描述
创建表格和可选图表,用于说明一个或多个多面体、栅格、TIN 或 terrain 表面上的线要素的剖面。
插图
使用方法
如果填写了输出图表名称参数并且在 ArcMap、ArcScene 或 ArcGlobe 中执行工具,则生成的图表将会出现在屏幕上。
将对每条输入线进行增密,以沿其重叠的剖面目标插值高度。沿此增密方法创建的输入线的高程和距离,和有关线要素及剖面目标的信息一起存储在输出表中。
输出表中的以下字段可提供在任何图表绘制应用程序中生成图形所需的信息:
- FIRST_DIST - 到剖面段中第一个折点的距离。
- FIRST_Z - 剖面段中第一个折点的高度。
- SEC_DIST - 到剖面段中第二个折点的距离。
- SEC_Z - 剖面段中第二个折点的高度。
- LINE_ID - 用于定义剖面的线要素的唯一 ID。
- SRC_TYPE - 剖面源的数据类型,即表面或多面体。
- SRC_ID - 要描绘剖面的多面体要素的唯一 ID。不适用于表面输入。
- SRC_NAME - 到剖面源的名称和路径。
语法
arcpy.ddd.StackProfile(in_line_features, profile_targets, out_table, {out_graph})
参数 | 说明 | 数据类型 |
in_line_features | 将在表面输入上描绘剖面的线要素。 | Feature Layer |
profile_targets [profile_targets,...] | 剖面的数据,可由多面体要素、栅格和三角化表面模型的任意组合组成。 | Feature Layer; LAS Dataset Layer; Mosaic 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)
环境
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst