Working with geometry in Python

All simple feature classes require a geometry field, typically (but not always) named Shape. The Describe function can be used to retrieve the name of geometry field from a feature class, using the shapeFieldName property. The value of the geometry field is a geometry object, and a geometry object has a number of properties that describe the feature. The example below shows how to create a geometry object for each line feature in a feature class and sum their length:

Reading_geometriesWriting_geometries
import arcpy

inFeatures = "d:/base/data.gdb/roads"

# Create search cursor
#
rows = arcpy.SearchCursor(inFeatures)

# Calculate the total length of all roads
#
length = 0

shapeName = arcpy.Describe(inFeatures).shapeFieldName

# For each row, tally the length of the feature
#
for row in rows:
    feat = row.getValue(shapeName)
    length += feat.length

# Print the total length of all roads
#
print length

Property

Explanation

area

The area of a polygon; empty for all other feature types

centroid

The true centroid if it is within or on the feature; otherwise, returns the label point (returns a point object)

extent

Returns an extent object

firstPoint

The first coordinate of the feature; returns a point object

hullRectangle

The coordinate pairs of the convex hull rectangle

isMultipart

True, if the number of parts for this geometry is more than one

labelPoint

The point at which the label is located; returns a point object (The labelPoint is always located within or on a feature.

lastPoint

The last coordinate of the feature; returns a point object

length

The length of the linear feature; empty for point, multipoint feature types

partCount

The number of geometry parts for the feature

pointCount

The number of point objects for the current part of geometry

trueCentroid

The center of gravity for a feature; returns a point object

type

Polygon, polyline, point, multipoint, multipatch, dimension, annotation

Geometry properties

Method

Explanation

getPart({index})

Returns an array of point objects for a particular part of geometry or an array containing a number of arrays, one for each part

Geometry methods

Related Topics


12/15/2011