Feld verbinden (Data Management)

Zusammenfassung

Verbindet auf der Grundlage eines gemeinsamen Attributfeldes den Inhalt einer Tabelle dauerhaft mit einer anderen Tabelle. Die Eingabetabelle wird so aktualisiert, dass sie die Felder aus der Join-Tabelle enthält. Sie können auswählen, welche Felder aus der Join-Tabelle der Eingabetabelle hinzugefügt werden.

Verwendung

  • Die Datensätze im Wert Eingabetabelle werden den Datensätzen im Wert Join-Tabelle zugeordnet. Die Zuordnung basiert auf den Parametern Eingabe-Join-Feld und Join-Tabellen-Feld. Sie können in der Join-Tabelle auch bestimmte Felder auswählen, die bei der Verbindung an die Eingabetabelle angehängt werden sollen.

  • Bei dem Wert Eingabetabelle kann es sich um eine Feature-Class (einschließlich Shapefile) oder eine Tabelle handeln.

  • Alle Felder im Wert Eingabetabelle werden bei der Verbindung beibehalten. Sie können auch aus dem Wert Join-Tabelle bestimmte Felder auswählen, die der Ausgabe hinzugefügt werden sollen. Sie können diese Felder mit dem Parameter Parameter übertragen hinzufügen.

  • Datensätze aus dem Wert Join-Tabelle können mehr als einem Datensatz im Wert Eingabetabelle zugeordnet werden.

  • Falls für den optionalen Parameter Felder übertragen keine Felder ausgewählt werden, werden der Ausgabe standardmäßig alle Felder des Werts Join-Tabelle zur Ausgabe hinzugefügt. Zum Ändern von Feldnamen, Aliasnamen oder Eigenschaften setzten Sie den Parameter Übertragungsmethode auf Feldzuordnung verwenden.

  • Verbindungen können auf Feldern vom Typ "Text", "Datum" oder "Zahl" basieren.

  • Bei Verbindungen auf Basis von Textfeldern wird zwischen Groß- und Kleinschreibung unterschieden.

  • Felder mit verschiedenen Zahlenformaten können verbunden werden, wenn die Werte gleich sind. Sie können z. B. ein Feld vom Typ "Float" mit einem Feld vom Typ "Short Integer" verbinden.

  • Felder der Join-Tabelle mit dem Datentyp "Global-ID" oder "Objekt-ID" werden beim Verbinden mit der Eingabetabelle nicht übertragen.

    Der Wert Eingabe-Join-Feld und der Wert Join-Tabellen-Feld können unterschiedliche Feldnamen haben.

  • Falls ein Join-Feld denselben Namen wie ein Feld der Eingabetabelle trägt, wird an das verbundene Feld _1 (oder _2 bzw. _3 usw.) angehängt, um es eindeutig zu benennen.

  • Wenn für den Parameter Übertragungsmethode die Option Felder für Übertragung auswählen angegeben ist und die Feldwerte im Wert des Parameters Join-Tabellen-Feld nicht eindeutig sind, wird jeweils nur das erste Vorkommen jedes Werts verwendet. Damit auch die anderen Felder berücksichtigt werden (Eins-zu-viele-Verbindung), legen Sie den Parameter Übertragungsmethode auf Feldzuordnung verwenden fest. Bei einer Eins-zu-viele-Verbindung muss der Wert des Parameters Eingabetabelle ein Feld "Objekt-ID" aufweisen und sich im selben Workspace wie der Wert des Parameters Join-Tabelle befinden.

  • Verwenden Sie den Parameter Feldzuordnung, um die Felder und deren Inhalte im Ausgabe-Dataset zu verwalten.

    • Sie können Felder aus der Feldliste hinzufügen und entfernen, die Feldliste umsortieren und Felder umbenennen.
    • Der Standarddatentyp eines Ausgabefeldes ist der Datentyp des zuerst gefundenen Eingabefeldes (mit diesem Namen). Sie können den Datentyp in einen anderen gültigen Datentyp ändern.
    • Verwenden Sie eine Aktion, um festzulegen, wie Werte aus einem oder mehreren Eingabefeldern in einem einzigen Ausgabefeld zusammengeführt 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 Ausgabefeld 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.

  • Wenn der Parameter Feldzuordnung mithilfe der Regel zum Verbinden und Zusammenführen angegeben wird, entspricht bei nicht eindeutigen Werten die Reihenfolge der verbundenen Werte möglicherweise nicht der Reihenfolge der Zeilen des Parameters Join-Tabellen-Feld. Wenn beispielsweise drei Features mit den Werten "Maus", Katze" und "Hund" für das Attribut ANIMAL miteinander verbunden werden, wird das Ergebnis nicht unbedingt in der Reihenfolge "Maus", Katze" und "Hund" ausgegeben.

  • Mit dem Werkzeug Verbindung überprüfen kann eine Verbindung zwischen zwei Layern oder Tabellen überprüft werden, um zu bestimmen, ob die Layer oder Tabellen gültige Feldnamen und Objekt-ID-Felder enthalten, ob die Verbindung übereinstimmende Datensätze generiert, ob die Verbindung eine Eins-zu-Eins- oder Eins-zu-Viele-Verbindung ist, und um weitere Eigenschaften der Verbindung zu bestimmen.

    Aus Gründen der Benutzerfreundlichkeit ist im Dialogfeld des Werkzeugs eine Schaltfläche zum Überprüfen der Verbindung verfügbar.

  • Durch Indizieren des Eingabefeldes und Join-Feldes kann die Performance verbessert werden. Mit dem Parameter Join-Felder indizieren können Sie Indizes hinzufügen oder ersetzen.

  • Wenn die Verbindungsergebnisse unerwartet oder unvollständig sind, dann überprüfen Sie, ob das Eingabefeld und das Join-Feld indiziert sind. Wenn die Felder nicht indiziert sind, dann versuchen Sie, einen Index hinzuzufügen. Wenn die Felder bereits indiziert sind, dann versuchen Sie, den Index zu löschen und erneut hinzuzufügen, um Probleme mit dem Index zu beheben. Mit dem Parameter Join-Felder indizieren können Sie Indizes während der Ausführung des Werkzeugs verwalten.

