Слияние слоев (GeoAnalytics)

Сводка

Комбинирует слои объектов для создания единого результирующего слоя.

Для работы инструмента необходимо, чтобы оба входных набора данных были одного типа геометрии (точка, линия или полигон), либо таблицами. Если в одном из слоев включена опция времени, то и для другого слоя также должна быть включена эта опция, а также должен использоваться тот же тип времени (текущий или интервальный). В результате всегда будут сохраняться все поля из входного слоя. По умолчанию все поля из присоединяемого слоя также будут добавлены, но вы можете настроить пользовательские правила для присоединяемых полей. Ниже приведены примеры:

  • У вас имеется три слоя административных границ Великобритании: Англия, Уэльс и Шотландия; вы хотите создать единый слой Великобритании. Вы можете использовать Слияние слоев для того, чтобы слить все эти области и сохранить поля из каждого слоя.
  • У вас есть 2 слоя, каждый из которых содержит информацию о земельных участках в смежных районах. Вы хотите выполнить слияние их в один слой, сохранив только поля с одинаковыми названиями и типами из обоих слоев.

Иллюстрация

Схема работы инструмента Слияние слоев
Показана схема работы инструмента Слияние слоев.

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

  • Оба входных набора данных должны быть одного типа геометрии (точка, линия или полигон), либо таблицами.

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

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

    ОперацияОписаниеПример

    Переименовать

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

    Вы хотите выполнить слияние двух слоев, у каждого из которых есть поле COUNT. В этом поле в одном слое указано число людей, а в другом – число семей. Два поля COUNT по умолчанию будут объединены, поскольку их имена совпадают. Используйте инструмент Переименовать, чтобы изменить имя поля в слое слияния на MERGE_COUNT, чтобы в результирующем слое эти два поля будут отдельными.

    Удалить

    Поле будет удалено из выходных данных.

    Вы хотите выполнить слияние двух полей, но вам не нужно, чтобы были сохранены некоторые поля в слое слияния, например, полеOBJECTID. Используйте опцию Удалить, чтобы эти поля не записывались в результирующий слой, а сохранялись только интересующие вас поля.

    Сопоставить

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

    Вы хотите объединить два табличных слоя с результатами опроса. Во входном слое есть поле Name, содержащее имена участников опроса. Соответствующее поле в итоговом слое называется Participant. Используйте функцию Сопоставить, чтобы указать, что оба этих поля эквивалентны, они оба будут записаны как одно поле с именем Name в результирующем слое.

  • Если входной слой и слой слияния содержат поля с совпадающими именами, но с несовпадающими типами полей, инструмент завершится неудачно, пока эти два типа полей не будут успешно объединены. Если входное поле является строковым, а поле слияния числовым, поля будут объединены в одно строковое поле в выходном слое. Если входное поле является double, а поле слияния numeric, поля будут объединены в одно поле double в выходном слое. Во всех остальных случаях Слияние атрибутов должно использоваться для переименования или удаления одного из соответствующих полей для запуска инструмента.

  • Вы можете улучшить производительность инструмента Слияние слоев, выполнив одно или оба из следующих действий:

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

  • Этот инструмент геообработки работает на 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.MergeLayers(input_layer, merge_layer, output_name, {merging_attributes}, {data_store})
ParameterОбъяснениеТип данных
input_layer

Точечные, линейные или полигональные объекты или таблицы для объединения со слоем слияния.

Record Set
merge_layer

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

Record Set
output_name

Имя выходного сервиса пространственных объектов.

String
merging_attributes
[[Merge Field, Action, Input Field],...]
(Дополнительный)

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

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

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

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

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

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

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

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

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

Выходной слой, содержащий объекты и атрибуты, скомбинированные из входного и объединяемого слоев.

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

Пример кода

Пример MergeLayers (окно Python)

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

#-------------------------------------------------------------------------------
# Name: MergeLayers.py
# Description: Merge two layers containing parcel information.
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inputFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/parcels_west/FeatureServer/0"
mergeFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/east_parcels/FeatureServer/0"
mergingAttributes = [["CODE", "MATCH", "ID"], ["globalid", "REMOVE"]]
outFS = "all_parcels"
dataStore = "SPATIOTEMPORAL_DATA_STORE"
# Execute Merge Layers
arcpy.geoanalytics.MergeLayers(inputFeatures, mergeFeatures, outFS, 
                               mergingAttributes, dataStore)

Environments

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

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

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

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

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