français

Procédure : ajouter des entités à une classe d’entités à l’aide de Python

Résumé

Il est possible d’automatiser l’ajout d’entités à une classe d’entités à l’aide d’un script Python. La fonction ArcPy, InsertCursor(), permet d’insérer une ligne dans une table attributaire. La fonction peut être utilisée comme objet pour insérer les valeurs pour les lignes qui récemment créées.

Remarque :
La fonction InsertCursor() peut également être utilisée avec la fonction SearchCursor() pour répliquer certains champs.

Procédure

La procédure suivante décrit la méthode pour ajouter une entité à une classe d’entités à l’aide de Python :

  1. Importez le module ArcPy.
import arcpy
  1. Définissez un nouveau paramètre de matrice pour inclure les valeurs désirées dans la nouvelle ligne.
row_values = [('Anderson', (1409934.4442000017, 1076766.8192000017)), ('Andrews', (752000.2489000037, 1128929.8114))]
  1. Créez un élément objet pour tirer parti de la fonction InsertCursor(). La fonction nécessite la spécification des entrées pour l’emplacement d’entité désiré et les noms de champs de la ligne.
cursor = arcpy.da.InsertCursor("C://sample.gdb/test",("[row 1]", "[row 2]"))
  1. Lancez une boucle pour créer et insérer les nouvelles lignes à renseigner dans la table attributaire par les valeurs de la matrice prédéfinie à l’étape 2.
for row in row_values:
    cursor.insertRow(row)
  1. Supprimez l’objet curseur pour mettre fin à la fonction.
del cursor

L’exemple de code suivant présente un code fonctionnel complet:

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

Pour répliquer les données d’une autre classe d’entités, la fonction SearchCursor() doit être associée à la fonction InsertCursor(). L’exemple de code suivant présente l’utilisation des fonctionsSearchCursor() et InsertCursor().

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

for row in sourceCursor:
    inputCursor.insertRow(row)

Informations associées