5

I am trying to understand the vector re projection on QGIS/PostGIS.

I want to view the table that shows interim projection system when a layer is projected from one projection to another. Its a table that show the orgin projection interim projection and the destination projection. For example if we convert from ESPG:3857 to ESPG:28355 the interim would be ESPG:4326.

Is there anyway we can see this info in QGIS/PostGIS or in any other source?

3
  • Just to clarify, do you need the data in the interim projection system? Or do you want to know specifically what the interim projection system is?
    – nr_aus
    Commented Oct 17, 2022 at 1:49
  • 2
    I want to know what the interim projection system is, I remember there was a table with all projection systems and the interim projections and destination projections. But I dont remember how I saw it, as its been a while. Is there a way to see this table from postgis? the public.spatial_ref_sys does not have it. Commented Oct 17, 2022 at 1:58
  • 1
    Obviously, to go from a PCS1 in datum A to PCS2 in datum B, you'd need to deproject to GCS in A, datum transform to GCS in B, then project to PCS2, There are times when an extra datum is necessary, and sometimes multiple possible paths, depending on the location. If the goal is to end in GCS, or starts in GCS, the cascade is shorter. It's probably easier to implement this as a state tree, which could be stored in a table, but it doesn't have to be. This isn't QGIS or PostGIS specific, though because they're open-source, you can just look it up.
    – Vince
    Commented Oct 17, 2022 at 5:13

1 Answer 1

5

QGIS, GDAL and PostGIS are all using the Proj library https://proj.org/. Up till version 4 (Proj4) the conversions were always using WGS84 as an interim projection but it is not the case any more. If there is a direct conversion between the two systems then Proj will use that. It is also possible that the conversion requires several steps, not just one.

You can check how Proj plans to make the conversion with the projinfo utility https://proj.org/apps/projinfo.html. Please read the documentation, the utility has lots of features. The default output for the candidate conversion (1) that Proj considers to be the most accurate for your conversion from EPSG:3857 to EPSG:28355 follows.

projinfo -s EPSG:3857 -t EPSG:28355
Candidate operations found: 2
Note: using '--spatial-test intersects' would bring more results (3)
-------------------------------------
Operation No. 1:

unknown id, Inverse of Popular Visualisation Pseudo-Mercator + Inverse of GDA94 to WGS 84 (2) + Map Grid of Australia zone 55, 3 m, Australia including Lord Howe Island, Macquarie Island, Ashmore and Cartier Islands, Christmas Island, Cocos (Keeling) Islands, Norfolk Island. All onshore and offshore.

PROJ string:
+proj=pipeline
  +step +inv +proj=webmerc +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84
  +step +proj=push +v_3
  +step +proj=cart +ellps=WGS84
  +step +inv +proj=helmert +x=0.06155 +y=-0.01087 +z=-0.04019 +rx=-0.0394924
        +ry=-0.0327221 +rz=-0.0328979 +s=-0.009994 +convention=coordinate_frame
  +step +inv +proj=cart +ellps=GRS80
  +step +proj=pop +v_3
  +step +proj=utm +zone=55 +south +ellps=GRS80

