<html 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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Thanks, Kristian, for the thoughtful and extensive response,
<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">And the more I think about it, the more it makes sense what you say, that stepping through WGS84 as a hub is often the only practical choice.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">It is also helpful to receive the affirmation that I've got it right.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">-Don<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Don MacQueen<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Lawrence Livermore National Laboratory<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">7000 East Ave., L-627<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Livermore, CA 94550<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">925-423-1062<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">Lab cell 925-724-7509<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp;<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">&lt;proj-bounces@lists.maptools.org&gt; on behalf of Kristian Evers &lt;kreve@sdfe.dk&gt;<br>
<b>Reply-To: </b>&quot;PROJ.4 and general Projections Discussions&quot; &lt;proj@lists.maptools.org&gt;<br>
<b>Date: </b>Monday, September 24, 2018 at 9:08 PM<br>
<b>To: </b>&quot;PROJ.4 and general Projections Discussions&quot; &lt;proj@lists.maptools.org&gt;<br>
<b>Subject: </b>Re: [Proj] Question about migrating to Proj 5.x.x<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<p class="MsoNormal">Don, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">I see that you are looking at an outdated development version of the docs. I should have removed that a long time ago. Please go to
<a href="https://proj4.org">https://proj4.org</a>&nbsp;instead. The migration guide is the same but the rest of the docs are significantly improved.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Regarding the pipeline you’ve described below, yes it is exactly same as what cs2cs is doing. While stepping through WGS84 as a hub is generally a bad idea, quite often it is the only practical choice. Either because you haven’t got access
 to a better way to do the transformation or because that is simply how they are defined. Often times there will be a better way to do the transformation but we still haven’t got a mechanism for helping you set that up. We are working on that though (or Even
 is, I should say).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">So in summary, you’ve got it all right. I acknowledge that we haven’t made it particularly easy to do transformations as simple as they are done with pj_transform(). The function proj_create_crs_to_crs() is meant to replace it but so far
 it has been restricted to &#43;init setups which unfortunately has led to most people doing similar pipelines as &nbsp;below invoked with proj_create(). I intend to make this easier in PROJ 6.0.0.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">For examples of how the pipeline framework can be used to do transformations without stepping through WGS84 have a look at&nbsp;<a href="https://github.com/NordicGeodesy/NordicTransformations">https://github.com/NordicGeodesy/NordicTransformations</a>.
 These are a collection of transformations used in the Nordic countries and none of them use WGS84 a hub. Some are quite complicated (have a look at the resources/NKG file) and some are rather similar to what you are used to from cs2cs.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">/Kristian<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On 25 Sep 2018, at 01:01, MacQueen, Don &lt;<a href="mailto:macqueen1@llnl.gov">macqueen1@llnl.gov</a>&gt; wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class="MsoNormal">In effect, this is a question about whether or how well I understand the new pipeline approach.<br>
<br>
Here's an example transformation I have been using at my site, using cs2cs. It is considered to be correct.<br>
<br>
echo 1501839.77549 &nbsp;&nbsp;&nbsp;&nbsp;456388.976491 | \<br>
&nbsp;&nbsp;&nbsp;cs2cs \<br>
&#43;from \<br>
&nbsp;&#43;init=epsg:26743 \<br>
&nbsp;&#43;nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat \<br>
&nbsp;&#43;to \<br>
&nbsp;&#43;init=epsg:2227 \<br>
&nbsp;&#43;nadgrids=null<br>
<br>
The online Version 4 to Version 5 API migration guide<br>
&nbsp;( <a href="https://kbevers.github.io/development/migration.html">https://kbevers.github.io/development/migration.html</a> )<br>
describes that cs2cs does a transformation like this one by passing &quot;through the ill-defined WGS84 reference frame, using it as a hub&quot; and points out shortcomings of that approach.
<br>
Various descriptions I've seen of the new pipeline approach have seemed to imply that it's better at least in part because it doesn't use WGS84 as a &quot;hub&quot;.<br>
<br>
Following the example in the migration guide, here's what I've found for performing the same using cct:<br>
<br>
echo 1501839.77549 &nbsp;&nbsp;&nbsp;&nbsp;456388.976491 | \<br>
cct -z 0 -t 0\<br>
&#43;proj=pipeline \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;step \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;inv \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;init=epsg:26743 \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;step \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;init=epsg:2227 \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;nadgrids=null<br>
<br>
The respective outputs match &nbsp;-- great!<br>
<br>
But it also eems to me that by specifying &#43;inv, it is still passing through WGS84. It's now explicit, which is good, but is it really fundamentally different? Is there some other way to get from one projected system to another?<br>
<br>
Or am I just completely confused?<br>
<br>
Thanks<br>
-Don<br>
<br>
--<br>
Don MacQueen<br>
Lawrence Livermore National Laboratory<br>
7000 East Ave., L-627<br>
Livermore, CA 94550<br>
925-423-1062<br>
Lab cell 925-724-7509<br>
<br>
<br>
<br>
_______________________________________________<br>
Proj mailing list<br>
<a href="mailto:Proj@lists.maptools.org">Proj@lists.maptools.org</a><br>
http://lists.maptools.org/mailman/listinfo/proj<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>