Таблица пересечений (Анализ)

Краткая информация

Вычисляет пересечение между двумя классами пространственных объектов и создает кросс-таблицы, содержащие площади, длины или число пересекающихся объектов.

Иллюстрация

Принцип работы инструмента Таблица пересечений

Использование

  • Зона включает в себя все объекты из параметра Входные объекты зон, для которых совпадают значения в параметре Поля зоны. Аналогично, класс включает в себя все объекты из параметра Объекты входного класса, для которых совпадают значения в параметре Поля класса. Объекты не обязательно должны граничить друг с другом, чтобы попасть в одну зону или класс. Этот инструмент рассчитывает, какая часть зоны пересекается каждым классом (включая площадь и процент площади зоны).

  • Если значение Поля класса не задано, все объекты из параметра Объекты входного класса будут считаться относящимися к одному классу. Значение Выходная таблица будет содержать одну запись для этой зоны.

  • Если значение Поля класса задано, то значение Выходная таблица будет содержать n записей для каждой зоны, где n – число классов внутри этой зоны. Например, если зона содержит четыре класса, значение Выходная таблица будет содержать четыре записи для этой зоны.

  • Числовые атрибуты из параметра Объекты входного класса могут суммироваться в пределах зоны с помощью параметра Поля суммирования. Суммарные значения для класса представляют пропорцию суммарных значений на основе процента класса, пересекающего зону.

    Внимание:

    Используйте в качестве Полей суммирования поля с абсолютными значениями (а не с относительными нормализованными значениями, как, например проценты или плотность), поскольку значения могут быть разделены и перераспределены по разным зонам.

  • Использование Объектов входного класса более высокой размерности, чем Входные объекты зоны не поддерживается.

    • Если значения Входные объекты зон являются точками, значения Входные объекты классов не могут быть полигонами или линиями.
    • Если значения Входные объекты зон являются линиями, значения Входные объекты классов не могут быть полигонами.

  • Если значения Входные объекты зон и Объекты входного класса являются полигонами, статистика выходной таблицы будет основана на вычислении площади.

    Если значения Объекты входного класса являются линиями, статистика выходной таблицы будет основана на линейных расчетах.

    Если значения Объекты входного класса являются точками, статистика выходной таблицы будет основана на подсчете объектов.

  • Если значения параметров Входные объекты зон и Объекты входного класса имеют одинаковое измерение (и те, и другие полигоны, линии или точки), в выходном поле PERCENTAGE записывается процент объекта зоны, пересекаемого классом.

    Если значения Входные объекты зон и Объекты входного класса имеют разные измерения (полигональная зона с линейным классом или линейная зона с точечным классом), выходное поле PERCENTAGE будет содержать процент класса, пересекающего полигон зоны.

    В поле PERCENTAGE можно записать процентное значение, превышающее 100, если есть перекрывающиеся объекты в параметрах Входные объекты зон или Объекты входного класса.

  • Выходная таблица содержит поле AREA, только если значения Входные объекты зон и Объекты входного класса являются полигонами. Поле AREA содержит площадь значений Входных объектов зон, которую пересекают значения Объекты входного класса.

    Выходная таблица содержит поле LENGTH, если значения Объекты входного класса являются линиями. Поле LENGTH содержит длину пересечения между значениями Входные объекты зон и Объекты входного класса.

    Выходная таблица содержит поле PNT_COUNT, если значения Объекты входного класса являются точками. Поле PNT_COUNT содержит количество точек Входных объектов класса, которые пересекают Входные объекты зоны.

  • При использовании векторных слоев, если какие-либо объекты выбраны, в расчетах используются только выбранные объекты.

  • Для определения пересечения объектов зон с объектами класса используются те же правила, что и при работе с инструментом Пересечение.

  • Используйте инструмент Сводная таблица для преобразования Выходной таблицы в таблицу, содержащую одну запись для каждой зоны с атрибутами класса в виде отдельных полей атрибутов. Заполните параметры инструмента Сводная таблица следующим образом:

    • Входная таблица – Таблица пересечений Выходная таблица
    • Входные поля – Таблица пересечений Поля зоны
    • Поле столбцов – Таблица пересечений Поля класса
    • Поле значений – Таблица пересечений Поля суммирования или AREA, LENGTH PERCENTAGE
    Пример выходной сводной таблицы

Параметры

ПодписьОписаниеТип данных
Входные объекты зон

Объекты, используемые для определения зон.

Feature Layer
Поля зон

Атрибутивное поле или поля, которые будут использованы для определения зон.

Field
Объекты входного класса

Объекты, используемые для идентификации классов.

Feature Layer
Выходная таблица

Таблица, содержащая кросс-таблицу пересечений между зонами и классами.

Table
Поля классов
(Дополнительный)

Атрибутивное поле или поля, используемые для определения классов.

Field
Поля суммы
(Дополнительный)

Суммируемые поля из параметра Объекты входного класса.

Field
Допуск XY
(Дополнительный)

Расстояние, определяющее диапазон, в котором объекты или их вершины считаются совпадающими. По умолчанию это расстояние равно значению Допуска XY Входных объектов зон.

Внимание:

Изменение значения этого параметра может привести к сбою или неожиданным результатам. Рекомендуется не изменять этот параметр. Он был удален из поля зрения в диалоговом окне инструмента. По умолчанию используется свойство пространственной привязки допуск x,y входного класса пространственных объектов.

