<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Javier,</p>
<p>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.</p>
<p>I've addressed this per <a class="moz-txt-link-freetext"
href="https://github.com/OSGeo/PROJ/pull/3281">https://github.com/OSGeo/PROJ/pull/3281</a>
. 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.</p>
<p>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. <br>
</p>
<p> Even</p>
<p><br>
</p>
<div class="moz-cite-prefix">Le 03/08/2022 à 19:52, Javier Jimenez
Shaw a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:CADRrdKuXN5gWKCX9da2P2zHzMn7oWRB1-B7KGEaP_1zL60+t+g@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>Hi</div>
<div><br>
</div>
<div>I am trying to make a derived projected CRS... in feet.</div>
<div>The conversion method is a "PROJ-based operation method"
with an affine transformation (simplified here with just xoff
of 20 feet).</div>
<div><a
href="https://proj.org/operations/transformations/affine.html"
moz-do-not-send="true" class="moz-txt-link-freetext">https://proj.org/operations/transformations/affine.html</a></div>
<div><br>
</div>
<div>The derived system is something like this (my data is 3D,
but in 2D is also reproduced):</div>
<div><br>
</div>
<div><span style="font-family:monospace">$ cat derived.wkt</span></div>
<div><br>
</div>
<div><span style="font-family:monospace">DERIVEDPROJCRS["Custom
Site Calibrated CRS",<br>
BASEPROJCRS["NAD83(2011) / Mississippi East (ftUS)",<br>
BASEGEOGCRS["NAD83(2011)",<br>
DATUM["NAD83 (National Spatial Reference System
2011)",<br>
ELLIPSOID["GRS 1980",6378137,298.257222101,<br>
LENGTHUNIT["metre",1]]],<br>
PRIMEM["Greenwich",0,<br>
ANGLEUNIT["degree",0.0174532925199433]]],<br>
CONVERSION["SPCS83 Mississippi East zone (US Survey
feet)",<br>
METHOD["Transverse Mercator",<br>
ID["EPSG",9807]],<br>
PARAMETER["Latitude of natural origin",29.5,<br>
ANGLEUNIT["degree",0.0174532925199433],<br>
ID["EPSG",8801]],<br>
PARAMETER["Longitude of natural
origin",-88.8333333333333,<br>
ANGLEUNIT["degree",0.0174532925199433],<br>
ID["EPSG",8802]],<br>
PARAMETER["Scale factor at natural
origin",0.99995,<br>
SCALEUNIT["unity",1],<br>
ID["EPSG",8805]],<br>
PARAMETER["False easting",984250,<br>
LENGTHUNIT["US survey
foot",0.304800609601219],<br>
ID["EPSG",8806]],<br>
PARAMETER["False northing",0,<br>
LENGTHUNIT["US survey
foot",0.304800609601219],<br>
ID["EPSG",8807]]]],<br>
DERIVINGCONVERSION["Affine transformation as
PROJ-based",<br>
METHOD["PROJ-based operation method: +proj=pipeline
+step +proj=affine +xoff=20"]],<br>
CS[Cartesian,2],<br>
AXIS["easting (X)",east,<br>
ORDER[1],<br>
LENGTHUNIT["US survey foot",0.304800609601219]],<br>
AXIS["northing (Y)",north,<br>
ORDER[2],<br>
LENGTHUNIT["US survey foot",0.304800609601219]],<br>
REMARK["EPSG:6507 with 20 feet offset"]]</span></div>
<div><br>
</div>
<div>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.</div>
<div><span style="font-family:monospace">$ echo 29 -88 0 | cs2cs
EPSG:6318 EPSG:6507<br>
1250642.38 -180875.29 0.00<br>
$ echo 29 -88 0 | cs2cs EPSG:6318 "$(cat derived.wkt)"<br>
381216.56 -55130.90 0.00</span></div>
<div><br>
</div>
<div>If I concatenate the pipeline with cct, I get the result I
was expecting (20 feet more in the x):</div>
<div><span style="font-family:monospace">$ echo 29 -88 0 | cs2cs
EPSG:6318 EPSG:6507 | cct +proj=pipeline +step +proj=affine
+xoff=20<br>
1250662.3800 -180875.2900 0.0000</span></div>
<div><br>
</div>
<div>Is that expected? Am I doing anything wrong?<br>
</div>
<div><br>
</div>
<div>Thanks.<br>
</div>
<div>
<div>
<div dir="ltr" class="gmail_signature"
data-smartmail="gmail_signature">.___ ._ ..._ .. . ._.
.___ .. __ . _. . __.. ... .... ._ .__<br>
Entre dos pensamientos racionales <br>
hay infinitos pensamientos irracionales.<br>
<br>
</div>
</div>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
PROJ mailing list
<a class="moz-txt-link-abbreviated" href="mailto:PROJ@lists.osgeo.org">PROJ@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/proj">https://lists.osgeo.org/mailman/listinfo/proj</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
</body>
</html>