Пространственное соединение (Анализ)

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

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

Узнайте больше об отношениях пространственного соединения по типу пространственного объекта

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

  • Пространственное соединение сопоставляет значения в строках Присоединяемых объектов со значениями в строках Целевых объектов на основе их пространственного расположения относительно друг друга.

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

  • В выходной класс объектов будут добавлены следующие поля:

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

      Если значение параметра Присоединить объекты представляет собой один входной параметр, выходной параметр будет иметь поле Join_Count по умолчанию. Если имеется более одного входного параметра, имя поля количества соединений будет включать имя входного параметра по умолчанию, например Input1_JoinCount, Input2_JoinCount и т. д. Укажите имя этого поля, заполнив столбец Имя поля Количество соединений.

    • TARGET_FID- Оbject ID целевого объекта,

    Дополнительное поле, JOIN_FID, будет добавлено к выходным данным, если параметр Операция объединения установлен на Присоединить Один-ко-многим. Это поле представляет собой идентификатор object ID соединяемого объекта.

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

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

    • Параметр Операция соединения установлен как Присоединить Один-к-одному.
    • Параметр Сохранить все целевые объекты отмечен.

  • Для постоянного переноса полей в целевой класс объектов используйте инструмент Добавить пространственное соединение с отмеченным параметром Окончательно присоединить поля.

  • Используйте параметр Список полей для управления полями и их содержанием во входных наборах данных.

    • Добавляйте и удаляйте поля из списка полей, изменяйте порядок и переименовывайте поля.
    • Тип данных выходного поля по умолчанию будет таким же, как тип данных первого входного поля (того имени), которое он находит. Вы можете изменить тип данных на другой допустимый тип.
    • Используйте действие, чтобы определить, как значения из одного или нескольких входных полей будут объединены в одно выходное поле. Доступны следующие действия: Первое, Последнее, Соединить, Сумма, Среднее, Медиана, Режим, Минимум, Максимум, Стандартное отклонение и Число.
    • При использовании действия Соединить, вы можете задать разделитель, например, точку или другой символ. Щелкните начало текстового поля Разделитель, чтобы добавить символы-разделители.
    • Стандартное отклонение не является допустимым параметром для одиночных входных значений.
    • Используйте опцию Экспорт Экспорт для сохранения списка полей как файл .fieldmap.
    • Используйте опцию Загрузить Import, чтобы загрузить файл .fieldmap. Векторный слой или набор данных, указанный в файле, должен соответствовать набору данных, используемому в инструменте. Иначе параметр Список полей будет сброшен.
    • Используйте кнопку Фрагмент текста Вырезать в исходных текстовых полях, чтобы выбрать, какие символы из входного значения будут извлечены в выходное поле. Чтобы получить доступ к кнопке Фрагмент текста, наведите курсор на текстовое поле в списке входных полей, затем укажите начальную и конечную позиции символов.
    • Поля также можно сопоставить в скрипте Python.

  • Действия, определяемые с помощью параметра Список полей, применяются только к атрибутам присоединяемых объектов, если более одного объекта соответствует целевому объекту (если Join_Count > 1). Например, если к одному целевому объекту присоединяются три объекта со значениями атрибута DEPTH 15.5, 2.5 и 3.3, и используется действие Среднее, в выходное атрибутивное поле будет записано значение 6.1. При статистическом расчете нулевые значения в соединяемых полях игнорируются. Например, для значений 15.5, значения null и 2.5 результатом будет 9.0 для Среднего и 2 для Количества.

  • Если параметр Опции сопоставления настроен как Ближайший или Геодезически ближайший, то как минимум два присоединяемых объекта находятся на одинаковом расстоянии от целевого объекта. В этом случае присоединен будет только один объект, выбираемый случайным образом (Object ID присоединяемого объекта на выбор не влияет). Чтобы найти 2-й, 3-й или n-й ближайший объект, используйте инструмент Построить таблицу соседних объектов.

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

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

  • Параметр Сопоставление атрибутов отфильтровывает объекты, которым будут соответствовать пространственные отношения, указанные в параметре Опция сопоставления. Укажите поля из присоединяемых и целевых объектов, у которых, в дополнение к их пространственному отношению, должны быть сопоставленные атрибуты.

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

Параметры

ПодписьОписаниеТип данных
Целевые объекты

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

