Присоединить (Управление данными)

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

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

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

Иллюстрация

Иллюстрация инструмента Присоединить

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

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

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

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

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

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

    fieldmappings = arcpy.FieldMappings() 
    fieldmappings.addTable(target) 
    fieldmappings.addTable(input)
  • Этот инструмент не разбивает пространственные объекты в точках пересечений при добавлении их целевому набору данных. Все пространственные объекты из входного класса объектов и целевого класса объектов останутся без изменений после присоединения, даже если пространственные объекты перекрываются. Чтобы комбинировать или разбить геометрию пространственных объектов, используйте инструмент Объединить.

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

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

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

  • Количество добавленных строк отображается в сообщениях инструмента и возвращается параметром Количество присоединенных строк.

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

  • Вы можете использовать этот инструмент для вставки новых записей и обновления существующих в целевом наборе данных в одной и той же операции (эквивалент операции базы данных UPSERT). Используйте параметр Сопоставление полей для обновления, чтобы указать поля из входного набора данных для сопоставления с полями в целевом наборе данных. Для записей с сопоставлением значений полей любые поля в целевой записи будут обновлены значениями из полей с тем же именем во входной записи. Количество обновленных строк с совпадающими полями отображается в сообщениях инструмента и возвращается параметром Количество обновленных строк. Геометрия будет обновлена, если отмечен параметр Обновить геометрию.

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

  • Этот инструмент не выполняет сопоставление ребер; выравнивание геометрии не производится.

  • Слои карты могут использоваться как Входные наборы данных. Если в слое задана выборка, будут использоваться только выбранные записи (пространственные объекты или строки таблицы).

  • В этом инструменте нельзя использовать несколько входных слоев с одинаковым именем. Вместо этого используйте кнопку обзора на панели Геообработка, чтобы просмотреть полные пути к каждому из значений Входные наборы данных.

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

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

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

  • Этот инструмент можно использовать непосредственно во внутреннем хранилище данных, в сервере или базе данных для векторных веб-слоев для обеспечения оптимальной производительности. Для сервисов объектов, ссылающихся на базу геоданных, этот инструмент можно использовать с подключением к базе данных для выполнения операций загрузки больших данных непосредственно в соответствующую базу данных. Для размещенных сервисов в ArcGIS Enterprise Операцию append можно использовать на странице элемента векторного слоя или в ArcGIS REST API.

    Для оптимальной производительности с размещенными сервисами на ArcGIS Online администраторы и владельцы сервисов могут использовать этот инструмент в ArcGIS REST API, если для параметра supportAppend установлено значение true. Функции добавления сервисов объектов должны быть включены, чтобы пользователи, не являющиеся администраторами, могли использовать инструмент Присоединить с ArcGIS REST API.

Параметры

ПодписьОписаниеТип данных
Входные наборы данных

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

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

Table View; Raster Layer
Целевой набор данных

Существующий набор данных, в который будут добавлены данные входных наборов данных.

Table View; Raster Layer
Тип сопоставления полей
(Дополнительный)

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

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

Параметр списка полей управляет переносом или отображением полей из входных наборов данных в целевой набор данных. Он может использоваться только если Тип сопоставления полей задан как Использовать список полей для определения различий.

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

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

Field Mappings
Подтип
(Дополнительный)

Описание подтипа, которое будет присвоено всем новым данным, присоединяемым к целевому набору данных.

String
Выражение
(Дополнительный)

SQL-выражение, которое будет использоваться для выбора поднабора записей во входном наборе данных. Если указано несколько наборов данных, выражение будет применено ко всем. Если во входном наборе данных отсутствуют записи, удовлетворяющие выражению, ни одна запись этого набора данных не будет присоединена к целевому набору данных.

Более подробно о синтаксисе SQL см. Справочник по SQL для выражений запросов, применяемых в ArcGIS.

SQL Expression
Сопоставление полей для обновления
(Дополнительный)

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

Value Table
Обновить геометрию
(Дополнительный)

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

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

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

  • Отмечено — правила доменов полей будут включены принудительно. Если поле невозможно обновить, то значение поля останется без изменений, а в сообщениях инструментов появится предупреждение.
  • Не отмечено — правила доменов полей не будут включены принудительно. Используется по умолчанию
Boolean

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

ПодписьОписаниеТип данных
Обновленный целевой набор данных

Обновленный целевой набор данных.

Table View; Raster Layer
Количество присоединенных строк

Количество строк, добавленных к целевому набору данных.

Long
Количество обновленных строк

Количество строк, обновленных в целевом наборе данных.

Long

arcpy.management.Append(inputs, target, {schema_type}, {field_mapping}, {subtype}, {expression}, {match_fields}, {update_geometry}, {enforce_domains})
ИмяОписаниеТип данных
inputs
[inputs,...]

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

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

Table View; Raster Layer
target

Существующий набор данных, в который будут добавлены данные входных наборов данных.

