1

I am quite new to GIS and I have a question regarding projection transformations.

I am using GeoPandas to read a map in EPSG 6347 and I use the method to_crs to convert it to EPSG 4326, as documented here.

As far as I understand, the ellipsoid and the datum are entirely specified in the EPSG:

EPSG CRS Datum Ellipsoid
6347 NAD83 2011 GRS80
4326 WSG84 1984 WSG64

and therefore, I thought that there would only be one possible transformation.

The first answer to this question indicates that there are multiple transformations from NAD83 to WSG84. This is also explained in this link. Those transformations are named: NAD_1983_To_WSG_1984_1,..., NAD_1983_To_WSG_1984_8.

Which of those 8 transformations is used by GeoPandas when it converts from EPSG:6347 to EPSG:4326?

1
  • Please stick to one question per post. Otherwise it will be harder to answer and later on to find the correct answer for other users.
    – Erik
    Commented Sep 22, 2021 at 13:34

1 Answer 1

1

Proj version 8.1.1 finds only one conversion between those two codes:

projinfo -s epsg:6347 -t epsg:4326 --spatial-test intersects
Candidate operations found: 1
-------------------------------------
Operation No. 1:

unknown id, Inverse of UTM zone 18N + Ballpark geographic offset from NAD83(2011) to WGS 84, unknown accuracy, World, has ballpark transformation

PROJ string:
+proj=pipeline
  +step +inv +proj=utm +zone=18 +ellps=GRS80
  +step +proj=unitconvert +xy_in=rad +xy_out=deg
  +step +proj=axisswap +order=2,1

WKT2:2019 string:
CONCATENATEDOPERATION["Inverse of UTM zone 18N + Ballpark geographic offset from NAD83(2011) to WGS 84",
    SOURCECRS[
        PROJCRS["NAD83(2011) / UTM zone 18N",
            BASEGEOGCRS["NAD83(2011)",
                DATUM["NAD83 (National Spatial Reference System 2011)",
                    ELLIPSOID["GRS 1980",6378137,298.257222101,
                        LENGTHUNIT["metre",1]]],
                PRIMEM["Greenwich",0,
                    ANGLEUNIT["degree",0.0174532925199433]],
                ID["EPSG",6318]],
            CONVERSION["UTM zone 18N",
                METHOD["Transverse Mercator",
                    ID["EPSG",9807]],
                PARAMETER["Latitude of natural origin",0,
                    ANGLEUNIT["degree",0.0174532925199433],
                    ID["EPSG",8801]],
                PARAMETER["Longitude of natural origin",-75,
                    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]]],
            CS[Cartesian,2],
                AXIS["(E)",east,
                    ORDER[1],
                    LENGTHUNIT["metre",1]],
                AXIS["(N)",north,
                    ORDER[2],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",6347]]],
    TARGETCRS[
        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)"],
                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]]],
    STEP[
        CONVERSION["Inverse of UTM zone 18N",
            METHOD["Inverse of Transverse Mercator",
                ID["INVERSE(EPSG)",9807]],
            PARAMETER["Latitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",-75,
                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]],
            ID["INVERSE(EPSG)",16018]]],
    STEP[
        COORDINATEOPERATION["Ballpark geographic offset from NAD83(2011) to WGS 84",
            SOURCECRS[
                GEOGCRS["NAD83(2011)",
                    DATUM["NAD83 (National Spatial Reference System 2011)",
                        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",6318]]],
            TARGETCRS[
                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)"],
                        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]]],
            METHOD["Geographic2D offsets",
                ID["EPSG",9619]],
            PARAMETER["Latitude offset",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8601]],
            PARAMETER["Longitude offset",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8602]]]],
    USAGE[
        SCOPE["unknown"],
        AREA["World"],
        BBOX[-90,-180,90,180]]]
4
  • Thanks for your Answer. I think you made a typo: you wrote epsg:3647 instead of epsg:6347. I tried with the correct epsg and it also gave me only one conversion. The outcome of the command starts with unknown id, is it the transformation id that is missing?
    – joel314
    Commented Sep 22, 2021 at 14:31
  • Thanks, corrected the typo and projinfo output. I am not sure what the unknown_id means. I tried projinfo with some other codes and sometimes there was a name in the result, sometimes unknown_id. Perhaps the names are somewhere in the EPSG database epsg.org/search/by-name.
    – user30184
    Commented Sep 22, 2021 at 15:02
  • Ok, I see. Can we conclude that GeoPandas can only do the right transformation (as there is only one available) and the that 8 transformations NAD_1983_To_WSG_1984_1,...,NAD_1983_To_WSG_1984_8 are all possible transformations between NAD83 and WSG84 when the datum and / or ellipsoid is not specified? I tried to find the WKID displayed in this link in the output of the projinfocommand, hoping to match the transformation done by GeoPandas, but I couldn't find it.
    – joel314
    Commented Sep 22, 2021 at 15:38
  • I believe that the other transformations are not valid within the valid area of EPSG:6347 even with the "intersects" test. I do not know enough about GeoPandas to say that it cannot do anything else.
    – user30184
    Commented Sep 22, 2021 at 15:44

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.