Zusammenführen (Merge) (Data Management)
Zusammenfassung
Zusammenführung mehrerer Eingabe-Datasets des gleichen Datentyps zu einem einzelnen, neuen Ausgabe-Dataset. Mit diesem Werkzeug lassen sich Point-, Line- oder Polygon-Feature-Classes oder Tabellen kombinieren.
Mit dem Werkzeug Anhängen können Sie Eingabe-Datasets mit einem vorhandenen Dataset kombinieren.
Bild
Verwendung
-
Mit diesem Werkzeug können Datasets aus mehreren Quellen in ein neues, einzelnes Ausgabe-Dataset zusammengeführt werden. Alle Eingabe-Datasets müssen vom gleichen Typ sein (d. h. mehrere Point-Feature-Classes oder Tabellen können zusammengeführt werden, eine Line-Feature-Class mit einer Polygon-Feature-Class hingegen nicht).
-
Alle Felder im Ausgabe-Dataset und der zugehörige Inhalt können mit den Steuerelementen für die Feldzuordnung koordiniert werden.
-
Features aus den Eingabe-Datasets werden mit diesem Werkzeug nicht geteilt. Alle Features aus den Eingabe-Datasets bleiben im Ausgabe-Dataset intakt, auch wenn sie sich überschneiden. Zum Zusammenführen oder Teilen von Feature-Geometrien verwenden Sie das Werkzeug Vereinigen (Union).
-
Wenn Feature-Classes zusammengeführt werden, ist das Ausgabe-Dataset im Koordinatensystem der ersten Feature-Class in der Liste Eingabe-Datasets, außer wenn die Umgebungseinstellung Ausgabe-Koordinatensystem festgelegt wird.
-
Dieses Werkzeug unterstützt keine Annotation-Feature-Classes. Verwenden Sie das Werkzeug Annotation-Feature-Class anhängen, um Annotation-Feature-Classes zu kombinieren.
Dieses Werkzeug unterstützt keine Raster-Datasets. Mehrere Raster können mit dem Werkzeug Mosaik zu neuem Raster in ein neues Ausgabe-Raster zusammengeführt werden.
Syntax
Parameter | Erläuterung | Datentyp |
inputs [inputs,...] |
Die Eingabe-Datasets, die zu einem neuen Ausgabe-Dataset zusammengeführt werden. Eingabe-Datasets können Point-, Line- oder Polygon-Feature-Classes oder Tabellen sein. Der Datentyp der einzelnen Eingabe-Datasets muss übereinstimmen. | Table View |
output |
Das Ausgabe-Dataset, das alle zusammengeführten Eingabe-Datasets enthält. | Feature Class;Table |
field_mappings (optional) |
Die aus den Eingaben ausgewählten Felder mit Inhalt. Die jeweiligen eindeutigen Eingabefelder werden im Fenster "Feldzuordnung" aufgeführt. Wenn Sie das Fenster erweitern, wird eine Liste aller Vorkommnisse der Eingabefelder angezeigt. Für jede Feldzuordnung können Sie Ausgabefelder hinzufügen, umbenennen oder löschen sowie Eigenschaften wie Datentyp und Zusammenführungsregel einstellen. Sie können auch die Vorkommnisse eines Ausgabefeldes löschen und die Werte formatieren. | Field Mappings |
Codebeispiel
Mit dem folgenden Skript im Python-Fenster wird die Anwendung des Werkzeugs "Zusammenführen (Merge)" gezeigt.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Merge_management(["majorrds.shp", "Habitat_Analysis.gdb/futrds"], "C:/output/Output.gdb/allroads")
Verschieben Sie mithilfe des Werkzeugs "Zusammenführen (Merge)" Features aus zwei Street-Feature-Classes in ein einzelnes Dataset.
# Name: Merge.py
# Description: Use Merge tool to move features from two street
# feature classes into a single dataset with field mapping
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Street feature classes to be merged
oldStreets = "majorrds.shp"
newStreets = "Habitat_Analysis.gdb/futrds"
# 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.Merge_management([oldStreets, newStreets], uptodateStreets, fieldMappings)