Coordinate transformation from old datums to WGS84

Converts from MGRS (Military Grid Reference System), UTM or lat/lon coordinates from maps using older datums.
Converts to WGS84 lat/lon with links to a few mapping services.

First define the datum of the original coordinates to be converted (see reference 1, appendices A, B, and C). If you stumble on this page while searching, and would like to see another datum and/or ellipsoid added to this page, don't hesitate to write to me (ref at bottom).

Datum: (usually also sets ellipsoid)
(transformation parms: ΔX = , ΔY = , ΔZ = — can be edited if datum = custom)
(semi-major axis = ; inverse f = — can be edited if ellipsoid = custom)

Fill one of the following three boxes; the first one with non-empty data provides the original coordinates in above datum.

Original MGRS (Military Grid Reference System) coordinates — will convert SW corner or center of square.
UTM zone: (two digits and a letter)
100km square: (two letters, see note 1 below)
    convention: , or  
Coordinates: (2, 4, 6, 8, or 10 digits, for squares of 10km, 1km, 100m, 10m, and 1m respectively — see note 2 below)
    transform: , or of square
Original UTM coordinates (see note 3 below)
UTM zone: (two digits and a letter)
Original lat/lon coordinates (decimal, and negative for south latitudes and west longitudes)

Click on button below to transform the coordinates into WGS84:


Output area, results of transformation will appear here.

Caution: This is new code, a tool to transform map coordinates from a number of old datums to WGS-84. It uses the Molodensky transform as described in reference 1 below. Before using it, please confirm with a few test points (around your area of interest) that the conversion does indeed work, especially if you use MGRS coordinates. Datums and transformations between them is at least an order of magnitude more complex than what I understand. The tool here might be useful with older, less precise data (as one can read from 1:50000 maps), but it does not provide sub-meter accuracy (old datums don't offer that anyway).
  1. MGRS has two conventions for the two-letter code identifying a 100-km square, see reference 2 below. If you get insane results (~1000 km off in latitude) with the usual (first) convention on an old datum, you can try the alternate (second) convention.
  2. For squares greater than 1m (ie. with less than 10 digits), you can specify whether the transformed coordinates will point to the SW corner (usual) or the center of the square (possible enhancement: draw the square).
  3. Most UTM zones are 6° wide and 8° high. There are a few exceptions in Northern Europe that this web page (and all others I've seen) does not take into account. See map of UTM zones by Alan Morton.
  1. (basics, Molodensky transform — I will align my terminology with them)
  2. (MGRS 100,000-meter Square Identification)
  3. Official NAD27 to NAD83 conversion for Canada
  4. (collection of old military maps of Vietnam that I used for initial development)
  5. Another site for these conversions (much more comprehensive) can be found here (altho it does not seem to support UTM or MGRS in all cases).
  6. And finally, the PyGeodesy python package is another option for someone comfortable working at the command-line level. I don't know much about this package, but a small word of caution: it seems that the signs of ΔX, ΔY and ΔZ (tx, ty and tz in the package) are flipped in datums (something to consider if you get insane results).
Test points: For the current version of the script, I have used the following checkpoints. The first four UTM coordinates come from old maps based on the "Indian 1960" datum which uses the Everest 1830 ellipsoid. Click on a set of coordinates below to transfer them to the input fields above.

Back to home page. If you have suggestions, and especially if you have problems, don't hesitate to contact me:  (français, English, Deutsch).

Version 3, 2022-02-03. Previous version 2 was Vietnam only.

This page was done to learn about this aspect of geomatics.