[GRASS5] shade.rel.sh broken

Markus Neteler neteler at itc.it
Mon Apr 22 13:05:45 EDT 2002


On Mon, Apr 22, 2002 at 05:41:52PM +0100, Glynn Clements wrote:
> 
> Glynn Clements wrote:
> 
> > > it seems that
> > > shade.rel.sh
> > > (and more?)
> > > are broken due to the r.mapcalc change. Can anyone confirm?
> > 
> > It looks that way to me. I'll look into it now.
> 
> Fixed.
> 
> The problem was due to re-assigning an existing variable:
> 
>  a=round(atan(x,y)), \\
>  a=if(isnull(a),1,a), \\
> 
> The parser didn't allow this.
> 
> Once that was fixed, it highlighted another problem:
> 
>  aspect=if(x||y,if(a,a,360.)), \\
> 
> Currently, floating-point values aren't accepted as booleans. I chose
> to modify shade.rel.sh to use an explicit test:
> 
>  aspect=if(x!=0||y!=0,if(a,a,360.)), \\
> 
> I can change the behaviour of r.mapcalc if it's felt that FP values
> should be allowed as booleans. I'm not so sure; if the user is forced
> to write explicit equality checks, they might stop to consider whether
> they should really be testing for exact equality, or using a tolerance
> setting, e.g. 'abs(x) < EPSILON'.
> 
> Changing that indicated a bug in the handling of the neighbourhood
> modifier. Once that was fixed, shade.rel.sh seems to work OK.

Thanks for the fix. I also discovered that I could not make a
binary map from a FCELL map, but now it seems to be working after your
recent fix to r.mapcalc.

Markus





More information about the grass-dev mailing list