[GIS] Splitting large polygons

algorithmsplitting

We need to split large complex polygons into smaller chunks ( Where the area <= x). The tricky bit is that they can only be split where the distance from one side of the polygon to the other is <= y which in this case is 80 metres. They can still be split if the area is not <= x, we just try and reduce the larger chunks to smaller chunks so the more that are <= x the better..

Best Answer

Something that I think might work but which I don't currently have sufficient licensing to test is:

  1. Use Create TIN (requires 3D Analyst) to create a triangulated irregular network of your large complex polygon. Eyeball the result and you should see that at the "narrow necks" there are triangles with one (the shortest?) side being a candidate for performing a cut.
  2. Export the triangles out to a polygon feature class using TIN Triangle (requires 3D Analyst)
  3. Convert the triangles (polygons) to line features using Feature To Line (requires Advanced)
  4. Select By Attribute any large complex polygons larger than x in area
  5. Select By Attribute any triangle line smaller than y in length
  6. Use Select By Location to select from the currently selected those small triangle edge lines which are within (and touching the edge of) a large polygon targeted for splitting.
  7. Now start iterating through the shortest remaining lines and try using each to split the polygon it overlaps using an approach to split polygons using line features perhaps from Automated/geoprocesing tool to slice, clip, or cut polygons using polylines using ArcGIS Desktop?
  8. At each iteration see whether the split makes two largish polygons or not - I suspect there will be some short lines that have resulted from coordinates close together at the edge and are not "narrow necks". If you get two largish polygons then keep the results of that split.
Related Question