Converting local Coordinates to lat/long Coordinates using QGIS?

by Jeff Hargarten   Last Updated May 15, 2019 20:22 PM

I'm using QGIS to do some data analysis and visualization for my newspaper and I'm a basic/novice user at all this.

I received some x,y coordinates from the City of Minneapolis that I can use to build some static graphical maps shaped like Minneapolis, because QGIS nicely plops the markers on my Minneapolis street centerline shapefile. They're using a county-level coordinate reference system that's not in the EPSG dataset.

But where it gets tricky is attempting to stick those coordinates on a basemap using Leaflet or similar solutions. Those interactive mapping tools seem to need latitude/longitude coordinates and choke on the projected coordinates.

So I've attempted to convert the coordinates to lat/longs. Here's a sample of what Minneapolis sent me in CSV format:

itm,utm

531044.956020000000000,147730.870020000000000 531044.956020000000000,147730.870020000000000 535730.695380000000000,186474.417610000000000 535730.695380000000000,186474.417610000000000 535730.695380000000000,186474.417610000000000 517443.467270000000000,190435.841829999000000

Pretty much every converter I've used -- including QSIG tools like the field calculator, export/add geometry columns, mmqgis, etc -- converts them and sticks the markers in a Minneapolis-shape in the Pacific Ocean off South America and spits this out in the attribute table:

itm,utm,XCOORD,YCOORD

531044.956020000000000,147730.870020000000000,-92.720933,1.336549 531044.956020000000000,147730.870020000000000,-92.720933,1.336549 535730.695380000000000,186474.417610000000000,-92.678761,1.687061 535730.695380000000000,186474.417610000000000,-92.678761,1.687061 535730.695380000000000,186474.417610000000000,-92.678761,1.687061 517443.467270000000000,190435.841829999000000,-92.843170,1.722921

Here are the details Minneapolis sent me about their Coordinate System (they don't have a converter either, I'm told):

The Spatial Reference ID # is Esri::103734.   

Projection: Lambert_Conformal_Conic

False_Easting: 500000.000000 
False_Northing: 100000.000000
Central_Meridian: -93.383333 
Standard_Parallel_1: 44.883333
Standard_Parallel_2: 45.133333 
Latitude_Of_Origin: 44.791111

Linear Unit: Foot_US (0.304801) 

Geographic Coordinate System:
GCS_NAD_1983_HARN_Adj_MN_Hennepin 
Angular Unit: Degree (0.017453292519943299) 
Prime Meridian: Greenwich (0.0) 
Datum: D_NAD_1983_HARN_Adj_MN_Hennepin
Spheroid: S_GRS_1980_Adj_MN_Hennepin 
Semimajor Axis: 6378418.9409999996
Semiminor Axis: 6357033.3098455509
Inverse Flattening: 298.2572221008827

The equivalent ProjCRS well-known text is:

PROJCS["NAD_1983_HARN_Adj_MN_Hennepin_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Hennepin",DATUM["D_NAD_1983_HARN_Adj_MN_Hennepin",SPHEROID["S_GRS_1980_Adj_MN_Hennepin",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.38333333333334],PARAMETER["Standard_Parallel_1",44.88333333333333],PARAMETER["Standard_Parallel_2",45.13333333333333],PARAMETER["Latitude_Of_Origin",44.79111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103734]]

and the GeoCRS WKT is:

GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Hennepin",DATUM["D_NAD_1983_HARN_Adj_MN_Hennepin",SPHEROID["S_GRS_1980_Adj_MN_Hennepin",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]

QGIS reads the coordinates using NAD83(CSRS) / UTM zone 15N (though whenever I look at a UTM grid, it seems to place Minnesota in 15T)?

I'm looking for a long term solution to work with the coordinate system, since we're likely to receive more data like this from the city and Hennepin County.



Answers 2


You have to build the proj.4 string for the CRS from the parameters given:

+proj=lcc +lat_1=44.883333 +lat_2=45.133333 +lat_0=44.791111 +lon_0=-93.383333 +x_0=152400.000000 +y_0=30480.000000 +a=6378418.9409999996 +b=6357033.3098455509 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs

Note that x_0 and y_0 have to be in meters, while false Easting and Northing from the definition (and the WKT mkennedy added) are in units of the projection (us-ft).

With that, you can load the data as delimited text, with X set to the itm column and Y to the utm column. If you have not set QGIS to prompt for the CRS, rightclick on the layer -> Set CRS for layer

to get the right alignment:

enter image description here

I'm not sure why they have named the second column utm, the projection has nothing to do with Universal Tramnsverse Mercator.

AndreJ
AndreJ
November 20, 2014 06:29 AM

Definetly a work-around, but I normally just save a duplicate of my file in a projection that uses lat/lon, visually make sure that my points are in the right location e.g. not the middle of the ocean, and then just use the $x & $y functions from the field calculator. You can also convert the CRS within the field calculator and get the same result, but it just gives me some peace of mind to see my points in the correct place after converting reference systems.

As AndreJ mentioned, you'll still need to make sure QGIS has all the info about the projection to in order convert it properly.

Lisa Loewen
Lisa Loewen
May 15, 2019 19:39 PM

Related Questions


Updated June 22, 2018 08:22 AM

Updated May 24, 2019 20:22 PM

Updated June 15, 2019 09:22 AM

Updated June 15, 2019 09:22 AM

Updated November 07, 2018 21:22 PM