Подпись | Описание | Тип данных |
Входные объекты зон | Объекты, используемые для определения зон. | Feature Layer |
Поля зон | Атрибутивное поле или поля, которые будут использованы для определения зон. | Field |
Объекты входного класса | Объекты, используемые для идентификации классов. | Feature Layer |
Выходная таблица | Таблица, содержащая кросс-таблицу пересечений между зонами и классами. | Table |
Поля классов (Дополнительный) | Атрибутивное поле или поля, используемые для определения классов. | Field |
Поля суммы (Дополнительный) | Суммируемые поля из параметра Объекты входного класса. | Field |
Допуск XY (Дополнительный) | Расстояние, определяющее диапазон, в котором объекты или их вершины считаются совпадающими. По умолчанию это расстояние равно значению Допуска XY Входных объектов зон. Внимание:Изменение значения этого параметра может привести к сбою или неожиданным результатам. Рекомендуется не изменять этот параметр. Он был удален из поля зрения в диалоговом окне инструмента. По умолчанию используется свойство пространственной привязки допуск x,y входного класса пространственных объектов. | Linear Unit |
Выходные единицы (Дополнительный) | Задает единицы измерения, которые будут использоваться для расчета площади или длины. Настройка выходных единиц не поддерживается, если объекты входного класса являются точками.
| String |
Краткая информация
Вычисляет пересечение между двумя классами пространственных объектов и создает кросс-таблицы, содержащие площади, длины или число пересекающихся объектов.
Иллюстрация
Использование
Зона включает в себя все объекты из параметра Входные объекты зон, для которых совпадают значения в параметре Поля зоны. Аналогично, класс включает в себя все объекты из параметра Объекты входного класса, для которых совпадают значения в параметре Поля класса. Объекты не обязательно должны граничить друг с другом, чтобы попасть в одну зону или класс. Этот инструмент рассчитывает, какая часть зоны пересекается каждым классом (включая площадь и процент площади зоны).
Если значение Поля класса не задано, все объекты из параметра Объекты входного класса будут считаться относящимися к одному классу. Значение Выходная таблица будет содержать одну запись для этой зоны.
Если значение Поля класса задано, то значение Выходная таблица будет содержать n записей для каждой зоны, где n – число классов внутри этой зоны. Например, если зона содержит четыре класса, значение Выходная таблица будет содержать четыре записи для этой зоны.
Числовые атрибуты из параметра Объекты входного класса могут суммироваться в пределах зоны с помощью параметра Поля суммирования. Суммарные значения для класса представляют пропорцию суммарных значений на основе процента класса, пересекающего зону.
Внимание:
Используйте в качестве Полей суммирования поля с абсолютными значениями (а не с относительными нормализованными значениями, как, например проценты или плотность), поскольку значения могут быть разделены и перераспределены по разным зонам.
Использование Объектов входного класса более высокой размерности, чем Входные объекты зоны не поддерживается.
- Если значения Входные объекты зон являются точками, значения Входные объекты классов не могут быть полигонами или линиями.
- Если значения Входные объекты зон являются линиями, значения Входные объекты классов не могут быть полигонами.
Если значения Входные объекты зон и Объекты входного класса являются полигонами, статистика выходной таблицы будет основана на вычислении площади.
Если значения Объекты входного класса являются линиями, статистика выходной таблицы будет основана на линейных расчетах.
Если значения Объекты входного класса являются точками, статистика выходной таблицы будет основана на подсчете объектов.
Если значения параметров Входные объекты зон и Объекты входного класса имеют одинаковое измерение (и те, и другие полигоны, линии или точки), в выходном поле PERCENTAGE записывается процент объекта зоны, пересекаемого классом.
Если значения Входные объекты зон и Объекты входного класса имеют разные измерения (полигональная зона с линейным классом или линейная зона с точечным классом), выходное поле PERCENTAGE будет содержать процент класса, пересекающего полигон зоны.
В поле PERCENTAGE можно записать процентное значение, превышающее 100, если есть перекрывающиеся объекты в параметрах Входные объекты зон или Объекты входного класса.
Выходная таблица содержит поле AREA, только если значения Входные объекты зон и Объекты входного класса являются полигонами. Поле AREA содержит площадь значений Входных объектов зон, которую пересекают значения Объекты входного класса.
Выходная таблица содержит поле LENGTH, если значения Объекты входного класса являются линиями. Поле LENGTH содержит длину пересечения между значениями Входные объекты зон и Объекты входного класса.
Выходная таблица содержит поле PNT_COUNT, если значения Объекты входного класса являются точками. Поле PNT_COUNT содержит количество точек Входных объектов класса, которые пересекают Входные объекты зоны.
При использовании векторных слоев, если какие-либо объекты выбраны, в расчетах используются только выбранные объекты.
Для определения пересечения объектов зон с объектами класса используются те же правила, что и при работе с инструментом Пересечение.
Используйте инструмент Сводная таблица для преобразования Выходной таблицы в таблицу, содержащую одну запись для каждой зоны с атрибутами класса в виде отдельных полей атрибутов. Заполните параметры инструмента Сводная таблица следующим образом:
- Входная таблица – Таблица пересечений Выходная таблица
- Входные поля – Таблица пересечений Поля зоны
- Поле столбцов – Таблица пересечений Поля класса
- Поле значений – Таблица пересечений Поля суммирования или AREA, LENGTH PERCENTAGE
Параметры
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 (Дополнительный) | Задает единицы измерения, которые будут использоваться для расчета площади или длины. Настройка выходных единиц не поддерживается, если объекты входного класса являются точками.
| String |
Пример кода
Используйте функцию TabulateIntersection в окне Python для определения площади, занимаемой каждым типом растительности в каждой зоне.
import arcpy
arcpy.analysis.TabulateIntersection("Zones", "zone_id", "Vegetation",
r"C:\Esri\veganalysis.gdb\vegtypeAreas",
"VEGTYPE")
Этот скрипт запускает функцию 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: Да