Cómo modificar los valores de un campo de atributos mediante la Python Console con PyQGIS

En este post señalo como modificar los valores de un campo de atributos, previamente creado en QGIS con el label ‘AREA’ y que albergaba valores consecutivos del 1 al 51, para un shapefile con contiene los estados y las subregiones de Estados Unidos. En resumen, la capa cargada se hace activa, se define un iterator para recorrer los rasgos (features) donde se determina el área de cada polígono (Clase QgsGeometry); las cuales se almacenan en una lista. Estos valores se introducen en el campo ‘AREA’ (cuyo índice es 2), en modo de edición, mediante el método changeAttributeValue de la clase QgsVectorLayer. El script propuesto es el siguiente:

#set active layer
usa=iface.activeLayer()

#set counter
n=usa.featureCount()
print n

#void list for areas
areas=[]

#define iterator to get features
iter=usa.getFeatures()

#iterate by features and get areas
for feature in iter:
	areas.append(feature.geometry().area())

print areas

#start editing
usa.startEditing()

#insert areas in field 2 -AREA-
for i in range(n):
    usa.changeAttributeValue(i,2,areas[i])

#save the changes
usa.commitChanges()

En la imagen siguiente se observa la Python Console con los resultados de ejecución del script y la tabla atributiva; cuyos valores de área son simplemente ilustrativos del procedimiento porque fueron determinados para una proyección que no está en metros.

edit_field

This entry was posted in Código Python, PyQGIS, SIG, Software Libre. Bookmark the permalink.

2 Responses to Cómo modificar los valores de un campo de atributos mediante la Python Console con PyQGIS

  1. Pingback: Cómo crear y remover campos de atributos a través de la Python Console de PyQGIS | El Blog de José Guerrero

  2. Pingback: Cómo modificar los valores de un campo d...

Leave a comment