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

Nikos Alexandris nik at nikosalexandris.net
Mon Aug 20 11:11:57 PDT 2018


* Moritz Lennert <mlennert at club.worldonline.be> [2018-08-20 18:08:18 +0200]:

>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 ?

The above "history" string is actually passed using `r.support`.


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

In my in-code comments, ever since I started writing this script:

    - Why not use `r.cross`?

1) I just "translated" someone else's code and hade fun using `eval`.
2) Look back some time, r.cross has had problems with zeroes and NULLs.

As usual, your attention to details is much appreciated Moritz.

Nikos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20180820/65e7a32a/attachment.sig>


More information about the grass-dev mailing list