I'm trying to convert a set of UTM32N coordinates to a local coordinate system with the same datum.

I have the four Helmert parameters (x,y,scale,theta) that defines the coordinate system.

How can I apply this transformation using proj4 strings?

I've tried the following one but it differs from the expected result:

proj +proj=helmert +ellps=WGS84 +x=-711066.2010726777 +y=-4532044.137231419 +s=0.999785911377552 +theta=-2.089700973339795
  • Could you give sample points and the results you expect?
    – AndreJ
    Jul 24, 2018 at 8:28

3 Answers 3


The Helmert transformation that you're using is for converting between two geographic coordinate reference systems in 3D Cartesian, XYZ. It's not for applying a 2D Cartesian transformation to coordinates in planar / projected coordinate reference system.

I don't believe that PROJ.4 (or PROJ.5, just released in March 2018) has what you need.


I am not sure if I understood your question correctly. As per my understanding, converting coordinates to local coordinate system means, you need to shift your map origin yet keeping the same datum. In this case, using Extended Transverse Mercator from Proj4 should work as it provides options to specify +lat_0 & +lon_0 i.e. origin for your coordinates.

Using the above things, with Proj4JS and OL, I found following results for my shapes over map

Here is the "New Origin" marker w.r.t. which I need to map the coordinates of highlighted polygon Here is the New Origin w.r.t. which I need to map the coordinates of highlighted polygon

Original coordinates of polygon Original coordinates of polygon

Same coordinates after transformation w.r.t. new origin Same coordinates after transformation w.r.t. new origin

The Proj4 string which I used to perform this transformation is

+proj=etmerc +lat_0=52.481392 +lon_0=13.355795 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs

However the only thing missing is the angular rotation, which I think should be achieved with Oblique Mercator projection definition.


If you have PROJ 5.2, you can now use cct for your task:

 cct -z 0 -o cctout.txt +proj=helmert +convention=coordinate_frame  +x=-711066.2010726777 +y=-4532044.137231419 +s=0.999785911377552 +theta=-2.089700973339795 HelmertIn.txt

Note that theta should be in arc seconds, so you might have to multiply degrees with 3600.

Sad news: This does not (yet) work in GDAL or QGIS.

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.