[GRASS-user] r.mask: no MASK created when using many categories

Michel Wortmann wortmann at pik-potsdam.de
Fri Apr 7 01:15:01 PDT 2017

Hi Mira,

I find a more elegant way to create a mask from an arbitrarily long list 
of raster categories would be to use r.reclass where you can use an 
input file:

r.reclass input=subcatchments output=MASK rules=mask.dat

and in mask.dat you list your categories:


Might help, although the problem seems to have been solved.


On 04/05/2017 03:59 PM, Mira Kattwinkel wrote:
> Dear Micha
> thanks for your suggestion.
> Actually, that's is what I usually do. However, I am not really 
> interested in the catchment of the endpoints of the edges but in 
> sampling points lying at the streams. If a point lies within the dem 
> cell of the outlet, which can be a confluence of two streams, the 
> coordinate approach will result in the catchment of both confluences, 
> although the point lies just at one of them. That's why I came up with 
> the idea of summing up the subcatchments of only the relevant branch 
> of the stream network.
> Maybe there are other thoughts on that?
> Mira
> On 05/04/17 15:25, Micha Silver wrote:
>> On 04/05/2017 03:22 PM, Mira Kattwinkel wrote:
>>> Dear List,
>>> I am using r.mask to create a new raster map that only contains 
>>> certain categories given in 'maskcats'. Then, I use r.mapcalc to 
>>> save the map under a new name and (to be on the save side) delete 
>>> the MASK with r.mask flag '-r'. I do this in a loop and it works 
>>> fine until a case when the number of categories to combine is 213 
>>> (trail and error lead to 106 as the maximum number that works fine). 
>>> Flag 'verbose' gives the message that a MASK was created, but none 
>>> is there. The problem arises in both cases when I directly use Grass 
>>> or through R using execGrass.
>>> Is there a limit in the number of categories that can be passed to 
>>> r.mask? I did not find any hint about that. Additionally, I wonder 
>>> why there is no error message but in the contrary one that tells me 
>>> that a MASK was created even when it failed.
>>> In case the details are important (or if anybody has a better idea 
>>> how to achieve what I want): I have a raster map of subcatchemts 
>>> belonging to stream segments created with r.stream.basins. For the 
>>> endpoints of segments, I want to combine these subcatchments to a 
>>> total catchment raster map containing all upstream catchments.
>> If you have the endpoint of of the outlet segment, you might use that 
>> as the "coordinates" parameter to r.stream.basins to create a single 
>> large drainage basin. Then use that as the mask to get out the 
>> subcatchments.
>>> Thanks a lot,
>>> Mira
>> -- 
>> Micha Silver
>> cell: +972-523-665918

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20170407/0837ef08/attachment.html>

More information about the grass-user mailing list