Hi Thomas,<div><br></div><div><br></div><div>LCCA: good suggestion!</div><div>As far as I can tell, there are two significant differences between LCC and LCCA.</div><div>LCC has an iteration loop criterion (in the inverse) of 1e-10, whereas LCCA is somewhat more accurate with 1e-12.</div><div>Furthermore LCCA works with a Newton iteration scheme. This could be faster than iteration by successive approximation, but there are a couple of minor inefficiencies in the code, like function calls instead of inline, but YMMV.</div><div><br></div><div><br></div><div>Oscar van Vlijmen</div><div><br></div><div><br></div><div><br></div><div><blockquote style="margin-right: 0px; margin-left:15px;">----Origineel Bericht----<br>Van : knudsen.thomas@gmail.com<br>Datum : 01/11/2017 07:58<br>Aan : vanadovv@hetnet.nl, proj@lists.maptools.org<br>Onderwerp : Re: [Proj] Grown error if re-projecting from 4269 to LCC (2285) and backward multiple times<br><br><div dir="ltr">
 Oscar,
 <div>
  <br>
 </div>
 <div>
  I certainly agree that the deviation is quite high - my comment was more related
 </div>
 <div>
  to the expection of exact roundtrips, which I find unrealistic.
 </div>
 <div>
  <br>
 </div>
 <div>
  Nevertheless, looking into the PROJ.4 code, I see there is an alternative
 </div>
 <div>
  implementation of LCC, called LCCA, which I had forgotten about, which
 </div>
 <div>
  actually seems to roundtrip exactly.
 </div>
 <div>
  <br>
 </div>
 <div>
  In the master branch of PROJ.4, over at&nbsp;
  <a href="https://github.com/OSGeo/proj.4">https://github.com/OSGeo/proj.4</a>,
 </div>
 <div>
  and comming in the next release, there is a tool "gie" for doing (a.o.)
 </div>
 <div>
  roundtrip tests. It is still lacking in docs, but I think you can follow this example:
 </div>
 <div>
  <br>
 </div>
 <div>
  With this input file:
 </div>
 <div>
  <br>
 </div>
 <div>
  $ cat lcc-lcca.gie
 </div>
 <div>
  <br>
 </div>
 <div>
  <div>
   BEGIN
  </div>
  <div>
   <br>
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   operation +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 \
  </div>
  <div>
   &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +lat_0=47&nbsp; +lon_0=-120.8333333333333 \
  </div>
  <div>
   &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +x_0=500000.0001016001 +y_0=0&nbsp; &nbsp; &nbsp; &nbsp; \
  </div>
  <div>
   &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +units=us-ft +ellps=GRS80 +towgs84=0,0,0&nbsp; +no_defs
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   tolerance&nbsp; &nbsp;0.0010 mm
  </div>
  <div>
   accept&nbsp; &nbsp; &nbsp;-118.5293900000000300&nbsp; &nbsp;48.7408309999860520
  </div>
  <div>
   roundtrip&nbsp; &nbsp;1000
  </div>
  <div>
   <br>
  </div>
  <div>
   <br>
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   operation +proj=lcca +lat_1=48.73333333333333 +lat_2=47.5 \
  </div>
  <div>
   &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+lat_0=47&nbsp; +lon_0=-120.8333333333333 \
  </div>
  <div>
   &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+x_0=500000.0001016001 +y_0=0&nbsp; &nbsp; &nbsp; &nbsp; \
  </div>
  <div>
   &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+units=us-ft +ellps=GRS80 +towgs84=0,0,0&nbsp; +no_defs
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   tolerance&nbsp; &nbsp;0.0 mm
  </div>
  <div>
   accept&nbsp; &nbsp; &nbsp;-118.5293900000000300&nbsp; &nbsp;48.7408309999860520
  </div>
  <div>
   roundtrip&nbsp; &nbsp;1000
  </div>
  <div>
   END
  </div>
 </div>
 <div>
  <br>
 </div>
 <div>
  I get this output:
 </div>
 <div>
  <br>
 </div>
 <div>
  $ gie lcc-lcca.gie
 </div>
 <div>
  <div>
   <br>
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   Reading file '..\..\..\proj\lcc-lcca.gie'
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47&nbsp; +lon_0=-120....
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   &nbsp; &nbsp; &nbsp;FAILURE in lcc-lcca.gie(11):
  </div>
  <div>
   &nbsp; &nbsp; &nbsp;roundtrip deviation: 1.550 mm, expected: 0.001 mm
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
  <div>
   total:&nbsp; 1 tests succeeded,&nbsp; &nbsp;1 tests FAILED!
  </div>
  <div>
   -------------------------------------------------------------------------------
  </div>
 </div>
 <div>
  <br>
 </div>
 <div>
  i.e. lcca roundtrips exactly, while lcc diverges heavily.
 </div>
 <div>
  <br>
 </div>
 <div>
  So Dmitry: This seems to be your workaround - define your projection using lcca,
 </div>
 <div>
  rather than letting the epsg-list select lcc for you.
 </div>
 <div>
  <br>
 </div>
 <div>
  /Thomas
 </div>
 <div>
  <br>
 </div><div><br></div><div><br></div><div><br></div></div><br></blockquote><br><p></p></div>