Разница 3D (Difference 3D) (3D Analyst)
Резюме
Исключает участки объектов-мультипатч в целевом классе объектов, которые перекрываются значениями объектов-мультипатч в классе вычитаемых пространственных объектов.
Рисунок
Использование
-
Для такого анализа требуется замкнутая геометрия мультипатч. Инструмент Замкнутые 3D (Is Closed 3D) можно использовать, чтобы определить, содержит ли класс объектов мультипатч замкнутые объекты. А инструмент Замкнуть мультипатч (Enclose Multipatch) можно использовать для устранения разрывов в объектах мультипатч.
Входные объекты, которые целиком попадают в вычитаемые объекты, будут полностью удалены на выходе.
Работа этого инструмента может занять много времени, поэтому следует внимательно выбирать входные наборы данных.
Выходные объекты не будут обладать атрибутами входных объектов. Если необходимо, может быть построено пространственное соединение к исходным пространственным объектам или класс отношений к дополнительной таблице для переноса атрибутов карты из входных пространственных объектов в выходной набор данных.
Этот инструмент – это оператор, предоставляющий аналитические функции для 3D объектов. Дополнительные сведения об операциях пересечения 3D объектов и их использовании см. в разделе Работа с операциями пересечения 3D объектов.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features_minuend |
Объекты-мультипатч, из которых объекты будут удалены путем вычитания объектов. | Feature Layer |
in_features_subtrahend |
Объекты-мультипатч, которые будут вычитаться из входных. | Feature Layer |
out_feature_class |
Выходной класс объектов-мультипатч, который будет содержать результирующие объекты. | Feature Class |
out_table (дополнительно) |
Дополнительная таблица, которая хранит информацию об отношениях между входными пространственными объектами и разность выходных данных. В таблице присутствуют следующие поля:
| Table |
Пример кода
В следующем примере показано использование этого инструмента в окне Python:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Difference3D_3d('input_mp.shp', 'erase_mp.shp', 'difference_mp.shp')
В следующем примере показано использование этого инструмента в автономном скрипте Python:
'''****************************************************************************
Name: Difference3D Example
Description: This script demonstrates how to create
shadow volumes that fall along a specified surface using the
Difference3D tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inMP = 'buildings.shp'
eraseMP = 'bldg_extensions.shp'
outMP = arcpy.CreateUniqueName('bldgs_without_extensions.shp')
# Execute Difference3D
arcpy.Difference3D_3d(inMP, eraseMP, outMP)
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)