Linear Unit
Выходные единицы
(Дополнительный)

Задает единицы измерения, которые будут использоваться для расчета площади или длины. Настройка выходных единиц не поддерживается, если объекты входного класса являются точками.

  • Неизвестно—Единицы измерения будут неизвестны.
  • Дюймы—Единицами измерения будут дюймы.
  • Футы—Единицами измерения будут футы.
  • Ярды—Единицами измерения будут ярды.
  • Мили—Единицами измерения будут мили.
  • Морские мили—Единицами измерения будут морские мили.
  • Миллиметры—Единицами измерения будут миллиметры.
  • Сантиметры—Единицами измерения будут сантиметры.
  • Дециметры—Единицами измерения будут дециметры.
  • Метры—Единицами измерения будут метры.
  • Километры—Единицами измерения будут километры.
  • Десятичные градусы—Единицами измерения будут десятичные градусы.
  • Точки—Единицами измерения будут точки.
  • Ары—Единицами измерения будут ары.
  • Акры—Единицами измерения будут акры.
  • Гектары—Единицами измерения будут гектары.
  • Квадратные дюймы—Единицами измерения будут квадратные дюймы.
  • Квадратные футы—Единицами измерения будут квадратные футы.
  • Квадратные ярды—Единицами измерения будут квадратные ярды.
  • Квадратные мили—Единицами измерения будут квадратные мили.
  • Квадратные миллиметры—Единицами измерения будут квадратные миллиметры.
  • Квадратные сантиметры—Единицами измерения будут квадратные сантиметры.
  • Квадратные дециметры—Единицами измерения будут квадратные дециметры.
  • Квадратные метры—Единицами измерения будут квадратные метры.
  • Квадратные километры—Единицами измерения будут квадратные километры.
String

arcpy.analysis.TabulateIntersection(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,...]
(Дополнительный)

Суммируемые поля из параметра in_class_features.

Field
xy_tolerance
(Дополнительный)

Расстояние, определяющее диапазон, в котором объекты или их вершины считаются совпадающими. По умолчанию это Допуск XY параметра in_zone_features.

Внимание:

Изменение значения этого параметра может привести к сбою или неожиданным результатам. Рекомендуется не изменять этот параметр. Он был удален из поля зрения в диалоговом окне инструмента. По умолчанию используется свойство пространственной привязки допуск x,y входного класса пространственных объектов.

Linear Unit
out_units
(Дополнительный)

Задает единицы измерения, которые будут использоваться для расчета площади или длины. Настройка выходных единиц не поддерживается, если объекты входного класса являются точками.

  • UNKNOWN—Единицы измерения будут неизвестны.
  • INCHES—Единицами измерения будут дюймы.
  • FEET—Единицами измерения будут футы.
  • YARDS—Единицами измерения будут ярды.
  • MILES—Единицами измерения будут мили.
  • NAUTICAL_MILES—Единицами измерения будут морские мили.
  • MILLIMETERS—Единицами измерения будут миллиметры.
  • CENTIMETERS—Единицами измерения будут сантиметры.
  • DECIMETERS—Единицами измерения будут дециметры.
  • METERS—Единицами измерения будут метры.
  • KILOMETERS—Единицами измерения будут километры.
  • DECIMAL_DEGREES—Единицами измерения будут десятичные градусы.
  • POINTS—Единицами измерения будут точки.
  • ARES—Единицами измерения будут ары.
  • ACRES—Единицами измерения будут акры.
  • HECTARES—Единицами измерения будут гектары.
  • SQUARE_INCHES—Единицами измерения будут квадратные дюймы.
  • SQUARE_FEET—Единицами измерения будут квадратные футы.
  • SQUARE_YARDS—Единицами измерения будут квадратные ярды.
  • SQUARE_MILES—Единицами измерения будут квадратные мили.
  • SQUARE_MILLIMETERS—Единицами измерения будут квадратные миллиметры.
  • SQUARE_CENTIMETERS—Единицами измерения будут квадратные сантиметры.
  • SQUARE_DECIMETERS—Единицами измерения будут квадратные дециметры.
  • SQUARE_METERS—Единицами измерения будут квадратные метры.
  • SQUARE_KILOMETERS—Единицами измерения будут квадратные километры.
String

Пример кода

TabulateIntersection, пример 1 (окно Python)

Используйте функцию TabulateIntersection в окне Python для определения площади, занимаемой каждым типом растительности в каждой зоне.

import arcpy
arcpy.TabulateIntersection_analysis("Zones", "zone_id", "Vegetation", 
                                    r"C:\Esri\veganalysis.gdb\vegtypeAreas", 
                                    "VEGTYPE")
TabulateIntersection, пример 2 (автономный скрипт)

Этот скрипт запускает функцию TabulateIntersection, позволяющую создать простой инструмент-скрипт TabulateArea. Инструмент-скрипт TabulateArea принимает в качестве входных данных только полигональные объекты.

В полях Зона и Класс можно ввести только по одному значению.

'''
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 TabulateIntersection
try:
    arcpy.TabulateIntersection_analysis(zoneFC, zoneFld, classFC, outTab, 
                                        classFld, sum_Fields, xy_tol, outUnits)
except:
    arcpy.AddMessage("Tabulate Intersection Failed.")

AddMsgAndPrint(arcpy.GetMessages(), 0)

Информация о лицензиях

  • Basic: Нет
  • Standard: Нет
  • Advanced: Да

Связанные разделы