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@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. _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user