On Thu, Apr 6, 2017 at 5:47 AM, Micha Silver <[email protected]> wrote: > Interesting... > I can duplicate the problem (but only up to 100 cats). Above that I get an > error of "stack smashing": >
I tried to fix it in r70847 (or at least allow longer sequences, the arrays are still statically allocated). But in this case you can also use "1 thru 106". Anna > GRASS 7.2.0 (ITM):~ > r.mask raster=farm_bas maskcats="`seq -s " " 1 100`" > --o > All subsequent raster operations will be limited to the MASK area. Removing > or renaming raster map named 'MASK' will restore raster operations to > normal. > [Raster MASK present] > > GRASS 7.2.0 (ITM):~ > r.info -g MASK > north=530000 > south=510000 > east=185000 > west=170000 > nsres=4 > ewres=4 > rows=5000 > cols=3750 > cells=18750000 > datatype=CELL > ncats=0 > [Raster MASK present] > > But with 103 cats... > GRASS 7.2.0 (ITM):~ > r.mask raster=farm_bas maskcats="`seq -s " " 1 103`" > --o > WARNING: MASK already exists and will be overwritten > *** stack smashing detected ***: r.reclass terminated > All subsequent raster operations will be limited to the MASK area. Removing > or renaming raster map named 'MASK' will restore raster operations to > normal. > GRASS 7.2.0 (ITM):~ > r.info -g MASK > ERROR: Raster map <MASK> not found > > > > On 04/06/2017 12:12 PM, Mira Kattwinkel wrote: > > Dear Anna, dear list > > I used the NC basic sample data set to replicate my case. Unfortunately, I > get the same problem. Can anybody give me a hint? Thanks a lot! > > Here is what I did and the output: > > r.watershed elevation=elevation@PERMANENT threshold=500 basin=basins_new > SECTION 1a (of 5): Initiating Memory. > SECTION 1b (of 5): Determining Offmap Flow. > SECTION 2: A* Search. > SECTION 3a: Accumulating Surface Flow with MFD. > SECTION 3b: Adjusting drainage directions. > SECTION 4: Watershed determination. > SECTION 5: Closing Maps. > > ## creating mask with 106 categories works fine > r.mask raster=basins_new@PERMANENT maskcats=1 2 3 4 5 6 7 8 9 10 11 12 13 14 > 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 > 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 > 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 > 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 > All subsequent raster operations will be limited to the MASK area. Removing > or renaming raster map named 'MASK' will restore raster operations to > normal. > > r.mapcalc expression=r106 = MASK > > r.mask -r > Raster MASK removed > > ## creating mask with 107 categories seems to work without error but there > is no MASK output > r.mask raster=basins_new@PERMANENT maskcats=1 2 3 4 5 6 7 8 9 10 11 12 13 14 > 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 > 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 > 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 > 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 > All subsequent raster operations will be limited to the MASK area. Removing > or renaming raster map named 'MASK' will restore raster operations to > normal. > > r.mapcalc expression=m107 = MASK > Invalid map <MASK> > Parse error > ERROR: parse error > > g.list type=raster > basins > basins_new > elevation > elevation_shade > geology > lakes > landuse > r106 > soils > > > > On 06/04/17 05:06, Anna Petrášová wrote: > > On Wed, Apr 5, 2017 at 8:22 AM, Mira Kattwinkel > <[email protected]> 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. > > I tried it on landsat raster from NC sample dataset and it worked. > Perhaps you could try to replicate it with this sample dataset? > > Anna > > 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. > > Thanks a lot, > > Mira > > > -- > Dr. Mira Kattwinkel > Quantitative Landscape Ecology > Institute for Environmental Sciences > University of Koblenz-Landau > Fortstraße 7 > 76829 Landau > Germany > Phone: + 49 6341 280-31553 > Office: Building I, Room 2.02 > > _______________________________________________ > grass-user mailing list > [email protected] > https://lists.osgeo.org/mailman/listinfo/grass-user > > > > -- > Micha Silver > cell: +972-523-665918 _______________________________________________ grass-user mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/grass-user
