<div dir="ltr">Dear GRASS users,<div><br></div><div>I further elaborated on this issue of r.watershed and I found what is actually causing this strange behaviour. It seems that r.watershed cannot handle (pseudo)elevation values data are larger than >2100000. My procedure is working value if the values are smaller, but I get an error message (see previous email) if my elevation map contains e.g. 2200000.</div><div><br></div><div>Here small working example using the NC dataset to reproduce the behaviour of getting stream segements (and stream order) from a raster river network without having the original elevation map available.</div><div><br></div><div>##########################################</div><div><div># Extract river network to get a working example</div><div>g.region raster=elev_ned_30m@PERMANENT</div><div>r.watershed -m --overwrite elevation=elev_ned_30m@PERMANENT threshold=250 drainage=drainage stream=stream</div><div>r.stream.basins direction=drainage coordinates="638985, 218135" basins=selected_basin</div><div>r.mapcalc "selected_streams = if( selected_basin  && stream,1,null())" --overwrite</div><div><br></div><div><br></div><div># For the actual purpose only a raster stream network is available (no DEM)</div><div># So we need to calculate a pseudoelevation map using r.cost</div><div>r.cost --overwrite input=selected_streams output=stream_accum start_coordinates="638985, 218135"</div><div><br></div><div># Create a buffer around stream (without outlet getting buffered). See difference if the value is 2200000<br></div><div>r.grow.distance --overwrite input=stream_accum value=stream_raster_nearest</div><div>r.grow --overwrite input=stream_accum output=stream_accum_grow radius=2.01 old=1 new=2100000</div><div>r.mapcalc " stream_accum_grow_start = if( stream_raster_nearest  == 0,null(), stream_accum_grow)" --overwrite</div><div>r.grow --overwrite input=stream_accum_grow_start output=stream_raster_buffer old=2100000 new=2100000</div><div>r.patch --overwrite input=stream_accum,stream_raster_buffer output=stream_accum_buffered</div><div><br></div><div># Extract stream with buffer does  work only if buffer value <=2100000<br></div><div>r.watershed -m --overwrite elevation=stream_accum_buffered threshold=3 stream=stream_test2</div></div><div>#############################################</div><div><br></div><div>Of course I agree a value of 2200000 is pretty much extreme for a raster elevation map. However, from the error message it is difficult to actually know what is causing the problem. Is there any special reason for that threshold? Maybe r.watershed can have a test before to check if this threshold is not exceeded. Most probably this issue can be solved just by dividing the elevation by a certain value (e.g. 1000) before using it with r.watershed.</div><div><br></div><div>Cheers,</div><div>Johannes</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 2, 2015 at 2:18 PM, Johannes Radinger <span dir="ltr"><<a href="mailto:johannesradinger@gmail.com" target="_blank">johannesradinger@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I tried something that was working at least several months ago, but somehow r.watershed has changed. What I am trying to do is to extract a stream network from a pseudo elevation map. This pseudo elevation map is created by getting the distance of each stream cell from to outlet in upstream direction (using r.cost). In addition, the streams are buffered (3 cells wide) with cells of a value that is much greater than the actual stream value. This map has several features: 1) The cell values for the stream are certainly decreasing in downstream direction (=elevation is decreasing) 2) The stream is carved into a valley (important at river junctions where two streams meet). So this should actually meet the requirements for r.watershed (at least it was working some time ago) to extract the stream and get the drainage directions (e.g. for other tools like r.stream.order etc.).</div><div> </div><div>Now, when I try to run r.watershed (GRASS7.1) I get following warning several times:</div><div><div>WARNING: MFD: cumulative proportion of flow distribution not 1.0 but</div><div>         -0.000000</div></div><div><br></div><div>Although I get a drainage map as output, no output is created for the extracted stream network. I am wondering what changed and why and if this is a bug in r.watershed or if I need to change settings differently.</div><div><br></div><div>Attached you can find the pseudo elevation map as geotiff to try it yourself!</div><div><br></div><div>The command I am using is:</div><div>r.watershed -m --o  elevation="pseudo_elevation" drainage="drainage_test" stream="stream_test" threshold=3<br></div><div><br></div><div>My system:</div><div><div>GRASS version: 7.1.svn                                                          </div><div>GRASS SVN revision: 65534                                                       </div><div>Build date: 2015-07-02                                                          </div><div>Build platform: i686-pc-linux-gnu                                               </div><div>GDAL: 1.10.0                                                                    </div><div>PROJ.4: 4.8.0                                                                   </div><div>GEOS: 3.4.2                                                                     </div><div>SQLite: 3.7.9                                                                   </div><div>Python: 2.7.3                                                                   </div><div>wxPython: 2.9.4.1    </div></div><div><br></div><div>Any ideas or suggestions?</div><div><br></div><div>Best regards,</div><div>Johannes</div></div>
</blockquote></div><br></div>