<div dir="ltr">Regina:<div><br></div><div>Yes, I'm working on updating the docs, and the examples</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 26, 2022 at 1:07 PM Regina Obe <<a href="mailto:lr@pcorp.us">lr@pcorp.us</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-2199762516452987505WordSection1"><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Martin,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Feel free to take a stab at updating the docs, but what you describe below sounds good to me to detail the change in shrink behavior.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I think the new GEOS concave hull is far more scientific about it than the old, so most people will prefer the new behavior.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p><div style="border-top:none;border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0in 0in 0in 4pt"><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b><span style="font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"> postgis-devel [mailto:<a href="mailto:postgis-devel-bounces@lists.osgeo.org" target="_blank">postgis-devel-bounces@lists.osgeo.org</a>] <b>On Behalf Of </b>Martin Davis<br><b>Sent:</b> Wednesday, January 26, 2022 2:55 PM<br><b>To:</b> PostGIS Development Discussion <<a href="mailto:postgis-devel@lists.osgeo.org" target="_blank">postgis-devel@lists.osgeo.org</a>><br><b>Subject:</b> Re: [postgis-devel] ST_ConcaveHull in GEOS<u></u><u></u></span></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">As part of the replacement effort, the PostGIS doco needs some changes to accurately describe the new Concave Hull behaviour.   In particular, there are a few key differences:<u></u><u></u></p><div><p class="MsoNormal">- the target_percent parameter now defines a length ratio, rather than an area ratio (see doc below).  This should make it easier to choose a target_percent value that applies to a wider range of potential inputs, since edge length is a less-constraining criterion than area.<u></u><u></u></p></div><div><p class="MsoNormal">- the concave hull algorithm only uses the vertices of the input geometry.  It does not respect the geometry linework (if any).  I think this is a change from the current behaviour?  <u></u><u></u></p></div><div><p class="MsoNormal">- because only vertices are considered, there is no longer a need to use ST_Union to compute the hull of a set of polygons (and the input does not even have to be valid)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">New doc (comments welcome):<u></u><u></u></p></div><div><p class="MsoNormal">--------------------------------------------<u></u><u></u></p></div><div><p class="MsoNormal">Description<br>A concave hull of a geometry is a possibly concave geometry that encloses the vertices of the input geometry. The result is a single polygon, line or point. It will not contain holes unless the optional allow_holes argument is specified as true.<br><br>One can think of a concave hull as a geometry obtained by "shrink-wrapping" a set of points. This is different to the convex hull, which is more like wrapping a rubber band around the points. The concave hull generally has a smaller area and represents a more natural boundary for the input points.<br><br>The target_percent controls the concaveness of the computed hull. A value of 1 produces the convex hull. A value of 0 produces a hull with maximum concaveness (but still a single polygon). Values between 1 and 0 produce hulls of increasing concaveness. Choosing a suitable value depends on the nature of the input data, but often values between 0.4 and 0.2 produce reasonable results.<br><br>Technically, the target percent determines a length as a fraction of the difference between the longest and shortest edges in the Delaunay Triangulation of the input points. Edges longer than this length are "eroded" from the triangulation. The triangles remaining form the concave hull.<br><br>This is not an aggregate function. To compute the concave hull of a set of geometries use ST_Collect (e.g. ST_ConcaveHull( ST_Collect( geom ), 0.80).<u></u><u></u></p></div><div><p class="MsoNormal">---------------------<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Tue, Jan 25, 2022 at 2:38 PM Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca" target="_blank">pramsey@cleverelephant.ca</a>> wrote:<u></u><u></u></p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in"><p class="MsoNormal">Hey all,<br>The native ST_ConcaveHull in GEOS is in GEOS main now, so I have hooked it up into PostGIS in this branch<br><br><a href="https://github.com/pramsey/postgis/tree/master-concavehull" target="_blank">https://github.com/pramsey/postgis/tree/master-concavehull</a><br><br><br>Under this function for now.<br><br>CREATE OR REPLACE FUNCTION _ST_GEOSConcaveHull(<br>  geom geometry, <br>  area_ratio float8,<br>  allow_holes boolean DEFAULT false)<br><br>I would like to just flip the old ST_ConcaveHull out and replace it with the new one, for folks with GEOS 3.11+, but I figured an interval to look at them side by side for a while on a test branch might be appreciated. Currently the case of point inputs is worth looking at. Polygon inputs that respect the polygon are (hull doesn't cross interior of input polygon) coming down the line.<br><br>P<br>_______________________________________________<br>postgis-devel mailing list<br><a href="mailto:postgis-devel@lists.osgeo.org" target="_blank">postgis-devel@lists.osgeo.org</a><br><a href="https://lists.osgeo.org/mailman/listinfo/postgis-devel" target="_blank">https://lists.osgeo.org/mailman/listinfo/postgis-devel</a><u></u><u></u></p></blockquote></div></div></div></div>_______________________________________________<br>
postgis-devel mailing list<br>
<a href="mailto:postgis-devel@lists.osgeo.org" target="_blank">postgis-devel@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/postgis-devel" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/postgis-devel</a><br>
</blockquote></div>