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
<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>
+lat_0=47 +lon_0=-120.8333333333333 \
</div>
<div>
+x_0=500000.0001016001 +y_0=0 \
</div>
<div>
+units=us-ft +ellps=GRS80 +towgs84=0,0,0 +no_defs
</div>
<div>
-------------------------------------------------------------------------------
</div>
<div>
tolerance 0.0010 mm
</div>
<div>
accept -118.5293900000000300 48.7408309999860520
</div>
<div>
roundtrip 1000
</div>
<div>
<br>
</div>
<div>
<br>
</div>
<div>
-------------------------------------------------------------------------------
</div>
<div>
operation +proj=lcca +lat_1=48.73333333333333 +lat_2=47.5 \
</div>
<div>
+lat_0=47 +lon_0=-120.8333333333333 \
</div>
<div>
+x_0=500000.0001016001 +y_0=0 \
</div>
<div>
+units=us-ft +ellps=GRS80 +towgs84=0,0,0 +no_defs
</div>
<div>
-------------------------------------------------------------------------------
</div>
<div>
tolerance 0.0 mm
</div>
<div>
accept -118.5293900000000300 48.7408309999860520
</div>
<div>
roundtrip 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 +lon_0=-120....
</div>
<div>
-------------------------------------------------------------------------------
</div>
<div>
FAILURE in lcc-lcca.gie(11):
</div>
<div>
roundtrip deviation: 1.550 mm, expected: 0.001 mm
</div>
<div>
-------------------------------------------------------------------------------
</div>
<div>
total: 1 tests succeeded, 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>