Краткая информация
Вычисляет пересечение между двумя классами пространственных объектов и создает кросс-таблицы, содержащие площади, длины или число пересекающихся объектов.
Иллюстрация
 
Использование
- Зона включает в себя все объекты из Входных объектов зон (Input Zone Features), для которых совпадают значения опции Поля зоны (Zone Field(s)). Аналогично, класс включает в себя все объекты из списка Объекты входного класса (Input Class Features), для которых совпадают значения опции Поля класса (Class Field(s)). Объекты не обязательно должны граничить друг с другом, чтобы попасть в одну зону или класс. Этот инструмент рассчитывает, какая часть зоны пересекается каждым классом (включая площадь и процент площади зоны). 
- Если опция Поля класса (Class Field(s)) не задана, все объекты из списка Объектов входного класса (Input Class Features) будут считаться относящимися к одному классу. Выходная таблица (Output Table) будет содержать одну запись для этой зоны. 
- Если для опции Поля класса (Class Field(s)) указано значение, то Выходная таблица (Output Table) будет содержать n записей для каждой зоны, где n – число классов внутри этой зоны. Например, если зона содержит четыре класса, Выходная таблица (Output Table) будет содержать четыре записи для этой зоны. 
- Числовые атрибуты из списка Объекты входного класса (Input Class Features) могут суммироваться в пределах зоны с помощью параметра Поля суммирования (Sum Fields). Суммарные значения для класса представляют пропорцию суммарных значений на основе процента класса, пересекающего зону (подобно тому, как работает Правило пропорции (Ratio Policy)). 
- Использование Объектов входного класса (Input Class Features) более высокой размерности, чем Входные объекты зоны (Input Zone Features) не поддерживается. Не поддерживаемые комбинации: - Зона = точки, класс = полигоны или линии
- Зона = линии, класс = полигоны
 
- Если Входные объекты зоны (Input Zone Features) и Объекты входного класса (Input Class Features) являются полигонами, статистика выходной таблицы будет основана на вычислении площади. - Если Объекты входного класса (Input Class Features) являются линиями, статистика выходной таблицы будет основана на линейных расчетах. - Если Объекты входного класса (Input Class Features) являются точками, статистика выходной таблицы будет основана на подсчете объектов. 
- Если Входные объекты зоны (Input Zone Features) и Объекты входного класса (Input Class Features) имеют одинаковое измерение (и те, и другие полигоны, линии или точки) выходное поле PERCENTAGE будет содержать процент объекта зоны, пересекаемого классом. - Если Входные объекты зоны (Input Zone Features) и Объекты входного класса (Input Class Features) имеют разные измерения (полигональная зона с линейным классом или линейная зона с точечным классом) выходное поле PERCENTAGE будет содержать процент класса, пересекающего полигон зоны. - Если во Входных объектах зоны (Input Zone Features) или Объектах входного класса (Input Class Features) имеются перекрывающиеся объекты, выходное поле PERCENTAGE может содержать значение, превышающее 100 процентов. 
- Выходная таблица содержит поле AREA, только если Входные объекты зоны (Input Zone Features) и Объекты входного класса (Input Class Features) являются полигонами. Поле AREA содержит площадь Входных объектов зоны (Input Zone Features), которую пересекают Объекты входного класса (Input Class Features). - Выходная таблица содержит поле LENGTH, если Объекты входного класса (Input Class Features) являются линиями. Поле LENGTH содержит длину пересечения между Входными объектами зоны (Input Zone Features) и Объектами входного класса (Input Class Features). - Выходная таблица содержит поле PNT_COUNT, если Объекты входного класса (Input Class Features) являются точками. Поле PNT содержит количество точек Объектов входного класса (Input Zone Features), которые пересекают Входные объекты зоны (Input Zone Features). 
- Если в векторных слоях выбраны какие-либо объекты, то только они будут использоваться в вычислениях. 
- Для определения пересечения зоны с объектами класса используются те же правила, что и при работе с инструментом Пересечение (Intersect). 
- Используйте инструмент Сводная таблица (Pivot Table) для преобразования Выходной таблицы (Output Table) в таблицу, содержащую одну запись для каждой зоны, в атрибутивных полях которой по отдельности хранятся атрибуты классов. Заполните параметры инструмента Сводная таблица (Pivot Table) следующим образом: - Входная таблица (Input Table) – Таблица пересечений (Tabulate Intersection) Выходная таблица (Output Table)
- Входные поля (Input Field(s)) – Таблица пересечений (Tabulate Intersection) Поля зоны (Zone Field(s))
- Поле столбцов (Pivot Field) – Таблица пересечений (Tabulate Intersection) Поле класса (Class Field)
- Поле значений (Value Field) – Таблица пересечений (Tabulate Intersection) Поле суммирования (Sum Field) или AREA, LENGTH, PERCENTAGE
  
