I have some autoCAD data in a locally made projection so no epsg code, no wkt..

I need to move the coordinates/.dxf data from the local projection to the national grid projection ( EPSG:3067 ETRS-TM35FIN )

I have been told that the creator of the local projection uses a helmert transform to move the data.

" We are using a simple Helmert transform for the conversion from the old local to the national system:

A-parameter : 0.996176526906 (Rotation and scaling)

B-parameter : 0.091026561878 (Rotation and scaling)

C-Parameter: 0.19725000 (z)

Origin (local x,y,z): 87581.87975000,70988.64475000,-8.16575000

New location (ETRS x,y,z): 6693404.95075000,239228.43500000,-7.96850000"

Is there any way i can do this in Qgis to make the old data in the old projection match up with the data in the new projection - EPSG:3067 ?

  • My input would be guesswork as I am not familiar with either CRS but I woudl start reading from this post gis.stackexchange.com/questions/220204/… and this post: gis.stackexchange.com/questions/80161/…, then creating a custom CRS in QGIS named LOCAL_CUSTOM_PROJ with the following definition:+proj=tmerc +lat_0=0 +lon_0=27 +k=0.9996 +x_0=500000. +y_0=-8000000. +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs. updating the proj string where adequate.
    – Sorin RUSU
    Oct 25 '18 at 20:09
  • Usually, a Helmert transformation has 3 translations, 3 rotations and a scale as parameters. This seems to be a bit unconventional. The C parameters looks like a Z-translation, but I wonder about the other 2...
    – FSimardGIS
    Oct 25 '18 at 20:43

It looks to me that the old coordinates are KKJ zone 1, with leading 15 (east) and 66 (north) stripped of. So a custom CRS with

 +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=-6600000 +ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496 +units=m +no_defs

should place your local data in the right spot near the town of Parainen.

If the "origin" has coordinates of zero, the custom CRS should be:

+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=-70988.64475 +y_0=-6687581.87975 +ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496 +units=m +no_defs

Take care of the axis order. Your local and ETRS x is Northing, not Easting.

Your parameters look like 2D Helmert, as described in https://proj4.org/operations/transformations/helmert.html#equation-4param

Assuming that A is s*cos(theta) and B is s*sin(theta), you would have a scaling of 1.0003267 and a rotation of 5.22095676 degrees. ETRS z is just local z + C (no scaling).

So you can use the new cct application from PROJ v5 like this:

cct -z 0 +proj=helmert +convention=coordinate_frame +x=239228.435 +y=6693404.951 +s=1.0003267 +theta=18795.4443 <Helmertin.txt >>Helmertout.txt

Note that theta has to be in arc seconds here. GDAL and QGIS can not (yet) handle 2D Helmert.

If you prefer WGS84 coordinates, try for origin=zero

+proj=omerc +lat_0=60.2932290673 +lonc=22.2802811316 +alpha=1.119 +gamma=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

and for stripped KKJ coordinates

+proj=omerc +lat_0=60.2932290673 +lonc=22.2802811316 +alpha=1.119 +gamma=0 +k=1 +x_0=70988.64475 +y_0=87581.87975 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

which is less than 1 meter apart from the 2D Helmert transformation.

KKJ and omerc coordinates differ by about 5 meters, but I do not know the accuracy of your transformation parameters.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.