Подпись | Описание | Тип данных |
Целевой слой | Содержит целевые объекты. Атрибуты из целевых объектов и атрибуты из присоединяемых объектов будут перенесены в выходные данные. | Table View |
Присоединяемый слой | Содержит присоединяемые объекты. Атрибуты присоединяемых объектов будут присоединены к объектам целевого класса. Дополнительные сведения о том, как тип операции соединения влияет на объединение присоединяемых атрибутов, см в описании параметра Операция присоединения. | Table View |
Выходной набор данных | Новый класс пространственных объектов, содержащий целевые объекты с присоединенными объектами. | Feature Class;Table |
Операция соединения | Задает, как будут осуществляться соединения между Целевым слоем и Присоединяемым слоем в выходном классе объектов, если найдено несколько присоединяемых объектов, которые имеют то же пространственное отношение к одному целевому объекту.
| String |
Пространственное отношение (Дополнительный) | Задает критерии, использующиеся для пространственного присоединения объектов.
| String |
Расстояние отношения Рядом (Дополнительный) |
Расстояние от целевого объекта, в пределах которого присоединяемые объекты будут рассматриваться как пространственное соединение. Радиус поиска допустим только в том случае, если значением параметра Пространственное отношение является Ближайший (на плоскости) или Ближайший (геодезически). | Linear Unit |
Временное отношение (Дополнительный) | Определяет критерии времени для сопоставления объектов.
| String |
Расстояние временного отношения Рядом (Дополнительный) |
Расстояние во времени от целевого объекта, в пределах которого присоединяемые объекты будут рассматриваться как пространственное соединение. Время действует, только когда значением параметра Временное отношение является Рядом, Рядом до или Рядом после, и оба объекта содержат информацию о времени. | Time Unit |
Атрибутивное отношение (Дополнительный) | Соединение объектов происходит по значениям атрибутивного поля. Задает атрибутивное поле из целевого слоя, которое должно быть сопоставлено с атрибутивным полем слоя соединения.
| Value Table |
Поля суммирования (Дополнительный) | Статистика, которая будет рассчитываться по определенным полям. | Value Table |
Условие присоединения (Дополнительный) | Применяет к указанным полям условие. Будут присоединены только объекты, значение полей которых соответствуют этим условиям. Например, вы можете применить условие присоединения к объектам, в которых атрибут HealthSpending в слое соединения составляет более 20 процентов от атрибута дохода Income в целевом слое. Используйте выражение Arcade, такое как $join["HealthSpending"] > $target["Income"] * .2. | String |
Сохранить все целевые объекты (Дополнительный) | Указывает, будут ли сохранены все целевые объекты в выходном классе объектов (левое внешнее соединение) или только имеющие заданное отношение с присоединяемыми объектами (внутреннее соединение).
| Boolean |
Включить расстояние (Дополнительный) | Задает, будет ли включено в результат пространственное расстояние или временная разница. Этот параметр активен, если значение параметра Операция присоединения равно Присоединить один-ко-многим и истинно любое из следующего:
| Boolean |
Единицы измерения расстояния (Дополнительный) | Задает единицу измерения, которая будет использоваться для значений расстояния в выходном классе объектов.
| String |
Краткая информация
Присоединяет атрибуты из одного слоя к другому на основе пространственных, временных или атрибутивных отношений, или любой их комбинации.
Иллюстрация
Использование
Пространственное соединение сопоставляет объекты (строки) из входных данных (значения параметров Целевой слой и Присоединяемый слой) в зависимости от их пространственного расположения. Временное соединение сопоставляет объекты (строк) входных данных на основе их временных отношений. Атрибутивное соединение сопоставляет объекты на основе значений полей.
Вы можете соединять их на основании пространственного отношения, временного отношения, атрибутивного отношения или любой их комбинации.
Опция Описание Пространственное отношение
Пространственное отношение, определяющее, будут ли объекты присоединяться друг к другу. Доступные отношения будут зависеть от типа геометрии (точки, линии, полигоны) соединяемых слоёв. Доступны следующие пространственные отношения:
- Пересекает
- Равны
- Ближайший (На плоскости) – использует расстояния на плоскости.
- Ближайший (Геодезически) – использует геодезические расстояния.
- Содержат
- Внутри
- Касается
- Пересекает
- Перекрытия
Более подробно о пространственных отношениях в инструментах GeoAnalytics Desktop
Временное отношение
Временное отношение, определяющее, будут ли объекты присоединяться друг к другу. Доступные отношения будут зависеть от типа времени (мгновенный или интервальный) соединяемых слоёв. Доступны следующие временные отношения:
- Удовлетворяет
- Встречено
- Перекрытия
- Перекрыто
- Во время
- Содержат
- Равны
- Завершает
- Завершено
- Начинает
- Начато
- Пересекает
- Ближайший объект
- Ближайший объект до
- Ближайший объект после
Более подробно о временных отношениях в инструментах GeoAnalytics Desktop
Атрибутивное отношение
Атрибутивное отношение, определяющее, будут ли объекты присоединяться друг к другу. Атрибуты объектов соединяются, если значения поля в присоединяемом слое идентичны значениям поля в целевом слое.
Если целевые и присоединяемые объекты находятся в разных системах координат, будет использована система координат целевых объектов. Если выбрана выходная система координат, все объекты проецируются в эту систему, а затем соединяются.
Если для параметра Пространственное отношение задано Ближайший на плоскости, значение параметра Целевой слой должен быть спроецировано, или выходная система координат должна быть задана как система координат проекции.
Если несколько пространственных объектов совпадают с одним и тем же целевым объектом, вы можете определить, соединять ли все совпадающие объекты (Операция присоединения со значением Присоединить один-ко-многим) или все совпадающие объекты будут суммированы вместе (Операция присоединения со значением Присоединить один-к-одному):
- Присоединить один-ко-многим – присоединить все совпадающие объекты в присоединяемом слое с объектами целевого слоя. Полученный в результате слой будет содержать несколько записей для целевого объекта.
- Присоединить один-к-одному – суммирует все совпадающие присоединяемые объекты, и присоединяет их к каждому объекту в целевом слое. Только совпадающие объекты будут включены в суммирование и результат. Количество присоединённых объектов будет добавлено в дополнение к другой статистике, такой как сумма, минимум, максимум, диапазон, дисперсия, среднее и стандартное отклонение. По умолчанию в классе выходных объектов будут поддерживаться только те целевые объекты, которые имеют указанные отношения (внутреннее соединение). Если отмечено Сохранить все целевые объекты, все входные целевые объекты будут записываться в класс выходных объектов (это называется левым внешним соединением).
Вы можете построить выражение для присоединения объектов, используя параметр Условие присоединения. Если вы указываете выражение, будут использоваться только соответствующие условию пространственные объекты. Например, используя выражение $target["Magnitude"] > $join["Explosion"], вы можете присоединить целевые пространственные объекты, значение в поле Magnitude которых больше, чем значения присоединяемых объектов в поле Explosion. Более подробно см. в разделе Выражения Arcade в инструментах GeoAnalytics Desktop.
Следующие поля включаются в выходные объекты при выполнении соединения один-ко-многим:
- Все поля из целевых слоев
- Все поля из присоединяемых слоев
Если в целевом и присоединяемом наборах данных существует одно и то же имя поля, объединенное поле будет начинаться со слова join (например, join_fieldname).
Имя поля Описание start_date
Это поле представляет время начала и создается, когда для входных данных задано время в виде мгновения или интервала.
end_date
Это поле представляет время окончания и создается, когда во входных данных время задано как интервал.
В дополнение ко всем полям из целевого слоя, следующие поля включаются в выходные объекты при выполнении соединения один-к-одному:
Имя поля Описание count
Число объектов, которые были присоединены.
statistic_fieldname
Каждая заданная статистика создает поле атрибута с именем в следующем формате: statistics_fieldname. Например, максимальное значение и стандартное отклонение поля id будет MAX_id и SD_id.
start_date
Это поле представляет время начала и создается, когда для входных данных задано время в виде мгновения или интервала.
end_date
Это поле представляет время окончания и создается, когда во входных данных время задано как интервал.
Если включен параметр Включить расстояние, а параметр Операция присоединения установлен на Соединение один-ко-многим, в выходные объекты могут быть включены следующие поля:
Имя поля Описание distance
Расстояние между целевыми и присоединяемыми объектами. Это поле включается, если для параметра Пространственное отношение задано Ближайший (На плоскости) или Ближайший (геодезически).
Расстояние, равное 0, указывает на то, что целевая и присоединяемая геометрии пересекаются. Нулевое значение указывает на то, что геометрии находятся дальше друг от друга, чем значение параметра Расстояние отношения Рядом. Если значение параметра Пространственное отношение равно Ближайший (на плоскости), значения расстояния будут плоскостными; если значение параметра равно Ближайший (геодезически), значения расстояния будут геодезическими. Значения будут указаны в единицах измерения, заданных параметром Единицы измерения расстояний. Единицы расстояния по умолчанию - метры.
timegap
Временная разница между целевым и присоединяемым объектами, в миллисекундах. Это поле включается, если параметр Временное отношение имеет значения Ближайший, Ближайший объект до или Ближайший объект после.
Разница, равная 0, указывает на то, что целевой и присоединяемый объекты пересекаются во времени. Положительные значения означают, что целевой объект появляется раньше присоединяемого объекта, а отрицательные значения означают, что присоединяемый объект появляется раньше целевого объекта. Значения Null указывают на то, что объекты не соответствовали условию присоединения. Например, объекты находятся дальше друг от друга, чем значение параметра Расстояние временного отношения Рядом.
Вы можете повысить производительность инструмента Присоединить объекты, выполнив одно или несколько из следующих действий:
- Установите параметр среды экстента таким образом, чтобы анализировались только интересующие вас данные.
- Сделайте условия соединения как можно более избирательными. Например, присоединение Рядом длиной 1 километр будет работать лучше, чем присоединение длиной 5 километров на тех же данных.
- Добавьте более одного условия присоединения. Дополнительные условия присоединения делают его более избирательным. Например, присоединение Рядом длиной 1 километр и длительностью 1 час будет работать лучше, чем присоединение только длиной 1 километр на тех же данных.
- Примените выражение присоединения.
- Используйте локальные данные, относительно места выполнения анализа.
Аналогичный анализ можно выполнить, используя инструмент Пространственное соединение из набора инструментов Анализ.
Этот инструмент геообработки работает от Spark. Анализ выполняется на настольном компьютере с использованием нескольких ядер параллельно. См. Информация по инструментами GeoAnalytics Desktop, чтобы узнать больше о выполнении анализа.
При запуске инструментов GeoAnalytics Desktop анализ выполняется на настольном компьютере. Для оптимальной производительности данные должны быть доступны на настольном компьютере. Если используется размещенный векторный слой, рекомендуется применить ArcGIS GeoAnalytics Server. Если данные находятся не на жестком диске, для запуска инструмента потребуется больше времени. Чтобы использовать ArcGIS GeoAnalytics Server для выполнения анализа, см. GeoAnalytics Tools.
Параметры
arcpy.geoanalytics.JoinFeatures(target_layer, join_layer, output, join_operation, {spatial_relationship}, {spatial_near_distance}, {temporal_relationship}, {temporal_near_distance}, {attribute_relationship}, {summary_fields}, {join_condition}, {keep_all_target_features}, {include_distance}, {distance_unit})
Имя | Описание | Тип данных |
target_layer | Содержит целевые объекты. Атрибуты из целевых объектов и атрибуты из присоединяемых объектов будут перенесены в выходные данные. | Table View |
join_layer | Содержит присоединяемые объекты. Атрибуты присоединяемых объектов будут присоединены к объектам целевого класса. Дополнительные сведения о том, как тип операции соединения влияет на объединение присоединяемых атрибутов, см в описании параметра Операция присоединения. | Table View |
output | Новый класс пространственных объектов, содержащий целевые объекты с присоединенными объектами. | Feature Class;Table |
join_operation | Задает, как будут осуществляться соединения между значениями target_layer и join_layer в выходном объекте, если найдено несколько присоединяемых объектов, которые имеют то же пространственное отношение к одному целевому объекту.
| String |
spatial_relationship (Дополнительный) | Задает критерии, использующиеся для пространственного присоединения объектов.
| String |
spatial_near_distance (Дополнительный) |
Расстояние от целевого объекта, в пределах которого присоединяемые объекты будут рассматриваться как пространственное соединение. Радиус поиска допустим только в том случае, если значением параметра spatial_relationship является NEAR или NEAR_GEODESIC. | Linear Unit |
temporal_relationship (Дополнительный) | Определяет критерии времени для сопоставления объектов.
| String |
temporal_near_distance (Дополнительный) |
Расстояние во времени от целевого объекта, в пределах которого присоединяемые объекты будут рассматриваться как пространственное соединение. Время действует, только когда значением параметра temporal_relationship является NEAR, NEAR_BEFORE или NEAR_AFTER, и оба объекта содержат информацию о времени. | Time Unit |
attribute_relationship [attribute_relationship,...] (Дополнительный) | Соединение объектов происходит по значениям атрибутивного поля. Задает атрибутивное поле из целевого слоя, которое должно быть сопоставлено с атрибутивным полем слоя соединения.
| Value Table |
summary_fields [summary_fields,...] (Дополнительный) | Статистика, которая будет рассчитываться по определенным полям.
| Value Table |
join_condition (Дополнительный) | Применяет к указанным полям условие. Будут присоединены только объекты, значение полей которых соответствуют этим условиям. Например, вы можете применить условие присоединения к объектам, в которых атрибут HealthSpending в слое соединения составляет более 20 процентов от атрибута дохода Income в целевом слое. Используйте выражение Arcade, такое как $join["HealthSpending"] > $target["Income"] * .2. | String |
keep_all_target_features (Дополнительный) | Указывает, будут ли сохранены все целевые объекты в выходном классе объектов (левое внешнее соединение) или только имеющие заданное отношение с присоединяемыми объектами (внутреннее соединение).
| Boolean |
include_distance (Дополнительный) | Задает, будет ли включено в результат пространственное расстояние или временная разница. Этот параметр активен, если значение параметра join_operation равно JOIN_ONE_TO_MANY и истинно любое из следующего:
| Boolean |
distance_unit (Дополнительный) | Задает единицу измерения, которая будет использоваться для значений расстояния в выходном классе объектов.
| String |
Пример кода
В следующем автономном скрипте показано использование функции 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).
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/CityData.gdb"
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\ChicagoCrimes.lyrx'
# MakeFeatureLayer converts the .lyrx to features
chicagoCrimesLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Crimes_layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(chicagoCrimesLayer, inputLyrx)
# Set local variables
spatialOperation = "NEAR"
nearDistance = "1 Kilometers"
temporalOperation = "NEAR"
nearTime = "3 Hours"
out = "CloseCrimes"
# Run Join Features
arcpy.gapro.JoinFeatures(chicagoCrimesLayer, inFeatures, out, "JOIN_ONE_TO_ONE",
spatialOperation, nearDistance, temporalOperation,
nearTime)