[GRASS-user] Negative values for r.shaded.relief?

Patrick S. patrick_GIS at gmx.ch
Mon Oct 22 08:03:42 PDT 2012


Dear list,

I am still trying to understand the output of shaded.relief to compare 
to results of collegues created with other tools.
When getting through the script I found the following calculation

/r.mapcalc << EOF//
//$elev_out = eval( \\//
// x=($zmult*$elev[-1,-1] + 2*$zmult*$elev[0,-1] + $zmult*$elev[1,-1] \\//
//   -$zmult*$elev[-1,1] - 2*$zmult*$elev[0,1] - 
$zmult*$elev[1,1])/(8.*ewres()*$scale) , \\//
// y=($zmult*$elev[-1,-1] + 2*$zmult*$elev[-1,0] + $zmult*$elev[-1,1] \\//
//   -$zmult*$elev[1,-1] - 2*$zmult*$elev[1,0] - 
$zmult*$elev[1,1])/(8.*nsres()*$scale) , \\//
// slope=90.-atan(sqrt(x*x + y*y)), \\//
// a=round(atan(x,y)), \\//
// a=if(isnull(a),1,a), \\//
// aspect=if(x!=0||y!=0,if(a,a,360.)), \\//
// cang = sin($alt)*sin(slope) + cos($alt)*cos(slope) * cos($az-aspect), 
\\//
// if(cang < 0.,0.,100.*cang), \\//
// if(isnull(cang), null(), 100.*cang))//
//EOF/

How can it be that I have negative values in my output raster? Shouldn't 
the line /if(cang < 0.,0.,100.*cang)/ prevent negative values and 
multiply the result with 100? Is this a bug in my results? I also wonder 
on the value-range: My values range from -66 to 92/, /but as far as I 
understand the next line /if(isnull(cang), null(), 100.*cang)/) will 
multiply the values again. So the factor of multiplication is 10000 in 
total in my understanding? Is that right?/
/

Hope someone is able to help and to comment on this.

Thanks very much in advance!

Patrick Schirmer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20121022/43ab5097/attachment.html>


More information about the grass-user mailing list