[GRASS-dev] On post-processing a raster map's mapcalc related history string

Moritz Lennert mlennert at club.worldonline.be
Mon Aug 20 09:08:18 PDT 2018


On 20/08/18 17:59, Nikos Alexandris wrote:
> A mapcalc expression, involving somewhat long(er) temporary map
> names, stored in the output raster map's history, looks like:
> ```
> Comments:
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 1
>   && tmp.32493.17.recreation_opportunity == 1), 1,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 1
>   && tmp.32493.17.recreation_opportunity == 2), 2,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 1
>   && tmp.32493.17.recreation_opportunity == 3), 3,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 2
>   && tmp.32493.17.recreation_opportunity == 1), 4,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 2
>   && tmp.32493.17.recreation_opportunity == 2), 5,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 2
>   && tmp.32493.17.recreation_opportunity == 3), 6,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 3
>   && tmp.32493.17.recreation_opportunity == 1), 7,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 3
>   && tmp.32493.17.recreation_opportunity == 2), 8,
>   if((tmp.32493.16.tmp.32493.11.tmp.32493.6.recreation_potential == 3
>   && tmp.32493.17.recreation_opportunity == 3), 9)))))))))
> ```
> 
> Any smart ideas on how to post-process this to get rid of all
> 'tmp.32493.16.tmp.32493.11.tmp.32493.6.' parts?
> 
> Standard string manipulation utilities?

I would guess so.

> 
> Or, rather, build an "fake" expression with the original map names just
> for the sake of having a cleaner history?

Using r.support ?

Looking at your expression, I'm mostly wondering why you don't just use 
r.cross to get the same result ... ;-)

Moritz


More information about the grass-dev mailing list