# 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:

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 |

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 |