Español

Cómo: Agregar entidades a una clase de entidad con Python

Resumen

Es posible automatizar el agregar entidades a una clase de entidad con un script de Python. La función de ArcPy InsertCursor() se usa para insertar una nueva fila en una tabla de atributos. La función se usa como un objeto para insertar los valores en las filas recién creadas.

Nota:
La función InsertCursor() también se puede usar junto con la función SearchCursor() para replicar determinados campos.

Procedimiento

Este procedimiento muestra cómo agregar una entidad a una clase de entidad con Python:

  1. Importar el módulo de ArcPy.
import arcpy
  1. Definir un nuevo parámetro de matriz que incluya los valores deseados en la fila nueva.
row_values = [('Anderson', (1409934.4442000017, 1076766.8192000017)), ('Andrews', (752000.2489000037, 1128929.8114))]
  1. Crear un elemento de objeto para utilizar la función InsertCursor(). Dicha función requiere entradas para la ubicación de entidades y los nombres de campo de la fila que desee.
cursor = arcpy.da.InsertCursor("C://sample.gdb/test",("[row 1]", "[row 2]"))
  1. Iniciar un bucle para crear e insertar nuevas filas para rellenarlas en la tabla de atributos con los valores de matriz predefinidos en el paso 2.
for row in row_values:
    cursor.insertRow(row)
  1. Eliminar el objeto del cursor para finalizar la función.
del cursor

La siguiente muestra de código presenta un ejemplo de código completo:

import arcpy

# Lista de valores que se usarán para crear nuevas filas

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

# Abrir un InsertCursor.
# Especificar la ubicación de la entidad deseada. La muestra introduce los valores en el campo, NAME y SHAPE.

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

# Insertar nuevas filas que incluyan el nombre del condado y el par de coordenadas x e y
# que representa el centro del condado

for row in row_values:
    cursor.insertRow(row)

# Eliminar el objeto del cursor

del cursor

Para replicar datos de otra clase de entidad, la función SearchCursor() se debe usar junto con la función InsertCursor(). La siguiente muestra de código presenta cómo utilizar las funciones SearchCursor() y 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)

Información relacionada