4 votos

¿Cómo editar las tablas de atributos con Python/ArcPy?

Soy nuevo en Python, así que perdón por una pregunta tan trivial. Hay un shapefile (llamémoslo Structures.shp) y el script que estoy escribiendo necesita actualizar el valor de un solo registro en un solo campo (llamémosle campo structuretype). El campo es el campo subtipo y el valor por defecto es (por ejemplo) 3, pero el script necesita cambiar el valor de este registro en particular a 4. ¿Cuál es la forma más fácil para que el script actualice el valor de esta única celda?

13voto

UnkwnTech Puntos 21942

Esto debería hacerlo y es un poco más simple que los ejemplos en el Ayuda en línea para UpdateCursor que, sin embargo, merece la pena leer.

He supuesto que tu shapefile está en una carpeta llamada C:\temp y que structuretype es un campo entero. Si se trata de un campo de texto, utilice "3" y "4" en lugar de 3 y 4.

import arcpy

features = arcpy.UpdateCursor(r"C:\temp\Structures.shp")
for feature in features:
    if feature.structuretype == 3:
        feature.structuretype = 4
        features.updateRow(feature)
del feature,features

Advertencia : La forma en que estoy haciendo referencia a los valores de campo aquí sólo funciona para los cursores de estilo antiguo y no para los cursores superiores y más rápidos del módulo de Acceso a Datos (arcpy.da), que se introdujo con ArcGIS 10.1.

0voto

enid_bagnold Puntos 33

Llego tarde a la fiesta pero me encontré con este post hace unos días buscando lo mismo y lo resolví (estoy en 10,5):

fc = r"C:/your/path"
field = ['structuretype']

with arcpy.da.UpdateCursor(fc, field) as cursor:
  for row in cursor:
    if row[0] == 3:
    row[0] = 4
  cursor.updateRow(row)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X