# QGIS custom coordinate reference system of a local site

I am creating a geo database for an archaeological excavation. We want to put data from a local system and from UTM35 in the same QGIS-project. I have Ground Control Points in both systems.

I setted the project to UTM35(EPSG 32635) and now want to create a custom coordinate reference system so that every layer in the local system could be converted on the fly to UTM35.

To calculate transformation parameters I used pyproj. I transformed the coordinates of the ground control points of both systems (local und UTM35) to ECEF WGS84 cartesian. To transform the local points to ECEF, I just assumed the cassini projection (Soldner). Second I calculated the 7 Parameters of the Helmert Transformation (with the code of Gabriel De Luca). I now have the parameters to transform between two ellipsoids.

translation (in m):
X: -195.06498913
Y: 495.68894225
Z: 28.56591918

rotation(counterclockwise):
X: 0.017997038245226384 (rad) ; 3712.1556066732 (arcsec)
Y: 0.00945795348286504 (rad) ; 1950.8429426372 (arcsec)
Z: 0.015533377928717144 (rad) ; 3203.9891888298 (arcsec)

scale factor: 0.9999905702146588 in ppm: 1.0000009999905701

I tried this:

`+proj=cass +lat_0=37.53084417 +lon_0=27.27634361 +alpha=0 +x_0=2000 +y_0=2000 +ellps=WGS84 +towgs84=-195.06498913,495.68894225,28.56591918,3712.1556066732,1950.8429426372,3203.9891888298,1.0000009999905701 +units=m +no_defs`

and this:

`+proj=cass +lat_0=37.53084417 +lon_0=27.27634361 +alpha=0 +x_0=2000 +y_0=2000 +ellps=WGS84 +units=m +no_defs +x=-195.06498913 +y=495.68894225 +z=28.56591918+ s=1.0000009999905701 +rx=3712.1556066732 +ry=1950.8429426372 +rz=3203.9891888298`

But the result is not as expected. If I import the local ground control points with it, they don't match with the UTM points. There is a distance of 1 up to 20 meters between them.

Everytime I click enter in the custom coordinate menu, QGIS changes the rotation angles to this: `+rx=0.0000049992 +ry=0.0000026272+ rz=0.0000043148`

Why does QGIS do that?

Maybe I should use WKT instead.

• Have you checked the Helmert Transformation for residual errors? My understanding is that this is a similarity transform, not a "rubber banding" transform like a polynomial. It will make the best fit based on minimizing errors using scaling, rotation and reflection. But but if the coordinates of points in local grid are in some way locally distorted (or some have location errors) then the transformation cannot be perfect at all points. Apr 2 at 0:16
• Yes, I have checked the transformation parameters in my python script. I transformed a few points in python and checked if they are in the right place. Apr 2 at 15:32

PROJ Helmert transformation includes a `+exact` parameter to be used in the case of coefficients found with any non-simplified matrices method. I don't know if QGIS can handle the `+exact` parameter but you can try.