Anhängen (Data Management)

Zusammenfassung

Hängt ein vorhandenes Ziel-Dataset an mehrere Eingabe-Datasets an oder aktualisiert diese optional. Eingabe-Datasets können Feature-Classes, Tabellen, Shapefiles, Raster sowie Annotation- oder Dimension-Feature-Classes sein.

Verwenden Sie das Werkzeug Zusammenführen (Merge), um Eingabe-Datasets mit einem neuen Ausgabe-Dataset zu kombinieren.

Abbildung

Abbildung des Werkzeugs "Anhängen"

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.

  • Mit dem Parameter Feldzuordnung können Sie steuern, wie die Attributinformationen aus den Eingabe-Dataset-Feldern in das Ziel-Dataset übertragen werden. Der Parameter Feldzuordnung kann nur verwendet werden, wenn Feldzuordnung zum Abgleichen von Schema-Unterschieden verwenden im Parameter Schematyp angegeben wird.

  • Verwenden Sie den Parameter Feldzuordnung, um die Felder aus den Eingabe-Datasets den Feldern im Ziel-Dataset zuzuordnen oder mit ihnen abzugleichen.

    • Verwenden Sie eine Aktion, um festzulegen, wie die Werte aus einem oder mehreren Feldern des Eingabe-Datasets zu einem einzelnen Feld des Ziel-Datasets zugeordnet werden sollen.
    • Die verfügbaren Aktionen sind: Erste(r), Letzte(r), Verbinden, Summe, Mittelwert, Medianwert, Modus, Minimum, Maximum, Standardabweichung und Anzahl.
    • Bei Verwendung von Verbinden können Sie ein Trennzeichen angeben, z. B. ein Komma oder andere Zeichen. Klicken Sie auf den Beginn des Textfeldes Trennzeichen, um die Trennzeichen hinzuzufügen.
    • Standardabweichung ist keine gültige Option für einzelne Eingabewerte.
    • Verwenden Sie die Schaltfläche Text ausschneiden bei Textquellfeldern, um auszuwählen, welche Zeichen aus einem Eingabewert in das Zielfeld extrahiert werden sollen. Um auf die Schaltfläche Text ausschneiden zuzugreifen, bewegen Sie den Mauszeiger über ein Textfeld in der Liste der Eingabefelder, und geben Sie dann die Start- und Endposition der Zeichen an.
    • Felder können auch mit Python-Skripts zugeordnet 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. Zum Zusammenführen oder Teilen von Feature-Geometrien verwenden Sie das Werkzeug Vereinigen (Union).

  • Wenn der Parameter Typ der Feldübereinstimmung auf Eingabefelder müssen Zielfeldern entsprechen eingestellt ist, muss das Schema der Eingabe-Datasets mit dem des Ziel-Datasets übereinstimmen, damit Features angehängt werden können.

    Wenn der Parameter Typ der Feldübereinstimmung auf Feldzuordnung zum Abgleichen von Feld-Unterschieden verwenden eingestellt ist, muss das Schema nicht übereinstimmen. Felder der Eingabe-Datasets, die nicht mit den Feldern des Ziel-Datasets übereinstimmen, werden dem Ziel-Dataset nicht zugeordnet, es sei denn, die Zuordnung wird im Parameter Feldzuordnung festgelegt. Felder im Ziel-Dataset, die nicht Feldern in den Eingabe-Datasets zugeordnet sind, enthalten NULL-Werte.

    Wenn der Parameter Typ der Feldübereinstimmung auf Überspringen und eine Warnung anzeigen, wenn das Schema nicht übereinstimmt eingestellt ist, muss das Schema der Eingabe-Datasets mit dem des Ziel-Datasets übereinstimmen, damit Features angehängt werden können. Wenn ein Eingabe-Dataset Felder enthält, die nicht zu den Feldern im Ziel-Dataset passen, wird dieses Eingabe-Dataset ignoriert.

  • Die Anzahl der angehängten Zeilen wird in den Werkzeugmeldungen angezeigt und im Parameter Anzahl angehängter Zeilen zurückgegeben.

  • Da die Daten der Eingabe-Datasets in ein vorhandenes Ziel-Dataset geschrieben werden, das ein vordefiniertes Schema hat, können Sie den Parameter Feldzuordnung nicht verwenden, um Felder zum Ziel-Dataset hinzuzufügen oder aus ihm zu entfernen.

  • Mit diesem Werkzeug können Sie neue Datensätze einfügen und bestehende Datensätze in einem Ziel-Dataset im gleichen Schritt aktualisieren (entspricht einer UPSERT-Datenbankoperation). Verwenden Sie den Parameter Abgleichfelder für Aktualisierung, um die Felder aus dem Eingabe-Dataset anzugeben, die mit den Feldern im Ziel-Dataset abgeglichen werden sollen. Bei Datensätzen mit übereinstimmenden Feldwerten werden die Felder im Zieldatensatz mit den Werten aus den gleichnamigen Feldern im Eingabedatensatz aktualisiert. Die Anzahl der aktualisierten Zeilen mit übereinstimmenden Feldern wird in den Werkzeugmeldungen angezeigt und im Parameter Anzahl aktualisierter Zeilen zurückgegeben. Die Geometrie wird aktualisiert, wenn der Parameter Geometrie aktualisieren aktiviert ist.

  • Die Eingabe- und Ziel-Datasets verfügen möglicherweise über unterschiedliche Raumbezüge. Ist dies der Fall, projiziert das Werkzeug die Eingabe-Features in das Zielkoordinatensystem. Die besten Ergebnisse erzielen Sie, wenn Sie in der Umgebung Geographische Transformationen eine geeignete geographische Transformation angeben. Handelt es sich bei dem Ziel-Dataset um einen Karten-Layer, kann das Werkzeug eine Standardtransformation anwenden. In Python gibt es keine Standardtransformation.

  • Dieses Werkzeug führt keinen Kantenabgleich durch; es findet keine Anpassung an die Geometrie von Features statt.

  • Karten-Layer können als Parameterwerte für Eingabe-Datasets verwendet werden. Wenn für einen Layer eine Auswahl getroffen wurde, werden nur die ausgewählten Datensätze (Features oder Tabellenzeilen) verwendet.

  • Sie können nicht mehrere Eingabe-Layer mit demselben Namen in diesem Werkzeug verwenden. Verwenden Sie stattdessen die Schaltfläche "Durchsuchen" im Bereich Geoverarbeitung, um zu den vollständigen Pfaden der einzelnen Werte unter Eingabe-Datasets zu navigieren.

  • Wenn ein Eingabe-Dataset und das Ziel-Dataset denselben Namen haben, ist die Werkzeug-Performance beeinträchtigt.

  • 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.

  • Dieses Werkzeug kann zur Gewährleistung einer optimalen Performance direkt im Back-End-Data-Store, auf dem Server oder der Datenbank für Web-Feature-Layer verwendet werden. Bei Feature-Services, die eine Geodatabase referenzieren, kann dieses Werkzeug mit einer Datenbankverbindung verwendet werden, um große Datenmengen direkt in die zugrunde liegende Geodatabase zu laden. Bei gehosteten Services in ArcGIS Enterprise können Sie den append-Vorgang auf der Feature-Layer-Elementseite oder ArcGIS REST API verwenden.

    Für eine optimale Performance bei gehosteten Services in ArcGIS Online können Administratoren und Service-Besitzer dieses Werkzeug mit der ArcGIS REST API verwenden, wenn die Eigenschaft supportAppend auf true festgelegt ist. Damit Benutzer, die keine Administratoren sind, das Werkzeug Anhängen mit der ArcGIS REST API verwenden können, müssen die Anhängfunktionen für den Feature-Service aktiviert sein.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Datasets

