Streams extraction from streams map

From GRASS-Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Q: I have a network of streams (say, Spearfish or better the new NC data set at http://www.grassbook.org/data_menu3rd.php ) and want to extract a single stream system. Names are lacking, is there any trick to extract topologically connected lines into a new map?

A: Use v.net.iso since disconnected networks will have infinite cost.

Spearfish example:

g.region vect=streams
d.mon 0
d.vect streams disp=shape,dir

# find coordinates
d.where

# work on map copy
g.copy vect=streams,mystreams

echo "602042|4927928" | v.in.ascii out=outlet --o
v.distance -p from=outlet to=mystreams out=connect upload=dist column=dist --o

v.patch in=mystreams,connect,outlet out=streams_n --o
v.clean streams_n out=streams_net tool=snap,break thresh=5,0 --o

g.region vect=streams_net
d.erase
d.vect streams_net
d.vect streams_net type=point col=red icon=basic/triangle

v.net.iso streams_net out=myriver ccats=1 costs=99999999 nlayer=1 --o

v.category myriver option=report
# The network is of 2 categories
# show selected river network
d.vect myriver col=blue  cats=1
d.vect myriver col=green cats=2

# now v.extract etc ...

Note that some upper parts of the river network are not found due to unconnected lines.