[postgis-users] Get only the main river. Smoothline???

toni hernández toni at sigte.udg.edu
Tue Jun 9 06:06:34 PDT 2015


I like the idea of removing the seg that have an "exclusive" node even 
when I'm going to remove the first/last seg which are good ones.

Thanks again.

*Toni Hernández Vallès*
Servei de Sistemes d'Informació Geogràfica i Teledetecció
-
Universitat de Girona
*SIGTE*
-
Pl. Ferrater Mora 1
17071 Girona
Tel +34 972 418 039 (7026 intern)
toni at sigte.udg.edu <mailto:toni at sigte.udg.edu>

http://www.sigte.udg.edu
Twitter http://twitter.com/SIGTE_UDG

On 09/06/2015 09:57, Rémi Cura wrote:
> Ok,
> let's do some tweaking then.
>
> I did something very similar, but my code is more complex that it 
> should because I did it considering the fuzziness of the data
> , so I don't think it will be of much help.
>
> I tried 2 methods :
>
> Filtering using surface erosion
>  - starting from a surface (called Surf)
>   * generate an erosion of Surf (buffer with negative radius) called 
> SurfEroded, so that you get SurfEroded close to the centerline
>   * compute Straight skeleton of Surf , called SurfSS
>   * Simplify SurfSS to reduce the number of node, according to the 
> precision of output you expects. This is called SurfSSS
>   * Dump SurfSSS into individual polylines, called SSS_seg
>   * filter SSS_seg by removing all seg that have a node that is 
> outside SurfEroded (and maybe that are below a given length).
>   * reconstruct a line from the remaining segs.
>
> Filtering using end of segment isolation
>  - starting from a surface (called Surf)
>   * compute Straight skeleton of Surf , called SurfSS
>   * Simplify SurfSS to reduce the number of node, according to the 
> precision of output you expects. This is called SurfSSS
>   * Dump SurfSSS into individual polylines, called SSS_seg
>   * filter SSS_seg by removing all seg that have a node that is not 
> shared by any other segments
>   * reconstruct a line from the remaining segs.
>
>
> Cheers,
> Rémi-C
>
>
>
> 2015-06-09 8:56 GMT+02:00 Hugues François <hugues.francois at irstea.fr 
> <mailto:hugues.francois at irstea.fr>>:
>
>     Hello,
>
>     I think ST_Dump could help to deal with multilinestrings:
>     http://postgis.net/docs/ST_Dump.html
>
>     Hugues.
>
>     *De :*postgis-users-bounces at lists.osgeo.org
>     <mailto:postgis-users-bounces at lists.osgeo.org>
>     [mailto:postgis-users-bounces at lists.osgeo.org
>     <mailto:postgis-users-bounces at lists.osgeo.org>] *De la part de*
>     toni hernández
>     *Envoyé :* mardi 9 juin 2015 08:09
>     *À :* postgis-users at lists.osgeo.org
>     <mailto:postgis-users at lists.osgeo.org>
>     *Objet :* Re: [postgis-users] Get only the main river. Smoothline???
>
>     Thanks Remi,
>
>     I thought that but I have no starting/ending points. St_StartPoint
>     and St_EndPoint are not working with MultiLinestrings
>     I'll give it some more intense thought. :)
>
>     Cheers.
>
>     *Toni Hernández Vallès*
>     Servei de Sistemes d'Informació Geogràfica i Teledetecció
>     -
>     Universitat de Girona
>     *SIGTE*
>     -
>     Pl. Ferrater Mora 1
>     17071 Girona
>     Tel +34 972 418 039 (7026 intern)
>     toni at sigte.udg.edu <mailto:toni at sigte.udg.edu>
>
>     http://www.sigte.udg.edu
>     Twitter http://twitter.com/SIGTE_UDG
>
>     On 08/06/2015 17:45, Rémi Cura wrote:
>
>         if you have start and end point of geom B,
>         you can get the river path with a shortest path method (one
>         liner using python, can be done in few hours using plpgsql).
>
>         The idea is that you cut your geom into segments(pairs of points)
>         , the length of the segment is the weight of this edge
>         , and you know which segment is connected to which segment
>         (adjacency graph).
>
>         Then you use Networkx
>         <http://networkx.lanl.gov/reference/generated/networkx.algorithms.shortest_paths.generic.shortest_path.html#networkx.algorithms.shortest_paths.generic.shortest_path>shortest
>         path distance.
>
>
>         Else,
>
>         you are up to use some nasty workaround I suppose (playing
>         with buffers on your original river surface, testing which
>         segment intersects etc. ).
>
>         I tried that but it ends up being more work (and more corner
>         cases) than doing the things properly (in my experience).
>
>         Cheers,
>
>         Rémi-C
>
>         2015-06-08 16:42 GMT+02:00 toni hernández <toni at sigte.udg.edu
>         <mailto:toni at sigte.udg.edu>>:
>
>         Hi everyone,
>
>         I have a multilinestring with a river and all its afluents as
>         you can see in this image
>         http://sigserver4.udg.edu/apps/geometries.png
>
>         I got geometry A using St_StraithSkeleton.
>
>         Is there a way to go from geometry A to geometry B??
>         Maybe something similar to SmoothLine???
>
>         -- 
>         *Toni Hernández Vallès*
>         Servei de Sistemes d'Informació Geogràfica i Teledetecció
>         -
>         Universitat de Girona
>         *SIGTE*
>         -
>         Pl. Ferrater Mora 1
>         17071 Girona
>         Tel +34 972 418 039 (7026 intern)
>         toni at sigte.udg.edu <mailto:toni at sigte.udg.edu>
>
>         http://www.sigte.udg.edu
>         Twitter http://twitter.com/SIGTE_UDG
>
>
>         _______________________________________________
>         postgis-users mailing list
>         postgis-users at lists.osgeo.org
>         <mailto:postgis-users at lists.osgeo.org>
>         http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>
>
>
>
>         _______________________________________________
>
>         postgis-users mailing list
>
>         postgis-users at lists.osgeo.org  <mailto:postgis-users at lists.osgeo.org>
>
>         http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>
>
>     _______________________________________________
>     postgis-users mailing list
>     postgis-users at lists.osgeo.org <mailto:postgis-users at lists.osgeo.org>
>     http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20150609/0836f0e6/attachment.html>


More information about the postgis-users mailing list