Подпись | Описание | Тип данных |
Входные наборы данных |
Входные наборы данных, которые будут объединены вместе в новом выходном наборе данных. Входными наборами данных могут быть классы точечных, линейных или полигональных объектов или таблицы. Выбранные классы объектов должны иметь одинаковый тип геометрии. Таблицы и клаcсы объектов можно комбинировать в один выходной набор данных. Тип выходного набора данных определяется первым набором входных данных. Если первым набором входных данных является класс пространственных объектов, то выходным набором будет класс пространственных объектов; если первым набором входных данных будет таблица, то и выходными данными будет таблица. Если таблица присоединяется к классу объектов, у строк выходной таблицы будет нулевая геометрия. | Table View |
Выходной набор данных | Выходной набор данных, который будет содержать все комбинированные входные наборы данных. | Feature Class;Table |
Список полей (Дополнительный) | Атрибутивные поля выходного набора данных, с соответствующими свойствами полей, и исходные поля. По умолчанию будут включены все поля из входных данных. Поля можно добавлять, удалять, переименовывать и переупорядочивать, а также изменять их свойства. Правила слияния позволяют вам определить, каким образом значения из нескольких входных полей будут слиты или объединены в одно выходное значение. Следующие правила слияния можно использовать для определения того, как выходное поле будет заполняться значениями:
| Field Mappings |
Добавление исходной информации в выходной набор данных (Дополнительный) |
Указывает, будет ли исходная информация добавляться в выходной набор данных в новом текстовом поле MERGE_SRC. Значения в поле MERGE_SRC будут показывать путь входного набора данных или имя слоя, являющегося источником каждой записи в выходном наборе данных.
| Boolean |
Краткая информация
Комбинирует несколько входных наборов данных одного типа данных в один новый выходной набор данных. Этот инструмент комбинирует точечные, линейные и полигональные классы объектов или таблицы.
Используйте инструмент Присоединить, чтобы комбинировать входные наборы данных с существующими.
Иллюстрация
Использование
Используйте этот инструмент, чтобы комбинировать наборы данных из нескольких источников в один новый выходной набор данных. Выбранные классы объектов должны иметь одинаковый тип геометрии. Например, можно объединить несколько классов точечных объектов, но нельзя объединять класс линейных объектов с классом полигональных объектов.
Таблицы и клаcсы объектов можно комбинировать в один выходной набор данных. Тип выходного набора данных определяется первым набором входных данных. Если первым набором входных данных является класс пространственных объектов, то выходным набором будет класс пространственных объектов; если первым набором входных данных будет таблица, то и выходными данными будет таблица. Если таблица присоединяется к классу объектов, у строк выходной таблицы будет нулевая геометрия.
Для управления полями в выходном наборе данных, содержащим эти поля, используйте параметр Список полей.
- Чтобы изменить порядок полей, выберите имя поля и перетащите его в новое положение.
- Тип данных по умолчанию для выходного поля будет таким же, как тип данных первого входного поля (того имени), с которым он сталкивается. Вы можете вручную изменить тип данных в любое время на любой другой допустимый тип данных.
- Доступны следующие правила слияния: первый, последний, соединение, сумма, среднее, медиана, мода, минимум, максимум, среднеквадратическое отклонение и количество.
- Используя правило слияния Соединение, вы можете задать собственный разделитель, например, пробел, запятую, точку, тире и т.д. Чтобы использовать пробел, убедитесь, что курсор мыши находится в начале входной строки и щелкните клавишу Пробел один раз.
- Можно указать начальное и конечное положения текстовых полей, используя опцию формата.
- Среднеквадратическое отклонение не должно быть использовано для одного входного поля, так как значения нельзя делить на ноль. Поэтому среднеквадратическое отклонение не может применяться для одного входного поля.
Этот инструмент не разбивает и не меняет геометрию входных наборов данных. Все пространственные объекты входных классов объектов останутся без изменений после слияния, даже если пространственные объекты перекрываются. Чтобы комбинировать или разбить геометрию пространственных объектов, используйте инструмент Объединить.
При слиянии классов пространственных объектов выходной набор данных находится в системе координат первого в списке Входных наборов данных класса пространственных объектов, если в качестве среды геообработки не установлена Выходная система координат.
Этот инструмент не поддерживает классы объектов аннотаций. Используйте инструмент Соединить классы объектов-аннотаций для комбинирования классов объектов аннотаций.
Указанный инструмент не поддерживает наборы растровых данных. Используйте инструмент Мозаика в новый растр, чтобы комбинировать несколько растров в новый выходной растр.
Параметры
arcpy.management.Merge(inputs, output, {field_mappings}, {add_source})
Имя | Описание | Тип данных |
inputs [inputs,...] |
Входные наборы данных, которые будут объединены вместе в новом выходном наборе данных. Входными наборами данных могут быть классы точечных, линейных или полигональных объектов или таблицы. Выбранные классы объектов должны иметь одинаковый тип геометрии. Таблицы и клаcсы объектов можно комбинировать в один выходной набор данных. Тип выходного набора данных определяется первым набором входных данных. Если первым набором входных данных является класс пространственных объектов, то выходным набором будет класс пространственных объектов; если первым набором входных данных будет таблица, то и выходными данными будет таблица. Если таблица присоединяется к классу объектов, у строк выходной таблицы будет нулевая геометрия. | Table View |
output | Выходной набор данных, который будет содержать все комбинированные входные наборы данных. | Feature Class;Table |
field_mappings (Дополнительный) | Атрибутивные поля выходного набора данных, с соответствующими свойствами полей, и исходные поля. По умолчанию будут включены все поля из входных данных. Поля можно добавлять, удалять, переименовывать и переупорядочивать, а также изменять их свойства. Правила слияния позволяют вам определить, каким образом значения из нескольких входных полей будут слиты или объединены в одно выходное значение. Следующие правила слияния можно использовать для определения того, как выходное поле будет заполняться значениями:
В Python вы можете использовать класс FieldMappings для определения этого параметра. | Field Mappings |
add_source (Дополнительный) | Указывает, будет ли исходная информация добавляться в выходной набор данных в новом текстовом поле MERGE_SRC. Значения в поле MERGE_SRC будут показывать путь входного набора данных или имя слоя, являющегося источником каждой записи в выходном наборе данных.
| Boolean |
Пример кода
Пример скрипта в окне Python для использования функции Merge.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.Merge(["majorrds.shp", "Habitat_Analysis.gdb/futrds"],
"C:/output/Output.gdb/allroads", "", "ADD_SOURCE_INFO")
Использование функции Merge для перемещения пространственных объектов из двух классов объектов улиц в один набор данных.
# Name: Merge.py
# Description: Use Merge to move features from two street
# feature classes into a single dataset with field mapping
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Street feature classes to be merged
oldStreets = "majorrds.shp"
newStreets = "Habitat_Analysis.gdb/futrds"
addSourceInfo = "ADD_SOURCE_INFO"
# Create FieldMappings object to manage merge output fields
fieldMappings = arcpy.FieldMappings()
# Add all fields from both oldStreets and newStreets
fieldMappings.addTable(oldStreets)
fieldMappings.addTable(newStreets)
# Add input fields "STREET_NAM" & "NM" into new output field
fldMap_streetName = arcpy.FieldMap()
fldMap_streetName.addInputField(oldStreets, "STREET_NAM")
fldMap_streetName.addInputField(newStreets, "NM")
# Set name of new output field "Street_Name"
streetName = fldMap_streetName.outputField
streetName.name = "Street_Name"
fldMap_streetName.outputField = streetName
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap_streetName)
# Add input fields "CLASS" & "IFC" into new output field
fldMap_streetClass = arcpy.FieldMap()
fldMap_streetClass.addInputField(oldStreets, "CLASS")
fldMap_streetClass.addInputField(newStreets, "IFC")
# Set name of new output field "Street_Class"
streetClass = fldMap_streetClass.outputField
streetClass.name = "Street_Class"
fldMap_streetClass.outputField = streetClass
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap_streetClass)
# Remove all output fields from the field mappings, except fields
# "Street_Class", "Street_Name", & "Distance"
for field in fieldMappings.fields:
if field.name not in ["Street_Class", "Street_Name", "Distance"]:
fieldMappings.removeFieldMap(fieldMappings.findFieldMapIndex(field.name))
# Since both oldStreets and newStreets have field "Distance", no field mapping
# is required
# Use Merge tool to move features into single dataset
uptodateStreets = "C:/output/Output.gdb/allroads"
arcpy.management.Merge([oldStreets, newStreets], uptodateStreets, fieldMappings,
addSourceInfo)