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
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.