* Nikos Alexandris <[email protected]> [2018-08-20 20:11:57 +0200]:

* Moritz Lennert <[email protected]> [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`.

Double that false statement. `eval` is actually not related here.
It comes from another part, of the same script, which counts 3000+
lines.  Fatigue...-

2) Look back some time, r.cross has had problems with zeroes and NULLs.

At least this one is True!, see also:

https://trac.osgeo.org/grass/ticket/3080
https://lists.osgeo.org/pipermail/grass-dev/2017-September/086090.html
and this thread, finally:
https://lists.osgeo.org/pipermail/grass-user/2018-February/077931.html

Nikos

Attachment: signature.asc
Description: PGP signature

_______________________________________________
grass-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to