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

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

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

Иллюстрация

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

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

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

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

  • Если значение Поля класса задано, то значение Выходная таблица будет содержать 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.analysis.TabulateIntersection("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.analysis.TabulateIntersection(zoneFC, zoneFld, classFC, outTab, 
                                        classFld, sum_Fields, xy_tol, outUnits)
except:
    arcpy.AddMessage("Tabulate Intersection Failed.")

AddMsgAndPrint(arcpy.GetMessages(), 0)

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

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

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