Синтаксис
TabulateIntersection_analysis (in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})| Параметр | Объяснение | Тип данных | 
| in_zone_features | Объекты, используемые для определения зон. | Feature Layer | 
| zone_fields [zone_fields,...] | Атрибутивное поле или поля, которые будут использованы для определения зон. | Field | 
| in_class_features | Объекты, используемые для идентификации классов. | Feature Layer | 
| out_table | Таблица, содержащая кросс-таблицу пересечений между зонами и классами. | Table | 
| class_fields [class_fields,...] (Дополнительный) | Атрибутивное поле или поля, используемые для определения классов. | Field | 
| sum_fields [sum_fields,...] (Дополнительный) | Суммируемые поля из Объектов входного класса (Input Class Features). | Field | 
| xy_tolerance (Дополнительный) | Расстояние, определяющее диапазон, в котором объекты или их вершины считаются совпадающими. По умолчанию это расстояние равно значению Допуск XY (XY Tolerance) Входных объектов зоны (Input Zone Features). | Linear Unit | 
| out_units (Дополнительный) | Единицы измерения, в которых вычисляется площадь или длина. Настройка Выходных единиц (Output Units) не поддерживается, если Объекты входного класса (Input Class Features) являются точками. | String | 
Пример кода
Таблица пересечений. Пример 1 (окно Python)
Использовании функции Таблица пересечений в окне Python для определения площади, занимаемой каждым типом растительности в каждой зоне.
import arcpy
arcpy.TabulateIntersection_analysis("Zones", "zone_id", "Vegetation", r"C:\Esri\veganalysis.gdb\vegtypeAreas", "VEGTYPE")
Таблица пересечений. Пример 2 (автономный скрипт)
Скрипт для запуска функции Таблица пересечений, позволяющий создать простой инструмент-скрипт TabulateArea. Инструмент скрипта TabulateArea принимает на входе только полигональные объекты.В полях Зона (Zone) и Класс (Class) можно ввести только по одному значению.
'''
TabulateArea.py
Description: Shows how to wrap the TabulateIntersection tool to create a TabulateArea script tool
Requirements: Polygon Zone Feature Class, Polygon Class Feature Class
'''
import arcpy
import sys
import os
def AddMsgAndPrint(msg, severity=0):
    # Adds a Message (in case this is run as a tool)
    # and also prints the message to the screen (standard output)
    # 
    print(msg)
    # Split the message on \n first, so that if it's multiple lines, 
    #  a GPMessage will be added for each line
    try:
        for string in msg.split('\n'):
            # Add appropriate geoprocessing message 
            #
            if severity == 0:
                arcpy.AddMessage(string)
            elif severity == 1:
                arcpy.AddWarning(string)
            elif severity == 2:
                arcpy.AddError(string)
    except:
        pass
## Get Parameters
zoneFC = arcpy.GetParameterAsText(0)
zoneFld = arcpy.GetParameterAsText(1) # Only allow one field
classFC = arcpy.GetParameterAsText(2)
outTab = arcpy.GetParameterAsText(3)
classFld = arcpy.GetParameterAsText(4) # Optional and only allow one field
sum_Fields = ""
xy_tol = ""
outUnits = arcpy.GetParameterAsText(5)
## Validate parameters
# Inputs can only be polygons
zoneDesc = arcpy.Describe(zoneFC)
classDesc = arcpy.Describe(classFC)
if zoneDesc.shapeType != "Polygon" or classDesc.shapeType != "Polygon":
    AddMsgAndPrint("Inputs must be of type polygon.", 2)
    sys.exit()
    
# Only one zone field and class field
if zoneFld != "":
    if zoneFld.find(";") > -1 or classFld.find(";") > -1:
        AddMsgAndPrint("A maximum of one zone and/or class field is allowed.", 2)
        sys.exit()
## Run TI with restricted parameters
try:
    arcpy.TabulateIntersection_analysis(zoneFC, zoneFld, classFC, outTab, classFld, sum_Fields, xy_tol, outUnits)
except:
    arcpy.AddMessage("Tabulate Intersection Failed.")
AddMsgAndPrint(arcpy.GetMessages(), 0)
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Нет
- ArcGIS Desktop Standard: Нет
- ArcGIS Desktop Advanced: Да