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

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

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

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

Иллюстрация

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

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

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

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

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

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

    Более подробно о списках полей в скриптах

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

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

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

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

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

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

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

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

Параметры

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

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

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

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

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

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

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

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

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

Этот параметр можно использовать, только если Тип сопоставления полей установлен на Использовать список полей для определения различий.

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

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

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

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

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

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

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

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

SQL Expression

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

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

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

Table View; Raster Layer

arcpy.management.Append(inputs, target, {schema_type}, {field_mapping}, {subtype}, {expression})
ИмяОписаниеТип данных
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

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

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

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

Table View; Raster Layer

Пример кода

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

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

import arcpy
arcpy.env.workspace = "C:/data/"
arcpy.Append_management(["north.shp", "south.shp", "east.shp", "west.shp"], 
                        "wholecity.shp", "TEST")
Append, пример 2 (автономный скрипт)

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

# Name: Append.py
# Description: Use the Append tool to combine several shapefiles

# Import system modules 
import arcpy
import os

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

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

# Process:  Create a new empty feature class to append shapefiles to
emptyFC = arcpy.CreateFeatureclass_management(outLocation, outName, "POLYGON", 
                                              "amherst.shp")

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

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(emptyFC)

# 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.shp","TOWNNAME")
fldMap.addInputField("hadley.shp","NAME")
fldMap.addInputField("pelham.shp","TOWN_NAME")
fldMap.addInputField("coldspring.shp","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 thing for the POPULATION field
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst.shp","POPULATION")
fldMap.addInputField("hadley.shp","POP")
fldMap.addInputField("pelham.shp","POP_2010")
fldMap.addInputField("coldspring.shp","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 empty feature class
arcpy.Append_management(fcList, os.path.join(outLocation, emptyFC), schemaType, 
                        fieldMappings, subtype)

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

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

Сохранить Global ID

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

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

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

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