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

Rémi Cura remi.cura at gmail.com
Tue Jun 9 00:57:34 PDT 2015


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
<https://github.com/Remi-C/PPPP_utilities/blob/master/postgis/rc_DumpSegments.sql>
  * 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>:

> 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] *De la part de* toni hernández
> *Envoyé :* mardi 9 juin 2015 08:09
> *À :* 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
>
> 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>:
>
> 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
>
> http://www.sigte.udg.edu
> Twitter http://twitter.com/SIGTE_UDG
>
>
> _______________________________________________
> postgis-users mailing list
> 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
>
>
>
> _______________________________________________
> 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/ba6a8ea4/attachment.html>


More information about the postgis-users mailing list