I recently encountered this same issue and have been unable to satisfactorily resolve it. The project involves polygons representing different forest types across mountainous terrain. We wanted to divide each habitat type into 4 pieces of equal area, each of which will receive a different harvest treatment. Ultimately, we just divided the polygons manually, using the "undo" function numerous times until we were +/- 1 acre. For a larger project, I could see this methodology becoming increasingly tedious. I intend to look into the parcel fabric solution, but am surprised that I was unable to find a tool that could automate this.
This may not satisfy the functionality you originally wanted, Konrad, but for the benefit of others who are doing just a simple division, I found this "Polygon Bisector" tool on AGOL, which creates a line feature that splits the polygon feature in half either vertically or horizontally and can be used as a guide for the Cut Polygons Tool. Again, probably not the full functionality you need, but maybe this will help some of the others who have searched this thread for answers to similar though simpler challenges (it definitely helped me out for something that I didn't want to have to create a parcel fabric for).
https://www.arcgis.com/home/item.html?id=9aadb577ccb74f0e88b13a0e3643ca4d
This seems to be an unanswerable question if it is still going after 5 years!
But it inspired me to think of a solution that is modelled on the discovery that the earth sweeps around the sun on an ellipse at different speeds but a constant swept area. I know people had in mind rectangular forestry plots but that is never going to fit into an irregular polygon. Without the restraint of a grid (from previous failed solutions) there is an apparently trivial solution. So this is my idea that seems easy to implement.
Why not simply divide the area into n segments? Each segment will have area = total_area / n. There will not be any left-over areas. Start by selecting the centre, say a modified centroid. Then sweep around the boundary adding up the cumulative area until you reach the limit for a segment, draw a line and restart.
I can see an exception with some shapes that are so re-entrant that there is not a straight line to the centroid, so they would need special handling such as splitting into convex polygons.
With geometry objects in arcpy the calculations can be very fast with a python function that iterates over the boundary vertices. Each step is a simple triangle with an easy area solution, just keep adding until you get to the limit. If the vertices are too widely spaced, interpolate or densify the boundary before starting.
So you don't like the shapes? Why not, for a small number, say 4 they will be almost a rectangle anyway. Maybe for a very large number you could cut out the centre say using a circle and have n-1 segments around the donut to prevent sliver shaped areas. Hint: Surveyors use the Double Difference Area equation to calculate the area of a traverse with only one division operation by 2.
Anyone up to the challenge to provide a script that runs in a short time?
Kim,
I have a similar requirement. We need to download current satellite imagery of different countries but the data provider only allows 124,000 square km at a time. So, we need to take country polygons and divide into sub-polygons that are no more than 124,000 km each. I am not really sure about the technique you are referring to, is there a help topic somewhere that I can look at to get an idea of what you are talking about? We have someone on our team that can create the script if I can provide a clear solution.
I don't think it applies to images that are always rectangular. So for your case create a bounding box and tile it into less than the maximum size. Better still contact the vendor and get a quote for providing the area you want. They probably will do a custom area.
My thought experiment was to simply divide up an irregular but convex polygon into segments from the centroid. We know the area of the segment so we can create triangles from the centroid to the boundary vertices. you keep adding up the triangles until you reach the limit and then draw the combined shape. For 4 parts the segments would be quarters. I know for large numbers the shape would not be squarish. This could be helped by cutting out a circle in the middle and then do the same process, subtracting off the centre segment. Then there would be n -1 equal areas and one circle of the same area. The areas around the ring would have roughly 4 sides, maybe the circular side could be simplified to a straight segment.
Maybe we need some civil engineering smarts - is there an algorithm to place columns to support an arbitrarily shaped roof with N>=3 columns bearing equal load? Then do a Voronoi split of the polygon.
may be this link helpful , Split polygon feature by percentage , it is relate to subject.
Hi Kim!
Maybe this script is what you are looking for?:
Dividing a polygon into a given number of equal areas with arcpy – Alex Tereshenkov
We created a tool for a client who wanted to be able to split a country polygon into equal subset polygons of a designated area/size so they could use the subset polygons as templates to request data downloads from Digital Globe. It was not a problem to divide "regular shaped" country polygons but most countries are not "regularly" shaped and many have peninsulas or islands. This left numerous small polygons around the edges, which I am calling fringe. We wanted to be able to consolidate the fringe, including the land in the polygon but not the water. The tool that we created does this by first breaking up the original country polygon into a very small grid pattern and then sweeping the grid, combining the smaller blocks into subsets until it reaches the desired area at which point, that subset becomes a polygon. The process continues to sweep the entire country creating subset polygons of equal area.
I found this script and it worked perfectly for me and likely will for you!