Usando Python, ¿cómo se agrega un nuevo campo a tu shapefile y se calcula el área en km2?
Respuestas
¿Demasiados anuncios?
john
Puntos
11
from osgeo import ogr
shapefile = "C:/StudyArea.shp"
driver = ogr.GetDriverByName("ESRI Shapefile")
dataSource = driver.Open(shapefile, 1)
layer = dataSource.GetLayer()
new_field = ogr.FieldDefn("Area", ogr.OFTInteger)
layer.CreateField(new_field)
for feature in layer:
geom = feature.GetGeometryRef()
area = geom.GetArea() * (0.000000092903)
feature.SetField("Area", area)
layer.SetFeature(feature)
dataSource = None
Supuse que el sistema de coordenadas que estás utilizando está en pies estadounidenses. Si no lo está, deberás cambiar el cálculo del área.
Aaron
Puntos
25882
Puedes usar un Cursor de Actualización y un token de área de forma SHAPE@AREA
para hacer los cálculos.
import arcpy, os
file = r'C:\temp\polygon.shp'
arcpy.AddField_management (file, "area", "FLOAT")
with arcpy.da.UpdateCursor(file, ["SHAPE@AREA", "area"]) as cursor:
for row in cursor:
row[1] = row[0] / 1E6 # si la referencia espacial está en metros, convertir a km
cursor.updateRow(row)