Присоединить объекты (GeoAnalytics)

Сводка

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

Иллюстрация

Инструмент Присоединить объекты
Присоединить объекты: в обоих примерах показано пространственно-временное присоединение.

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

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

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

    ОпцииОписание

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

    Пространственное отношение, определяющее, будут ли объекты присоединяться друг к другу. Доступные отношения будут зависеть от типа геометрии (точки, линии, полигоны) соединяемых слоёв. Доступны следующие пространственные отношения:

    • Пересекает
    • Равен
    • Ближайший (На плоскости) – использует расстояния на плоскости.
    • Ближайший (Геодезически) – использует геодезические расстояния. Этот параметр доступен только в ArcGIS Enterprise версии 10.6 и позже.
    • Содержит
    • Внутри
    • Касается
    • Перекрещивается
    • Перекрывает

    Узнайте больше о пространственных отношениях в инструментах GeoAnalytics для Server

    Временное отношение

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

    • Удовлетворяет
    • Удовлетворил
    • Перекрывает
    • Перекрыт
    • Во время
    • Содержит
    • Равен
    • Завершает
    • Завершен
    • Начинает
    • Начат
    • Пересекает
    • Ближайший
    • Ближайший объект до
    • Ближайший объект после

    Узнайте больше о временных отношениях в инструментах GeoAnalytics для Server

    Атрибутивное отношение

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

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

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

  • Если несколько пространственных объектов совпадают с одним и тем же целевым объектом, вы можете определить, соединять ли все совпадающие объекты (Присоединить один-ко-многим) или суммировать все объекты вместе (Присоединить один-к-одному):

    • Присоединить один-ко-многим – присоединяет все совпадающие объекты в присоединяемом слое с объектами целевого слоя. Полученный в результате слой будет содержать несколько записей для целевого объекта.
    • Присоединить один-к-одному – суммирует все совпадающие присоединяемые объекты, и присоединяет их к каждому объекту в целевом слое. Только совпадающие объекты будут включены в суммирование и результат. Количество присоединённых объектов будет добавлено в дополнение к другой статистике, такой как сумма, минимум, максимум, диапазон, дисперсия, среднее и стандартное отклонение. По умолчанию, только те целевые объекты, которые имеют заданное отношение с соединяемыми объектами, будут сохраняться в выходном классе объектов (внутреннее соединение). Если отмечена опция Сохранить все целевые объекты, в выходной класс объектов будут записаны все входные целевые объекты (это называется левым внешним соединением).
    Примеры операции присоединения один-ко-многим и один-к-одному
    Примеры операции присоединения один-ко-многим и один-к-одному. В этом примере присоединение один-к одному включает только количество; дополнительные статистические параметры могут быть вычислены, как показано ниже.

  • Дополнительно вы можете построить выражение для присоединения пространственных объектов с помощью параметра Условие присоединения. Если вы указываете выражение, будут использоваться только соответствующие условию пространственные объекты. Например, используя выражение $target["Magnitude"] > $join["Explosion"] вы можете только соединить целевые объекты из поля Magnitude, если значение поля больше, чем у присоединяемого объекта в поле Explosion. См. раздел Выражения присоединения объектов для дополнительной информации.

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

    • Все поля из целевых слоев
    • Все поля из присоединяемого слоя

    Если одно и то же имя поля существует в целевом и присоединяемом наборах данных, поле соединения будет начинаться со слова join (например, join_fieldname).

    Имя поляОписание

    start_datetime

    Это поле представляет время начала и создается, когда для входных данные задано время в виде момента или интервала.

    end_datetime

    Это поле представляет время окончания и создается, когда для входных данные задано время в виде интервала.

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

    Имя поляОписание

    count

    Число пространственных объектов, которые были присоединены.

    statistic_fieldname

    Каждая указанная статистика будет создавать поле атрибутов с именем в следующем формате: statistics_field name. Например, максимум и стандартное отклонение для поля id - MAX_id и SD_id, соответственно.

    start_datetime

    Это поле представляет время начала и создается, когда для входных данные задано время в виде момента или интервала.

    end_datetime

    Это поле представляет время окончания и создается, когда для входных данные задано время в виде интервала.

  • Вы можете повысить производительность инструмента Заново создать треки следующими способами:

    • Установите параметр среды Экстент так, чтобы вы анализировали только интересующие вас данные.
    • Используйте планарный метод вместо геодезического.
    • Не применяйте буфер.
    • Разбивайте треки, используя параметры Разбиение по времени, Разбиение по временной границе, Разбиение по расстоянию и Выражение разбиения. Использование параметра Разбиение по временной границе обеспечивает наилучшую производительность.
    • Используйте локальные данные там, где запускается анализ.

  • Аналогичный анализ можно выполнить при помощи инструмента Пространственное соединение из набора инструментов Анализ.

  • Этот инструмент геообработки работает на ArcGIS GeoAnalytics Server. Анализ выполняется на вашем GeoAnalytics Server, а результаты сохраняются в ресурсы на вашем ArcGIS Enterprise.

  • При работе инструментов GeoAnalytics Server, анализ выполняется на GeoAnalytics Server. Для оптимальной производительности сделайте данные доступными для GeoAnalytics Server через векторные слои, размещенные на вашем портале ArcGIS Enterprise или через файловое хранилище больших данных. Данные, которые не являются локальными для GeoAnalytics Server, будут перемещены на GeoAnalytics Server до начала анализа. Это означает, что для запуска инструмента потребуется больше времени, а в некоторых случаях перемещение данных с ArcGIS Pro на GeoAnalytics Server может завершиться ошибкой. Порог сбоя зависит от скорости сети, а также от размера и сложности данных. Соответственно рекомендуется всегда предоставлять доступ к данным или создавать файловое хранилище больших данных.

    Более подробно о публикации локаторов на портале

    Более подробно о создании файловых хранилищ больших данных в Server Manager

