Beschriftung | Erläuterung | Datentyp |
Ziel-Features | Die Attribute der Ziel-Features und die Attribute aus den verbundenen Features werden in die Ausgabe-Feature-Class übertragen. Eine Untermenge der Attribute kann aber im Parameter "Feldzuordnung" definiert werden. | Feature Layer |
Verbindungs-Features | Die Attribute aus den Verbindungs-Features werden mit den Attributen der Ziel-Features verbunden. In der Erläuterung zum Parameter Verbindungsvorgang finden Sie Informationen darüber, inwiefern sich der Verbindungsvorgang auf die Zusammenfassung der verbundenen Attribute auswirkt. | Feature Layer |
Ausgabe-Feature-Class | Eine neue Feature-Class, in der die Attribute der Ziel- und Verbindungs-Features enthalten sind. Standardmäßig werden alle Attribute der Ziel-Features und die Attribute der verbundenen Features in die Ausgabe geschrieben. Welche Attribute übertragen werden, kann jedoch vom Parameter "Feldzuordnung" definiert werden. | Feature Class |
Verbindungsvorgang (optional) | Der Vorgang, bei dem die Ziel-Features mit den Verbindungs-Features in der Ausgabe-Feature-Class verbunden werden, wenn mehrere Verbindungs-Features gefunden werden, die über die gleiche räumliche Beziehung zu einem einzelnen Ziel-Feature verfügen.
| String |
Alle Ziel-Features beibehalten (optional) | Gibt an, ob in der Ausgabe-Feature-Class alle Ziel-Features beibehalten werden (Outer Join) oder nur jene, die über die angegebene räumliche Beziehung zu den Verbindungs-Features verfügen (Inner Join).
| Boolean |
Feldzuordnung (optional) | Die Felder, die mit ihren jeweiligen Eigenschaften und Quellfeldern in die Ausgabe-Feature-Class einbezogen werden sollen. Die Ausgabe enthält standardmäßig alle Felder der Verbindungs- und Ziel-Features. 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 |
Zuordnungsoption (optional) | Gibt die Kriterien für die Zuordnung von Zeilen an.
| String |
Suchradius (optional) | Verbindungs-Features, die sich innerhalb der hier angegebenen Entfernung eines Ziel-Features befinden, werden für die räumliche Verbindung berücksichtigt. Ein Suchradius ist nur gültig, wenn die räumliche Beziehung angegeben ist (der Parameter Zuordnungsoption ist auf Überschneiden, In einer Entfernung, In einer geodätischen Entfernung, Mit Mittelpunkt in, Nächste(r) oder Nächste(r) (geodätisch) festgelegt). Zum Beispiel wird bei Verwendung eines Suchradius von 100 Metern mit der räumlichen Beziehung In einer Entfernung ein Feature innerhalb von 100 Metern von einem Ziel-Feature verbunden. Für die drei In einer Entfernung-Beziehungen wird eine Entfernung von 0 verwendet, wenn kein Wert für den Suchradius angegeben wird. | Linear Unit |
Entfernungsfeldname (optional) | Der Name des Feldes, das die Entfernung zwischen dem Ziel-Feature und dem nächstgelegenen Verbindungs-Feature enthält. Dieses Feld wird der Ausgabe-Feature-Class hinzugefügt. Dieser Parameter ist nur gültig, wenn die räumliche Beziehung angegeben ist (Zuordnungsoption ist auf Nächste(r) oder Nächste(r) (geodätisch) festgelegt). Der Wert dieses Feldes ist -1, wenn kein Feature innerhalb eines Suchradius gefunden wird. Wenn kein Feldname zur Verfügung steht, wird das Feld der Ausgabe-Feature-Class nicht hinzugefügt. | String |
Felder abgleichen (optional) | Feldpaare aus den Verbindungs-Features und Ziel-Features, die für den Attributabgleich verwendet werden. Nur die Datensätze aus den Verbindungs-Features, die übereinstimmende Feldwerte mit den Ziel-Features aufweisen, sind Teil der räumlichen Verbindung. | Value Table |
Zusammenfassung
Vereinigt Attribute eines Features basierend auf der räumlichen Beziehung mit den Attributen eines anderen. Die Ziel-Features und die vereinigten Attribute aus den Verbindungs-Features werden in die Ausgabe-Feature-Class geschrieben.
Weitere Informationen zu räumlichen Verbindungen nach Feature-Typ
Verwendung
Bei der räumlichen Verbindung werden Zeilen aus den Werten Verbindungs-Features basierend auf ihren relativen räumlichen Positionen mit den Werten Ziel-Features verknüpft.
Standardmäßig werden alle Attribute der Verbindungs-Features an Attribute der Ziel-Features angehängt und in die Ausgabe-Feature-Class kopiert. Mithilfe des Parameters Feldzuordnung können Sie festlegen, welche Attribute in die Ausgabe geschrieben werden.
Zwei neue Felder, Join_Count und TARGET_FID, werden der Ausgabe-Feature-Class hinzugefügt. Das Feld Join_Count zeigt die Anzahl der Verbindungs-Features an, die mit dem jeweiligen Ziel-Feature übereinstimmen (TARGET_FID).
Darüber hinaus wird der Ausgabe ein neues Feld, JOIN_FID, hinzugefügt, wenn Eins-zu-Viele-Verbindung für den Parameter Verbindungsvorgang angegeben wird.
Wenn für den Parameter Verbindungsvorgang die Option Eins-zu-Viele-Verbindung gewählt ist, kann für jedes Ziel-Feature mehr als eine Zeile in der Ausgabe-Feature-Class vorhanden sein. Bestimmen Sie mit dem Feld JOIN_FID, welches Feature mit welchem Ziel-Feature (TARGET_FID) verbunden ist. Der Wert -1 für das JOIN_FID-Feld bedeutet, dass kein Feature der angegebenen räumlichen Beziehung mit dem Ziel-Feature entspricht.
Alle Eingabe-Ziel-Features werden in die Ausgabe-Feature-Class geschrieben, wenn die beiden folgenden Bedingungen erfüllt sind:
- Verbindungsvorgang ist auf Eins-zu-Eins-Verbindung festgelegt.
- Alle Ziel-Features beibehalten ist aktiviert.
Verwenden Sie zum dauerhaften Übertragen von Feldern in die Ziel-Feature-Class das Werkzeug Räumliche Verbindung hinzufügen mit aktiviertem Parameter Felder dauerhaft verbinden.
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.
Die Vereinigungsregeln im Parameter Feldzuordnung von Verbindungs-Features gelten nur für Attribute aus den Verbindungs-Features und wenn mehr als ein Feature einem Ziel-Feature zugeordnet ist (wenn Join_Count > 1). Wenn beispielsweise drei Features mit den DEPTH-Attributwerten 15,5, 2,5 und 3,3 vereinigt werden und die Vereinigungsregel "Mean" angegeben ist, weist das Ausgabefeld den Wert 6,1 auf. NULL-Werte in Join-Feldern werden bei der Statistikberechnung ignoriert. Beispielsweise führen 15,5, <Null> und 2,5 zu einem Mittelwert von 9,0 und der Anzahl 2.
Wenn der Parameter Zuordnungsoption auf Nächste(r) oder Nächste(r) (geodätisch) festgelegt ist, können sich zwei oder mehrere Verbindungs-Features im gleichen Abstand zum Ziel-Feature befinden. In diesem Fall wird eines der Verbindungs-Features zufällig als passendes Feature ausgewählt (die Objekt-ID des Verbindungs-Features wirkt sich nicht auf diese zufällige Auswahl aus). Für die Suche nach dem zweit-, dritt- oder N-nächsten Feature verwenden Sie das Werkzeug Near-Tabelle erstellen.
Wenn ein Verbindungs-Feature eine räumliche Beziehung mit mehreren Ziel-Features aufweist, wird es so oft gezählt, wie es dem Ziel-Feature zugeordnet wurde. Wenn sich beispielsweise ein Punkt in drei Polygonen befindet, wird er dreimal gezählt – einmal pro Polygon.
Der Parameter Übereinstimmende Attribute filtert die Features, die mit der im Parameter Abgleichoption angegebenen räumlichen Beziehung übereinstimmen. Geben Sie Felder aus den Verbindungs- und Ziel-Features an, die zusätzlich zu ihrer räumlichen Beziehung übereinstimmende Attribute haben müssen.
Weitere Informationen zu der Verwendung der räumlichen Beziehungen Überschneiden 3D und In einer Entfernung (3D) finden Sie unter 3D-Beziehungen lagebezogen auswählen.
Parameter
arcpy.analysis.SpatialJoin(target_features, join_features, out_feature_class, {join_operation}, {join_type}, {field_mapping}, {match_option}, {search_radius}, {distance_field_name}, {match_fields})
Name | Erläuterung | Datentyp |
target_features | Die Attribute der Ziel-Features und die Attribute aus den verbundenen Features werden in die Ausgabe-Feature-Class übertragen. Eine Untermenge der Attribute kann aber im Parameter "Feldzuordnung" definiert werden. | Feature Layer |
join_features | Die Attribute aus den Verbindungs-Features werden mit den Attributen der Ziel-Features verbunden. In der Erläuterung zum Parameter join_operation finden Sie Informationen darüber, inwiefern sich der Verbindungsvorgang auf die Zusammenfassung der verbundenen Attribute auswirkt. | Feature Layer |
out_feature_class | Eine neue Feature-Class, in der die Attribute der Ziel- und Verbindungs-Features enthalten sind. Standardmäßig werden alle Attribute der Ziel-Features und die Attribute der verbundenen Features in die Ausgabe geschrieben. Welche Attribute übertragen werden, kann jedoch vom Parameter "Feldzuordnung" definiert werden. | Feature Class |
join_operation (optional) | Der Vorgang, bei dem die Ziel-Features mit den Verbindungs-Features in der Ausgabe-Feature-Class verbunden werden, wenn mehrere Verbindungs-Features gefunden werden, die über die gleiche räumliche Beziehung zu einem einzelnen Ziel-Feature verfügen.
| String |
join_type (optional) | Gibt an, ob in der Ausgabe-Feature-Class alle Ziel-Features beibehalten werden (Outer Join) oder nur jene, die über die angegebene räumliche Beziehung zu den Verbindungs-Features verfügen (Inner Join).
| Boolean |
field_mapping (optional) | Die Felder, die mit ihren jeweiligen Eigenschaften und Quellfeldern in die Ausgabe-Feature-Class einbezogen werden sollen. Die Ausgabe enthält standardmäßig alle Felder der Verbindungs- und Ziel-Features. 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 |
match_option (optional) | Gibt die Kriterien für die Zuordnung von Zeilen an.
| String |
search_radius (optional) | Verbindungs-Features, die sich innerhalb der hier angegebenen Entfernung eines Ziel-Features befinden, werden für die räumliche Verbindung berücksichtigt. Ein Suchradius ist nur gültig, wenn die räumliche Beziehung angegeben ist (der Parameter match_option ist auf INTERSECT, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, HAVE_THEIR_CENTER_IN, CLOSEST oder CLOSEST_GEODESIC festgelegt). Zum Beispiel wird bei Verwendung von 100 Metern mit der räumlichen Beziehung WITHIN_A_DISTANCE ein Feature innerhalb von 100 Metern von einem Ziel-Feature verbunden Für die drei WITHIN_A_DISTANCE-Beziehungen wird eine Entfernung von 0 verwendet, wenn kein Wert für search_radius angegeben wird. | Linear Unit |
distance_field_name (optional) | Der Name des Feldes, das die Entfernung zwischen dem Ziel-Feature und dem nächstgelegenen Verbindungs-Feature enthält. Dieses Feld wird der Ausgabe-Feature-Class hinzugefügt. Dieser Parameter ist nur gültig, wenn die räumliche Beziehung angegeben ist (match_option ist auf CLOSEST oder CLOSEST_GEODESIC festgelegt). Der Wert dieses Feldes ist -1, wenn kein Feature innerhalb eines Suchradius gefunden wird. Wenn kein Feldname zur Verfügung steht, wird das Feld der Ausgabe-Feature-Class nicht hinzugefügt. | String |
match_fields [[join_field, target_field],...] (optional) | Feldpaare aus den Verbindungs-Features und Ziel-Features, die für den Attributabgleich verwendet werden. Nur die Datensätze aus den Verbindungs-Features, die übereinstimmende Feldwerte mit den Ziel-Features aufweisen, sind Teil der räumlichen Verbindung. | Value Table |
Codebeispiel
Das folgende Skript veranschaulicht die Verwendung der SpatialJoin-Funktion in einem Python-Fenster.
import arcpy
target_features = "C:/data/usa.gdb/states"
join_features = "C:/data/usa.gdb/cities"
out_feature_class = "C:/data/usa.gdb/states_cities"
arcpy.analysis.SpatialJoin(target_features, join_features, out_feature_class)
Das folgende eigenständige Skript veranschaulicht, wie Sie die Funktion SpatialJoin zum Verbinden der Attribute von Städten mit Bundesstaaten verwenden.
# Name: SpatialJoin_Example2.py
# Description: Join attributes of cities to states based on spatial relationships.
# Import system modules
import arcpy
import os
# Set local variables
workspace = r"C:\gpqa\mytools\spatialjoin\usa.gdb"
outWorkspace = r"C:\gpqa\mytools\spatialjoin\output.gdb"
# Want to join USA cities to states and calculate the mean city population
# for each state
targetFeatures = os.path.join(workspace, "states")
joinFeatures = os.path.join(workspace, "cities")
# Output will be the target features, states, with a mean city population field (mcp)
outfc = os.path.join(outWorkspace, "states_mcp2")
# Create a new fieldmappings and add the two input feature classes.
fieldmappings = arcpy.FieldMappings()
fieldmappings.addTable(targetFeatures)
fieldmappings.addTable(joinFeatures)
# First get the POP1990 fieldmap. POP1990 is a field in the cities feature class.
# The output will have the states with the attributes of the cities. Setting the
# field's merge rule to mean will aggregate the values for all of the cities for
# each state into an average value. The field is also renamed to be more appropriate
# for the output.
pop1990FieldIndex = fieldmappings.findFieldMapIndex("POP1990")
fieldmap = fieldmappings.getFieldMap(pop1990FieldIndex)
# Get the output field's properties as a field object
field = fieldmap.outputField
# Rename the field and pass the updated field object back into the field map
field.name = "mean_city_pop"
field.aliasName = "mean_city_pop"
fieldmap.outputField = field
# Set the merge rule to mean and then replace the old fieldmap in the mappings object
# with the updated one
fieldmap.mergeRule = "mean"
fieldmappings.replaceFieldMap(pop1990FieldIndex, fieldmap)
# Delete fields that are no longer applicable, such as city CITY_NAME and CITY_FIPS
# as only the first value will be used by default
x = fieldmappings.findFieldMapIndex("CITY_NAME")
fieldmappings.removeFieldMap(x)
y = fieldmappings.findFieldMapIndex("CITY_FIPS")
fieldmappings.removeFieldMap(y)
#Run the Spatial Join tool, using the defaults for the join operation and join type
arcpy.analysis.SpatialJoin(targetFeatures, joinFeatures, outfc, "#", "#", fieldmappings)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja