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)
t...@sigte.udg.edu <mailto:t...@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.franc...@irstea.fr <mailto:hugues.franc...@irstea.fr>>:

    Hello,

    I think ST_Dump could help to deal with multilinestrings:
    http://postgis.net/docs/ST_Dump.html

    Hugues.

    *De :*postgis-users-boun...@lists.osgeo.org
    <mailto:postgis-users-boun...@lists.osgeo.org>
    [mailto:postgis-users-boun...@lists.osgeo.org
    <mailto:postgis-users-boun...@lists.osgeo.org>] *De la part de*
    toni hernández
    *Envoyé :* mardi 9 juin 2015 08:09
    *À :* postgis-users@lists.osgeo.org
    <mailto:postgis-users@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)
    t...@sigte.udg.edu <mailto:t...@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 <t...@sigte.udg.edu
        <mailto:t...@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)
        t...@sigte.udg.edu <mailto:t...@sigte.udg.edu>

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


        _______________________________________________
        postgis-users mailing list
        postgis-users@lists.osgeo.org
        <mailto:postgis-users@lists.osgeo.org>
        http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users




        _______________________________________________

        postgis-users mailing list

        postgis-users@lists.osgeo.org  <mailto:postgis-users@lists.osgeo.org>

        http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users


    _______________________________________________
    postgis-users mailing list
    postgis-users@lists.osgeo.org <mailto:postgis-users@lists.osgeo.org>
    http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users




_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

Reply via email to