2

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
mkennedy
  • 18,916
  • 2
  • 38
  • 60

3 Answers3

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.

mkennedy
  • 18,916
  • 2
  • 38
  • 60
  • It seems that https://proj4.org/operations/transformations/helmert.html#equation-4param is actually what the asker wants, and should be available in PROJ.5 now. – AndreJ Oct 26 '18 at 06:20
1

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.

Suraj
  • 619
  • 1
  • 7
  • 20
  • For Oblique Mercator, see my example at https://gis.stackexchange.com/questions/83861/using-customized-coordinate-system-in-arcgis-desktop – AndreJ Jul 24 '18 at 08:27
1

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.

AndreJ
  • 76,698
  • 5
  • 86
  • 162