Профиль стека (3D Analyst)
Резюме
Создает таблицу и дополнительную диаграмму, показывающую профиль линейных объектов над одной или несколькими поверхностями мультипатча, растра, TIN или terrain.
Рисунок
Использование
-
Если вводится параметр Имя выходной диаграммы (Output Graph Name) и инструмент запускается в ArcMap, ArcScene или ArcGlobe, на экран будет выведена полученная диаграмма.
Диаграмма будет сохранена в памяти, но также она может быть сохранена в виде графического файла с помощью инструмента Сохранить диаграмму (Save Graph).
Выходная таблица предоставляет информацию, необходимую для построения диаграммы профиля. Каждый линейный объект уплотнен вдоль перекрывающихся целей профиля таким образом, чтобы собрать характеристики профиля, вставляя новые вершины вдоль линии. Высота и расстояние вдоль входных линий, созданных этим уплотнением, сохраняются в выходной таблице вместе с дополнительной информацией о линейных объектах и целях профиля. Значения из полей этой таблицы могут использоваться для создания диаграмм в большом количестве внешних приложений. Поля представляют:
- FIRST_DIST – Расстояние до первой вершины в сегменте профиля.
- FIRST_Z – Высота первой вершины в сегменте профиля.
- SEC_DIST – Расстояние до второй вершины в сегменте профиля.
- SEC_Z – Высота второй вершины в сегменте профиля.
- LINE_ID – Уникальный ID линейного объекта, использующегося для определения профиля.
- SRC_TYPE – Тип данных источника профиля, это может быть поверхность или мультипатч.
- SRC_ID – Уникальный ID объекта-мультипатча, для которого создается профиль. Не подходит для входных данных в виде поверхности.
- SRC_NAME – Имя и путь к источнику профиля.
Синтаксис
Параметр | Объяснение | Тип данных |
in_line_features |
Линейные объекты, для которых будет создан профиль над входными поверхностями. | Feature Layer |
profile_targets [profile_targets,...] |
Один или более объектов-мультипатчей и наборы растровых данных, данных terrain или TIN, которые влияют на модель поверхности, для которой строится профиль. | Feature Layer; Raster Layer; Terrain Layer; TIN Layer |
out_table |
Выходная таблица, содержащая значения, полученные при интерполяции входных линейных объектов для целей стека. | Table |
out_graph (дополнительно) |
Имя файла в памяти для дополнительной выходной диаграммы, с которым она может быть сохранена на диск при помощи инструмента Сохранить диаграмму (Save Graph). | Graph |
Пример кода
В следующем примере показано использование этого инструмента в окне 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')
В следующем примере показано использование этого инструмента в автономном скрипте 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)