Roger, (sorry for the first name error in my previous email)
I see that three possible operations are listed. To be honest, I do
not know which one is most appropriate.
No worry. You're not alone. It depends on the context...
I am guessing that #1 is the default.
The grid based has the best accuracy, so when the grid is available, it
is indeed used
How would I choose one of the other sets of operations? Use the listed
strings as the destination CRS? Or is there some other way to select
it? Should the reported altitude always be over the new ellipsoid?
If you want 3D operations, you should use the 3D versions of the CRS.
You can add the --3d flag to projinfo to force promotion. But in the
case of DHDN there's no official 3D version of the CRS in the EPSG
dataset, so what PROJ will report may be dubious.
If you try "projinfo EPSG:4326 EPSG:5677 --spatial-test intersects
--grid-check none --3d --single-line -o PROJ", the second operation
will be:
+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert
+xy_in=deg +z_in=m +xy_out=rad +z_out=m +step +proj=cart +ellps=WGS84
+step +inv +proj=helmert +x=598.1 +y=73.7 +z=418.2 +rx=0.202 +ry=0.045
+rz=-2.455 +s=6.7 +convention=position_vector +step +inv +proj=cart
+ellps=bessel +step +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000
+y_0=0 +ellps=bessel
And you can create a PJ object from it with
myTransf = proj_create(ctxt, "+proj=pipeline +step +proj=axisswap
+order=2,1 +step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad
+z_out=m +step +proj=cart +ellps=WGS84 +step +inv +proj=helmert +x=598.1
+y=73.7 +z=418.2 +rx=0.202 +ry=0.045 +rz=-2.455 +s=6.7
+convention=position_vector +step +inv +proj=cart +ellps=bessel +step
+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel")
Even
Le 24/09/2025 à 08:57, Roger Oberholtzer via PROJ a écrit :
I am trying to project some EPSG:4326 locations (from a GPS) to
EPSG:5677 (DHDN Germany Zone 3). I have sample data from the
German road authorities (BASt). They feel that the locations
provided by proj (9.6.0) are consistently 1.5 meters or so away
from that they expect. They were also expecting a change in
altitude as the ellipsoid was different. I have implemented this
with something like this:
myCRS = proj_create_crs_to_crs( 0, "EPSG:4326", "EPSG:5677", 0);
And then calling proj_trans(myCRS, PJ_FWD, PJ_COORD);
My question is if I need to do more than this as EPSG:5677 is
ellipsoid Bessel 1841.
--
Roger Oberholtzer
_______________________________________________
PROJ mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/proj
--
http://www.spatialys.com
My software is free, but my time generally not.
--
Roger Oberholtzer
--
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