Calcular área de polígonos utilizando OGR/PyQGIS

Aunque con PyQGIS es más sencillo, me pareció interesante considerar esta pregunta de gis.stackexchange.com donde se requiere calcular el área de polígonos mediante la librería OGR de Python. El código siguiente está adaptado para que pudiese ser ejecutado fácilmente desde la Python Console.

from osgeo import ogr

vlayer = iface.activeLayer()

provider = vlayer.dataProvider()

path = provider.dataSourceUri()

tmp = path.split("|")

path_to_shp_data = tmp[0]

driver = ogr.GetDriverByName("ESRI Shapefile")
dataSource = driver.Open(path_to_shp_data, 1)
layer = dataSource.GetLayer()
new_field = ogr.FieldDefn("Area", ogr.OFTReal)
new_field.SetWidth(32)
new_field.SetPrecision(2) #added line to set precision
layer.CreateField(new_field)

for feature in layer:
    geom = feature.GetGeometryRef()
    area = geom.GetArea() 
    print area
    feature.SetField("Area", area)
    layer.SetFeature(feature)

dataSource = None 

Después de ejecutado el código anterior en la Python Console, es necesario cargar el shapefile nuevamente al Map Canvas de QGIS para visualizar los cambios en su tabla atributiva; tal como se presenta en la imagen siguiente:

area

Los valores de área contienen dos cifras decimales.

Esta entrada fue publicada en GDAL/OGR, PyQGIS, QGIS, SIG, Software Libre. Guarda el enlace permanente.

2 respuestas a Calcular área de polígonos utilizando OGR/PyQGIS

  1. tgjf1960 dijo:

    muy bien lo probe y todo ok,

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s