I'm trying to make polygons from a line track recorded by a GPS in order to get a rough area that the line was made in. I would like to keep most of the outer edge outline except where it is within a certain distance from itself.

Minimum bounding with the convex hull is simply too aggressive, I'm looking for something more like "delete holes" except it needs to work with holes that are open-ended. I start with a long and skinny buffered track. This is an example of what I start with

I then use "delete holes" to fill in the gaps. Deleted Holes

Then this is what I would like the end product to look like, which I was only able to do by manually deleting some points and rearranging others. End Product

This is what it looks like using a convex hull but I would like to keep those top and bottom curves, as well as slight indents on the sides. Convex Hull

I have tried using smooth polygons as well but the curvatures are way too small to make any difference.


2 Answers 2

  1. Buffer with a positive buffer, for example 100 m
  2. Buffer with the same but negative buffer -100 m

enter image description here


Use the Concave hull (k-nearest neighbor) tool (see documentation) - you find it under Menu Processing / Toolbox. Set an appropriate value for Number of neighboring points to consider (trial and error):

a lower number is more concave, a higher number is smoother

This algorithm is based on the number of vertices. So if changing the value abve does not produce good results, change the number of vertices using either Densify (see documentation) (for more vertices) or Simplify (see documentation) (for less vertices).

I used a value of 80 for Number of neighboring points to consider to get this result: red hached polygon for the blue input polygon:

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.