Die Eingabe-Datasets, die die Daten enthalten, die an das Ziel-Dataset angehängt werden sollen. Bei den Eingabe-Datasets kann es sich um Point-, Line- oder Polygon-Feature-Classes, Tabellen, Raster, Annotation-Feature-Classes oder Dimension-Feature-Classes handeln.

Tabellen und Feature-Classes können kombiniert werden. Wird eine Feature-Class an eine Tabelle angehängt, werden die Attribute übertragen, die Features jedoch entfernt. Wird eine Tabelle an eine Feature-Class angehängt, haben die Zeilen aus der Eingabetabelle eine NULL-Geometrie.

Table View; Raster Layer
Ziel-Dataset

Das vorhandene Dataset, an das die Daten der Eingabe-Datasets angehängt werden.

Table View; Raster Layer
Typ der Feldübereinstimmung
(optional)

Gibt an, ob die Felder der Eingabe-Datasets den Feldern des Ziel-Datasets entsprechen müssen, damit die Daten angehängt werden können.

  • Eingabefelder müssen Zielfeldern entsprechenDie Felder aus den Eingabe-Datasets müssen mit den Feldern des Ziel-Datasets übereinstimmen. Wenn die Felder nicht übereinstimmen, wird ein Fehler zurückgegeben.
  • Feldzuordnung zum Abgleichen von Feld-Unterschieden verwendenDie Felder aus den Eingabe-Datasets müssen nicht mit den Feldern des Ziel-Datasets übereinstimmen. Felder der Eingabe-Datasets, die nicht mit den Feldern des Ziel-Datasets übereinstimmen, werden dem Ziel-Dataset nicht zugeordnet, es sei denn, die Zuordnung wird im Parameter Feldzuordnung explizit festgelegt.
  • Überspringen und eine Warnung anzeigen, wenn das Schema nicht übereinstimmtDie Felder aus den Eingabe-Datasets müssen mit den Feldern des Ziel-Datasets übereinstimmen. Wenn eines der Eingabe-Datasets Felder enthält, die nicht mit dem Ziel-Dataset übereinstimmen, wird dieses Eingabe-Dataset ausgelassen und eine Warnmeldung angezeigt.