Feature Layer
Присоединяемые объекты

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

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

Value Table
Выходной класс объектов

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

Feature Class
Операция соединения
(Дополнительный)

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

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

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

  • Отмечено – все целевые объекты будут записаны в выходные данные (внешнее соединение). Это значение по умолчанию
  • Не отмечено – Только те целевые объекты, которые имеют заданное пространственное отношение с соединяемыми объектами, будут поддерживаться в выходном классе объектов (внутреннее соединение). Например, если в качестве целевых объектов указан класс точечных объектов, а для соединяемых объектов указан класс полигональных объектов, когда параметру Опция сопоставления установлено значение В пределах, выходной класс объектов будет содержать только те целевые объекты, которые находятся внутри соединяемого полигонального объекта. Все целевые объекты, которые не попадают в пределы присоединяемых объектов, будут исключены из выходных данных.
Boolean
Список полей
(Дополнительный)

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

Используйте список полей для добавления, удаления, переименования и изменения порядка полей, а также для изменения других свойств полей.

Список полей также может использоваться для объединения значений из двух или более входных полей в одно выходное.

Field Mappings
Опции сопоставления
(Дополнительный)

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

  • Пересечение—Присоединяемые объекты учитываются, если они пересекают целевые объекты. Это значение по умолчанию Укажите расстояние в параметре Радиус поиска.
  • Пересечение 3D—Присоединяемые объекты учитываются, если они пересекают целевые объекты в трехмерном пространстве (x, y и z). Укажите расстояние в параметре Радиус поиска.
  • В пределах расстояния—Присоединяемые объекты учитываются, если они находятся в пределах указанного расстояния от целевого объекта. Укажите расстояние в параметре Радиус поиска.
  • В пределах геодезического расстояния—Такое же, как и В пределах расстояния, только используется геодезическое расстояние, а не плоскостное. Расстояние между объектами будет вычислено геодезически, т.е. с учетом кривизны поверхности Земли и корректной обработкой данных, расположенных вокруг линий перемены дат и в приполярных областях. Используйте эту опцию, если ваши данные покрывают большую территорию, или если система координат входных объектов не подходит для вычисления расстояний.
  • В пределах расстояния 3D—Присоединяемые объекты учитываются, если они находятся в пределах указанного расстояния от целевого объекта в трехмерном пространстве. Укажите расстояние в параметре Радиус поиска.
  • Содержит—Целевые объекты должны содержать в своих границах присоединяемые объекты. Целевыми объектами должны быть полигоны или полилинии. Для этой опции целевые объекты не могут быть точками, а присоединяемые объекты могут быть только полигонами, если целевые объекты также являются полигонами.
  • Полностью содержит—Присоединяемые объекты учитываются, если они целиком содержатся в целевом объекте. Полигон может полностью содержать любой объект. Точка не может полностью содержать какой-либо объект, даже точку. Полилиния может полностью содержать только полилинию и точку.
  • Содержит по Клементини—Это пространственное отношение дает те же результаты, что и Полностью содержит, за исключением ситуаций, когда присоединяемый объект находится целиком на границе целевого объекта (ни одна часть не находится внутри или вне его); в этом случае объект учитываться не будет. Клементини определяет границу полигона, как линию, разделяющую внешнюю и внутреннюю области полигона, границу линии – как её конечную точку, а граница точки всегда является пустой.
  • Внутри—Целевые объекты должны содержать в своих границах присоединяемые объекты. Это противоположность отношения Содержит. Для этой опции целевые объекты могут быть только полигонами, а присоединяемые объекты – также полигонами. Точка может быть присоединяемым объектом, только если целевым объектом является точка.
  • Полностью в пределах—Присоединяемые объекты учитываются, если целевой объект целиком в них содержится. Это противоположность отношения Полностью содержит.
  • Внутри по Клементи—Результат будет тем же, что и с опцией Within, за исключением ситуаций, когда присоединяемый объект находится целиком на границе целевого объекта; в этом случае объект учитываться не будет. Клементини определяет границу полигона, как линию, разделяющую внешнюю и внутреннюю области полигона, границу линии – как её конечную точку, а граница точки всегда является пустой.
  • Идентичны—Присоединяемые объекты учитываются, если они идентичны целевому объекту. Присоединяемый и целевой объекты должны иметь один и тот же тип геометрии – точка к точке, линия к линии или полигон к полигону.
  • Касаются границы—Присоединяемые объекты учитываются, если их границы касаются целевого объекта. Если целевые и присоединяемые объекты являются линиями или полигонами, граница присоединяемого объекта может только касаться границы целевого объекта, и ни одна часть присоединяемого объекта не может пересекать границу целевого объекта.
  • Имеют общий линейный сегмент с—Присоединяемые объекты учитываются, если они имеют общий линейный сегмент с целевым объектом. Присоединяемые и целевые объекты должны быть линейными или полигональными.
  • Пересекается границей—Присоединяемые объекты учитываются, если целевой объект пересекается их контуром. Присоединяемые и целевые объекты должны быть линейными или полигональными. Если присоединяемыми и целевыми объектами являются полигоны, используется граница полигона (линия). Будут учитываться линии, пересекающиеся в точке, но не линии с общим линейным сегментом.
  • Имеют центр внутри—Присоединяемые объекты учитываются, если они содержат в своих границах центр целевого объекта. Центр объекта вычисляется следующим образом: для полигонального и мультиточечного объекта используется его геометрический центроид, а для линии используется ее геометрическая середина. Укажите расстояние в параметре Радиус поиска.
  • Ближайший—К целевому объекту присоединяется наиболее близко расположенный у нему присоединяемый объект. Более подробно см. советы по использованию. Укажите расстояние в параметре Радиус поиска.
  • Геодезически ближайший—Такое же, как и Ближайший, только используется геодезическое расстояние, а не плоскостное. Используйте эту опцию, если ваши данные покрывают большую территорию, или если система координат входных объектов не подходит для вычисления расстояний.
  • Наибольшее перекрытие—Объект в присоединяемых объектах будет сопоставлен с целевым объектом с наибольшим перекрытием.
