[GRASS-user] center line with v.generalize ?

Gabriele N. gis.gn at libero.it
Fri Jan 25 04:25:59 EST 2008



hamish_b wrote:
> 
> Gabriele wrote:
>> I have a theme of a polygonal rivers. I have to locate the center line
>> as a line that identifies the river. Obviously the edges of the river
>> are not parallel and can not use v.parallel.
> ..
>> I would locate the midline of the river.
>> So I would like to transform the polygon with the middle line.
> 
> Maris:
>> Just a quick idea - if vector map contains only rivers, You could try
>> out v.to.rast and then r.thin till You get something similar to river
>> and then convert back to vectors with r.to.vect.
> 
> Gabriele:
>> I have already tried with r.thin etc. .. but sometimes I need a little
>> too pixels (because the rivers is very narrow and contorted) to avoid
>> errors of approximation.
>> The problem is that choosing a region with high resolution happens '
>> out of memory error '.
> 
> 
> I have tried to solve this problem in a way similar to Maris's suggestion.
> I was looking at fjords not rivers so my width was 500-1000m and I could
> use the method at 10m resolution without region size problems.
> 
> For a long-thin river you might be able to do the processing piece-by-
> piece in a moving region window then patch all the center line parts
> together.
> 
> I am more interested in river-width than "river mile", I had hoped to
> create a center line then v.to.rast that line and for each cell make a
> line normal to the center-line and measure its distance (ie shore to shore
> distance normal to center-line), and output a profile cross section (2 *
> r.transect + bathy DEM). River width is interesting for things like
> atmosphere-water surface coupling + heat/gas exchange, photo-reactive
> dissolved organic chemistry exposure to sunlight, etc. -- a thinner
> section of the river/fjord will expose less top-1m volume and (depending
> on depth changes) may speed up the flow further reducing available
> reaction time*spatial exposure.
> 
> Anyway I experimented with a few things, what I ended with AFAICR was
> creating a land raster MASK with v.to.rast and the coastline, then
> running r.cost to find distance to nearest shore. I then ran a
> combination of r.slope.aspect + "r.mapcalc slope<5" and 'r.param.scale
> param=feature' to look for ridges in the cost map. Then r.thin +
> r.to.vect.
> 
> The result was a nice start, but there were some problems I still don't
> know the answers to. For one thing the presence of islands in the channel
> split the distance in two. I guess you could use v.extract and/or
> v.dissolve to remove all islands before r.cost, then subtract island
> width from the r.transect width later on? A second problem was what to do
> when you came to a place where the channel forked.
> 
> 
> here is an interesting link:
> "Dynamic Segmentation and Thiessen Polygons: A Solution to the River Mile
> Problem" [using Thiessen polygons] by William W. Hargrove, Richard F.
> Winterfield, Daniel A. Levine:
>   http://research.esd.ornl.gov/CRERP/DOCS/RIVERMI/P114.HTM
> 
> 
> here are some old grass mailing list links, I though there was something
> more recent, but don't see it now. the gmane threading seems a bit
> broken, may nabble does better?
>   http://thread.gmane.org/gmane.comp.gis.grass.user/12308
>   http://article.gmane.org/gmane.comp.gis.grass.user/12332
>   http://article.gmane.org/gmane.comp.gis.grass.user/12346
>   http://thread.gmane.org/gmane.comp.gis.grass.user/12352
>   http://img93.imageshack.us/my.php?image=schermorast73iv.png
> 
> 
> be careful as river-mile can be a fractal problem.
> 
> 
> Hamish
> 
> _______________________________________________
> grass-user mailing list
> grass-user a lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-user
> 
> 
	
Your information is very interesting.
I will try to take inspiration from all of the advice that I read.

Many thanks

Gabriele
-- 
View this message in context: http://www.nabble.com/center-line-with-v.generalize---tp15063073p15084050.html
Sent from the Grass - Users mailing list archive at Nabble.com.



More information about the grass-user mailing list