Table View; Raster Layer
schema_type
(Дополнительный)

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

  • TESTПоля входных наборов данных должны соответствовать полям целевого набора данных. Если поля не совпадают, возвращается ошибка.
  • NO_TESTПоля входных наборов данных не должны соответствовать полям целевого набора данных. Поля входных наборов данных, которые не соответствуют полям целевого набора данных, не будут сопоставлены в целевом наборе данных, если соответствие не будет специально определено параметром Карта полей.
  • TEST_AND_SKIPПоля входных наборов данных должны соответствовать полям целевого набора данных. Если какой-либо из входных наборов данных содержит поля, которые не соответствуют целевому набору данных, этот входной набор данных будет пропущен с предупреждающим сообщением.
String
field_mapping
(Дополнительный)

Параметр списка полей управляет переносом или отображением полей из входных наборов данных в целевой набор данных. Он используется только когда для параметра schema_type задано NO_TEST.

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

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

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

Field Mappings
subtype
(Дополнительный)

Описание подтипа, которое будет присвоено всем новым данным, присоединяемым к целевому набору данных.

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

SQL-выражение, которое будет использоваться для выбора поднабора записей во входном наборе данных. Если указано несколько наборов данных, выражение будет применено ко всем. Если во входном наборе данных отсутствуют записи, удовлетворяющие выражению, ни одна запись этого набора данных не будет присоединена к целевому набору данных.

Более подробно о синтаксисе SQL см. Справочник по SQL для выражений запросов, применяемых в ArcGIS.

SQL Expression
match_fields
[[target_field, input_field],...]
(Дополнительный)

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

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

Определяет, будет ли геометрия в целевом наборе данных обновляться геометрией из входных наборов данных, если значения полей параметра match_fields совпадают.

  • UPDATE_GEOMETRYГеометрия в целевом наборе данных будет обновляться, если значения полей параметра match_fields совпадают.
  • NOT_UPDATE_GEOMETRYГеометрия не будет обновлена. Это значение по умолчанию
Boolean
enforce_domains
(Дополнительный)

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

  • ENFORCE_DOMAINSПравила доменов полей будут включены принудительно.
  • NO_ENFORCE_DOMAINSПравила доменов полей не будут включены принудительно. Используется по умолчанию.
Boolean

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

ИмяОписаниеТип данных
output

Обновленный целевой набор данных.

Table View; Raster Layer
appended_row_count

Количество строк, добавленных к целевому набору данных.

Long
updated_row_count

Количество строк, обновленных в целевом наборе данных.

Long

Пример кода

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

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.Append(["north.shp", "south.shp", "east.shp", "west.shp"], 
                        "wholecity.shp", "TEST")
Append, пример 2 (окно Python)

В следующем скрипте окна Python показано, как использовать функцию Append с параметрами match_fields и update_geometry в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data/zoning.gdb"
arcpy.management.Append("Zoning_update_2040", "Zoning_2020", "TEST", 
                        match_fields=[["ZONEID", "ZONEID"]], update_geometry="UPDATE_GEOMETRY")
Append, пример 3 (автономный скрипт)

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

# Name: Append.py
# Description: Use the Append tool to combine several polygon feature classes

# Import system modules 
import arcpy
import os

# Set environment settings
arcpy.env.workspace = "C:/data/towns.gdb"

# Set local variables
outLocation = "C:/data/output.gdb"
outName = "MA_towns.shp"
schemaType = "NO_TEST"
fieldMappings = ""
subtype = ""

# Process: Append to an existing "amherst" polygon feature class
target = os.path.join(outLocation, "amherst")

# All polygon FCs in the workspace are MA town FCs, you want to append these
# to the target FC. The list will resemble ["amherst", "hadley", "pelham",
# "coldspring"]

fcList = arcpy.ListFeatureClasses("", "POLYGON")

# Create FieldMappings object to manage merge output fields
fieldMappings = arcpy.FieldMappings()

# Add the target table to the field mappings class to set the schema
fieldMappings.addTable(target)

# Add input fields for the town name to TOWNNAME field that matches the 
# target dataset since each input dataset has a different field name for 
# this info
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst","TOWNNAME")
fldMap.addInputField("hadley","NAME")
fldMap.addInputField("pelham","TOWN_NAME")
fldMap.addInputField("coldspring","TOWN")

# Set name of new output field "TOWNNAME"
townName = fldMap.outputField
townName.name, townName.aliasName, townName.type = "TOWNNAME", "TOWNNAME", "TEXT"
fldMap.outputField = townName

# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)

# Do the same for the POPULATION field
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst","POPULATION")
fldMap.addInputField("hadley","POP")
fldMap.addInputField("pelham","POP_2010")
fldMap.addInputField("coldspring","POP")

# Set name of new output field "POPULATION"
pop = fldMap.outputField
pop.name, pop.aliasName, pop.type = "POPULATION", "POPULATION", "LONG"
fldMap.outputField = pop

# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)

# Process: Append the feature classes to the target feature class
arcpy.management.Append(fcList, os.path.join(outLocation, "amherst"), schemaType, 
                        fieldMappings, subtype)

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

Особые случаи

Сохранить Global ID

Для инструмента Присоединить этот параметр среды используется только для данных многопользовательских баз геоданных и работает только с данными, содержащими поле Global ID с уникальными индексами. Если у этого поля уникального индекса нет, инструмент может выдать ошибку. Для добавления уникального индекса в поле Global ID можно использовать инструмент Добавить атрибутивный индекс.

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

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

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