[GIS] How to Split a Concave Polygon Into Convex Polygons in Arcpy

algorithmarcgis-10.1arcgis-desktoparcpy

I'm looking for a tool or algorithm to detect concave polygons and split them into convex polygons. Like explained in the picture, the blue polygon is split into A and B polygons

I'm using Arcpy under Arcgis 10.1

split polygons

Best Answer

here are a few steps to identify the vertices from the concave parts :

with parcel: minimum bounding geometry (hull) -> parcelHull

with parcel: FeatureVerticesToPoint -> parcelPoints

with parcelHull : FeatureVerticesToPoint -> parcelHullPoints

with parcelPoint and parcelHullPoint : symmetrical Diff -> concavePoints

based on those points, you can either draw the bissectrice to cut your polygon (bearing distance to line), select the edges of the Voronoï triangle that intersect your point but are not sharing a segment with your parcel boundary (select by location after splitting triangle lines at vertices), select the vertex on the opposite site and make a line (points to line), select the closest point on the opposite edge and make a line (points to line)...

At the end, use your preferred lines and the original parcels with "feature to polygon" to split the polygons.

Related Question