ArcGIS for Desktop

  • Документация
  • Стоимость
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS for Desktop

Полноценная профессиональная ГИС

ArcGIS for Server

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Стоимость
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • Главная
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительно...

Пространственное соединение

  • Краткая информация
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензировании

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

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

Иллюстрации с примерами пространственных отношений

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

  • Пространственное соединение предполагает сопоставление строк атрибутивной таблицы Присоединяемых объектов (Join Features) и Целевых объектов (Target Features) на основании их пространственного расположения.

  • По умолчанию все атрибуты присоединяемых объектов присоединяются к атрибутам целевых объектов и копируются в выходной класс объектов. Можно задать, какие атрибуты будут записаны в выходной класс объектов, настроив параметр Список полей соединенных объектов (Field Map of Join Features).

  • Два новых поля, Join_Count и TARGET_FID, всегда добавляются к выходному классу объектов. Join_Count показывает, сколько соединенных объектов соответствуют каждому целевому объекту (TARGET_FID).

    Еще одно новое поле, JOIN_FID, добавляется к выходным данным, когда для параметра Операции соединения (Join Operation) выбрано значение JOIN_ONE_TO_MANY.

  • Если для параметра Операции соединения (Join Operation) указано значение JOIN_ONE_TO_MANY, каждому целевому объекту в выходном классе может соответствовать более одной строки. Поле JOIN_FID облегчает определение того, к какому целевому объекту (TARGET_FID) присоединяется тот или иной объект. Значение -1 в поле JOIN_FID означает, что ни один объект не соответствует заданному пространственному отношению с целевым объектом.

  • Все целевые объекты исходного класса будут сохранены в выходном классе объектов, если:

    • Для параметра Кардинальность соединения (Join Operation) задано JOIN_ONE_TO_ONE и
    • отмечена опция Сохранить все целевые объекты (Keep All Target Features) (join_type = "KEEP_ALL" в Python).

  • Правила слияния, определяемые при настройке параметра Список полей соединенных объектов (Field Map of Join Features), применимы только к атрибутам присоединяемых объектов, если более одного объекта присоединяется к одному целевому объекту (когда Join_Count > 1). Например, если к одному целевому объекту присоединяются три объекта, со значениями атрибута DEPTH 15.5, 2.5, и 3.3, и используется правило слияния Среднее, в выходное атрибутивное поле будет записано значение 6.1. При статистическом расчете нулевые значения в соединяемых полях игнорируются. Например, 15,5, <null> и 2,5 дадут в результате 9,0 для Среднего (Mean) и 2 для Количества (Count).

  • Если для параметра Опции сопоставления (Match Option) выбрано CLOSEST или CLOSEST_GEODESIC, существует вероятность, что два или более присоединяемых объектов находятся на одинаковом расстоянии от целевого объекта. В это случае присоединен будет только один объект, выбираемый случайным образом (идентификатор присоединяемого объекта на выбор не влияет). Если вы хотите выбрать конкретный 2-й, 3-й или N-й ближайший объект, используйте инструмент Построить таблицу соседних объектов (Generate Near Table).

    Более подробно о вычислении близости

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

  • Подробнее об использовании трехмерных пространственных отношений INTERSECT_3D и WITHIN_A_DISTANCE_3D, см. в разделе Отношения Выборка по расположению 3D.

Синтаксис

SpatialJoin_analysis (target_features, join_features, out_feature_class, {join_operation}, {join_type}, {field_mapping}, {match_option}, {search_radius}, {distance_field_name})
ПараметрОбъяснениеТип данных
target_features

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

Feature Layer
join_features

Атрибуты, которые будут присоединены к объектам целевого класса. Дополнительные сведения о том, как тип операции соединения влияет на объединение присоединяемых атрибутов, см. в описании параметра join_operation.

Feature Layer
out_feature_class

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

