[postgis-users] River dataset

Shane Carey careyshan at gmail.com
Sat Oct 6 07:19:36 PDT 2018


Thanks Marcin,

How do I actually put that into a GIS layer in order to review it?

Thanks
Le gach dea ghui,
*Shane Carey*
*GIS and Data Solutions Consultant*


On Fri, Oct 5, 2018 at 10:28 AM Marcin Mionskowski <
mionskowskimarcin at gmail.com> wrote:

> In your original mail the image didn't attach as Darafei wrote. Because of
> that i think that you should tell us how you need the split to be done.
> Can it be done in "custom" direction, or you need it to be "perpendicular
> to the river"?
> 1) If 1st - I would suggest to simply intersect your polygons with
> generated lines (see code below).
> 2) If 2nd, then how you want this perpendicularity to be defined?
> Is it supposed to be perpendicular to the river axis/side? How the right
> axis/side should be determined? Can you draw a line "by hand" or does it
> have to be calculated? Do you realize that lines generated this way, can
> and probably will intersect?
>
> Take a look at SQL below. It's little long, but also clear (in my
> opinion), and it shows my approach step by step.
>
> WITH
> floodplain AS (
>         SELECT ST_SetSRID(ST_MakePolygon(
>                 ST_GeomFromText('LINESTRING(100000 100000,100004
> 100000,100004 100004,100000 100004,100000 100000)'),
>                         ARRAY[ST_GeomFromText('LINESTRING(100002
> 100002,100002 100003,100003 100003,100003 100002,100002 100002)')]
>                         ),3035) geom
>         )
> , river AS (
>         SELECT ST_SetSRID(ST_MakePolygon(
>                 ST_GeomFromText('LINESTRING(100001 100000,100003
> 100000,100000 100003,100000 100002,100001 100000)')
>                 ),3035) geom
>         )
> , min_max AS ( --I assume that floodplain polygon covers river polygon (
> https://postgis.net/docs/ST_Covers.html).
>         SELECT ST_XMin(geom) xmin
>                 , ST_XMax(geom) xmax
>                 , ST_YMin(geom) ymin
>                 , ST_YMax(geom) ymax
>         FROM floodplain
>         )
> , gs AS (
>         SELECT generate_series(ymin::INT,ymax::INT,1) gs --last parameter
> is not required, change 1 to 0.5 for "better looking" numeric results in my
> example
>         FROM min_max
>         )
> , splitlines AS (
>         SELECT ST_SetSRID(ST_MakeLine(ST_MakePoint(xmin, gs),
> ST_MakePoint(xmax, gs)),3035) geom
>         FROM gs
>                 , min_max
>         )
> SELECT ST_Length(ST_Intersection(r.geom,s.geom)) river_width
>         ,ST_Length(ST_Intersection(f.geom,s.geom)) floodplain_width
>
> ,ST_Length(ST_Intersection(r.geom,s.geom))/ST_Length(ST_Intersection(f.geom,s.geom))
> river_floodplain_ratio
>  FROM floodplain f
>         , river r
>         , splitlines s
>
> Greetings,
> Marcin
>
> On Wed, 03 Oct 2018 15:18:19 +0200, Shane Carey <careyshan at gmail.com>
> wrote:
>
> > Hi,
> >
> > Just wondering  did anyone have a chance to look at my issue with regards
> > the river and polygon dataset that I was trying to split up?
> >
> > Thanks
> >
> > Le gach dea ghui,
> > *Shane Carey*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20181006/9411f823/attachment.html>


More information about the postgis-users mailing list