I've seen a few places that when using the r.watershed function in GRASS QGIS, you do not need to use the "fill-sinks" procedure on the DEM before running the function.

According to the documentation: "Option elevation specifies the elevation data on which entire analysis is based. NULL (nodata) cells are ignored, zero and negative values are valid elevation data. Gaps in the elevation map that are located within the area of interest must be filled beforehand, e.g. with r.fillnulls, to avoid distortions. The elevation map need not be sink-filled because the module uses a least-cost algorithm."

How does the least-cost algorithm work, and why is it not necessary to perform a "fill-sinks" procedure when using it?

2 Answers 2


The GRASS algorithm in r.watershed does not need a filled DEM because it implements multi flow direction (MFD) that allows the procedure to "look ahead" recursively to find where the stream is going, and to route the stream through a sink in a reasonable way. It does not "simulate" filling.

THere's a nice example in this paper. See Ssection 3.2 and Figure 7.

  • Great @Micha, but are you sure about it?, saga gis implements various flow methods, variants of multiple flow directions, flow tracing, but also requires fill dem.
    – Luis Perez
    Oct 3, 2020 at 16:33
  • Yes, we are sure. Please see here: grasswiki.osgeo.org/wiki/…
    – markusN
    Oct 3, 2020 at 22:30
  • Do we still not need fill sink for r.watershed if we are using SFD ? Sep 28, 2021 at 17:08
  • 1
    You do not need to fill sinks even when choosing SFD.
    – Micha
    Sep 29, 2021 at 7:52

Interesting question, I have not applied that process, but I have read some publications of Mitasova, especially those on simulation. I assume that the same principle applies.

I understand that several processes do not require filling of sinks because the algorithm "simulates" filling during flow and continuous. Imagine that you are filling the sump with water when you reach the top and the flow continues on its way.

A problem of similar algorithms in other programs that when the flow stops they do not find a solution.

An interesting aspect, would be to evaluate how the filling or not of the sinks affects the result, because it uses the route of the minimum cost, and a sink, I suppose, implies a greater cost


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.