[GRASS-user] Multiple labels and r.series

John C. Tull john.tull at wildnevada.org
Tue Nov 11 22:35:19 EST 2008


On Nov 11, 2008, at 6:45 PM, Hamish wrote:

> John wrote:
>> I am creating a raster map that essentially summarizes the
>> intersection of a series of labeled rasters that each have
>> values of either 1 or null (presence/absence data). I am
>> using r.series like this to perform the summation across the
>> rasters that are all named with a prefix of presence_:
>>
>> r.series input="`g.mlist rast
>> pattern='presence_*' sep=,`"
>> output=presence_sum method=sum --o
>>
>> Can anyone think of a way to achieve this summation of
>> intersections in a way that will also allow for each cell to
>> have a label that concatenates all labels for the respective
>> raster maps that are present at that cell? E.g., let's
>> say three of the rasters are present at a particular cell,
>> and the labels for those rasters are 'raster1',
>> 'raster4', and 'raster7'. I would like the
>> final map to have a label of 'raster1, raster4,
>> raster7'.
>>
>> Any and all suggestions are greatly appreciated.
>
>
> the trick here is to r.reclass 0/1 absence/presence maps to be 0/2^n
> before running the sum.  So you then get a sum like 13, which would  
> mean
> the 8+2+1 maps were all present, or if the sum was 5 you'd know the  
> 1+4
> maps were present for that cell, and not others.
>
>
> see also r.bitpattern and r.mapcalc bitwise operators.  (sorry I don't
> know the proper name/wikipedia link for this technique, I'm not a  
> computer
> scientist)

I follow your logic here. I am still hopeful that someone will have  
some sort of script or r.mapcalc magic to generate concatenated labels.

As I'm not a computer scientist either, I fear I would spend more time  
trying to decipher the bitwise values and meanings than would be  
practical. That is a good suggestion, nonetheless. I should have added  
that I am using about 96 raster layers.

(Apologies for the mis-post before.)

Thanks,
John


More information about the grass-user mailing list