Andrea,


So... in this case I wonder which operation is used by cs2cs: the first one should not be usable because the grid shift file is not available, whereas if the second one was used, I guess it should have returned the same result as EPSG:23033 to EPSG:3065.

Not a dumb question at all. There's indeed a subtlety involved. cs2cs does internally the equivalent of projinfo "--grid-check discard_missing" if the PROJ_NETWORK=ON environment variable is not set. That is it won't bother consider grids that aren't available on the system. When "--grid-check discard_missing" is added , you'll see the following operation

""""

unknown id, Inverse of UTM zone 33N + ED50 to WGS 84 (1) + Inverse of ETRS89-ITA [IGM95] to WGS 84 (1) + UTM zone 33N, 11 m, unknown domain of validity

PROJ string:
+proj=pipeline
  +step +inv +proj=utm +zone=33 +ellps=intl
  +step +proj=push +v_3
  +step +proj=cart +ellps=intl
  +step +proj=helmert +x=-87 +y=-98 +z=-121
  +step +inv +proj=cart +ellps=GRS80
  +step +proj=pop +v_3
  +step +proj=utm +zone=33 +ellps=GRS80
"""

and that's the one used by cs2cs, as you can see when setting PROJ_DEBUG=2 (here's done the Bash way. On windows cmd, do "set PROJ_DEBUG=2" before)

$ echo 620000 4540000 | PROJ_DEBUG=2 bin/cs2cs EPSG:23033 EPSG:3065
pj_open_lib(proj.ini): call fopen(/home/even/proj/install-proj-master/share/proj/proj.ini) - succeeded pj_open_lib(proj.db): call fopen(/home/even/proj/install-proj-master/share/proj/proj.db) - succeeded pj_open_lib(35160622_47161840_E50_F89.gsb): call fopen(35160622_47161840_E50_F89.gsb) - failed pj_open_lib(35160622_47161840_F89_F00.gsb): call fopen(35160622_47161840_F89_F00.gsb) - failed pj_open_lib(35160622_47161840_E50_F00.gsb): call fopen(35160622_47161840_E50_F00.gsb) - failed pj_open_lib(35160622_47161840_R40_F89.gsb): call fopen(35160622_47161840_R40_F89.gsb) - failed pj_open_lib(35160622_47161840_R40_E50.gsb): call fopen(35160622_47161840_R40_E50.gsb) - failed Using coordinate operation Inverse of UTM zone 33N + ED50 to WGS 84 (1) + Inverse of ETRS89-ITA [IGM95] to WGS 84 (1) + UTM zone 33N
619926.95    4539810.94 0.00

So basically it goes through a WGS84 intermediate and uses a Helmert transformation that is an average for the whole ED50 datum (not optimized for Italy), following by a null geographic offset between WGS84 and IGM95.

Even

--
http://www.spatialys.com
My software is free, but my time generally not.

_______________________________________________
PROJ mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/proj

Reply via email to