Сводка
Создает трехмерный буфер вокруг точек или линий, образуя сферические или цилиндрические объекты-мультипатчи.
Иллюстрация
Использование
На выходе этого инструмента получаются замкнутые объекты-мультипатчи, которые могут использоваться для вычислений объемов и в других инструментах 3D операторов.
Задав значение Упрощения, можно повысить производительность для сложных линейных объектов, таких как изогнутые линии с большим количеством вершин.
Этот инструмент может не справиться с созданием замкнутого мультипатча для некоторых линейных объектов, если геометрия линии и буферное расстояние приводят к появлению перекрывающихся областей с часто расположенными вершинами. Вообще, лучше избегать использования буферных расстояний, которые могут привезти к появлению перекрывающихся областей внутри одного объекта.
Синтаксис
arcpy.ddd.Buffer3D(in_features, out_feature_class, buffer_distance_or_field, {buffer_joint_type}, {buffer_quality}, {simplification_tolerance})
Параметр | Объяснение | Тип данных |
in_features | Линейные или точечные объекты, для которых будет создаваться буфер. | Feature Layer |
out_feature_class | Выходной мультипатч, содержащий 3D буферы. | Feature Class |
buffer_distance_or_field | Буферное расстояние вокруг входных объектов, которое может быть предоставлено как линейное расстояние или получено из числового поля в таблице атрибутов входного объекта. Если буферное расстояние задано из выходного поля, то единица измерения этого расстояния будет определяться из пространственной привязки объекта. Если линейное расстояние задано числовым значением, то используются следующие единицы измерения:
| Linear Unit; Field |
buffer_joint_type (Дополнительный) | Форма буфера между вершинами сегментов линии. Этот параметр подходит только для входных линейных объектов.
| String |
buffer_quality (Дополнительный) | Количество сегментов, используемых для представления итоговых объектов-мультипатчей. Можно использовать любое число в диапазоне от 6 до 60. Значение по умолчанию ― 20. Повышение Качества буфера дает более сглаженные 3D объекты, но увеличивает время обработки. | Long |
simplification_tolerance (Дополнительный) | Упрощает входные линии, сохраняя их форму в пределах заданного значения сдвига относительно их исходной геометрии. Упрощение не будет производиться, пока не будет задано значение. Поддерживаются следующие единицы измерения:
| Linear Unit |
Пример кода
Buffer3D, пример (окно Python)
В следующем примере показано использование этого инструмента в окне 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')
Buffer3D, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте 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)
Параметры среды
Информация о лицензиях
- Basic: Требуется 3D Analyst
- Standard: Требуется 3D Analyst
- Advanced: Требуется 3D Analyst