[PROJ] [PROJ 6.0.0] Different behaviors for creating a transformation of type EPSG:9616

Even Rouault even.rouault at spatialys.com
Tue Apr 30 08:28:50 PDT 2019


On mardi 30 avril 2019 16:40:55 CEST Martin Desruisseaux wrote:
> Le 30/04/2019 à 16:19, Even Rouault a écrit :
> > For example, if you would do a transformation from a CompoundCRS to
> > another CompoundCRS (or a Geographic3D CRS) with both horizontal and
> > vertical transformations, there is nothing in ISO:19111 to model the
> > composite of both.
> 
> Actually this is modeled with PassThroughOperation +
> ConcatenatedOperation. So a transformation between two CompoundCRS with
> a vertical component would be like below:
> 
>     ConcatenatedOperation (a 3D operation in this example)
>         PassThroughOperation (a 3D operation in this example)
>             coordOperation = the operation on the horizontal component
>             modifiedCoordinate = {0, 1}
>         PassThroughOperation (a 3D operation in this example)
>             coordOperation = the operation on the vertical component
>             modifiedCoordinate = 2

Ah, I had forgotten about that beast indeed !
Well, too late/no need to introduce it now. It has also the slight 
inconvenient of not having a WKT2 representation, so this concept remains 
mostly an implementation detail for non-super-ISO:19111-aware users.
When exporting to WKT2, the PROJBaseOperation is translated into a somewhat 
hacky COORDINATEOPERATION but which explains a bit what is done.

$ src/projinfo -s EPSG:7406 -t EPSG:5500

[...]

COORDINATEOPERATION["Transformation from NGVD29 height (ftUS) to NAVD88 height 
(ballpark vertical transformation) + NAD27 to WGS 84 (79) + Inverse of 
NAD83(NSRS2007) to WGS 84 (1)",
    SOURCECRS[
        COMPOUNDCRS["NAD27 + NGVD29 height (ftUS)",
            GEOGCRS["NAD27",
                DATUM["North American Datum 1927",
                    ELLIPSOID["Clarke 1866",6378206.4,294.978698213898,
                        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]]],
            VERTCRS["NGVD29 height (ftUS)",
                VDATUM["National Geodetic Vertical Datum 1929"],
                CS[vertical,1],
                    AXIS["gravity-related height (H)",up,
                        LENGTHUNIT["US survey foot",0.304800609601219]]],
            ID["EPSG",7406]]],
    TARGETCRS[
        COMPOUNDCRS["NAD83(NSRS2007) + NAVD88 height",
            GEOGCRS["NAD83(NSRS2007)",
                DATUM["NAD83 (National Spatial Reference System 2007)",
                    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]]],
            VERTCRS["NAVD88 height",
                VDATUM["North American Vertical Datum 1988"],
                CS[vertical,1],
                    AXIS["gravity-related height (H)",up,
                        LENGTHUNIT["metre",1]]],
            ID["EPSG",5500]]],
    METHOD["PROJ-based operation method (approximate): +proj=pipeline +step 
+proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +z_in=us-ft 
+xy_out=rad +z_out=m +step +proj=hgridshift +grids=conus +step 
+proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1"],
    USAGE[
        SCOPE["unknown"],
        AREA["USA - CONUS including EEZ"],
        BBOX[23.81,-129.17,49.38,-65.69]]]

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the PROJ mailing list