Буфер 3D (3D Analyst)
Резюме
Создает 3D буфер вокруг точечных или линейных объектов.
Рисунок
Использование
Создает сферы для входных точек и цилиндрические объекты для входных линий.
В результате получаются замкнутые объекты-мультипатчи, которые можно использовать для вычислений объемов, включая предоставленные инструментами операций пересечения 3D объектов. Дополнительные сведения об операциях пересечения 3D объектов и их использовании см. в разделе Работа с операциями пересечения 3D объектов (Working with 3D set operators).
Повышение Качества буфера (Buffer Quality) приводит к увеличению сглаживания 3D объектов и требует увеличения времени, затрачиваемого на обработку.
Задав значение Упрощения (Simplification), можно повысить производительность для сложных линейных объектов, таких как изогнутые линии с большим количеством вершин.
Этот инструмент может не справиться с созданием замкнутого мультипатча для некоторых линейных объектов из-за используемых геометрии линии и буферного расстояния. Следует избегать значений буферного расстояния, которые могут вызвать перекрывание буферов для одного объекта, также рекомендуется задавать меньшее буферное расстояние для объектов, которые не могут создать выходной результат.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Линейные или точечные объекты, для которых будет создаваться буфер. | Feature Layer |
out_feature_class |
Выходные объекты-мультипатчи, которые представляют 3D буферы. | Feature Class |
buffer_distance_or_field |
Расстояние буфера вокруг входных объектов, которое может быть предоставлено, как линейное расстояние, или извлечено из числового поля в таблице атрибутов входного объекта. Если линейные единицы измерения расстояния не заданы или введены как Unknown, используется линейная единица измерения пространственной привязки входных объектов. | Linear Unit; Field |
buffer_joint_type (дополнительно) |
Форма буфера между вершинами сегментов линии. Этот параметр подходит только для входных линейных объектов.
| String |
buffer_quality (дополнительно) |
Количество сегментов, используемых для представления итоговых объектов-мультипатчей. Можно использовать любое число в диапазоне от 6 до 60. Значение по умолчанию ― 20. | Long |
simplification_tolerance (дополнительно) | Упрощение удаляет вершины из входных линий, сохраняя основные точки вершин, определяющие форму исходных линий в пределах максимально допустимого сдвига. По умолчанию, упрощение не будет производиться, пока не будет задано значение допуска. Допуск упрощения может быть задан как строка, содержащая числовое значение и линейные единицы его измерения (например, 1,5 метра) или числовое значение без единиц измерения, в этом случае по умолчанию будут использоваться линейные единицы горизонтальной пространственной привязки входных данных. | Linear Unit |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Buffer3D_3d('lineFC.shp', 'buffer3d.shp', '15 Meters',
'Round', 30, '1 Meters')
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: Buffer 3D Example
Description: This script demonstrates an application of
the Buffer 3D and Inside 3D tools.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inFC = 'lineFC.shp'
bufferOut = 'buffer3d.shp'
# Execute Buffer 3D
arcpy.Buffer3D_3d(inFC, bufferOut, '15 Meters', 'Round', '30', '1 Meters')
arcpy.Inside3D_3d(bufferOut, 'survey_pts.shp', 'inside_analysis.dbf')
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)