5

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 and I calculated transformation parameters with it. Translation of the X- and Y-Axis, Scale factor and Rotation angle (4 parameters 2D Helmert Transformation). The parameters can transform from the local system to UTM.

scale factor: 0.99960  
rotation angle: 1.3002 degrees  
Translation East : 522372.842 m  
Translation North: 4151845.829 m

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.

How can I do that?

menes
  • 1,421
  • 2
  • 7
  • 24
Fiet Kleiner
  • 105
  • 7
  • 1
    a) Why don't you try? b) Both definitions are identical. – Erik Feb 04 '21 at 15:07
  • 2
    Must define a derived from UTM35 CRS. Compute the parameters to go from UTM35 to the local system. Use the Affine parametric transformation (EPSG:9624), it include rotations and scales in A1, A2, B1, B2 coefficients. I don't know if QGIS is being friendly with the derived from projected CRSes. If not, just convert the layers to UTM35. See: https://gis.stackexchange.com/a/366641/133276 – Gabriel De Luca Feb 04 '21 at 17:54
  • Why can't I use Helmert? In other Software, my Transformation parameters deliver perfect results. – Fiet Kleiner Feb 05 '21 at 16:02
  • I tried a new way to solve the problem. First, I transformed the ground control points from both systems (UTM35 and the local) to ECEF WGS84 cartesian (using pyproj). As the local projection I just used Cassini. Second, I calculated the 7 Helmert-Parameter with the code of De Luca. So the parameters are a transformation between different ellipsoids. Now I want to create the custom coordinate reference system, telling QGIS that it`s the cassini projection but it also needs to do the transformation to the right ellipsoid. Do you know how to start? – Fiet Kleiner Apr 01 '21 at 14:12
  • The way of Gabriel de Luca works. Thank you. – Fiet Kleiner Apr 05 '21 at 11:24
  • Do you have any source to read about the affine parametric transformation? I have never heard about it an I am wondering how it works. – Fiet Kleiner Apr 05 '21 at 13:17

1 Answers1

1

Ignoring my own calculated parameters and using this answer as example, the solution for the custom coordinate system is (it works):

DERIVEDPROJCRS["Historic site grid",
    BASEPROJCRS["WGS84 / UTM zone 35N",
        BASEGEOGCRS["WGS 84",
            DATUM["World Geodetic System 1984",
                ELLIPSOID["WGS 84",6378137,298.257223563,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]]],
        CONVERSION["UTM zone 35N",
            METHOD["Transverse Mercator",
                ID["EPSG",9807]],
            PARAMETER["Latitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",27,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["Scale factor at natural origin",0.9996,
                SCALEUNIT["unity",1],
                ID["EPSG",8805]],
            PARAMETER["False easting",500000,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]]]],
    DERIVINGCONVERSION["Affine",
        METHOD["Affine parametric transformation",
            ID["EPSG",9624]],
        PARAMETER["A0",-428175.08,
            LENGTHUNIT["metre",1],
            ID["EPSG",8623]],
        PARAMETER["A1",1.00014473897784,
            SCALEUNIT["coefficient",1],
            ID["EPSG",8624]],
        PARAMETER["A2",-0.0227063743705598,
            SCALEUNIT["coefficient",1],
            ID["EPSG",8625]],
        PARAMETER["B0",-4164307.973,
            LENGTHUNIT["metre",1],
            ID["EPSG",8639]],
        PARAMETER["B1",0.0227063743705598,
            SCALEUNIT["coefficient",1],
            ID["EPSG",8640]],
        PARAMETER["B2",1.00014473897784,
            SCALEUNIT["coefficient",1],
            ID["EPSG",8641]]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1]]]
Gabriel
  • 3,136
  • 13
  • 33
Fiet Kleiner
  • 105
  • 7