Feature Class
join_operation
(дополнительно)

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

  • JOIN_ONE_TO_ONE —Если найдено несколько присоединяемых объектов, которые имеют одинаковое пространственное расположение по отношению к одному целевому объекту, будут агрегированы атрибуты из нескольких соединяемых объектов с использованием правила слияния в соответствии со Списком полей (Field Map). Например, если точечный целевой объект расположен внутри двух отдельных полигонов в классе присоединяемых объектов, атрибуты этих двух полигонов будут агрегированы до переноса в выходной класс объектов. Если один полигон имеет атрибутивное значение 3, а другой – значение 7, и задано правило слияния Суммарное значение (Sum), значение в выходном классе объектов будет равно 10. Эта опция используется по умолчанию.
  • JOIN_ONE_TO_MANY —Если найдено несколько присоединяемых объектов, которые имеют одинаковое пространственное расположение по отношению к одному целевому объекту, выходной класс объектов будет содержать несколько копий строки атрибутивной таблицы соответствующего целевого объекта. Например, если точечный целевой объект расположен внутри двух отдельных полигонов в классе присоединяемых объектов, выходной класс объектов будет содержать две строки атрибутивной таблицы целевого объекта: одна – с атрибутами одного полигона, другая – с атрибутами другого.
String
join_type
(дополнительно)

Определяет, будут ли поддерживаться в выходном классе объектов (внешнее соединение) все целевые объекты или только те, у которых имеется заданное пространственное отношение с соединяемыми объектами (внутреннее соединение).

  • KEEP_ALL —Все целевые объекты будут записаны в выходные данные (внешнее соединение). Это значение используется по умолчанию.
  • KEEP_COMMON — Только те целевые объекты, которые имеют заданное пространственное отношение с соединяемыми объектами, будут поддерживаться в выходном классе объектов (внутреннее соединение). Например, если для целевых объектов задан класс точечных объектов, а для присоединяемых объектов – класс полигональных объектов, и match_option = "WITHIN", выходной класс объектов будет содержать только те целевые объекты, которые находятся внутри полигонального соединяемого объекта; все целевые объекты, не находящиеся в пределах соединяемых объектов, будут исключены из выходных данных.
Boolean
field_mapping
(дополнительно)

Контролирует, какие атрибутивные поля будут в выходном классе объектов. Список содержит все поля и целевых, и присоединяемых объектов. Поля можно добавить, удалить, переименовать или изменить их свойства. Выбранные поля переносятся из целевых объектов в неизменяемом виде, а выбранные поля из присоединяемых объектов могут объединяться в соответствии с правилом слияния. Дополнительные сведения о сопоставлении полей см. в разделах справки: Использование элемента управления сопоставлением полей и Сопоставление входных и выходных полей. Можно задать несколько полей и комбинацию статистических показателей.

Field Mappings
match_option
(дополнительно)

