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.
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:
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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP