[GRASSLIST:4448] RE: shaded relief
Gordon Keith
gordon.keith at csiro.au
Tue Sep 10 01:51:02 EDT 2002
On Tue, 10 Sep 2002 01:50, Glynn Clements wrote:
> Markus Neteler wrote:
> > > One pitfall I've encountered is where the horizontal and vertical
> > > units are not the same. If you shade a DEM where the horizontal
> > > resolution is expressed in degrees lat/long, and the vertical in
> > > meters, you will get a very stark relief map indeed, and no
> > > amount of playing with the sun altitude will help. In this case,
> > > you can either reproject the DEM to a coordinate system with
> > > horizontal units in meters, or modify the code in shade.rel.sh.
>
> A fix would involve changing:
>
> .../(8.*ewres()) , \\
> to e.g.
> .../($scale*8.*ewres()) , \\
>
> (and similarly for nwres).
>
> But how to set "scale"? It depends upon both the horizontal and
> vertical units. The horizontal units can be obtained from the
> PROJ_UNITS file (if it exists). Can the vertical units be determined
> automatically (I suspect not)?
Thanks a lot for this discussion.
I've been wondering for a while why shade.rel.sh produced such lousy
results.
My fix (FWIW):
scale=1
for i
do
case $i in
altitude=*)
alt=`echo $i | awk -F '=' '{print $2}'` ; gotitALT=1;;
azimuth=*)
az=`echo $i | awk -F '=' '{print $2}'` ; gotitAZ=1;;
elevation=*)
elev=`echo $i | awk -F '=' '{print $2}'` ;
gotitELEV=1;
eval `g.findfile element=cell file=$elev` ;
elev="${fullname}" ;
ELEV="${name}" ;
if [ "$elev" = "" ] ; then
echo "ERROR: raster map [`echo $i | awk -F '=' '{print
$2}'`] does not exist."
exit 1
fi ;;
scale=*)
scale=`echo $i | awk -F '=' '{print $2}'` ;
case $scale in
m|M)
scale=111120;;
f|F)
scale=370400;;
esac
esac
done
scale can be m or M to convert lat lon to metres
f or F to convert lat lon to feet
any number for user defined scale
I note that this assumes you are always at the equator, but for the
level of resolution you want out of shading this doesn't seem
unreasonable.
Regards
Gordon
--
Gordon Keith
Programmer/Data Analyst
Marine Acoustics
CSIRO Marine Research
http://www.marine.csiro.au
Heavier-than-air flying machines are impossible.
--Lord Kelvin, president, Royal Society, 1895.
More information about the grass-user
mailing list