Краткая информация
Производит слияние замкнутых, перекрывающихся объектов-мультипатчей из входного класса пространственных объектов.
Иллюстрация
Использование
-
Для такого анализа требуется замкнутая геометрия мультипатч. Инструмент Замкнутые 3D можно использовать, чтобы определить, содержит ли класс объектов-мультипатчей замкнутые объекты. А инструмент Замкнуть мультипатч можно использовать для устранения разрывов в объектах-мультипатчах.
Объекты-мультипатчи, включающие в себя перекрывающиеся объемы, объединяются путем пересечения оболочек этих объектов, затем происходит удаление избыточных внутренних частей. Этот процесс повторяется итеративно до тех пор, пока не будут обработаны все мультипатчи в классе пространственных объектов.
Поле группировки может использоваться для идентификации объединяемых объектов, например в случае, когда мультипатчи представляют собой части городских зданий, и одно здание состоит из нескольких таких объектов. Это позволяет существенно повысить быстродействие, поскольку уменьшается количество проходов инструмента через весь набор данных. Вместо сравнения одного объекта со всеми объектами, производится только сравнение объекта с членами его группы.
При включении оптимизации инструмент предпринимает попытку самостоятельно разделить объекты на группы, анализируя прямоугольные фигуры, в которые вписан каждый из объектов. Отключение оптимизации увеличит быстродействие инструмента, если было указано поле группировки. Оптимизация также может быть отключена и при отсутствии поля группировки, если требуется объединить все перекрывающиеся объекты в один мультипатч.
Внимательно выбирайте количество объектов для агрегирования, поскольку в выходном классе могут получиться большие и сложные объекты, что повлечет за собой низкую производительность при отображении.
Сообщение об ошибке с указанием, что итоговый объект не является простым и не может быть создан, возникает в случае, когда два или более объекта-мультипатча имеют только одну общую вершину или ребро. То же сообщение возникает, если какая-либо группа содержит мультипатчи, не имеющие общего объема (внутреннего пространства).
Дополнительно может быть создана таблица с указанием атрибутов исходных объектов, которые были объединены в один выходной объект (для всех выходных объектов).
Синтаксис
Union3D_3d (in_feature_class, out_feature_class, {group_field}, {disable_optimization}, {output_all}, {out_table})
Параметр | Объяснение | Тип данных |
in_feature_class | Объекты-мультипатчи, которые будут объединяться. | Feature Layer |
out_feature_class | Выходной класс объектов-мультипатчей, который будет хранить агрегированные объекты. | Feature Class |
group_field (Дополнительный) | Поле, применяемое для идентификации пространственных объектов, которые следует объединить в один объект. | Field |
disable_optimization (Дополнительный) | Определяет, будет ли выполняться оптимизация входных данных. Процесс оптимизации заново обработает входные данные, сгруппировав их с целью улучшения производительности, и создаст уникальные выходные данные для каждого набора пересекающихся объектов.
| Boolean |
output_all (Дополнительный) | Определяет, будет ли выходной класс содержать все объекты или только перекрывающиеся объекты, которые были объединены.
| Boolean |
out_table (Дополнительный) | Таблица многие-к-одному, находящая входные объекты, попадающие в каждый выходной. | Table |
Пример кода
Union3D, пример 1 (окно Python)
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Union3D_3d('multipatch.shp', 'union_output.shp', 'GROUP_FIELD',
'DISABLE', 'ENABLE', 'UnionTable.dbf')
Union3D, пример 2 (автономный скрипт)
В следующем примере показано использование этого инструмента в автономном скрипте Python.
'''****************************************************************************
Name: Union3D Example
Description: This script demonstrates how to use the
Union3D tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inMP = "multipatch.shp"
# Ensure output multipatch has a unique name
outMP = arcpy.CreateUniqueName("union_output.shp")
outTbl = arcpy.CreateUniqueName("UnionTable.dbf")
GroupField = "Type"
optimize = "DISABLE"
solids = "ENABLE"
#Execute Union3D
arcpy.ddd.Union3D(inMP, outMP, GroupField, optimize, solids, outTbl)
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)
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует 3D Analyst
- ArcGIS Desktop Standard: Требует 3D Analyst
- ArcGIS Desktop Advanced: Требует 3D Analyst