<div dir="ltr"><br><br>On Mon, Nov 19, 2018 at 4:52 PM Ken Mankoff <<a href="mailto:mankoff@gmail.com">mankoff@gmail.com</a>> wrote:<br>><br>> Hi Martin,<br>><br>> On 2018-11-19 at 16:32 +0100, Markus Metz <<a href="mailto:markus.metz.giswork@gmail.com">markus.metz.giswork@gmail.com</a>> wrote:<br>> >> On 2018-11-19 at 08:26 +0100, Ken Mankoff <<a href="mailto:mankoff@gmail.com">mankoff@gmail.com</a>> wrote:<br>> >><br>> >> r.mapcalc "basin = if(basin, ${count}, null())" --o<br>> >> r.to.vect -v input=basin output=b type=area --o<br>> >> v.patch -a input=b output=basin --o<br>> >> v.clean in=basin out=basin_clean0 tool=break,rmdupl --o<br>> >> v.clean in=basin_clean0 out=basin_clean1 tool=snap,break,rmdupl --o<br>> ><br>> > you can also clean the patched vector with<br>> ><br>> > v.clean tool=bpol,rmdupl,break,rmdupl -c<br>> ><br>> > it could be a bit faster<br>><br>> If found it faster and easier to not work in vector space. I now write out the raster with '<a href="http://r.out.xyz">r.out.xyz</a> raster=basin >> basin.txt" (I'm actually doing this with GNU parallel with one basin and one file per CPU core). Then I can read concat and read in everything as a raster. Finally, converting the single raster to a vector seems to work better than accumulating all the individual vectors.<br><div><br></div><div>looking at your aim: get basins for all outlets, you could also use</div><div>1. r.stream.extract with stream_vector as output</div><div>outlets have category value 2 in layer 2</div><div>2. extract the outlets with v.extract lyer=2 type=point cats=2</div><div>3. use the outlets as input for r.stream.basins</div><div><br></div><div>Markus M</div><div><br></div><div>></div>> Thanks,<br>><br>>   -k.</div>