[PROJ] Some (probably dumb) questions about cs2cs and projinfo
Even Rouault
even.rouault at spatialys.com
Tue Feb 24 02:27:07 PST 2026
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.
More information about the PROJ
mailing list