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

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

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

Иллюстрация

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

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

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

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

  • Если значение Поля класса задано, то значение Выходная таблица будет содержать 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
(Дополнительный)

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

Внимание:

Изменение значения этого параметра может привести к сбою или неожиданным результатам. Рекомендуется не изменять этот параметр. Он был удален из поля зрения в диалоговом окне инструмента. По умолчанию используется свойство пространственной привязки допуск 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
(Дополнительный)

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

Внимание:

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

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

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

  • UNKNOWNЕдиницы измерения будут неизвестны.
  • KILOMETERSЕдиницами измерения будут километры.
  • METERSЕдиницами измерения будут метры.
  • DECIMETERSЕдиницами измерения будут дециметры.
  • CENTIMETERSЕдиницами измерения будут сантиметры.
  • MILLIMETERSЕдиницами измерения будут миллиметры.
  • MILES_INTERNATIONALЕдиницами измерения будут сухопутные мили.
  • NAUTICAL_MILES_INTERNATIONALЕдиницами измерения будут международные морские мили.
  • YARDS_INTERNATIONALЕдиницами измерения будут международные ярды.
  • FEET_INTERNATIONALЕдиницами измерения будут международные футы.
  • INCHES_INTERNATIONALЕдиницами измерения будут международные дюймы.
  • MILESЕдиницами измерения будут геодезические мили (США).
  • NAUTICAL_MILESЕдиницами измерения будут геодезические морские мили США.
  • YARDSЕдиницами измерения будут геодезические ярды США.
  • FEETЕдиницами измерения будут геодезические футы США.
  • INCHESЕдиницами измерения будут геодезические дюймы США.
  • DECIMAL_DEGREESЕдиницами измерения будут десятичные градусы.
  • POINTSЕдиницами измерения будут точки.
  • ARESЕдиницами измерения будут ары.
  • SQUARE_KILOMETERSЕдиницами измерения будут квадратные километры.
  • SQUARE_METERSЕдиницами измерения будут квадратные метры.
  • SQUARE_DECIMETERSЕдиницами измерения будут квадратные дециметры.
  • SQUARE_CENTIMETERSЕдиницами измерения будут квадратные сантиметры.
  • SQUARE_MILLIMETERSЕдиницами измерения будут квадратные миллиметры.
  • SQUARE_MILESЕдиницами измерения будут квадратные сухопутные мили.
  • SQUARE_YARDSЕдиницами измерения будут квадратные международные ярды.
  • SQUARE_FEETЕдиницами измерения будут квадратные международные футы.
  • SQUARE_INCHESЕдиницами измерения будут квадратные международные дюймы.
  • SQUARE_MILES_USЕдиницами измерения будут квадратные геодезические мили США.
  • SQUARE_YARDS_USЕдиницами измерения будут квадратные геодезические ярды США.
  • SQUARE_FEET_USЕдиницами измерения будут квадратные геодезические футы США.
  • SQUARE_INCHES_USЕдиницами измерения будут квадратные геодезические дюймы США.
  • ACRES_USЕдиницами измерения будут геодезические акры США.
  • HECTARESЕдиницами измерения будут гектары.
  • ACRESЕдиницами измерения будут международные акры.
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: Да

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