Буфер 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)