[PostGIS] #5706: Proposal: New function ST_RemoveSmallParts()
PostGIS
trac at osgeo.org
Thu Mar 28 12:33:26 PDT 2024
#5706: Proposal: New function ST_RemoveSmallParts()
-------------------------+---------------------------
Reporter: gluser1357 | Owner: pramsey
Type: enhancement | Status: new
Priority: medium | Milestone: PostGIS 3.5.0
Component: postgis | Version: master
Keywords: |
-------------------------+---------------------------
I'd like to contribute another new Postgis function,
ST_RemoveSmallParts(the_geom, minSizeX, minSizeY).
This function removes all small parts of a geometry whose dimensions are
smaller than minSizeX and/or minSizeY. The function currently supports
(multi-)polygons and (multi-)linestrings of dimension 2.
Often, small geometries (like the thousands of islands along the Norway
coastline) make a map cluttered and harder to read at small scales. Also
the rendering process will slow down noticeably. Removing those small
parts of a geometry (that is, small exterior or interior rings of
polygons, or small linestrings) is actually a quite simple operation, but
as far as I can see, there is so far no simple Postgis function available
to achive this goal, just more or less complex approaches involving
st_dump()/st_collect(), e. g. described in
https://gis.stackexchange.com/questions/198987/how-can-i-remove-only-
small-inner-rings-in-postgis. Because of this I want to propose a new
function, ST_RemoveSmallParts(). According to our measures and long-term
experiences, this approach can be up to 50-100 times faster than the
complex approaches we have tested and can thus be advantageous for real-
time applications (similar to the other one I proposed today here:
https://trac.osgeo.org/postgis/ticket/5705)
The code you can find as fork of https://github.com/postgis/postgis
(master) here:
https://github.com/gluser1357/postgis-fork/tree/remove_small_parts
Please see also my initial proposal (previously named
'st_remove_small_geometries') on postgis devel here:
https://lists.osgeo.org/pipermail/postgis-devel/2024-February/030261.html
Thank you for reviews, hints and comments on this function or if there's
something missing.
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5706>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list