<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> </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> </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> </o:p></p>
<p class="MsoNormal">-Don<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">Don MacQueen<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">Lawrence Livermore National Laboratory<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">7000 East Ave., L-627<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">Livermore, CA 94550<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">925-423-1062<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">Lab cell 925-724-7509<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif"> <o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </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"><proj-bounces@lists.maptools.org> on behalf of Kristian Evers <kreve@sdfe.dk><br>
<b>Reply-To: </b>"PROJ.4 and general Projections Discussions" <proj@lists.maptools.org><br>
<b>Date: </b>Monday, September 24, 2018 at 9:08 PM<br>
<b>To: </b>"PROJ.4 and general Projections Discussions" <proj@lists.maptools.org><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> </o:p></p>
</div>
<p class="MsoNormal">Don, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </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> 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> </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> </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 +init setups which unfortunately has led to most people doing similar pipelines as  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> </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 <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> </o:p></p>
</div>
<div>
<p class="MsoNormal">/Kristian<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </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 <<a href="mailto:macqueen1@llnl.gov">macqueen1@llnl.gov</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </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     456388.976491 | \<br>
   cs2cs \<br>
+from \<br>
 +init=epsg:26743 \<br>
 +nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat \<br>
 +to \<br>
 +init=epsg:2227 \<br>
 +nadgrids=null<br>
<br>
The online Version 4 to Version 5 API migration guide<br>
 ( <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 "through the ill-defined WGS84 reference frame, using it as a hub" 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 "hub".<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     456388.976491 | \<br>
cct -z 0 -t 0\<br>
+proj=pipeline \<br>
     +step \<br>
     +inv \<br>
     +init=epsg:26743 \<br>
     +nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat \<br>
     +step \<br>
     +init=epsg:2227 \<br>
     +nadgrids=null<br>
<br>
The respective outputs match  -- great!<br>
<br>
But it also eems to me that by specifying +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> </o:p></p>
</div>
</div>
</body>
</html>