String
Feldzuordnung
(optional)

Der Parameter "Feldzuordnung" steuert die Übertragung oder Zuordnung von Feldern aus den Eingabe-Datasets in das Ziel-Dataset. Er kann nur verwendet werden, wenn der Parameter Typ der Feldübereinstimmung auf Feldzuordnung zum Abgleichen von Feld-Unterschieden verwenden festgelegt ist.

Da die Eingabe-Datasets an ein vorhandenes Ziel-Dataset angehängt werden, das vordefinierte Felder hat, können Sie die Eigenschaften der Felder in der Feldzuordnung nicht hinzufügen, entfernen, neu anordnen oder ändern.

Die Feldzuordnung kann verwendet werden, um Werte aus einem oder mehreren Eingabefeldern in einem einzigen Ausgabefeld zu kombinieren.

Field Mappings
Subtype
(optional)

Die Subtype-Beschreibung, die allen neuen Daten zugewiesen werden soll, die an das Ziel-Dataset angefügt werden.

String
Ausdruck
(optional)

Der SQL-Ausdruck, mit dem eine Teilmenge der Datensätze des Eingabe-Datasets ausgewählt wird. Wenn mehrere Eingabe-Datasets angegeben werden, werden sie alle anhand des Ausdrucks ausgewertet. Wenn keine Datensätze dem Ausdruck für ein Eingabe-Dataset entsprechen, werden keine Datensätze aus diesem Dataset an das Ziel-Dataset angehängt.

Weitere Informationen zur SQL-Syntax finden Sie unter SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke.

SQL Expression
Abgleichfelder für Aktualisierung
(optional)

Die Felder aus den Eingabe-Datasets, die zum Abgleich mit dem Ziel-Dataset verwendet werden. Wenn die Werte dieser Felder übereinstimmen, werden die entsprechenden Datensätze des Ziel-Datasets durch die Datensätze im Eingabe-Dataset aktualisiert.

Value Table
Geometrie aktualisieren
(optional)

Gibt an, ob die Geometrie im Ziel-Dataset durch die Geometrie aus den Eingabe-Datasets aktualisiert wird, wenn die Feldwerte des Parameters Abgleichfelder für Aktualisierung übereinstimmen.

  • Aktiviert: Die Geometrie im Ziel-Dataset wird aktualisiert, wenn die Feldwerte des Parameters Abgleichfelder für Aktualisierung übereinstimmen.
  • Deaktiviert: Die Geometrie wird nicht aktualisiert. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisiertes Ziel-Dataset

Das aktualisierte Ziel-Dataset.

Table View; Raster Layer
Anzahl angehängter Zeilen

Die Anzahl der Zeilen, die an das Ziel-Dataset angehängt wurden.

Long
Anzahl aktualisierter Zeilen

Die Anzahl der Zeilen, die im Ziel-Dataset aktualisiert wurden.

Long

arcpy.management.Append(inputs, target, {schema_type}, {field_mapping}, {subtype}, {expression}, {match_fields}, {update_geometry})
NameErläuterungDatentyp
inputs
[inputs,...]

Die Eingabe-Datasets, die die Daten enthalten, die an das Ziel-Dataset angehängt werden sollen. Bei den Eingabe-Datasets kann es sich um Point-, Line- oder Polygon-Feature-Classes, Tabellen, Raster, Annotation-Feature-Classes oder Dimension-Feature-Classes handeln.

Tabellen und Feature-Classes können kombiniert werden. Wird eine Feature-Class an eine Tabelle angehängt, werden die Attribute übertragen, die Features jedoch entfernt. Wird eine Tabelle an eine Feature-Class angehängt, haben die Zeilen aus der Eingabetabelle eine NULL-Geometrie.

Table View; Raster Layer
target

Das vorhandene Dataset, an das die Daten der Eingabe-Datasets angehängt werden.

Table View; Raster Layer
schema_type
(optional)

Gibt an, ob die Felder der Eingabe-Datasets den Feldern des Ziel-Datasets entsprechen müssen, damit die Daten angehängt werden können.

  • TESTDie Felder aus den Eingabe-Datasets müssen mit den Feldern des Ziel-Datasets übereinstimmen. Wenn die Felder nicht übereinstimmen, wird ein Fehler zurückgegeben.
  • NO_TESTDie Felder aus den Eingabe-Datasets müssen nicht mit den Feldern des Ziel-Datasets übereinstimmen. Felder der Eingabe-Datasets, die nicht mit den Feldern des Ziel-Datasets übereinstimmen, werden dem Ziel-Dataset nicht zugeordnet, es sei denn, die Zuordnung wird im Parameter Feldzuordnung explizit festgelegt.
  • TEST_AND_SKIPDie Felder aus den Eingabe-Datasets müssen mit den Feldern des Ziel-Datasets übereinstimmen. Wenn eines der Eingabe-Datasets Felder enthält, die nicht mit dem Ziel-Dataset übereinstimmen, wird dieses Eingabe-Dataset ausgelassen und eine Warnmeldung angezeigt.
String
field_mapping
(optional)

Der Parameter "Feldzuordnung" steuert die Übertragung oder Zuordnung von Feldern aus den Eingabe-Datasets in das Ziel-Dataset. Er kann nur verwendet werden, wenn der Parameter schema_type auf NO_TEST festgelegt ist.

Da die Eingabe-Datasets an ein vorhandenes Ziel-Dataset angehängt werden, das vordefinierte Felder hat, können Sie die Eigenschaften der Felder in der Feldzuordnung nicht hinzufügen, entfernen, neu anordnen oder ändern.

Die Feldzuordnung kann verwendet werden, um Werte aus einem oder mehreren Eingabefeldern in einem einzigen Ausgabefeld zu kombinieren.

In Python verwenden Sie die FieldMappings-Klasse zum Definieren dieses Parameters.

Field Mappings
subtype
(optional)

Die Subtype-Beschreibung, die allen neuen Daten zugewiesen werden soll, die an das Ziel-Dataset angefügt werden.

String
expression
(optional)

Der SQL-Ausdruck, mit dem eine Teilmenge der Datensätze des Eingabe-Datasets ausgewählt wird. Wenn mehrere Eingabe-Datasets angegeben werden, werden sie alle anhand des Ausdrucks ausgewertet. Wenn keine Datensätze dem Ausdruck für ein Eingabe-Dataset entsprechen, werden keine Datensätze aus diesem Dataset an das Ziel-Dataset angehängt.

Weitere Informationen zur SQL-Syntax finden Sie unter SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke.

SQL Expression
match_fields
[[target_field, input_field],...]
(optional)

Die Felder aus den Eingabe-Datasets, die zum Abgleich mit dem Ziel-Dataset verwendet werden. Wenn die Werte dieser Felder übereinstimmen, werden die entsprechenden Datensätze des Ziel-Datasets durch die Datensätze im Eingabe-Dataset aktualisiert.

Value Table
update_geometry
(optional)

Gibt an, ob die Geometrie im Ziel-Dataset durch die Geometrie aus den Eingabe-Datasets aktualisiert wird, wenn die Feldwerte des Parameters match_fields übereinstimmen.

  • UPDATE_GEOMETRYDie Geometrie im Ziel-Dataset wird aktualisiert, wenn die Feldwerte des Parameters match_fields übereinstimmen.
  • NOT_UPDATE_GEOMETRYDie Geometrie wird nicht aktualisiert. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

NameErläuterungDatentyp
output

Das aktualisierte Ziel-Dataset.

Table View; Raster Layer
appended_row_count

Die Anzahl der Zeilen, die an das Ziel-Dataset angehängt wurden.

Long
updated_row_count

Die Anzahl der Zeilen, die im Ziel-Dataset aktualisiert wurden.

Long

Codebeispiel

Append: Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion Append im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.Append(["north.shp", "south.shp", "east.shp", "west.shp"], 
                        "wholecity.shp", "TEST")
Append: Beispiel 2 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Append-Funktion mit den Parametern match_fields und update_geometry im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data/zoning.gdb"
arcpy.management.Append("Zoning_update_2040", "Zoning_2020", "TEST", 
                        match_fields=[["ZONEID", "ZONEID"]], update_geometry="UPDATE_GEOMETRY")
Append: Beispiel 3 (eigenständiges Skript)

Das folgende Skript veranschaulicht, wie die Funktion Append verwendet wird.

# Name: Append.py
# Description: Use the Append tool to combine several polygon feature classes

# Import system modules 
import arcpy
import os

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

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

# Process: Append to an existing "amherst" polygon feature class
target = os.path.join(outLocation, "amherst")

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

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

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

Umgebungen

Sonderfälle

Global-IDs beibehalten

Für das Werkzeug Anhängen gilt diese Umgebung nur für Enterprise-Geodatabase-Daten und kann nur für Daten verwendet werden, die das Global-ID-Feld mit einem eindeutigen Index aufweisen. Wenn das Global-ID-Feld über keinen eindeutigen Index verfügt, kann das Werkzeug möglicherweise nicht ausgeführt werden. Um dem Global-ID-Feld einen eindeutigen Index hinzuzufügen, können Sie das Geoverarbeitungswerkzeug Attributindex hinzufügen verwenden.

Verwandte Themen