Tyler,

Well, that's simply brilliant. I knew it should be easy. Plus,

when I tested it I found out my rasters weren't truly mutually exclusive

after all, as some cells = 3. This is apparently an artifact of

v.to.rast polygon boundary issues but it's a pretty small problem.

Nonetheless, I have begun work on the r.update function I mentioned

in my last post. It has general utility (e.g. fixing the non-exclusive

problems I just mentioned) and seems easy enough as a crude hack. If it

shows general utility I'll post it and see if someone with GRASS coding

skills wants to take it up in C with the API.

Thanks Tyler!

On 01/01/2014 09:56 AM, Tyler Smith wrote:

> Dave Roberts <

[hidden email]> wrote:

>

> Colleagues,

>

> I know this must be easy, but I haven't found it.

>

> Suppose I have three grids (a, b, and c) where each grid is 0 or 1,

> and the 1s are mutually exclusive. I want a new grid where if grid

> a=1 then newgrid = 1; if grid b=1 then new grid = 2; if grid c=1 then

> newgrid = 3.

>

> Something like r.mapcalc "new=if(a,1) || if(b,2) || if(c,3)"

>

> seems like it ought to work but I can't seem to use multiple input file

> that way.

>

> Thanks in advance for any help, Dave

>

>

> What about

>

> r.mapcalc new=a + b*2 + c*3

>

> If the maps are mutually exclusive, only one of the three will be

> non-zero for each cell.

>

> Tyler

--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

David W. Roberts office 406-994-4548

Professor and Head FAX 406-994-3190

Department of Ecology email

[hidden email]
Montana State University

Bozeman, MT 59717-3460

_______________________________________________

grass-user mailing list

[hidden email]
http://lists.osgeo.org/mailman/listinfo/grass-user