Пересечь (Intersect) (Анализ)
Краткая информация
Вычисляет геометрическое пересечение между входными объектами. Пространственные объекты или части объектов, которые перекрываются во всех слоях и/или классах пространственных объектов, будут записаны в выходной класс объектов.
Более подробно о том, как работает инструмент Пересечение (Intersect)
Рисунок
Использование
-
Входными объектами должны быть простые пространственные объекты: точки, мультиточки, линии или полигоны. Входные объекты не могут быть сложными, такими как объекты-аннотации, объекты-размеры или сетевые объекты.
-
Если у входных объектов разные геометрические типы (такие, как линия на полигон, точка на линию и т.д.), геометрический тип класса выходных объектов по умолчанию такой же, как у входных объектов с самой простой геометрией. Например, если одни или несколько входных данных - точечного типа, выходные данные по умолчанию будут точками; если одни или несколько входных данных - линейного типа, выходные данные по умолчанию будут линиями; если входные данные - полигоны, выходные данные будут полигонами.
-
Выходной тип может быть таким же, как у входных объектов с самой простой геометрией или проще. Например, если все входные данные - полигоны, выходные могут быть полигонами, линиями или точками. Если одни из входных наборов данных - линейного типа и нет ни одного точечного типа, выходные могут быть линейными или точечными. Если какие-либо из входных данных представлены точками, выходной тип может быть только точечным.
-
Атрибутивные значения из входных классов пространственных объектов будут скопированы в выходной класс. Однако если входными данными является слой или слои, созданные инструментом Создать векторный слой (Make Feature Layer), и отмечена опция поля Использовать правило пропорции (Use Ratio Policy), то тогда вычисляется доля входного значения атрибута и сохраняется как выходное атрибутивное значение. Если включено Использовать правило пропорции (Use Ratio Policy), всякий раз при разбивке пространственного объекта в операции наложения, атрибутами результирующего пространственного объекта будет пропорция значения атрибутов входных объектов. Выходное значение вычисляется на основании пропорции, в соответствии с которой была разделена геометрия входных объектов. Например, если входная геометрия была разделена на две равные части, атрибутивное значение нового пространственного объекта будет равно половине атрибутивного значения соответствующего входного объекта. Использовать правило пропорции (Use Ratio Policy) применяется только к числовым типам полей.
Внимание:Инструменты геообработки не поддерживают правила разбиения (split policies) для полей или таблиц класса пространственных объектов базы геоданных.
-
Для обработки очень больших наборов данных при работе инструмента используется разбивка на листы, для повышения производительности и масштабируемости. Для получения более подробной информации см. Геообработка больших наборов данных.
Для лицензий ArcGIS for Desktop Basic и Standard может быть только два входных класса объектов или векторных слоя.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features [in_features, {Rank},...] |
Список исходных классов объектов или слоёв. Если расстояние между объектами меньше кластерного допуска, объекты с более низким рангом точности будут совмещены с объектами с более высоким рангом. Самый высокий ранг - 1. Для получения дополнительной информации, см. Ранги и инструменты геообработки. | Value Table |
out_feature_class |
Выходной класс объектов. | Feature Class |
join_attributes (дополнительно) |
Определяет, какие атрибуты входных объектов будут перенесены в выходной класс объектов.
| String |
cluster_tolerance (дополнительно) |
Минимальное расстояние, в пределах которого координаты узлов и вершин объектов считаются различимыми, и на которое могут быть смещены координаты по X или Y (или и то и другое). | Linear unit |
output_type (дополнительно) |
Выберите тип выходных объектов, создаваемых в результате пересечения.
| String |
Пример кода
Пример скрипта Python для выполнения функции Пересечение (Intersect) с запуском из окна Python в ArcGIS.
import arcpy
from arcpy import env
env.workspace = "C:/data/RedRiver_basin.gdb"
arcpy.Intersect_analysis (["vegetation_stands", "road_buffer200m", "water_buffer100"], "mysites", "ALL", "", "")
arcpy.Intersect_analysis ([["vegetation_stands", 2], ["road_buffer200m", 1], ["water_buffer100", 2]], "mysites_ranked", "ALL", "", "")
Пример использования функции Пересечение (Intersect) как части рабочего процесса анализа для определения типа растительности в радиусе 100 метров от области пересечения всех потоков (автономный режим).
#Name: VegRoadIntersect.py
# Purpose: Determine the type of vegetation within 100 meters of all stream crossings
#Author: ESRI
# Import system modules
import arcpy
from arcpy import env
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
env.workspace = "c:/data/data.gdb"
# Process: Find all stream crossings (points)
inFeatures = ["roads", "streams"]
intersectOutput = "stream_crossings"
clusterTolerance = 1.5
arcpy.Intersect_analysis(inFeatures, intersectOutput, "", clusterTolerance, "point")
# Process: Buffer all stream crossings by 100 meters
bufferOutput = "stream_crossings_100m"
bufferDist = "100 meters"
arcpy.Buffer_analysis(intersectOutput, bufferOutput, bufferDist)
# Process: Clip the vegetation feature class to stream_crossing_100m
clipInput = "vegetation"
clipOutput = "veg_within_100m_of_crossings"
arcpy.Clip_analysis(clipInput, bufferOutput, clipOutput)
# Process: Summarize how much (area) of each type of vegetation is found
#within 100 meter of the stream crossings
statsOutput = "veg_within_100m_of_crossings_stats"
statsFields = [["shape_area", "sum"]]
caseField = "veg_type"
arcpy.Statistics_analysis(clipOutput, statsOutput, statsFields, caseField)
except Exception, e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "Line %i" % tb.tb_lineno
print e.message