I have recently discovered QGIS and have been hoping to find a solution for converting bacthes of xy coordinates between two projection systems for our mapping system. I have known good coordinates for both datums that I am trying to convert between, but even though I believe I'm doing the right steps in QGIS, my coordinates are still out by a small margin.

Prior to finding QGIS, for single coordinate conversion I have been using the free Java-based Coordinate and Data Transformations tool that is available on the internet from Charles L. Taylor. I've attached an image of the two known coordinates from this tool.

I've provided the text data of my coordinates.

Original coords in NAD83/WGS84 Zone 14N (EPSG:4326)

Lat/Long: 49.362977,-101-742026
UTMs: x 300914.226, y 5471423.864

Converted coords in NAD27 Zone 13N (EPSG:26713)

Lat/Long: 49.362924,-101.741634
UTMs: 736577.110,5472689.933

I had imported my list of coordinates (original datum is NAD83/WGS84) into QGIS to get my list of points. After adding the corresponding UTM coordinates using the Export/Add Geometry function, I can see that the UTMs in the attribute table are the same as my original .csv file.

After conversion to what I thought was NAD27-Z13 using QGIS, my first coordinate comes back with the following coordinates:

Lat/Long: 49.36297733,-101.74205733
UTMs: 736548.431,5472694.612

When I plot the above coordinate on the map I have with the known good points already on the map, obviously they don't line up. What I'm wondering is if I'm missing a step or if there are options that must be set during conversion. From what I can tell of QGIS, if I can find a solution to this, it will make batch conversion between datums much quicker. Many of the coordinate files that I receive are in .csv format and QGIS seems like the perfect application for what I need, however, I'm hoping that someone that has more experience can point me in the right direction.

  • 1
    Exactly which datums did you pick in Taylor's tool? They're linked to particular 3-parameter transformations and using the Abridged Molodensky method. QGIS is likely using different transformations. Meanwhile, I can't match either set with NADCON- or NTv2-based which are more accurate file-based ones.
    – mkennedy
    Jun 20, 2013 at 17:49
  • The datum that I chose for the original coordinates was 'North American 1983 Datum, Canada' and for the converted coordinates, I used 'North American 1927 Datum, Canada (Northwest Territories, Saskatchewan). If I use the default of WGS84 for the input coordinates, it gives me the same output coordinates.
    – Jeff M
    Jun 20, 2013 at 21:15
  • 1
    Based on what I read in below link, yes. I'm not a QGIS person though. Another page makes me wonder if that file is just the Saskatchewan area extracted from the nat'l file: Ntv2_0.gsb. The datum chosen in Taylor's tool links to EPSG:1182, NA27 to WGS 84 (13). hub.qgis.org/issues/3099
    – mkennedy
    Jun 20, 2013 at 21:48
  • 1
    You may want to look at other questions/answers by searching qgis and ntv2 (or nadcon). Regardless, I'm going to put a bounty on it tomorrow (have to wait 2 days).
    – mkennedy
    Jun 21, 2013 at 20:52
  • 1
    Have you got it working? Was Andre's answer useful? I'd like to award the bounty!
    – mkennedy
    Jun 28, 2013 at 16:24

1 Answer 1


If you just want to convert coordinates from one CRS to another, the GDAL Tool cs2cs does what you want in an easy way. QGIS uses the same library in the background, so you will get the same results.

GDAL uses the PROJ4 library to convert CRS and datums, so this is where to look up what is actually calculated.

For converting NAD27 to NAD83 and WGS84, PROJ uses a ntv2 grid, which should give best results (at least better than 3-parameter-Molodensky). Internally, the following nadgrids are combined for NAD27:


You will find the source code for that here:


Doing some calculations with cs2cs, I have put -101.742026 49.362977 in a textfile WGS84.txt (note that cs2cs wants East first!)

and created the follwing batch:

@echo off

echo WGS84-NAD27 >out.txt
cs2cs +init=epsg:4326 +to +init=epsg:4267 WGS84.txt >>out.txt
echo WGS84-NAD27UTM13>>out.txt
cs2cs +init=epsg:4326 +to +init=epsg:26713 WGS84.txt >>out.txt
echo WGS84-NAD27UTM14>>out.txt
cs2cs +init=epsg:4326 +to +init=epsg:26714 WGS84.txt >>out.txt

echo WGS84-NAD83 >>out.txt
cs2cs +init=epsg:4326 +to +init=epsg:4269 WGS84.txt >>out.txt
echo WGS84-NAD83UTM13>>out.txt
cs2cs +init=epsg:4326 +to +init=epsg:26913 WGS84.txt >>out.txt
echo WGS84-NAD83UTM14>>out.txt
cs2cs +init=epsg:4326 +to +init=epsg:26914 WGS84.txt >>out.txt

echo WGS84-WGS84UTM13>>out.txt
cs2cs +init=epsg:4326 +to +init=epsg:32613 WGS84.txt >>out.txt
echo WGS84-WGS84UTM14>>out.txt
cs2cs +init=epsg:4326 +to +init=epsg:32614 WGS84.txt >>out.txt

echo WGS84UTM13-NAD27UTM13>>out.txt
cs2cs +init=epsg:32613 +to +init=epsg:26713 WGS84UTM13.txt >>out.txt
echo WGS84UTM14-NAD27UTM14>>out.txt
cs2cs +init=epsg:32614 +to +init=epsg:26714 WGS84UTM14.txt >>out.txt

echo WGS84UTM14-NAD27UTM13>>out.txt
cs2cs +init=epsg:32614 +to +init=epsg:26713 WGS84UTM14.txt >>out.txt
echo WGS84UTM13-NAD27UTM14>>out.txt
cs2cs +init=epsg:32613 +to +init=epsg:26714 WGS84UTM13.txt >>out.txt

echo done

Running the latest build of gisinternals GDAL, I get the follwing output:

101d44'29.704"W 49d21'46.681"N 0.000
736580.51   5472694.86 0.00
300939.78   5471202.67 0.00
101d44'31.294"W 49d21'46.717"N 0.000
736540.76   5472913.41 0.00
300914.20   5471423.83 0.00
736540.76   5472913.41 0.00
300914.20   5471423.83 0.00
736580.51   5472694.85 0.00
300939.77   5471202.68 0.00
736580.51   5472694.86 0.00
300939.78   5471202.67 0.00

For the UTM to UTM conversion, I created the corresponding input files form a first round of output.

Here you see the points (and yours in red) in QGIS: NAD points

So, what went wrong for you? First you used a less accurate transformation, which gives an offset of around 5 metres. Reprojecting increases the offset, and your target is actually in Zone 14. That leads to an offset of 32 metres in Zone 13.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.