[GRASS-dev] v.proj transforming z co-ordinates

Paul Kelly paul-grass at stjohnspoint.co.uk
Wed Dec 6 13:43:14 EST 2006


On Tue, 5 Dec 2006, Maciej Sieczka wrote:

> Paul,
>
> Summarising:
>
> Could you please confirm/deny the 2 statemements below - so that I'm
> sure I'm not screwing/missunderstanding something:
>
> 1. The -z switch is not the default; but it *was* - before you made it
> and option few months ago.

Yes. There used to be no way to avoid that effect. Now you have to 
explicitly enable it.

> 2. One should use it only when his data is 3D, he is sure the Z coord
> is an an ellipsoidal height, and he is transforming between 2 different
> ellipsoids.

No - even then you should not use it. In fact I can't think of any reason 
why anybody would want to use it under normal circumstances, and IMHO it 
was a very serious bug that it was the default before. GPS receivers often 
output WGS84 ellipsoidal height. In general you want to keep the height in 
that datum rather than transfer it to another ellipsoid. Generally 
different ellipsoids are used only for 2-D projection and the height above 
the ellipsoid is not considered - a separate vertical datum, often based 
on sea level or something like that is used for height measurements.

An example: in Northern Ireland the Ordnance Survey NI (national mapping 
agency) publishes a set of gridded values that represent the average 
height differential between WGS84 ellipsoidal height and Mean Sea Level 
Belfast (the common local vertical datum) at each point. This can thus be 
used to convert GPS measurements to the local geoid-based MSL Belfast 
vertical datum. Ellipsoidal height above the Modified Airy ellipsoid (used 
for Irish Grid 2-D positions) is not relevant at all.

> 3. Even if the Z coord of my vector is an ellipsoidal height, using -z
> is not supposed to make any change when transformimg between eg.
> UTM/WGS84 and ll/WGS84; *it doesn't do any harm though*.

No it shouldn't do any harm, although this is a matter/question for PROJ.4 
and not for GRASS - GRASS just uses the PROJ pj_transform() function and 
the transformation happens in there.

> I know I'm slow on this, but please bear with me :). I don't want to
> mess something up in future with my data or advise something stupid to
> others.

I understand - this is an important issue and does not seem to be 
discussed very widely so it is good that we are doing so here.

Paul




More information about the grass-dev mailing list