In trying to generate concave bounding polygons using PostGIS ConcaveHull, I am seeing what I think is strange behavior.

When running with a 0.99 tolerance, the resulting polygon shrinks tight as would be expected, but it seems to exclude some points/polygons in the input geometry set. I would not expect there to be polygons fully excluded from the resulting hull.

Subsequently, when dropping the tolerance below 0.99, even to just 0.95 or below, the resulting hull includes all points or polygons, but it seems to kind of buffer out - as in the proximity of the hull boundary to many of the input geometries increases dramatically (for example by as much as 500 meters). That extra area breaks my particular use case.

In this image, the points are the input geometries, and the lines represent the concave hull outputs. The lower line is the 0.99 tolerance line, the upper line is a 0.60 tolerance line. In other instances, the 0.99 is well outside of the 0.60, as it is in theory much closer to a convex hull. Here however is an area where some concavity is being enforced, albeit not as expected.

enter image description here

If the 0.99 tolerance included all input geoms, I could use it to then erase the additional area 'buffered out' by the lower tolerance runs possibly.

  • Is the input data Point or MultiPoint type? Maybe there is a bug where it only shrinks it to a single part of the MultiPoint? Try running it on a subset of points including only that small part of the cluster which is being excluded – wfgeo Feb 11 at 19:34
  • Will you please post the query you're using for the concave hull? Also, if you found a solution in the last 2 years, please post it as an answer. Thanks! – jbalk Mar 27 at 18:35

Browse other questions tagged or ask your own question.