Синтаксис

arcpy.geoanalytics.JoinFeatures(target_layer, join_layer, output_name, join_operation, {spatial_relationship}, {spatial_near_distance}, {temporal_relationship}, {temporal_near_distance}, {attribute_relationship}, {summary_fields}, {join_condition}, {data_store}, {keep_all_target_features})
ParameterОбъяснениеТип данных
target_layer

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

Record Set
join_layer

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

Record Set
output_name
String
join_operation

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

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

Задает критерии, которые будут использованы для пространственного соединения объектов.

  • INTERSECTSПрисоединяемые объекты учитываются, если они пересекают целевые объекты. Это значение по умолчанию.
  • EQUALS Присоединяемые объекты сопоставляются если их геометрия идентична геометрии целевого объекта.
  • NEARПрисоединяемые объекты учитываются, если они находятся в пределах указанного расстояния от целевого объекта. Расстояние измеряется с помощью плоскостного расстояния. Укажите расстояние в параметре spatial_near_distance.
  • NEAR_GEODESICПрисоединяемые объекты учитываются, если они находятся в пределах указанного расстояния от целевого объекта. Расстояние измеряется геодезически. Введите расстояние в параметре spatial_near_distance. Данная опция доступна для версии ArcGIS Enterprise 10.7 и более поздних.
  • CONTAINSЦелевые объекты должны содержать в своих границах присоединяемые объекты. Целевыми объектами должны быть полигоны или полилинии. Если целевыми объектами являются полигоны, присоединяемыми объектами могут быть только полигоны. Полигон может содержать объект любого типа. Полилиния может содержать только полилинию и точку. Точка не может содержать какой-либо объект, даже точку. Если присоединяемый объект полностью находится на границе целевого объекта (ни одна из его частей не находится внутри или вне ее), объект не будет сопоставлен.
  • WITHINЦелевые объекты должны содержать в своих границах присоединяемые объекты. Это отношение является обратным отношению Содержит. Для этой опции целевые объекты могут быть только полигонами, а присоединяемые объекты – также полигонами. Точка может быть присоединяемым объектом, только если целевым объектом также является точка. Если присоединяемый объект находится целиком на границе целевого объекта; в этом случае объект учитываться не будет.
  • TOUCHESПрисоединяемые объекты учитываются, если их границы касаются целевого объекта. Если целевые и присоединяемые объекты являются линиями или полигонами, граница присоединяемого объекта может только касаться границы целевого объекта, и ни одна часть присоединяемого объекта может не пересекать границу целевого объекта.
  • CROSSESПрисоединяемые объекты учитываются, если целевой объект пересекается их контуром. Присоединяемые и целевые объекты должны быть линейными или полигональными. Если присоединяемыми и целевыми объектами являются полигоны, используется граница полигона (линия). Будут учитываться линии, пересекающиеся в точке, но не линии с общим линейным сегментом.
  • OVERLAPSПрисоединяемые объекты будут сопоставляться, если они накладываются на целевые объекты.
String
spatial_near_distance
(Дополнительный)

Расстояние от целевого объекта, в пределах которого будут рассматриваться объекты соединения, для пространственного соединения. Радиус поиска действует, только когда для параметра spatial_relationship задано NEAR или NEAR_GEODESIC.

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

