[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