Hope this email finds you well. I got a weird result when using r.stream.extract, as shown in the following figure. The back grids is the flow accumulation layer with a flow accumulation threshold larger than 1000. while the blue line is the stream generated by r.stream.extract.
Why the stream from r.stream.extract did not follow flow accumulation results?
And how to fix this problem?
On 2020-11-23 at 09:05 -08, ming han <dustming@gmail.com> wrote...
Hope this email finds you well. I got a weird result when using
r.stream.extract, as shown in the following figure. The back grids is
the flow accumulation layer with a flow accumulation threshold larger
than 1000. while the blue line is the stream generated by
r.stream.extract. Why the stream from r.stream.extract did not follow
flow accumulation results? And how to fix this problem?
Is there any chance you can share the raster that includes this region so I can examine it? And the exact command you ran?
Many thanks for your reply, I think I made a mistake, the flow accumulation I provided to r.stream.extract did not match the DEM I provided in r.stream.extract. The streamline seems based on flow accumulation derived from the provided DEM.
But, If I only want to use flow direction to drive streams, which function I should use?
Is there any chance that r.stream.extract can use flow direction as inputs without DEM?
Hope this email finds you well. I got a weird result when using
r.stream.extract, as shown in the following figure. The back grids is
the flow accumulation layer with a flow accumulation threshold larger
than 1000. while the blue line is the stream generated by
r.stream.extract. Why the stream from r.stream.extract did not follow
flow accumulation results? And how to fix this problem?
Is there any chance you can share the raster that includes this region so I can examine it? And the exact command you ran?
And another problem I got is that the flow accumulation I got from r.accumulate and r.watershed is different when r.accumulate using flow direction from r.watershed. Again is there anyway r.watershed supports using flow direction, so we can get the consistent result.
We need this when we need to adjust the flow direction from r.watershed or r.stream.extract. and then we need to determine new flow accumulation with an adjusted flow direction dataset. If the result is inconsistent, not sure what is the solution is.
Many thanks for your reply, I think I made a mistake, the flow accumulation I provided to r.stream.extract did not match the DEM I provided in r.stream.extract. The streamline seems based on flow accumulation derived from the provided DEM.
But, If I only want to use flow direction to drive streams, which function I should use?
Is there any chance that r.stream.extract can use flow direction as inputs without DEM?
Hope this email finds you well. I got a weird result when using
r.stream.extract, as shown in the following figure. The back grids is
the flow accumulation layer with a flow accumulation threshold larger
than 1000. while the blue line is the stream generated by
r.stream.extract. Why the stream from r.stream.extract did not follow
flow accumulation results? And how to fix this problem?
Is there any chance you can share the raster that includes this region so I can examine it? And the exact command you ran?
On 2020-11-25 at 04:17 -08, ming han <dustming@gmail.com> wrote...
And another problem I got is that the flow accumulation I got from
r.accumulate and r.watershed is different when r.accumulate using flow
direction from r.watershed. Again is there anyway r.watershed supports
using flow direction, so we can get the consistent result.
There may be reasons for these differences? For example, if SFD v. MFD, or the "-a" flag to r.watershed?
We need this when we need to adjust the flow direction from
r.watershed or r.stream.extract. and then we need to determine new
flow accumulation with an adjusted flow direction dataset. If the
result is inconsistent, not sure what is the solution is.
It isn't clear why you are adjusting the flow direction. Is this required?
But, If I only want to use flow direction to drive streams, which
function I should use?
Many thanks for your reply. your time and effort are much appreciated.
I use -a option to ensure positive flow accumulations and using SFD, but still got different results.
The reason why needs to change flow direction is that the DEM imperfect, especially when there is a lot of lakes in the watershed. Without change flow direction, the lake will be divided into different subbasins.
And the reason why I want to start from flow direction instead of DEM is that there are several hydrological pre-conditioned datasets, the flow direction in this dataset already adjusted for most of the lakes.
---- Some personal suggestions----
I find a solution for my work, but based on this experience feels like divide functions like r.stream.extract into four functions might provide user more feasibility: such as a function that defines flow direction DEM, a function define flow accumulation from flow direction, a function define streams from flow accumulation and a function define subbasin based on flow direction and stream network.
And another problem I got is that the flow accumulation I got from
r.accumulate and r.watershed is different when r.accumulate using flow
direction from r.watershed. Again is there anyway r.watershed supports
using flow direction, so we can get the consistent result.
There may be reasons for these differences? For example, if SFD v. MFD, or the “-a” flag to r.watershed?
We need this when we need to adjust the flow direction from
r.watershed or r.stream.extract. and then we need to determine new
flow accumulation with an adjusted flow direction dataset. If the
result is inconsistent, not sure what is the solution is.
It isn’t clear why you are adjusting the flow direction. Is this required?
But, If I only want to use flow direction to drive streams, which
function I should use?
The discrepancy in flow accumulation between the two modules is explained in the r.accumulate manual at https://grass.osgeo.org/grass78/manuals/addons/r.accumulate.html. See Examples => Flow accumulation. Most likely, this is because of r.watershed’s handling of border cells.