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?

6
  • 1
    a) Why don't you try? b) Both definitions are identical. – Erik Feb 4 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: gis.stackexchange.com/a/366641/133276 – Gabriel De Luca Feb 4 at 17:54
  • Why can't I use Helmert? In other Software, my Transformation parameters deliver perfect results. – Fiet Kleiner Feb 5 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 1 at 14:12
  • The way of Gabriel de Luca works. Thank you. – Fiet Kleiner Apr 5 at 11:24
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]]]

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.