4 votos

Añadir varios campos en la tabla de atributos

¿Cómo puedo añadir varios campos en la tabla de atributos? En la tabla de atributos tengo tipos de cultivo como maíz, algodón, sorgo....etc (como se muestra en la imagen de abajo), en metros cuadrados. y quiero generar nuevos campos para poder calcular en acres. Estoy usando python que tendría campos de adición, pero todavía tendría que proporcionar los nombres de campo, uno por uno (y hay un montón de nombres de campo para introducir). ¿Puedo hacer que el SIG genere campos que se basen en los campos existentes sin que yo los liste?

Se adjunta imagen de la mesa.

enter image description here Gracias.

7voto

Roy Puntos 2884

Tendrá que recorrer los campos actuales con ListFields . Luego, en su llamada AddField_management() sólo tiene que añadir '_acres' o algo que lo identifique como diferente de su nombre de campo actual.

Algo parecido a esto:

for field in arcpy.ListFields(featureClass):
    arcpy.AddField_management(featureClass, field.name + '_acres', 'FLOAT')

Si no quiere añadir un nuevo campo para cada en su clase de características, tendrá que añadir algunas declaraciones condicionales simples:

for field in arcpy.ListFields(featureClass):
    if field.name == 'badField': # Name of field you don't want to add acreage for
        print "Not going to add this field"
    else:
        arcpy.AddField_management(featureClass, field.name + '_acres', 'FLOAT')

2 votos

Crear una lista de campos a omitir skiplist=["skip1", "skip2"] luego usar el campo if en skiplist: para la sentencia if

0 votos

Field + '_acres' no funciona.... ¿hay alguna otra forma de cambiar el nombre del campo existente?

0 votos

Lo siento listar los campos sólo te da la ubicación en la memoria. Si imprimes el campo en el bucle obtendrás algo loco. Prueba con field.name (he cambiado el código en mi respuesta).

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