<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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:Aptos;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:none;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
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]-->
</head>
<body lang="NL" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Hi Thomas,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Thanks for your reply. I will open an issue, but I wanted to make sure I wasn’t overlooking an already available solution for my problem.
 Also, I thought it might be better to find consensus in the email list first. Or would it be better to have a discussion like this in an issue? I am not so familiar with the do’s and don’ts of open-source collaboration.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><i><u><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">exch / swap<o:p></o:p></span></u></i></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Your suggestion is a third way to solve my problem. That would work fine.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><i><u><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">LIFO / FIFO<o:p></o:p></span></u></i></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Switching from LIFI to FIFO seems an easier solution to me. But I have no experience with stacks in programming languages, so maybe
 FIFO is too unconventional? Or would the change in behaviour from LIFI to FIFO be problematic for other users? I have never seen a PROJ pipeline using more than one value on the stack.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><i><u><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Alternative<o:p></o:p></span></u></i></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">A difference between PROJ and the language Forth is that PROJ has a coordinate value next to the stack. My suggested
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">flip</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> operator does the same as your
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">exch</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> /
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">swap</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> operator. The only difference is that I interpret
 the current coordinate value as the top value of the stack. The advantage is that my alternative needs just one step:
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">+step +proj=flip +v_3<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">to do the same are your 3 steps:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">step omit_fwd proj=push v_3             
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"># restore the geometrical height</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">step omit_fwd proj=exch                 
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"># swap the two heights, to get the geometrical to the top-of-stack<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">step omit_fwd proj=pop v_3              
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"># save the geophysical height</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><i><u><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Name<o:p></o:p></span></u></i></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Even if my alternative behaviour of
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">flip</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> would be implemented, I think your suggested
 name </span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">exch</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> or
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">swap</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> would better explain what it does. Could there
 be a need for other stack operators too, like </span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">dup</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">,
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">over</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">,
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">rot</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> and
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">drop</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">? To avoid confusion with other PROJ operators
 like </span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">axisswap</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> and
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">over</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">, maybe a name like
</span><span lang="EN-GB" style="font-size:11.0pt;font-family:Consolas;mso-fareast-language:EN-US">stackswap</span><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"> could be preferable?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Jochem<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></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>
[https://www.kadaster.nl/algemene-leveringsvoorwaarden].<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>
[https://www.kadaster.com/general-terms-and-conditions]. <br>
</font>
</body>
</html>