WKT2:2019 string:
CONCATENATEDOPERATION["Inverse of Popular Visualisation Pseudo-Mercator + Inverse of GDA94 to WGS 84 (2) + Map Grid of Australia zone 55",
    SOURCECRS[
        PROJCRS["WGS 84 / Pseudo-Mercator",
            BASEGEOGCRS["WGS 84",
                ENSEMBLE["World Geodetic System 1984 ensemble",
                    MEMBER["World Geodetic System 1984 (Transit)"],
                    MEMBER["World Geodetic System 1984 (G730)"],
                    MEMBER["World Geodetic System 1984 (G873)"],
                    MEMBER["World Geodetic System 1984 (G1150)"],
                    MEMBER["World Geodetic System 1984 (G1674)"],
                    MEMBER["World Geodetic System 1984 (G1762)"],
                    MEMBER["World Geodetic System 1984 (G2139)"],
                    ELLIPSOID["WGS 84",6378137,298.257223563,
                        LENGTHUNIT["metre",1]],
                    ENSEMBLEACCURACY[2.0]],
                PRIMEM["Greenwich",0,
                    ANGLEUNIT["degree",0.0174532925199433]],
                ID["EPSG",4326]],
            CONVERSION["Popular Visualisation Pseudo-Mercator",
                METHOD["Popular Visualisation Pseudo Mercator",
                    ID["EPSG",1024]],
                PARAMETER["Latitude of natural origin",0,
                    ANGLEUNIT["degree",0.0174532925199433],
                    ID["EPSG",8801]],
                PARAMETER["Longitude of natural origin",0,
                    ANGLEUNIT["degree",0.0174532925199433],
                    ID["EPSG",8802]],
                PARAMETER["False easting",0,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",8806]],
                PARAMETER["False northing",0,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",8807]]],
            CS[Cartesian,2],
                AXIS["easting (X)",east,
                    ORDER[1],
                    LENGTHUNIT["metre",1]],
                AXIS["northing (Y)",north,
                    ORDER[2],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",3857]]],
    TARGETCRS[
        PROJCRS["GDA94 / MGA zone 55",
            BASEGEOGCRS["GDA94",
                DATUM["Geocentric Datum of Australia 1994",
                    ELLIPSOID["GRS 1980",6378137,298.257222101,
                        LENGTHUNIT["metre",1]]],
                PRIMEM["Greenwich",0,
                    ANGLEUNIT["degree",0.0174532925199433]],
                ID["EPSG",4283]],
            CONVERSION["Map Grid of Australia zone 55",
                METHOD["Transverse Mercator",
                    ID["EPSG",9807]],
                PARAMETER["Latitude of natural origin",0,
                    ANGLEUNIT["degree",0.0174532925199433],
                    ID["EPSG",8801]],
                PARAMETER["Longitude of natural origin",147,
                    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",10000000,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",8807]]],
            CS[Cartesian,2],
                AXIS["(E)",east,
                    ORDER[1],
                    LENGTHUNIT["metre",1]],
                AXIS["(N)",north,
                    ORDER[2],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",28355]]],
    STEP[
        CONVERSION["Inverse of Popular Visualisation Pseudo-Mercator",
            METHOD["Inverse of Popular Visualisation Pseudo Mercator",
                ID["INVERSE(EPSG)",1024]],
            PARAMETER["Latitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["False easting",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]],
            ID["INVERSE(EPSG)",3856]]],
    STEP[
        COORDINATEOPERATION["Inverse of GDA94 to WGS 84 (2) (approx. inversion)",
            SOURCECRS[
                GEOGCRS["WGS 84",
                    ENSEMBLE["World Geodetic System 1984 ensemble",
                        MEMBER["World Geodetic System 1984 (Transit)"],
                        MEMBER["World Geodetic System 1984 (G730)"],
                        MEMBER["World Geodetic System 1984 (G873)"],
                        MEMBER["World Geodetic System 1984 (G1150)"],
                        MEMBER["World Geodetic System 1984 (G1674)"],
                        MEMBER["World Geodetic System 1984 (G1762)"],
                        MEMBER["World Geodetic System 1984 (G2139)"],
                        ELLIPSOID["WGS 84",6378137,298.257223563,
                            LENGTHUNIT["metre",1]],
                        ENSEMBLEACCURACY[2.0]],
                    PRIMEM["Greenwich",0,
                        ANGLEUNIT["degree",0.0174532925199433]],
                    CS[ellipsoidal,2],
                        AXIS["geodetic latitude (Lat)",north,
                            ORDER[1],
                            ANGLEUNIT["degree",0.0174532925199433]],
                        AXIS["geodetic longitude (Lon)",east,
                            ORDER[2],
                            ANGLEUNIT["degree",0.0174532925199433]],
                    ID["EPSG",4326]]],
            TARGETCRS[
                GEOGCRS["GDA94",
                    DATUM["Geocentric Datum of Australia 1994",
                        ELLIPSOID["GRS 1980",6378137,298.257222101,
                            LENGTHUNIT["metre",1]]],
                    PRIMEM["Greenwich",0,
                        ANGLEUNIT["degree",0.0174532925199433]],
                    CS[ellipsoidal,2],
                        AXIS["geodetic latitude (Lat)",north,
                            ORDER[1],
                            ANGLEUNIT["degree",0.0174532925199433]],
                        AXIS["geodetic longitude (Lon)",east,
                            ORDER[2],
                            ANGLEUNIT["degree",0.0174532925199433]],
                    ID["EPSG",4283]]],
            METHOD["Coordinate Frame rotation (geog2D domain)",
                ID["EPSG",9607]],
            PARAMETER["X-axis translation",-0.06155,
                LENGTHUNIT["metre",1],
                ID["EPSG",8605]],
            PARAMETER["Y-axis translation",0.01087,
                LENGTHUNIT["metre",1],
                ID["EPSG",8606]],
            PARAMETER["Z-axis translation",0.04019,
                LENGTHUNIT["metre",1],
                ID["EPSG",8607]],
            PARAMETER["X-axis rotation",0.0394924,
                ANGLEUNIT["arc-second",4.84813681109536E-06],
                ID["EPSG",8608]],
            PARAMETER["Y-axis rotation",0.0327221,
                ANGLEUNIT["arc-second",4.84813681109536E-06],
                ID["EPSG",8609]],
            PARAMETER["Z-axis rotation",0.0328979,
                ANGLEUNIT["arc-second",4.84813681109536E-06],
                ID["EPSG",8610]],
            PARAMETER["Scale difference",0.009994,
                SCALEUNIT["parts per million",1E-06],
                ID["EPSG",8611]],
            OPERATIONACCURACY[3.0],
            ID["INVERSE(EPSG)",9688],
            REMARK["Concatenation of CTs 8048 and 8450 through GDA2020. Scale difference in ppb where 1/billion = 1E-9. See GDA94 to WGS 84 (2) (CT code 9689) for alternative for Australia including distortion model."]]],
    STEP[
        CONVERSION["Map Grid of Australia zone 55",
            METHOD["Transverse Mercator",
                ID["EPSG",9807]],
            PARAMETER["Latitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",147,
                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",10000000,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]],
            ID["EPSG",17355]]],
    USAGE[
        SCOPE["unknown"],
        AREA["Australia including Lord Howe Island, Macquarie Island, Ashmore and Cartier Islands, Christmas Island, Cocos (Keeling) Islands, Norfolk Island. All onshore and offshore."],
        BBOX[-60.55,93.41,-8.47,173.34]]]
1
  • Thank you very much!! Appreciate it Commented Nov 22, 2022 at 5:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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