[GRASS5] r.slope.aspect in feet
Glynn Clements
glynn.clements at virgin.net
Thu Jan 29 05:51:59 EST 2004
Helena wrote:
> Before GRASS5.3 is released I would like to point out that
> if the data are in a coordinate system that uses feet
> r.slope.aspect quietly converts x,y to meters while leaving z in feet
> leading to greatly exagerrated slopes.
> I looked into the code and it seems that
> G_begin_distance_calculations(), G_distance,
> automatically converts to meters.
>
> Is this a desired behavior? If yes, r.slope.aspect should return a warning
> as there is no way for the user to know that r.slope.aspect is converting
> x,y to meters which means it is the users responsibility
> to convert z to meters using zfactor, which is slightly indicated in help
> and in manual but it is not really clear. Should this be fixed by
> -adding the warning (and a sentence in manual that elevation MUST
> be converted to meters by zfactor, now it sounds as if zfactor was there
> for the case when x,y is in meters and z is in feet)
>
> or
>
> -skipping the conversion (that may be complicated)
Probably neither.
GRASS knows what the X/Y units are from the PROJ_UNITS file. It
doesn't know what the Z units are, so it either has to be told or it
has to make an assumption.
I'm not sure that assuming that the Z units match the X/Y units is an
improvement over consistently assuming that the Z units are metres.
There is also the fact that, as the historical behaviour is to assume
metres, changing it to assume either feet or metres depending upon
PROJ_UNITS would break compatibility. Worse, it could result in
existing scripts suddenly giving wrong answers.
The least problematic fix would be to change:
parm.zfactor->required = NO;
to:
parm.zfactor->required = YES;
That would force the user to specify the units, eliminating the need
for any assumptions. Existing scripts would fail, but would do so
visibly.
--
Glynn Clements <glynn.clements at virgin.net>
More information about the grass-dev
mailing list