String
Радиус поиска
(Дополнительный)

Расстояние от целевого объекта, в пределах которого присоединяемые объекты будут учитываться для пространственного соединения. Радиус поиска допустим только в том случае, если задано пространственное отношение (параметр Опция сопоставления задан как Пересекает, В пределах расстояния, В пределах геодезического расстояния, Имеет центр в, Ближайший или Ближайший геодезически). Например, при радиусе поиска в 100 метров с пространственным отношением В пределах расстояния будут присоединяться объекты, расположенные в пределах 100 метров от целевого объекта. Для трех отношений в пределах расстояния, если значение Радиуса поиска не задано, используется расстояние 0.

Linear Unit
Имя поля расстояния
(Дополнительный)

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

String
Сопоставление полей
(Дополнительный)

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

Value Table

arcpy.analysis.SpatialJoin(target_features, join_features, out_feature_class, {join_operation}, {join_type}, {field_mapping}, {match_option}, {search_radius}, {distance_field_name}, {match_fields})
ИмяОписаниеТип данных
target_features

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

Feature Layer
join_features
[join_features,...]

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

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

Value Table
out_feature_class

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

Feature Class
join_operation
(Дополнительный)

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

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

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

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

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

Используйте список полей для добавления, удаления, переименования и изменения порядка полей, а также для изменения других свойств полей.

Список полей также может использоваться для объединения значений из двух или более входных полей в одно выходное.

В Python используйте класс FieldMappings для задания этого параметра.

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, только используется геодезическое расстояние, а не плоскостное. Используйте эту опцию, если ваши данные покрывают большую территорию, или если система координат входных объектов не подходит для вычисления расстояний.
  • LARGEST_OVERLAP—Объект в присоединяемых объектах будет сопоставлен с целевым объектом с наибольшим перекрытием.
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 метров от целевого объекта. Для трех отношений в пределах расстояния, если значение для search_radius не задано, используется расстояние 0.

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

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

String
match_fields
[[join_field, target_field],...]
(Дополнительный)

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

Value Table

Пример кода

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

Следующий скрипт демонстрирует использование функции SpatialJoin в окне Python.

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.analysis.SpatialJoin(target_features, join_features, out_feature_class)
SpatialJoin, пример 2 (автономный скрипт)

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

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

# 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.analysis.SpatialJoin(targetFeatures, joinFeatures, outfc, "#", "#", fieldmappings)

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

  • Basic: Да
  • Standard: Да
  • Advanced: Да

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