[PROJ] Units in a derived system
Even Rouault
even.rouault at spatialys.com
Thu Aug 4 08:14:25 PDT 2022
Javier,
I have had a bit of hesitation if the current behaviour was a feature or
a bug, and opted for the later while investigating what happened: the
axis unit and order of the source CRS (projected CRS) were well taken
into account to "normalize" to metre, easting/northing order before
applying the user provided PROJ string, but the axis unit and order of
the target CRS (derived projected CRS) were ignored.
I've addressed this per https://github.com/OSGeo/PROJ/pull/3281 . It
might potentially break people that have compensated for that, but I
feel it is such a marginal use case that fixing it is the best thing.
Note however that you must adjust your PROJ string: xoff must be
expressed in meters. So you should change xoff to 65.6166666666667. Or
do like I did in the test I added, that is convert xy from m (as I said
above, PROJ normalizes to (resp. from) metre, easting/northing each
step before (resp. after) applying the user PROJ string) to us-ft, then
apply the affine with xoff=20, and finally convert back from us-ft to xy.
Even
Le 03/08/2022 à 19:52, Javier Jimenez Shaw a écrit :
> Hi
>
> I am trying to make a derived projected CRS... in feet.
> The conversion method is a "PROJ-based operation method" with an
> affine transformation (simplified here with just xoff of 20 feet).
> https://proj.org/operations/transformations/affine.html
>
> The derived system is something like this (my data is 3D, but in 2D is
> also reproduced):
>
> $ cat derived.wkt
>
> DERIVEDPROJCRS["Custom Site Calibrated CRS",
> BASEPROJCRS["NAD83(2011) / Mississippi East (ftUS)",
> 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]]],
> CONVERSION["SPCS83 Mississippi East zone (US Survey feet)",
> METHOD["Transverse Mercator",
> ID["EPSG",9807]],
> PARAMETER["Latitude of natural origin",29.5,
> ANGLEUNIT["degree",0.0174532925199433],
> ID["EPSG",8801]],
> PARAMETER["Longitude of natural origin",-88.8333333333333,
> ANGLEUNIT["degree",0.0174532925199433],
> ID["EPSG",8802]],
> PARAMETER["Scale factor at natural origin",0.99995,
> SCALEUNIT["unity",1],
> ID["EPSG",8805]],
> PARAMETER["False easting",984250,
> LENGTHUNIT["US survey foot",0.304800609601219],
> ID["EPSG",8806]],
> PARAMETER["False northing",0,
> LENGTHUNIT["US survey foot",0.304800609601219],
> ID["EPSG",8807]]]],
> DERIVINGCONVERSION["Affine transformation as PROJ-based",
> METHOD["PROJ-based operation method: +proj=pipeline +step
> +proj=affine +xoff=20"]],
> CS[Cartesian,2],
> AXIS["easting (X)",east,
> ORDER[1],
> LENGTHUNIT["US survey foot",0.304800609601219]],
> AXIS["northing (Y)",north,
> ORDER[2],
> LENGTHUNIT["US survey foot",0.304800609601219]],
> REMARK["EPSG:6507 with 20 feet offset"]]
>
> But the output I get seems to be in meters (I deduced that running
> with PROJ_DEBUG=3) It is kind of ignoring the CS.
> $ echo 29 -88 0 | cs2cs EPSG:6318 EPSG:6507
> 1250642.38 -180875.29 0.00
> $ echo 29 -88 0 | cs2cs EPSG:6318 "$(cat derived.wkt)"
> 381216.56 -55130.90 0.00
>
> If I concatenate the pipeline with cct, I get the result I was
> expecting (20 feet more in the x):
> $ echo 29 -88 0 | cs2cs EPSG:6318 EPSG:6507 | cct +proj=pipeline +step
> +proj=affine +xoff=20
> 1250662.3800 -180875.2900 0.0000
>
> Is that expected? Am I doing anything wrong?
>
> Thanks.
> .___ ._ ..._ .. . ._. .___ .. __ . _. . __.. ... .... ._ .__
> Entre dos pensamientos racionales
> hay infinitos pensamientos irracionales.
>
>
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/proj
--
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20220804/c308e364/attachment-0001.htm>
More information about the PROJ
mailing list