Parameter

BeschriftungErläuterungDatentyp
Eingabetabelle

Die Tabelle oder die Feature-Class, mit der die Join-Tabelle verbunden wird.

Mosaic Layer; Raster Layer; Table View
Eingabefeld

Das Feld in der Eingabetabelle, auf dem die Verbindung basieren soll.

Field
Join-Tabelle

Die Tabelle, die mit der Eingabetabelle verbunden werden soll.

Mosaic Layer; Raster Layer; Table View
Feld verbinden

Das Feld in der Join-Tabelle, das die Werte enthält, auf denen die Verbindung basiert.

Field
Felder übertragen
(optional)

Die Felder aus der Join-Tabelle, die in die Eingabetabelle übertragen werden sollen, basierend auf einer Verbindung zwischen der Eingabetabelle und der Join-Tabelle.

Field
Übertragungsmethode
(optional)

Gibt an, wie verbundene Felder und Feldtypen in die Ausgabe übertragen werden.

  • Felder für Übertragung auswählenEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Dies ist die Standardeinstellung.
  • Feldzuordnung verwendenDie Übertragung von Feldern und Feldtypen aus der verbundenen Tabelle wird durch den Parameter Feldzuordnung gesteuert.
String
Feldzuordnung
(optional)

Die Felder, die vorübergehend mit ihren jeweiligen Eigenschaften und Quellfeldern mit der Eingabetabelle verbunden werden sollen. Alle Felder von der Join-Tabelle werden standardmäßig einbezogen.

Verwenden Sie die Feldzuordnung, um Felder hinzuzufügen, zu löschen, umzubenennen und neu anzuordnen sowie andere Feldeigenschaften zu ändern.

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

