[GRASS-dev] Re: [GRASS GIS] #518: negative flow accumulation with r.watershed SFD or MFD

Michael Barton michael.barton at asu.edu
Sat Mar 7 23:28:34 EST 2009

On Mar 7, 2009, at 8:50 PM, Helena Mitasova wrote:

> There is no question that the default should be kept negative,  
> although checking whether the result
> is correct would not hurt - we can look at it with our Panama  
> experiments, others using
> r.watershed could provide some helpful feedback too.
> But adding a flag to keep values positive actually makes sense to  
> me, if the flag is properly
> described (e.g. use positive flowaccumulation even for uncomplete  
> contributing areas).
> User who selects to run r.watershed with this flag apparently knows  
> that he has
> uncomplete watersheds and will be getting negative values that may  
> not be useful
> for his application, so there is no need to tell him that he has a  
> problem - he would already know it
> and for some reason wants to ignore it. I often found myself running  
> mapcalc abs on the accum
> output for various reasons.
> BUT for erosion modeling you really want to run r.watershed  with  
> negative values - erosion models require
> upslope contributing area as measure of water flow and if the  
> watershed is not complete,
> water flow will be underestimated leading to underestimated erosion  
> rates. So the cells with
> uncomplete contributing area need to be excluded from the  
> computation of erosion, and here
> the negative values actually come handy.
> Helena

I agree. This is what I'm suggesting. We cannot change the default  
behavior for GRASS 6 and may not want to for GRASS 7. But it would be  
good to have a way to turn this off in some circumstances.


> On Mar 6, 2009, at 12:35 PM, Markus Metz wrote:
>> Michael Barton wrote:
>>>>> A much more direct way is to give a warning for each problematic  
>>>>> basin in the output:
>>>>> WARNING: part of basin XX extends beyond region extent;  
>>>>> accumulation values may be too low.
>>>> IMHO not very practical. When thousands of basins are calculated,  
>>>> you would get flooded with these warnings.
>>> Are people calculating so many basins that thousands would be  
>>> along the region extents?
>> It is technically possible to calculate thousands of basins,  
>> therefore the code must consider that. IMHO, the code must consider  
>> all technically possible scenarios, you never know what a module is  
>> used for, and I would like it to be very generally applicable and  
>> not restricted to certain scenarios.
>>>> Hmm, don't you need to know the exact flow accumulation to  
>>>> calculate erosion/deposition? Are some "at least so much, but  
>>>> probably much more" values really ok? BTW, RUSLE factors as  
>>>> created by r.watershed are also only correct for cells with  
>>>> positive flow accumulation.
>>> It depends on how much difference there is. A couple cells would  
>>> not make much difference, 100's would make a difference. But I'd  
>>> still like to know which ones are a problem of course. I'm not  
>>> suggesting to make absolute value of accumulation a default (not  
>>> permitted in 6.5 anyway), but simply making it an option that the  
>>> user could exercise
>> Now I'm confused: negative values tell you where there is a  
>> problem, but you don't want negative values, only positive values,  
>> but then there should be additional, new output telling you where  
>> the problems are?
>> Coming up with my technically possible scenarios: let's assume a  
>> basin threshold of 10,000, that gives a max accumulation value for  
>> exterior basins of 10,000. 10 cells within an exterior basin have  
>> negative flow accumulation, that's only 0.1%. The absolute flow  
>> accumulation value is probably very low, whereas the real flow  
>> accumulation value can be anything, also >>> 10,000. Certain  
>> calculations will be very different. The exterior basin is in this  
>> case in reality an interior basin, but this can only be found out  
>> by expanding the computational region.
>>>> The new SFD version should produce results identical to previous  
>>>> versions. If not, I introduced a bug. The MFD version calculates  
>>>> different, improved basins compared to SFD.
>>> This is the issue. It happened when we tried MFD. I'm happy for  
>>> the better calculations and we'll redo our watershed boundaries.  
>>> But this points out some of the problems.
>> To be precise, the calculations are only better if MFD is regarded  
>> as more accurate than SFD.
>>>> Or introduce a new output option named something like  
>>>> "incomplete_basin_parts" where the incomplete parts are assigned  
>>>> the negative value of the basin they belong to.
>>> If this is better than warnings, that's OK too. I just think that  
>>> there might be a better way to do this than only by making the  
>>> accumulation values negative.
>> Maybe Helena can give some tips?
>> I personally am biased, I like the concept of the original  
>> r.watershed with all that information in the output too much:-) See  
>> also negative drainage direction, IMHO very useful.
>> Markus M
>> _______________________________________________
>> grass-dev mailing list
>> grass-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-dev

More information about the grass-dev mailing list