<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><br>
</p>
<div class="moz-cite-prefix">Le 22/02/2023 à 21:15, Lesparre, Jochem
a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:AM0P192MB04820D5A86C3545CA5E11879EFAA9@AM0P192MB0482.EURP192.PROD.OUTLOOK.COM">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}span.EmailStyle23
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}div.WordSection1
{page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoPlainText" style="margin-left:70.8pt"><span
lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText" style="margin-left:70.8pt"><span
lang="EN-GB">JL wrote:<o:p></o:p></span></p>
<p class="MsoPlainText" style="margin-left:70.8pt"><span
lang="EN-GB">> the route trough ETRF2000 should be the
default […]<o:p></o:p></span></p>
<p class="MsoPlainText" style="margin-left:70.8pt"><span
lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText" style="margin-left:70.8pt"><span
lang="EN-GB">> Thus ETRS89 -> ETRF2000 -> ITRF2000
-> ITRF2014 instead of ETRS89 -> ETRF2014 ->
ITRF2014. What makes PROJ choose the latter?<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText" style="margin-left:35.4pt"><span
lang="EN-GB">ER wrote:<o:p></o:p></span></p>
<p class="MsoPlainText" style="margin-left:35.4pt"><span
lang="EN-GB">> PROJ has no idea of what is
recommended/preferred by European geodestists ;-) It only
trusts records in its database.<o:p></o:p></span></p>
<p class="MsoPlainText" style="margin-left:35.4pt"><span
lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText" style="margin-left:35.4pt"><span
lang="EN-GB">> PROJ can only infer pipelines with at most
one intermediate CRS. If you want ETRS89 -> ETRF2000
-> ITRF2000 -> ITRF2014, you need an explicit
concatenated operation chaining the 3 individual steps.<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-GB">In fact, in PROJ the
ETRS89 -> ETRF2000 -> ITRF2000 -> ITRF2014 route
gives identical results to ETRS89 -> ETRF2000 ->
ITRF2014, and this also has only one intermediate CRS:</span></p>
</div>
</blockquote>
<p><span lang="EN-GB">ETRF2000 -> ITRF2000 </span>is EPSG:7941</p>
<p><span lang="EN-GB">+proj=pipeline<br>
+step +proj=axisswap +order=2,1<br>
+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad
+z_out=m<br>
+step +proj=cart +ellps=GRS80<br>
+step +inv +proj=helmert +x=0.054 +y=0.051 +z=-0.048
+rx=0.000891 +ry=0.00539<br>
+rz=-0.008712 +s=0 +dx=0 +dy=0 +dz=0 +drx=8.1e-05
+dry=0.00049<br>
+drz=-0.000792 +ds=0 +t_epoch=2000
+convention=position_vector<br>
+step +inv +proj=cart +ellps=GRS80<br>
+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg
+z_out=m<br>
+step +proj=axisswap +order=2,1<br>
</span></p>
<p><span lang="EN-GB">and ITRF2000 -> ITRF2014 is EPSG:8078<br>
</span></p>
+proj=pipeline<br>
+step +proj=axisswap +order=2,1<br>
+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m<br>
+step +proj=cart +ellps=GRS80<br>
+step +proj=helmert +x=-0.0007 +y=-0.0012 +z=0.0261 +rx=0 +ry=0
+rz=0<br>
+s=-0.00212 +dx=-0.0001 +dy=-0.0001 +dz=0.0019 +drx=0 +dry=0
+drz=0<br>
+ds=-0.00011 +t_epoch=2010 +convention=position_vector<br>
+step +inv +proj=cart +ellps=GRS80<br>
+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m<br>
+step +proj=axisswap +order=2,1<br>
<p>And ETRF2000 -> ITRF2014 is EPSG:8405<br>
</p>
<p>+proj=pipeline<br>
+step +proj=axisswap +order=2,1<br>
+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m<br>
+step +proj=cart +ellps=GRS80<br>
+step +inv +proj=helmert +x=0.0547 +y=0.0522 +z=-0.0741
+rx=0.001701<br>
+ry=0.01029 +rz=-0.016632 +s=0.00212 +dx=0.0001 +dy=0.0001
+dz=-0.0019<br>
+drx=8.1e-05 +dry=0.00049 +drz=-0.000792 +ds=0.00011
+t_epoch=2010<br>
+convention=position_vector<br>
+step +inv +proj=cart +ellps=GRS80<br>
+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m<br>
+step +proj=axisswap +order=2,1<br>
<br>
</p>
<p>It appears that the authority in charge of ETRF and ITRF made
sure that additivity works.</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:AM0P192MB04820D5A86C3545CA5E11879EFAA9@AM0P192MB0482.EURP192.PROD.OUTLOOK.COM">
<div class="WordSection1">
<p class="MsoPlainText"><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-GB">projinfo
-s epsg:7931 -t epsg:7912<o:p></o:p></span></p>
<p class="MsoPlainText"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-GB">Operation
No. 1:<o:p></o:p></span></p>
<p class="MsoPlainText"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-GB">unknown
id, Conversion from ETRF2000 (geog3D) to ETRF2000
(geocentric) + Inverse of ITRF2014 to ETRF2000 (1) +
Conversion from ITRF2014 (geocentric) to ITRF2014 (geog3D),
0 m<o:p></o:p></span></p>
<p class="MsoPlainText"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-GB">projinfo
-s epsg:8403 -t epsg:7912<o:p></o:p></span></p>
<p class="MsoPlainText"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-GB">Operation
No. 1:<o:p></o:p></span></p>
<p class="MsoPlainText"><span
style="font-size:10.0pt;font-family:Consolas" lang="EN-GB">unknown
id, Conversion from ETRF2014 (geog3D) to ETRF2014
(geocentric) + Inverse of ITRF2014 to ETRF2014 (2) +
Conversion from ITRF2014 (geocentric) to ITRF2014 (geog3D),
0 m<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-GB">If it is not the
number of steps, what makes PROJ not choose ETRS89 ->
ETRF2000 -> ITRF2014 but ETRS89 -> ETRF2014 ->
ITRF2014 instead? And what would need to be changed in the
database to change that transformation route?</span></p>
</div>
</blockquote>
<p>That will make you smile (or not), but I believe it is
lexicographic order. ETRF2000->ITRF2014 and
ETRF2014->ITRF2014 have both the same extent and advertized
accuracy (0 m!), so when combined with the preliminary ETRS89
-> ETRF2000 or ETRS89 -> ETRF2014 null transformation steps
which are deduced from the definition of the ETRS89 assemble using
its 0.1 m accuracy, the resulting pipelines <span lang="EN-GB">ETRS89
-> ETRF2000 -> ITRF2014 and </span><span lang="EN-GB"><span
lang="EN-GB">ETRS89 -> ETRF2014 -> ITRF2014 have both
the same extent and advertized accuracy (0.1m) (if you look at
projinfo -s ETRS89 -t ITRF2014 --3d output, you'll see that
the one using ETRF2000->ITRF2014 is the 3rd one). So PROJ,
when having to sort results, chooses the pipeline whose name
is the greater given lexicographic order, and ETRF2014 >
ETRF2000 according to that criterion. The preference for the
higher lexicographic order has been chose because typically
EPSG adds new transformations FOO (X) and FOO (Y) with
increasing numbers, and all other things being equal, it can
makes sense to use the more recent records. Obviously that's
not always what you want, but that's slightly better than a
dice roll, at least that's deterministic, which is what you
need for a sort algorithm.<br>
</span></span></p>
<p><span lang="EN-GB"><span lang="EN-GB">So what would be needed
here for what you want would be to register a ETRS89 to
ITRF2014 transformation, typically by copying </span></span><span
lang="EN-GB">the ETRF2000 -> ITRF2014 Helmert transformation
and assigning it an accuracy slightly less than 0.1 m (I guess
exactly 0.1 m would also work, because PROJ will normally favor
pipelines that have less steps than other ones, all other things
being equal, but that should be tested, especially in complex
pipelines mixing horizontal & vertical transformations)<br>
</span></p>
<p>Even<br>
</p>
<blockquote type="cite"
cite="mid:AM0P192MB04820D5A86C3545CA5E11879EFAA9@AM0P192MB0482.EURP192.PROD.OUTLOOK.COM">
<div class="WordSection1">
<p class="MsoPlainText"><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoPlainText">Jochem<o:p></o:p></p>
</div>
<br>
<br>
<font size="2">Disclaimer:<br>
De inhoud van deze e-mail is vertrouwelijk en uitsluitend
bestemd voor de geadresseerde(n).<br>
Gebruik, openbaarmaking, vermenigvuldiging, verspreiding en/of
verstrekking van deze informatie aan derden is niet toegestaan.<br>
Op al onze producten en diensten zijn onze algemene
leveringsvoorwaarden van toepassing<br>
[<a class="moz-txt-link-freetext" href="https://www.kadaster.nl/algemene-leveringsvoorwaarden">https://www.kadaster.nl/algemene-leveringsvoorwaarden</a>].<br>
<br>
Disclaimer:<br>
This email and any files transmitted with it are confidential
and intended solely for the use of the individual or entity to
whom they are addressed.<br>
If you are not the intended recipient, you are notified that
disclosing, copying, distributing or taking any action in
reliance on the contents of this information is strictly
prohibited.<br>
Our general terms and conditions of delivery apply to all our
products and services<br>
[<a class="moz-txt-link-freetext" href="https://www.kadaster.com/general-terms-and-conditions">https://www.kadaster.com/general-terms-and-conditions</a>]. <br>
</font>
</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>