Field Mappings
Join-Felder indizieren
(optional)

Gibt an, ob dem Eingabefeld und dem Join-Feld Attributindizes hinzugefügt werden sollen.

  • Keine Indizes hinzufügenEs werden keine Attributindizes hinzugefügt. Dies ist die Standardeinstellung.
  • Einen Attributindex für Felder ohne vorhandenen Index hinzufügenEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes bleiben erhalten.
  • Indizes für alle Felder ersetzenEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes werden ersetzt.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierte Eingabetabelle

Das aktualisierte Eingabe-Dataset.

Table View; Raster Layer; Mosaic Layer

arcpy.management.JoinField(in_data, in_field, join_table, join_field, {fields}, {fm_option}, {field_mapping}, {index_join_fields})
NameErläuterungDatentyp
in_data

Die Tabelle oder die Feature-Class, mit der die Join-Tabelle verbunden wird.

Mosaic Layer; Raster Layer; Table View
in_field

Das Feld in der Eingabetabelle, auf dem die Verbindung basieren soll.

Field
join_table

Die Tabelle, die mit der Eingabetabelle verbunden werden soll.

Mosaic Layer; Raster Layer; Table View
join_field

Das Feld in der Join-Tabelle, das die Werte enthält, auf denen die Verbindung basiert.

Field
fields
[fields,...]
(optional)

Die Felder aus der Join-Tabelle, die in die Eingabetabelle übertragen werden sollen, basierend auf einer Verbindung zwischen der Eingabetabelle und der Join-Tabelle.

Field
fm_option
(optional)

Gibt an, wie verbundene Felder und Feldtypen in die Ausgabe übertragen werden.

  • NOT_USE_FMEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Dies ist die Standardeinstellung.
  • USE_FMDie Übertragung von Feldern und Feldtypen aus der verbundenen Tabelle wird durch den Parameter field_mapping gesteuert.
String
field_mapping
(optional)

Die Felder, die vorübergehend mit ihren jeweiligen Eigenschaften und Quellfeldern mit der Eingabetabelle verbunden werden sollen. Alle Felder von der Join-Tabelle werden standardmäßig einbezogen.

Verwenden Sie die Feldzuordnung, um Felder hinzuzufügen, zu löschen, umzubenennen und neu anzuordnen sowie andere Feldeigenschaften zu ändern.

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

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

Field Mappings
index_join_fields
(optional)

Gibt an, ob dem Eingabefeld und dem Join-Feld Attributindizes hinzugefügt werden sollen.

  • NO_INDEXESEs werden keine Attributindizes hinzugefügt. Dies ist die Standardeinstellung.
  • NEW_INDEXESEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes bleiben erhalten.
  • REPLACE_INDEXESEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes werden ersetzt.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_layer_or_view

Das aktualisierte Eingabe-Dataset.

Table View; Raster Layer; Mosaic Layer

Codebeispiel

JoinField – Beispiel 1 (PythonPython-Fenster)

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

import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.management.JoinField("zion_park", "zonecode", "zion_zoning", "zonecode", 
                           ["land_use", "land_cover"])
JoinField – Beispiel 2 (eigenständiges Skript)

In diesem eigenständigen Python-Skript wird veranschaulicht, wie die JoinField-Funktion zum Verbinden einer Tabelle mit einer Feature-Class verwendet wird, wobei nur zwei der Tabellenfelder in der Verbindung berücksichtigt werden.

# PermanentJoin.py
# Purpose: Join two fields from a table to a feature class 

# Import system modules
import arcpy

# Set the current workspace 
arcpy.env.workspace = "c:/data/data.gdb"

# Set the local parameters
inFeatures = "zion_park"
joinField = "zonecode"
joinTable = "zion_zoning"
fieldList = ["land_use", "land_cover"]

# Join two feature classes by the zonecode field and only carry 
# over the land use and land cover fields
arcpy.management.JoinField(inFeatures, joinField, joinTable, joinField, 
                           fieldList)

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen