<div dir="ltr"><br><br>On Tue, Nov 20, 2018 at 9:16 AM Stefan Blumentrath <<a href="mailto:Stefan.Blumentrath@nina.no">Stefan.Blumentrath@nina.no</a>> wrote:<br>><br>> Dear all,<br>><br>>  <br>><br>> In an r.mapcalc expression, I would like to trace values along a direction map for 1 to n steps (e.g. looking 4 steps ahead along a path or stream or along a given direction (degrees or 45degrees).<br>><br>>  <br>><br>> I tried using the neighborhood modifier within an eval function in r.mapcalc. Unfortunately, using this command:<br>><br>> r.mapcalc --o << EOF<br>><br>> eval(elev_200 = elevation[1,1] - 200, elev_5 = 5 * elev_200[1,1], elev_p = pow(elev_5, 2))<br>><br>> gradient_1 = (0.5 * elev_200) + 0.8 * elev_p<br>><br>> EOF<br><div><br></div><div>elev_200 is an internal variable of the elev function with a single value, and not a (temporary) map. Therefore elev_200[1,1] can't work.</div><div><br></div><div>You would need several calls to r.mapcalc, with the first one creating the map elev_200, e.g.<br></div><div><br></div><div>r.mapcalc "elev_200 = elevation[1,1] - 200"</div><div>r.mapcalc "elev_p = pow(5 * elev_200[1,1], 2)"</div><div>r.mapcalc "gradient_1 = (0.5 * elev_200) + 0.8 * elev_p"</div><div><br></div><div>Markus M<br></div><div>></div>>  <br>><br>> I get the following error message:<br>><br>> syntax error, unexpected '[', expecting ')'<br>><br>>  <br>><br>> However, this command works fine:<br>><br>> r.mapcalc --o << EOF<br>><br>> eval(elev_200 = elevation[1,1] - 200, elev_5 = 5 * elevation[1,1], elev_p = pow(elev_5, 2))<br>><br>> gradient_1 = (0.5 * elev_200) + 0.8 * elev_p<br>><br>> EOF<br>><br>>  <br>><br>> My questions now are:<br>><br>> a) is it generally not supported to use the neighbourhood modifier on a temporary map defined in an eval() function in r.mapcalc?<br>><br>> b) are there other (efficient) approaches for those of us who do not know C (e.g. pygrass)?<br>><br>>  <br>><br>> I am grateful for any hint.<br>><br>>  <br>><br>> Kind regards,<br>><br>> Stefan<br>><br>> _______________________________________________<br>> grass-user mailing list<br>> <a href="mailto:grass-user@lists.osgeo.org">grass-user@lists.osgeo.org</a><br>> <a href="https://lists.osgeo.org/mailman/listinfo/grass-user">https://lists.osgeo.org/mailman/listinfo/grass-user</a></div>