Задает критерии времени, которые будут использованы для сопоставления объектов.

  • MEETSЕсли окончание интервала целевого времени равно началу интервала времени соединения, то целевое время встречает время соединения.
  • MET_BYЕсли начало целевого времени равно окончанию интервала времени соединения, то такое целевое время встречено временем соединения.
  • OVERLAPSЕсли интервал целевого времени начинается и заканчивается до начала и окончания интервала времени соединения, то такое целевое время перекрывает время соединения.
  • OVERLAPPED_BYЕсли интервал целевого времени начинается и заканчивается после времени начала и окончания интервала времени соединения, то такое целевое время перекрыто временем соединения.
  • DURINGЕсли целевое время находится в промежутке между началом и окончанием интервала времени соединения, считается, что это целевое время случилось в течение времени соединения.
  • CONTAINSЕсли время присоединяемого объекта находится в промежутке между началом и окончанием интервала целевого времени, считается, что это целевое время содержит время соединения.
  • EQUALSДва времени считаются равными, если их моменты или интервалы одинаковые.
  • FINISHESЕсли целевое время оканчивается одновременно с временем соединения, а началось после этого времени соединения, то это целевое время завершает время соединения.
  • FINISHED_BYЕсли время присоединяемого объекта оканчивается одновременно с целевым временем, и это время соединения началось после начала целевого времени, то это целевое время будет завершено временем соединения.
  • STARTSЕсли целевое время начинается одновременно с началом интервала времени соединения и заканчивается до окончания интервала времени соединения, то это целевое время начинает время соединения.
  • STARTED_BYЕсли целевое время интервала начинается одновременно с временем соединения и заканчивается по окончании времени соединения, то это целевое время начато временем соединения.
  • INTERSECTSЕсли любая часть целевого времени случается одновременно с временем соединения, то это целевое время пересекает время соединения.
  • NEARЕсли целевое время находится в заданном диапазоне времени от времени соединения, то это целевое располагается рядом со временем соединения.
  • NEAR_BEFOREЕсли целевое время указывает время до времени соединения, но находится в заданном диапазоне от времени соединения, то оно располагается незадолго до времени соединения. Данная опция доступна с ArcGIS Enterprise версии 10.6 и позже.
  • NEAR_AFTERЕсли целевое время указывает время после времени соединения, но находится в заданном диапазоне от времени соединения, то оно располагается немного позже времени соединения. Данная опция доступна с ArcGIS Enterprise версии 10.6 и позже.

Задает критерии времени, которые будут использованы для сопоставления объектов.

  • MEETSЕсли окончание интервала целевого времени равно началу интервала времени соединения, то целевое время встречает время соединения.
  • MET_BYЕсли начало целевого времени равно окончанию интервала времени соединения, то такое целевое время встречено временем соединения.
  • OVERLAPSЕсли интервал целевого времени начинается и заканчивается до начала и окончания интервала времени соединения, то такое целевое время перекрывает время соединения.
  • OVERLAPPED_BYЕсли интервал целевого времени начинается и заканчивается после времени начала и окончания интервала времени соединения, то такое целевое время перекрыто временем соединения.
  • DURINGЕсли целевое время находится в промежутке между началом и окончанием интервала времени соединения, считается, что это целевое время случилось в течение времени соединения.
  • CONTAINSЕсли время присоединяемого объекта находится в промежутке между началом и окончанием интервала целевого времени, считается, что это целевое время содержит время соединения.
  • EQUALSДва времени считаются равными, если их моменты или интервалы одинаковые.
  • FINISHESЕсли целевое время оканчивается одновременно с временем соединения, а началось после этого времени соединения, то это целевое время завершает время соединения.
  • FINISHED_BYЕсли время присоединяемого объекта оканчивается одновременно с целевым временем, и это время соединения началось после начала целевого времени, то это целевое время будет завершено временем соединения.
  • STARTSЕсли целевое время начинается одновременно с началом интервала времени соединения и заканчивается до окончания интервала времени соединения, то это целевое время начинает время соединения.
  • STARTED_BYЕсли целевое время интервала начинается одновременно с временем соединения и заканчивается по окончании времени соединения, то это целевое время начато временем соединения.
  • INTERSECTSЕсли любая часть целевого времени случается одновременно с временем соединения, то это целевое время пересекает время соединения.
  • NEARЕсли целевое время находится в заданном диапазоне времени от времени соединения, то это целевое располагается рядом со временем соединения.
  • NEAR_BEFOREЕсли целевое время указывает время до времени соединения, но находится в заданном диапазоне от времени соединения, то оно располагается незадолго до времени соединения. Данная опция доступна с ArcGIS Enterprise версии 10.6 и позже.
  • NEAR_AFTERЕсли целевое время указывает время после времени соединения, но находится в заданном диапазоне от времени соединения, то оно располагается немного позже времени соединения. Данная опция доступна с ArcGIS Enterprise версии 10.6 и позже.
String
temporal_near_distance
(Дополнительный)

