Zusammenführen (Merge) (Data Management)
Zusammenfassung
Zur Zusammenführung mehrerer Eingabe-Datasets des gleichen Datentyps zu einem einzelnen, neuen Ausgabe-Dataset. Mit diesem Werkzeug lassen sich Punkt-, Linien- oder Polygon-Feature-Classes oder -Tabellenkombinieren.
Mit dem Werkzeug Anhängen können Sie Eingabe-Datasets mit einem vorhandenen Dataset kombinieren.
Abbildung
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.
Bei Verwendung des Steuerelements zur Feldzuordnung können Felder des Typs BLOB ausschließlich an ein Ausgabefeld des Typs "BLOB" übertragen 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 das Werkzeug Vereinigen.
-
Mit diesem Werkzeug wird kein Kantenabgleich durchgeführt; eine Anpassung an die Geometrie von Features findet demnach nicht statt.
-
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 Ausgabe-Koordinatensystem-Geoverarbeitungsumgebung festgelegt wird.
-
Karten-Layer können als Eingabe-Datasets verwendet werden. Wurde für einen Layer eine Auswahl getroffen, werden nur die selektierten Datensätze (Features oder Tabellenzeilen) im Werkzeug "Zusammenführen" verwendet.
-
Mehrere Eingabe-Layer mit demselben Namen können für dieses Werkzeug nicht verwendet werden. Obwohl Layer mit demselben Namen in ArcMap angezeigt werden können, dürfen diese Layer nicht verwendet werden. Um diese Einschränkung zu umgehen, suchen Sie im Dialogfeld des Werkzeugs mit der Schaltfläche zum Suchen nach dem vollständigen Pfad der einzelnen Eingabe-Datasets.
-
Die Annotation-Feature-Class ist kein gültiger Eingabedatentyp.
Raster-Datasets sind keine gültige Eingabe. 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 Punkt-, Linien- 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 Vereinigungsregel einstellen. Sie können auch die Vorkommen eines Ausgabefeldes löschen und die Werte formatieren. Mit Vereinigungsregeln geben Sie an, wie Werte aus zwei oder mehr Eingabefeldern zu einem einzigen Ausgabewert zusammengeführt werden. Es stehen mehrere Vereinigungsregeln zur Verfügung:
| Field Mappings |
Codebeispiel
Mit dem folgenden Skript im Python-Fenster wird die Anwendung des Werkzeugs "Zusammenführen" 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" 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.CreateObject("FieldMappings") # Create FieldMap objects to add new fields to merge output fldMap_streetClass = arcpy.CreateObject("FieldMap") fldMap_streetName = arcpy.CreateObject("FieldMap") # 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.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 input fields "CLASS" & "IFC" into new output field 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 "Street_Class" and "Street_Name" output fields to FieldMappings object fieldMappings.AddFieldMap(fldMap_streetName) fieldMappings.AddFieldMap(fldMap_streetClass) # Remove all output fields from the field map, 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)