TransWikia.com

Experiencing transformation anomalies when performing a Save As to convert coordinates between NAD83-Z14 and NAD27-Z13

Geographic Information Systems Asked by Jeff M on January 5, 2021

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.

One Answer

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:

@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat

You will find the source code for that here:

https://github.com/tracyharton/Proj4/blob/master/pj_datums.c


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
pause

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

WGS84-NAD27 
101d44'29.704"W 49d21'46.681"N 0.000
WGS84-NAD27UTM13
736580.51   5472694.86 0.00
WGS84-NAD27UTM14
300939.78   5471202.67 0.00
WGS84-NAD83 
101d44'31.294"W 49d21'46.717"N 0.000
WGS84-NAD83UTM13
736540.76   5472913.41 0.00
WGS84-NAD83UTM14
300914.20   5471423.83 0.00
WGS84-WGS84UTM13
736540.76   5472913.41 0.00
WGS84-WGS84UTM14
300914.20   5471423.83 0.00
WGS84UTM13-NAD27UTM13
736580.51   5472694.85 0.00
WGS84UTM14-NAD27UTM14
300939.77   5471202.68 0.00
WGS84UTM14-NAD27UTM13
736580.51   5472694.86 0.00
WGS84UTM13-NAD27UTM14
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.

Answered by AndreJ on January 5, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP