4

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 ?

JimT
  • 2,383
  • 2
  • 10
  • 22
  • My input would be guesswork as I am not familiar with either CRS but I woudl start reading from this post https://gis.stackexchange.com/questions/220204/creating-a-local-projection-system-in-qgis-using-proj-4 and this post: https://gis.stackexchange.com/questions/80161/on-the-fly-transformation-from-wgs84-to-nad27-with-proj4-code, 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

1 Answers1

5

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.

AndreJ
  • 76,698
  • 5
  • 86
  • 162