[Proj] Grown error if re-projecting from 4269 to LCC (2285) and backward multiple times
Dmitry Mefed
dmitrymefed at gmail.com
Tue Oct 31 01:50:08 EST 2017
Hi,
Our software stores the data with EPSG 4269 and present to the User in a
local projected CRS, EPSG 2285 in examples described below. In case if an
entity is modified on the UI we need to push the changes back. In that
scenario we have to do
1. 4269 -> 2285 projection,
2. then User modifies the entity (in 2285 CRS),
3. In order to store the changes, we do 2285 -> 4269 projection
4. and next time the entity is requested we do 4269 -> 2285
projection again.
The problem is that proj4 does not produce same results in step 2 and 4. It
would be expected behavior as 2285 provides more precision due to used
units US-ft, in comparison to 4269 which units are degrees. But the real
issue for us is that subsequent transformations between 2285 -> 4269 ->
2285… produces growing error. Please consider the following output of cs2cs
program, (in parallel I did inverse projection to obtain coordinates in
EPSG 4269):
C:\PROJ\bin>cs2cs.exe -v +init=epsg:2285 +to +init=epsg:4269 -f %.16f
pj_open_lib(epsg): call fopen(C:\proj\share\epsg) - succeeded
pj_open_lib(epsg): call fopen(C:\proj\share\epsg) - succeeded
# ---- From Coordinate System ----
#Lambert Conformal Conic
# Conic, Sph&Ell
# lat_1= and lat_2= or lat_0
# +init=epsg:2285 +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47
# +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +datum=NAD83
# +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0
# ---- To Coordinate System ----
#Lat/long (Geodetic alias)
#
# +init=epsg:4269 +proj=longlat +datum=NAD83 +no_defs +ellps=GRS80
# +towgs84=0,0,0
2196293.3184066000 643350.39301622100
-118.5293900000000300 48.7408309999860520 0.0000000000000000
2196293.3184067495000000 643350.3930111383100000
-118.5293900000000300 48.7408309999721180 0.0000000000000000
2196293.3184069018000000 643350.3930060574800000
-118.5293900000000300 48.7408309999581850 0.0000000000000000
2196293.3184070541000000 643350.3930009742000000
-118.5293900000000300 48.7408309999442440 0.0000000000000000
2196293.3184072063000000 643350.3929958911600000
-118.5293900000000300 48.7408309999302960 0.0000000000000000
2196293.3184073586000000 643350.3929908055600000
-118.5293900000000300 48.7408309999163550 0.0000000000000000
2196293.3184075109000000 643350.3929857177400000
-118.5293900000000300 48.7408309999023930 0.0000000000000000
2196293.3184076636000000 643350.3929806276000000
-118.5293900000000300 48.7408309998884450 0.0000000000000000
*Simple Excel based analysis shows the following deltas on each step:*
X
dX
Y
dY
0,31840660000
0,39301622100
0,31840674950
0,00000014950
0,39301113831
-0,00000508269
0,31840690180
0,00000015230
0,39300605748
-0,00000508083
0,31840705410
0,00000015230
0,39300097420
-0,00000508328
0,31840720630
0,00000015220
0,39299589116
-0,00000508304
0,31840735860
0,00000015230
0,39299080556
-0,00000508560
0,31840751090
0,00000015230
0,39298571774
-0,00000508782
0,31840766360
0,00000015270
0,39298062760
-0,00000509014
I also tried other LCC CRSs the picture is similar. And I also tried
Mercator projection EPSG 3857 it does not seem to have such issue, after
full cycle of projections, it produces constant results in both directions.
Please let me know if it is known issue or it is WAD (Works As Designed) or
if I can do something with this.
PS
this is the second window output:
C:\PROJ\bin>cs2cs.exe -v +init=epsg:4269 +to +init=epsg:2285 -f %.16f
# ---- From Coordinate System ----
#Lat/long (Geodetic alias)
#
# +init=epsg:4269 +proj=longlat +datum=NAD83 +no_defs +ellps=GRS80
# +towgs84=0,0,0
# ---- To Coordinate System ----
#Lambert Conformal Conic
# Conic, Sph&Ell
# lat_1= and lat_2= or lat_0
# +init=epsg:2285 +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47
# +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +datum=NAD83
# +units=us-ft +no_defs +ellps=GRS80 +towgs84=0,0,0
-118.5293900000000300 48.7408309999860520
2196293.3184067495000000 643350.3930111383100000 0.0000000000000000
-118.5293900000000300 48.7408309999721180
2196293.3184069018000000 643350.3930060574800000 0.0000000000000000
-118.5293900000000300 48.7408309999581850
2196293.3184070541000000 643350.3930009742000000 0.0000000000000000
-118.5293900000000300 48.7408309999442440
2196293.3184072063000000 643350.3929958911600000 0.0000000000000000
-118.5293900000000300 48.7408309999302960
2196293.3184073586000000 643350.3929908055600000 0.0000000000000000
-118.5293900000000300 48.7408309999163550
2196293.3184075109000000 643350.3929857177400000 0.0000000000000000
-118.5293900000000300 48.7408309999023930
2196293.3184076636000000 643350.3929806276000000 0.0000000000000000
Thanks,
-Dmitry Mefed
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/proj/attachments/20171031/e406a14e/attachment-0001.htm
More information about the Proj
mailing list