Zusammenfassung
Hängt mehrere Eingabe-Datasets an ein bereits vorhandenes Ziel-Dataset an. Bei den Eingabe-Datasets kann es sich um Point-, Line- oder Polygon-Feature-Classes, Tabellen, Raster, Annotation-Feature-Classes oder Dimension-Feature-Classes handeln.
Verwenden Sie das Werkzeug Zusammenführen (Merge), um Eingabe-Datasets mit einem neuen Ausgabe-Dataset zu kombinieren.
Abbildung
Verwendung
Mithilfe dieses Werkzeugs können Sie einem vorhandenen Dataset neue Features oder andere Daten aus verschiedenen Datasets hinzufügen. Mit diesem Werkzeug können Point-, Line- oder Polygon-Feature-Classes, Tabellen, Raster, Annotation-Feature-Classes oder Dimension-Feature-Classes an ein vorhandenes Dataset desselben Typs angehängt werden. Es können beispielsweise mehrere Tabellen an eine vorhandene Tabelle oder mehrere Raster an ein vorhandenes Raster-Dataset angefügt werden; es kann jedoch keine Line-Feature-Class an eine Point-Feature-Class angefügt werden.
Das Steuerelement Feldzuordnung des Werkzeugs Anhängen kann verwendet werden, um zu steuern, wie die Attributinformationen aus den Eingabe-Dataset-Feldern in das Ziel-Dataset übertragen werden. Das Steuerelement "Feldzuordnung" kann nur bei Auswahl von Feldzuordnung zum Abgleichen von Schema-Unterschieden verwenden als Schematyp verwendet werden.
Mit diesem Werkzeug werden Features nicht geteilt, wenn sie dem Ziel-Dataset hinzugefügt werden. Alle Features der Eingabe-Feature-Class und der Ziel-Feature-Class bleiben nach dem Anfügen bestehen, selbst wenn sich Features überschneiden. Wenn Sie Feature-Geometrien zusammenführen oder teilen möchten, können Sie dies mit dem Werkzeug Vereinigen tun.
Wenn Eingabe-Schema muss Ziel-Schema entsprechen als Schematyp (schema_type = "TEST" in Python) ausgewählt wird, muss das Schema (Felddefinitionen) der Eingabe-Datasets mit dem des Ziel-Datasets übereinstimmen, damit die Features angehängt werden können. Bei Auswahl von Feldzuordnung zum Abgleichen von Schema-Unterschieden verwenden (schema_type = "NO_TEST" in Python) muss das Eingabe-Dataset-Schema (Felddefinitionen) nicht dem Ziel-Dataset entsprechen. Felder der Eingabe-Datasets, die nicht mit den Feldern des Ziel-Datasets übereinstimmen, werden jedoch dem Ziel-Dataset nicht zugeordnet, es sei denn, die Zuordnung wird im Steuerelement "Feldzuordnung" explizit festgelegt.
Da die Daten der Eingabe-Datasets in ein vorhandenes Ziel-Dataset geschrieben werden, das ein vordefiniertes Schema (Felddefinitionen) hat, werden vom Steuerelement "Feldzuordnung" keine Felder zugelassen, die dem Ziel-Dataset hinzugefügt oder daraus entfernt werden sollen.
Wenn die Raumbezüge einer Eingabe- und Ziel-Feature-Class nicht zusammenpassen, projiziert das Werkzeug Anhängen die Features in der Eingabe-Feature-Class in das von der Ziel-Feature-Class verwendete Koordinatensystem.
Mit diesem Werkzeug wird kein Kantenabgleich durchgeführt; eine Anpassung an die Geometrie von Features findet demnach nicht statt.
Karten-Layer können als Eingabe-Datasets verwendet werden. Wenn für einen Layer eine Auswahl getroffen wurde, werden nur die ausgewählten Datensätze (Features oder Tabellenzeilen) im Werkzeug Anhängen verwendet.
Mehrere Eingabe-Layer mit demselben Namen können für dieses Werkzeug nicht verwendet werden. Sie können diese Einschränkung umgehen, indem Sie über die Suchschaltfläche im Dialogfeld des Werkzeugs nach dem vollständigen Pfad der einzelnen Eingabe-Datasets suchen.
Wenn Sie den Parameter Subtype verwenden möchten, muss das Ziel-Dataset ein definiertes Subtype-Feld und zugewiesene Subtype-Codes aufweisen. Geben Sie im Parameter Subtype eine Subtype-Beschreibung ein, um allen neuen Daten, die an das Ziel-Dataset angefügt werden, diesen Subtype zuzuweisen.
Syntax
Append_management (inputs, target, {schema_type}, {field_mapping}, {subtype})
Parameter | Erläuterung | Datentyp |
inputs [inputs,...] | Die Eingabe-Datasets, deren Daten an das Ziel-Dataset angehängt werden. Bei den Eingabe-Datasets kann es sich um Point-, Line- oder Polygon-Feature-Classes, Tabellen, Raster, Annotation-Feature-Classes oder Dimension-Feature-Classes handeln. Jedes Eingabe-Dataset muss mit dem Datentyp des Ziel-Datasets übereinstimmen. | Table View; Raster Layer |
target | Das vorhandene Dataset, an das die Daten des Eingabe-Datasets angehängt werden. Jedes Eingabe-Dataset muss mit dem Datentyp des Ziel-Datasets übereinstimmen. | Table View; Raster Layer |
schema_type (optional) | Gibt an, ob das Schema (Felddefinitionen) der Eingabe-Datasets dem des Ziel-Datasets entsprechen muss, damit die Daten angehängt werden können.
| String |
field_mapping (optional) | Legt fest, wie die Attributfelder aus den Eingabe-Datasets an das Ziel-Dataset übertragen oder ihm zugeordnet werden. Dieser Parameter kann nur verwendet werden, wenn als Schematyp NO_TEST angegeben ist. Da die Daten der Eingabe-Datasets an ein vorhandenes Ziel-Dataset angehängt werden, das ein vordefiniertes Schema (Feldnamen und -typen) hat, können dem Ziel-Dataset keine Felder hinzugefügt oder daraus entfernt werden. Sie können Vereinigungregeln für jedes Ausgabefeld festlegen. Mit Vereinigungsregeln geben Sie an, wie Werte aus zwei oder mehr Eingabefeldern zu einem einzigen Ausgabewert zusammengeführt bzw. kombiniert werden. Es gibt mehrere Vereinigungsregeln, anhand derer festgelegt wird, wie das Ausgabefeld mit Werten gefüllt wird.
Dieser Parameter kann mit der FieldMappings-Klasse von ArcPy definiert werden. | Field Mapping |
subtype (optional) | Die Subtype-Beschreibung, die allen neuen Daten zugewiesen werden soll, die an das Ziel-Dataset angefügt werden. | String |
Codebeispiel
Append – Beispiel 1 (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie das Werkzeug "Anhängen" im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = "C:/data/"
arcpy.Append_management(["north.shp", "south.shp", "east.shp", "west.shp"], "wholecity.shp", "TEST","","")
Append – Beispiel 2 (eigenständiges Python-Skript)
Das folgende Skript veranschaulicht, wie das Werkzeug "Append" verwendet wird.
# 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 into
emptyFC = arcpy.CreateFeatureclass_management(outLocation, outName, "POLYGON", "amherst.shp")
# All polygon FCs in the workspace are MA town shapefiles, we want to append these to the empty FC
fcList = arcpy.ListFeatureClasses("","POLYGON")
# list will resemble ["amherst.shp", "hadley.shp", "pelham.shp", "coldspring.shp"]
# 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 into 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 into the empty feature class
arcpy.Append_management(fcList, outLocation + os.sep + emptyFC, schemaType, fieldMappings, subtype)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Ja
- ArcGIS Desktop Standard: Ja
- ArcGIS Desktop Advanced: Ja