1

I'm using QGIS 3.4.5.

I'm working with a polygon layer that has a large set of polygons. Sometimes the polygons have a, for their purpose, irrational segmentation, with long and narrow parts. I would like to find a way to cut the polygon when it's becoming "too narrow" (green lines in the image). This would then create two polygons, of which the smaller polygon can be filtered out by area.

enter image description here

I tried to convert it to lines and then run the plugin "Check geometry" to search for a maximum angle degree, but that did only remove the very tip of the narrow part. I also did try this with overlapping areas but couldn't get a good result.

As an alternative to the more ideal approach above, I've also tried to create a negative buffer to eliminate the narrow parts, and then do a regular +buffer to achieve a polygon that can be cut with the original layer. This procedure is OK, but will result on overlapping polygons, which I'm not sure how to handle correctly. When I run v.clean to create individual polygons of the overlapping areas they sometimes have similar or higher area as the correct polygons, why they can't be eliminated by filtering for area.

Is there any way/method to either:

  1. Cut narrow parts of a polygon at a certain narrowness/distance, or
  2. Create a mean common polygon border between two overlapping polygons such as this green dotted line:

enter image description here

Any ideas?

1
  • The brute force methodology would be to construct multiple panels of parallel lines with differing rotation (by, say, 15 degrees), and clip these lines by the polygons and see if any single-part fragments are smaller than your threshold distance for further review. This is a sort of Computer Vision task that might be simpler to model as a raster, but then you have to deal with vector/raster resolution issues. – Vince 2 days ago

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.