What I have are a series of Geographic Coordinates, Latitude, Longitude, Ellipsoid heights.

What I want are a local system which is translated from NAD83/UTM.

I know the parameters of the shift which works with UTM Zone 9N.

My parameters are:

Origin North: 5984910.533m, Origin East: 519681.595m

Trans North: 4973.397m, Trans East: 2068.553m

Rotation: 10°12’53”, Scale: 1.0003933608

Trans Height: ‐1.907m, Slope North: 0.00001, Slope East: 0.00004

This should result in coordinates similar to N = 5000.000m, E = 1500.000m, Elev = 0.000m

Is there any good help for the EPSG notation?

Perhaps I need to steal from the UTM projection and combine with another?

Here is some data in Geographic(WGS84/NAD83) and Local ground

Geographic Coordinates Latitude, Longitude, Ellipsoid Height(meters) (Deg.MMSSsssss) ie (54.00595628 = 54 degrees 00 minutes 59.5628 seconds) 1 54.00595628 -128.4231334 30.48 MON

6 54.0059556 -128.4154351 14.607 MON

9 54.00451717 -128.4150654 13.147 MON

19 54.00019706 -128.4139788 9.238 MON

20 54.00133493 -128.415171 13.803 MON

Local ground system Northing, Easting, Elevation (meters)

1 5562.562 1570.005 28.547 CONC PILLAR MON

6 5445.703 2233.204 12.713 CONC PILLAR MON

9 4996.025 2222.510 11.250 CONC PILLAR MON

19 3646.242 2186.193 7.329 CONC PILLAR MON

20 4030.357 2033.239 11.848 CONC PILLAR MON

  • 1
    There's a list of Proj4 parameters here: trac.osgeo.org/proj/wiki/GenParms. N.
    – nhopton
    Commented Sep 28, 2012 at 16:16
  • Thanks for that link! That's a start anyhow! Any idea how I would fit those parameters above into the notation scheme? Is it possible? In GIS context, the vertical isn't as important as the horizontal.
    – sean2me
    Commented Sep 29, 2012 at 19:10
  • Still not sure what you're trying to do. You have data in NAD83/UTM but for some reason this isn't good enough and you want a CRS that uses smaller numbers as coordinates? N.
    – nhopton
    Commented Sep 30, 2012 at 9:20
  • We have a local system that is based on UTM Zone 9. This local system is then scaled to ground coordinates, rotated, and shifted over. There is also an adjustment to the vertical but that can be ignored. This is a very large ongoing project. I am hopeful that Proj4 can handle scaling, rotation, and translation parameters. I want the option of using project coordinates or whatever else. I am primarily a Land Surveyor, so thats why some of this might sound weird to a strickly GIS person (which I just received training in).
    – sean2me
    Commented Sep 30, 2012 at 22:16
  • I expect it's me being a bit dim, but you have a local grid with its origin at 519681.595,5984910.533 (NAD83/UTM Zone 9), somewhere in BC, Canada? You want to transform data from the local grid to NAD83/UTM Zone 9? Have I got this right? N.
    – nhopton
    Commented Oct 1, 2012 at 10:01

2 Answers 2


I don't have a definitive answer, but a step towards a custom CRS using ArcGIS. ArcGIS has a "Local" projection. It actually an ellipsoid-based orthographic projection. The "trans" values were throwing me off until I realized they were false easting/northing values for the local system. This technique isn't useful unless you have control points in both systems, which you provided for nhopton. I would not have gotten this far without him asking for sample points.

Anyway, using the UTM coordinates, unprojected to lat/lon for the center point, and the other parameters, I made a Local CRS. The data still rotated because the rotation value is likely based on the UTM zone, not from geodetic North, so I adjusted it. The points still do not overlay that well (0.2 to 0.6 m) but you can now keep adjusting the parameters to see if you can get a better fit. I just don't have the time right now. Here's the WKT:


Copy the string (as a single line) to a text file and add it to your "Favorites" location. On XP with ArcGIS 10.1, it's

C:\Documents and Settings\login\Application Data\ESRI\Desktop10.1\ArcMap\Coordinate Systems

Other OS or versions will be different.

Now add your UTM or lat/lon data to ArcMap, plus the data in the local system. Do not assign this CRS to the local data. Assign to ArcMap in the data frame properties. You'll see that the reference and local data, almost line up. Now modify the data frame's coordinate system and keep adjusting the parameter values to try to get a better fit. You can use the Apply button on the data frame properties dialog to check how the fit changes.

std disclaimer: I work for Esri.


This isn't the answer you want, but it is possible to transform the lat/lon data to your local grid. The extents of your project are not great so the transformation can be done directly using GRASS v.transform from the QGIS Sextante tool box. To do this you will need to copy the text below to a text file.

#GRASS v.transform. Transforms lon/lat to local xy
-128.708703889 54.0165452222 5562.562 1570.005
-128.698430833 54.0165433333 5445.703 2233.204
-128.697403889 54.0125476944 4996.025 2222.510
-128.694385556 54.0005473889 3646.242 2186.193
-128.697697222 54.0037081389 4030.357 2033.239

Call it (say) "transform.txt".

Assuming your points are in a lat/lon shapefile, load this into QGIS. Then open v.transform (from the Sextante Toolbox), select the name of the input vector map; under "Name of input text file with GCPs" select "transform.txt" and press OK. A new local coordinate shapefile will be created, save this.

I haven't tested this, but it should be possible transform from local to lat/lon if you change "transform.txt" so that the local coordinates come first. Once you have the data in lat/lon you can of course save it to any CRS you wish.

Transforming from lat/lon to local appears to be quite accurate, the errors appear to be in the order of 20 to 30 mm.

So, sorry, no custom CRS, but hope the above helps.


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.