Определяет критерии для сопоставления строк. Опции сопоставления:

  • INTERSECT —Присоединяемые объекты учитываются, если они пересекают целевые объекты. Это значение используется по умолчанию. Введите значение параметра search_radius.
  • INTERSECT_3D — Присоединяемые объекты учитываются, если они пересекают целевые объекты в трехмерном пространстве (x, y и z). Введите значение параметра search_radius.
  • WITHIN_A_DISTANCE —Присоединяемые объекты учитываются, если они находятся в пределах указанного расстояния от целевого объекта. Введите значение параметра search_radius.
  • WITHIN_A_DISTANCE_GEODESIC —Такое же, как и WITHIN_A_DISTANCE , только используется геодезическое расстояние, а не плоскостное. Выберите, если ваши данные расположены на большой территории или если система координат входных объектов не подходит для вычисления расстояний.
  • WITHIN_A_DISTANCE_3D —Присоединяемые объекты учитываются, если они находятся в пределах указанного расстояния от целевого объекта в трехмерном пространстве. Введите значение параметра search_radius.
  • CONTAINS —Целевые объекты должны содержать в своих границах присоединяемые объекты. Целевыми объектами должны быть полигоны или полилинии. Для этой опции целевые объекты не могут быть точками, а присоединяемые объекты могут быть только полигонами, если целевые объекты также являются полигонами.
  • COMPLETELY_CONTAINS —Присоединяемые объекты учитываются, если они целиком содержатся в целевом объекте. Полигон может полностью содержать любой объект. Точка не может полностью содержать какой-либо объект, даже точку. Полилиния может полностью содержать только полилинию и точку.
  • CONTAINS_CLEMENTINI —Это пространственное отношение дает те же результаты, что и COMPLETELY_CONTAINS, за исключением ситуаций, когда присоединяемый объект находится целиком на границе целевого объекта (ни одна часть не находится внутри или за пределами); в этом случае объект учитываться не будет. Опция Клементини предполагает, что граница полигона – это линия, отделяющая внутреннюю область полигона от внешней, граница линии – это ее конечные точки, а граница точки всегда является пустой.
  • WITHIN —Целевые объекты должны содержать в своих границах присоединяемые объекты. Это противоположность CONTAINS. Для этой опции целевые объекты могут быть только полигонами, а присоединяемые объекты – также полигонами. Точка может быть присоединяемым объектом, только если целевым объектом является точка.
  • COMPLETELY_WITHIN —Присоединяемые объекты учитываются, если целевой объект целиком в них содержится. Это противоположность COMPLETELY_CONTAINS.
  • WITHIN_CLEMENTINI —Результат будет тем же, что и с опцией WITHIN, за исключением ситуаций, когда присоединяемый объект находится целиком на границе целевого объекта; в этом случае объект учитываться не будет. Опция Клементини предполагает, что граница полигона – это линия, отделяющая внутреннюю область полигона от внешней, граница линии – это ее конечные точки, а граница точки всегда является пустой.
  • ARE_IDENTICAL_TO —Присоединяемые объекты учитываются, если они идентичны целевому объекту. Присоединяемый и целевой объекты должны иметь один и тот же тип геометрии – точка и точка, линия и линия или полигон и полигон.
  • BOUNDARY_TOUCHES —Присоединяемые объекты учитываются, если их границы касаются целевого объекта. Если целевые и присоединяемые объекты являются линиями или полигонами, граница присоединяемого объекта может только касаться границы целевого объекта, и ни одна часть присоединяемого объекта может не пересекать границу целевого объекта.
  • SHARE_A_LINE_SEGMENT_WITH —Присоединяемые объекты учитываются, если они имеют общий линейный сегмент с целевым объектом. Присоединяемые и целевые объекты должны быть линейными или полигональными.
  • CROSSED_BY_THE_OUTLINE_OF —Присоединяемые объекты учитываются, если целевой объект пересекается их контуром. Присоединяемые и целевые объекты должны быть линейными или полигональными. Если присоединяемыми и целевыми объектами являются полигоны, используется граница полигона (линия). Будут учитываться линии, пересекающиеся в точке, но не линии с общим линейным сегментом.
  • HAVE_THEIR_CENTER_IN —Присоединяемые объекты учитываются, если они содержат в своих границах центр целевого объекта. Центр объекта вычисляется следующим образом: для полигонального и мультиточечного объекта используется его геометрический центроид, а для линии используется ее геометрическая середина. Введите значение параметра search_radius.
  • CLOSEST —К целевому объекту присоединяется наиболее близко расположенный у нему присоединяемый объект. Более подробно см. советы по использованию. Введите значение параметра search_radius.
  • CLOSEST_GEODESIC —Такое же, как и CLOSEST , только используется геодезическое расстояние, а не плоскостное. Выберите, если ваши данные расположены на большой территории или если система координат входных объектов не подходит для вычисления расстояний
String
search_radius
(дополнительно)

Расстояние от целевого объекта, в пределах которого присоединяемые объекты будут учитываться для пространственного соединения. Радиус поиска является корректным, только если для пространственного отношения (Опции сопоставления (Match Option)) задано INTERSECT, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, HAVE_THEIR_CENTER_IN, CLOSEST или CLOSEST_GEODESIC. При радиусе поиска в 100 метров с пространственным отношением WITHIN_A_DISTANCE, будут присоединяться объекты, расположенные в пределах 100 метров от целевого объекта. Для трех отношений WITHIN_A_DISTANCE, если значение радиуса поиска не задано, используется дистанция 0.

Linear unit
distance_field_name
(дополнительно)

Имя поля, которое будет добавлено в выходной класс объектов и в котором будет информация о расстоянии между целевым объектом и ближайшим присоединяемым объектом. Эта опция является корректной, только если задано пространственное отношение (Опции сопоставления) CLOSEST или CLOSEST_GEODESIC. Значения в этом поле равно -1, если в пределах радиуса поиска не найдено подходящего объекта. Если не указано имя поля, это поле не будет добавлено в выходной класс объектов.

String

Пример кода

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

Пример скрипта Python для использования функции SpatialJoin.

import arcpy

target_features = "C:/data/usa.gdb/states"
join_features = "C:/data/usa.gdb/cities"
out_feature_class = "C:/data/usa.gdb/states_cities"

arcpy.SpatialJoin_analysis(target_features, join_features, out_feature_class)
SpatialJoin, gример 2 (автономный скрипт)

Пример автономного скрипта Python для использования функции SpatialJoin для соединения атрибутов городов и районов.

# Name: SpatialJoin_Example2.py
# Description: Join attributes of cities to states based on spatial relationships.
# Requirements: os module

# Import system modules
import arcpy
import os

# Set local variables
workspace = r"C:\gpqa\mytools\spatialjoin\usa.gdb"
outWorkspace = r"C:\gpqa\mytools\spatialjoin\output.gdb"
 
# Want to join USA cities to states and calculate the mean city population
# for each state
targetFeatures = os.path.join(workspace, "states")
joinFeatures = os.path.join(workspace, "cities")
 
# Output will be the target features, states, with a mean city population field (mcp)
outfc = os.path.join(outWorkspace, "states_mcp2")
 
# Create a new fieldmappings and add the two input feature classes.
fieldmappings = arcpy.FieldMappings()
fieldmappings.addTable(targetFeatures)
fieldmappings.addTable(joinFeatures)
 
# First get the POP1990 fieldmap. POP1990 is a field in the cities feature class.
# The output will have the states with the attributes of the cities. Setting the
# field's merge rule to mean will aggregate the values for all of the cities for
# each state into an average value. The field is also renamed to be more appropriate
# for the output.
pop1990FieldIndex = fieldmappings.findFieldMapIndex("POP1990")
fieldmap = fieldmappings.getFieldMap(pop1990FieldIndex)
 
# Get the output field's properties as a field object
field = fieldmap.outputField
 
# Rename the field and pass the updated field object back into the field map
field.name = "mean_city_pop"
field.aliasName = "mean_city_pop"
fieldmap.outputField = field
 
# Set the merge rule to mean and then replace the old fieldmap in the mappings object
# with the updated one
fieldmap.mergeRule = "mean"
fieldmappings.replaceFieldMap(pop1990FieldIndex, fieldmap)
 
# Delete fields that are no longer applicable, such as city CITY_NAME and CITY_FIPS
# as only the first value will be used by default
x = fieldmappings.findFieldMapIndex("CITY_NAME")
fieldmappings.removeFieldMap(x)
y = fieldmappings.findFieldMapIndex("CITY_FIPS")
fieldmappings.removeFieldMap(y)
 
#Run the Spatial Join tool, using the defaults for the join operation and join type
arcpy.SpatialJoin_analysis(targetFeatures, joinFeatures, outfc, "#", "#", fieldmappings)

Параметры среды

  • Текущая рабочая область (Current Workspace)
  • Временная рабочая область (Scratch Workspace)
  • Выходная система координат (Output Coordinate System)
  • Географические преобразования (Geographic Transformations)
  • Экстент (Extent)
  • Разрешение M (M Resolution)
  • Допуск M (M Tolerance)
  • Выходной домен M (Output M Domain)
  • Выходной XY домен (Output XY Domain)
  • Выходной домен Z (Output Z Domain)
  • Выходные данные содержат значения M (Output has M values)
  • Выходное значение Z по умолчанию (Default Output Z Value)
  • Выходные данные содержат Z значения (Output has Z values)
  • Разрешение XY (XY Resolution)
  • Допуск XY (XY Tolerance)
  • Разрешение Z (Z Resolution)
  • Допуск Z (Z Tolerance)

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

  • ArcGIS for Desktop Basic: Да
  • ArcGIS for Desktop Standard: Да
  • ArcGIS for Desktop Advanced: Да

Связанные темы

  • Обзор группы инструментов Наложение
  • Пространственные взаимоотношения по типу объекта
  • Выбрать по расположению: графические примеры
Отзыв по этому разделу?

ArcGIS for Desktop

  • На главную
  • Документация
  • Стоимость
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация