[GRASSLIST:279] r.mapcalc puzzler

H Bowman hamish_nospam at yahoo.com
Tue Jun 3 07:20:49 EDT 2003


Hi -

I'm using a modification of the script given here:
http://op.gfz-potsdam.de/GRASS-List/Archive/msg07811.html

which includes the following mapcalc magic to do a better r.grow:

r.mapcalc << EOF
 grown = if(      $src,       $src,		\\
	 if($src[0,-1], $src[0,-1],      \\
	  if( $src[0,1],  $src[0,1],	  \\
	   if($src[-1,0], $src[-1,0],      \\
	    if( $src[1,0],  $src[1,0]       \\
	)))))
EOF

Now this was working fine.. but after playing with the script it would
break on the mapcalc line with:

undefined function: 
Syntax error

Ok so looking through it, I can't make sense why it is failing. Adding a
",0" to the last "if" fixes it, but that shouldn't be necessary:

if(x,a)        a if x not zero, 0 otherwise
if(x,a,b)      a if x not zero, b otherwise

I tried removing all whitespace too, no luck.

I've got it working now with the extra, just can't figure out why
it broke, which bugs me. This is the r.mapcalc3 from 5.0.2, bash, and
linux.

previously, I'd gotten this error:
Illegal filename. character <> not allowed.ERROR: open_map: map [] not found 
when I had src=grown.tmp$$. That went away sometime after I made
it just grown.tmp though.


Can't see what I'm missing.
?


thanks,
Hamish




More information about the grass-user mailing list