Deutsch

How To: Hinzufügen von Features zu einer Feature-Class mithilfe von Python

Zusammenfassung

Das Hinzufügen von Features zu einer Feature-Class kann mit einem Python-Skript automatisiert werden. Zum Einfügen einer neuen Zeile in einer Attributtabelle wird die ArcPy-Funktion InsertCursor() verwendet. Diese Funktion kann als Objekt zum Einfügen der Werte für die neu erstellten Zeilen verwendet werden.

Hinweis:
Die Funktion InsertCursor() kann auch in Verbindung mit der Funktion SearchCursor() verwendet werden, um bestimmte Felder zu replizieren.

Vorgehensweise

Die folgende Prozedur veranschaulicht, wie mit Python ein Feature zu einer Feature-Class hinzugefügt wird:

  1. Importieren Sie das ArcPy-Modul.
import arcpy
  1. Definieren Sie einen neuen Array-Parameter für die gewünschten Werte in der neuen Zeile.
row_values = [('Anderson', (1409934.4442000017, 1076766.8192000017)), ('Andrews', (752000.2489000037, 1128929.8114))]
  1. Erstellen Sie ein Objektelement, um die Funktion InsertCursor() zu verwenden. Diese Funktion erfordert Eingaben für die gewünschte Feature-Position und die Zeilenfeldnamen.
cursor = arcpy.da.InsertCursor("C://sample.gdb/test",("[row 1]", "[row 2]"))
  1. Starten Sie eine Schleife zum Erstellen und Einfügen von neuen Zeilen, die danach in der Attributtabelle mit den in Schritt 2 vordefinierten Array-Werten gefüllt werden sollen.
for row in row_values:
cursor.insertRow(row)
  1. Löschen Sie das Cursor-Objekt, um die Funktion zu beenden.
del cursor

Das folgende Codebeispiel veranschaulicht einen voll funktionsfähigen Code:

import arcpy

# A list of values that will be used to construct new rows

row_values = [('Atascosa', (1409934.4442000017, 1076766.8192000017)),
              ('Bosque', (752000.2489000037, 1128929.8114))]

# Open an InsertCursor.
# Specify the location for the desired feature. The sample inserts the values into the field, NAME and SHAPE.

cursor = arcpy.da.InsertCursor("C:/data/texas.gdb/counties",
                               ("NAME", "SHAPE@XY"))

# Insert new rows that include the county name and the x and y coordinate
# pair that represents the county center

for row in row_values:
    cursor.insertRow(row)

# Delete cursor object

del cursor

Um Daten aus einer anderen Feature-Class zu replizieren, muss die Funktion SearchCursor() in Verbindung mit der Funktion InsertCursor() verwendet werden. Das folgende Codebeispiel veranschaulicht, wie die Funktionen SearchCursor() und InsertCursor() verwendet werden.

sourceCursor = arcpy.da.SearchCursor([Feature_Name], [Field_Name])
inputCursor = arcpy.da.InsertCursor([New_Feature_Name], [Field_Name])

for row in sourceCursor:
    inputCursor.insertRow(row)

Referenzinformationen