[Proj] How to create a new EPSG for a local system

Andre Joost andre+joost at nurfuerspam.de
Thu Mar 12 11:07:51 EST 2015

Hello Adrien,

Am 12.03.2015 um 14:29 schrieb Adrien Barbaste:

> I'm doing an internship for an archaeology school in Greece and I
> have a problem in creating of a new EPSG for local coordinates.
> I use Proj4js to work on a WebGIS and I try to determine a new EPSG
> for the layers that are in local coordinates. I've all the layers in
> a local system built by the archeologists and some of this points in
> the greek coordinates system too (EGSA87).

I guess you want a new custom CRS, not EPSG. EPSG codes are published by 
the EPSG (now IOGP) commitee, and can be found at 

> First, I can calculate a 2D transformation between the local
> coordinates and the greek coordinates. So I obtained the 5 parameters
> of transformation : the 3 translations (Tx Ty and Tz), the scale
> factor (K) and the angle of rotation (Rz).

That is only usefull for small rotations.

> Then, I don't know how to create a new EPSG, because I tried with a
> transverse mercator projection as the greek projection, but I think
> that it's impossible to insert a rotation in a proj4js (only with
> "+axis=", but I cannot choose the angle) So, I tried to use an
> oblique mercator projection with "+alpha=" (the rotation angle) and
> "+gamma=" (the meridian convergence)

I have given an example here: 

+lat_0 and +lonc are the geographical coordinates of the point of rotation.

If you have the coordinates in the Greek System GGRS87 (EPSG:2100), you 
have to obey the datum shift between that and WGS84:

+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 
+towgs84=-199.87,74.79,246.62,0,0,0,0 +units=m +no_defs

or for geographical coordinates EPSG:4121

+proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +no_defs

I did not use the gamma factor in my example, because the origin of my 
local CRS is on the rotation point. The gamma is used to rotate back the 
CRS to have north upwards.

> The results aren't good. I've an error of less than 3cm on an
> archaeological site when the rotation is very low, but when I try
> this method on another site where the rotation angle is about 33
> degrees, I have an error that can reach 15-20 centimeters.

How did you compute the angle? I would suggest to calculate it from all 
points you have in both coordinate systems. And it might be different 
from site to site. You can try to modify the k factor as well to get 
better accuracy. GGRS87 uses 0.9996, my example 1.0

André Joost

More information about the Proj mailing list