Расстояние во времени от целевого объекта, в пределах которого будут рассматриваться объекты соединения, для пространственного соединения. Время действует, только когда для temporal_relationship выбрано NEAR, NEAR_BEFORE или NEAR_AFTER, и оба объекта содержат информацию о времени.

Time Unit
attribute_relationship
[attribute_relationship,...]
(Дополнительный)

Соединяет объекты по значениям атрибутивного поля. Указывает, какое атрибутивное поле целевого слоя должно быть сопоставлено с атрибутивным полем слоя соединения.

  • Целевое поле – атрибутивное поле из целевого слоя, содержащее сопоставляемые значения.
  • Поле соединения – атрибутивное поле из слоя соединения, содержащее сопоставляемые значения.

Value Table
summary_fields
[summary_fields,...]
(Дополнительный)

Статистика, которая будет рассчитываться по определенным полям.

  • COUNT – количество ненулевых значений. Может использоваться с числовыми или текстовыми полями. Число [null, 0, 2] равняется 2.
  • SUM – сумма числовых значений в поле. Сумма [null, null, 3] равняется 3.
  • MEAN – среднее арифметическое числовых значений. Среднее [0,2, null] равняется 1.
  • MIN – минимальное значение числового поля. Минимальное значение [0, 2, null] равняется 0.
  • MAX – максимальное значение числового поля. Максимальное значение [0, 2, null] равно 2.
  • STDDEV – среднеквадратическое отклонение числового поля. Среднеквадратическое отклонение [1] равно null. Среднеквадратическое отклонение [null, 1,1,1] равно null.
  • VAR – дисперсия по числовому полю в треке. Дисперсия [1] равна null. Дисперсия [null, 1,1,1] равна null.
  • RANGE – диапазон числового поля. Вычисляется вычитанием минимального значения из максимального. Диапазон [0, null, 1] равен 1. Диапазон [null, 4] равен 0.
  • ANY – пример строки из текстового поля.

Value Table
join_condition
(Дополнительный)

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

Например, вы можете применить условие присоединения к объектам, у которых атрибутивное значение HealthSpending в слое соединения на 20 процентов больше, чем значение Income в целевом слое. В 10.5 и 10.5.1 выражение условия соединения выглядит так join["HealthSpending"] > target["Income"] * .2. В версии 10.6 и выше, используйте выражения Arcade, например, $join["HealthSpending"] > $target["Income"] * .2.

String
data_store
(Дополнительный)

Задает ArcGIS Data Store, где будут сохраняться выходные данные. По умолчанию – SPATIOTEMPORAL_DATA_STORE. Все результаты, находящиеся в хранилище пространственно-временных больших данных, будут храниться в системе WGS84. Результаты в реляционном хранилище данных сохраняют свои систему координат.

  • SPATIOTEMPORAL_DATA_STOREРезультаты будут храниться в хранилище больших пространственно-временных данных. Это значение по умолчанию.
  • RELATIONAL_DATA_STOREРезультаты будут храниться в хранилище реляционных данных.
String
keep_all_target_features
(Дополнительный)

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

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

Производные выходные данные

NameОбъяснениеТип данных
output

Присоединенные выходные данные.

Набор записей

Пример кода

JoinFeatures, пример (автономный скрипт)

В следующем автономном скрипте показано, как использовать инструмент JoinFeatures.

# Name: JoinFeatures.py
# Description: Join crime events that are close together in time and space, and 
#              return the count of nearby crimes. This example is a self join 
#              (joining the same layer to itself).
# Requirements: ArcGIS GeoAnalytics Server 
# Import system modules 
import arcpy 
# Set local variables 
inFeatures = "https://MyGeoAnalyticsMachine.domain.com/geoanalytics/rest/services/DataStoreCatalogs/bigDataFileShares_Crimes/BigDataCatalogServer/Chicago"
spatialOperation = "NEAR" 
nearDistance = "1 Kilometers" 
temporalOperation = "NEAR" 
nearTime = "3 Hours" 
outFS = "CloseCrimes" 
dataStore = "SPATIOTEMPORAL_DATA_STORE" 
# Execute Join Features
arcpy.geoanalytics.JoinFeatures(inFeatures, inFeatures, outFS, "JOIN_ONE_TO_ONE", 
                                spatialOperation, nearDistance, temporalOperation, 
                                nearTime, None, None, None, dataStore)

Environments

Выходная система координат

Система координат, используемая при анализе. Если данный параметр не указан, анализ будет выполнен во входной системе координат. Для Инструменты GeoAnalytics готовые результаты будут храниться в пространственно-временном хранилище данных в системе координат WGS84.

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

  • Basic: Требуется ArcGIS GeoAnalytics Server
  • Standard: Требуется ArcGIS GeoAnalytics Server
  • Advanced: Требуется ArcGIS GeoAnalytics Server

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