28 September 2007

Rwanda Local Projection 92

Here is something more technical/geographical...

Those topographical maps of Rwanda that I have seen so far use the Rwanda Local Projection 92. This is a Gauss-Krüger (that is, transverse Mercator) projection, with the central meridian at 30°E. It uses a false easting of 500000 (as is customary for Gauss-Krüger) and the equator gets a false northing of 10000000.

Rwanda is located roughly between 28°E and 31°E as well as between 1°S and 3°S. Local coordinates range from about 469000 to 474000 in W-E direction and from about 9710000 to 9715000 in S-N direction.

The Rwanda Local Projection 92 is referenced to the Arc 1960 datum, which uses Clarke's 1880 ellipsoid (a=6378249.145, 1/f=293.465). This datum is common in East Africa; at least Kenya, Tanzania and Uganda use it also. To transform this to WGS84, use a geocentric translation with dx=-160, dy=-6, and dz=-302. According to the EPSG Geodetic Parameter Dataset, this transformation gives accuracy of about 20m in all three axes. There are parameter sets specifically for Tanzania and for Kenya that give that give better accuracy. I am not aware of transformation parameters specifically for Rwanda.

Using Rwanda Local Projection with GRASS

GRASS stores ellipsoid and datum in formation in the files $GISBASE/etc/ellipse.table and $GISBASE/etc/datum.table (there is also a file datumtransform.table that records 7-parameter trafo values to WGS84).

The Clarke 1880 (RGS) ellipsoid is already known to GRASS under the short name "clark80".

The Arc 1960 geodetic datum has to be added by appending these two lines to the file $GISBASE/etc/datum.table:


# The Arc 1960 datum; source: EPSG database
arc60 "Arc 1960" clark80 dx=-160 dy=-6 dz=-302


The format of lines in this file is: shortname, the full EPSG style name in double quotes, the ellipsoid (as defined in the ellipse.table file), and the values for the 3-parameter trafo to the WGS 1984 datum.

In GRASS, use g.setproj to establish the Rwanda Local Projection 92. Specify "tmerc" (transverse mercator) as the projection name, use "arc60" as the geodetic datum and choose the parameter set for transforming coordinates to WGS84 (type "list" and g.setproj will probably offer exactly one set of transformation parameters, namely the geocentric translation specified in datum.table for the "arc60" datum), and finally, enter the projection parameters: lat_0 = 0, lon_0 = 30, k_0 = 0.9999, x_0 = 500000, and y_0 = 10000000.

When done, type g.proj -p to verify the parameters.
The output should look like this:


name: Transverse Mercator
datum: arc60
towgs84: -160,-6,-302
proj: tmerc
ellps: clark80
a: 6378249.1449999996
es: 0.0068035113
f: 293.4650000000
lat_0: 0.0000000000
lon_0: 30.0000000000
k_0: 0.9999000000
x_0: 500000.0000000000
y_0: 10000000.0000000000


The name can be manually changed to "Rwanda Local Projection 92" or "Rwanda92" or "rw92" or whatever you like. Note that the value for a is not as stated above; this is due to the internal floating point representation. To get a WKT representation, type g.proj -w:


PROJCS["Transverse Mercator",
GEOGCS["clark80",
DATUM["Arc 1960",
SPHEROID["clark80",6378249.145,293.465],
TOWGS84[-160.000,-6.000,-302.000]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",30],
PARAMETER["scale_factor",0.9999],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",10000000],
UNIT["meter",1]]


Using Rwanda Local Projection with ESRI software

An "ESRI style" WKT representation would look like this (note
the names for the datum and the spheroid):


PROJCS["Rwanda Local Projection 92",
GEOGCS["GCS_Arc_1960",
DATUM["D_Arc_1960",
SPHEROID["Clarke_1880_RGS",6378249.145,293.465]
],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]
],
PROJECTION["Transverse_Mercator"],
PARAMETER["False_Easting",500000.0],
PARAMETER["False_Northing",10000000.0],
PARAMETER["Central_Meridian",30.0],
PARAMETER["Scale_Factor",0.9999],
PARAMETER["Latitude_Of_Origin",0.0],
UNIT["Meter",1.0]
]

2 Kommentare:

mentaer hat gesagt…

Scale_Factor",0.9999 ?? wieso denn das? UTM is 0.9996 oder so

Urs-Jakob hat gesagt…

Vermutlich weil UTM breitere Meridianstreifen (6deg) verwendet als Gauss-Krüger (3deg).