NAME

m.datum.shift - Datum shift program.
(GRASS Data Import/Processing Program)

SYNOPSIS

m.datum.shift lat=dd.mm.ss{n|s} lon=dd.mm.ss{e|w} h=heigth above ellipsoid
id=input_datum od=output_datum
is=input_spheroid os=output_spheroid dx=xshift dy=yshift dz=zshift

-b use block shift method
-m use Molodensky formula
-w use Bursa Wolf 7 parameter transformation (not yet implemented)

DESCRIPTION

m.datum.shift returns geographic coordinates based on a different datum (and spheroid/ellipsoid) than the one used to obtain the original coordinates.

The input and output spheroids, is and os, are the spheroids for two different datums. The input spheroid is the one on which the original coordinates are based. The output spheroid is that on which the resultant coordinates will be based. The "shifting" occurs between the two datums. The shift values, dx, dy, and dz, are constants. They indicate the mean differences between points in the second datum versus the first as measured in meters.

If both input and output datum id and od are listed in the system datum table, it is sufficient to provide input and output datum for the datum shift. The shift values, dx, dy and dz are read from the datum table.

The list of datums and spheroids available is somewhat dynamic. It may not contain exactly the ones listed below. To determine the current list of possible spheroids, type in the command:

m.datum.shift lat=0n lon=0w dx=0 dy=0 dz=0 is=help os=help
A list of available spheroids will be printed on the screen. To determine the current list of possible datums, type in the command:
m.datum.shift lat=0n lon=0w id=help od=help
If the datum or spheroid desired is not on the list, the values should be added to the system datum.table or ellipse.table.

The height above the ellipsoid is usually not known in GRASS. You should approximate this by zero (default for h). Obviously the resulting height is not a reasonable value.

EXAMPLE

m.datum.shift lat=0n lon=175w is=clark66 os=wgs72 dx=-22 dy=157 dz=176

Results: 3
 lat=0.00.05.72999N 
lon=174.59.55.004133W
(h = 107 [m])

NOTES

Essentially, the program follows these steps for the block shift method. The original point, as defined by a latitude and a longitude, is converted to geocentric coordinates. The shift values are added to the geocentric coordinates. The summed values are then converted to latitude and longitude based on the output spheroid.

The Molodensky method uses a one-step calculation without converting to and from geocentric coordinates. The Molodensky formula may be inaccurate for latitudes near the poles. The coordinate conversion library will take this into account and use the block shift formula for those latitudes.

Some hints on accuracy:
Generally the accuracy depends on the transformation method used and the accuracy and spatially applicability of the parameters supplied to the transformation function. You always must check if the formula is applicable to your problem and supplies the needed accuracy!

block shift with cartesian coordinates ~ 10 m

molodensky transformation ~ 5 m

bursa-wolf transformation ~ 1 m

3d similarity transformation ~ 1 m (needs national similarity parameters)

multiple regression equation (MRE) transformation, 
other methods up to 10 cm (generally not needed for GRASS)
The transformation parameters in datum.table are meant to transform from local datum to wgs84 with the Block shift method or Molodensky function. (reverse the sign for the reverse transformation from wgs84 to the local datum). All transformations need input and output ellipsoid for the calculation of Rm and Rn.
You can not use the parameters for the Block shift and Molodensky formula with any other datum shift formula. The Bursa-Wolf datum transformation needs 7 parameters (3 xyz-shift, 3 xyz-rotational, 1 scale factor), which can not be used with any other formula. Specifically do not use the 3 xyz-shift parameters for the Bursa- Wolf transformation with the Block shift or Molodensky formula, as the parameters are not independent from another.

For a brief discussion of spheroids and datums see m.ll2u. For a brief discussion of geocentric coordinates see m.ll2gc.

This remains under testing and is still an experimental program.

SEE ALSO

m.gc2ll
m.ll2gc
m.ll2u
m.u2ll
s.in.garmin.sh
v.in.garmin.sh

AUTHOR

Michael Shapiro, U.S.Army Construction Engineering Research Laboratory
Andreas Lange,
andreas.lange@rhein-main.de

Last changed: $Date$