[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