Using Python, how do you add a new field to your shapefile and calculate the area in km2?
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
I assumed the coordinate system you're using is in US feet. If it's not, you'll need to change the area calculation.
You can use an Update Cursor and a shape area token
SHAPE@AREA to make the calculations.
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 = row / 1E6 # if spatial reference in meters, convert to km cursor.updateRow(row)