Oh, I'd be interested in the cause of this too, please, as a user located in Aus who updated to PROJ 9 not too long ago.
On Mon, Jan 8, 2024 at 10:47 AM Robert Denham via PROJ <[email protected]> wrote: > This is probably just an improvement, but I was wondering if someone could > help explain minor differences we're observing when transforming > coordinates from WGS 84 geographic coordinates to projected coordinates in > Australia. > > For example, if I do: > > echo -27.495159464576993 153.02971160860926| > docker run -i --rm --env PROJ_DEBUG=4 --env PROJ_NETWORK=ON > osgeo/proj:9.2.0 \ > cs2cs epsg:4326 +to epsg:28356 > > I get: > > pj_open_lib(proj.ini): call fopen(/usr/share/proj/proj.ini) - succeeded > pj_open_lib(proj.db): call fopen(/usr/share/proj/proj.db) - succeeded > pj_open_lib(au_icsm_GDA94_GDA2020_conformal_and_distortion.tif): call > fopen(/usr/share/proj/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif) - > succeeded > pj_open_lib(au_icsm_GDA94_GDA2020_conformal_and_distortion.tif): call > fopen(/usr/share/proj/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif) - > succeeded > 502934.82 6958719.00 0.00 > Using coordinate operation Inverse of GDA94 to WGS 84 (1) + Map Grid of > Australia zone 56 > > But if I do the same with version 9.1.1: > > echo -27.495159464576993 153.02971160860926| > docker run -i --rm --env PROJ_DEBUG=4 --env PROJ_NETWORK=ON > osgeo/proj:9.1.1 \ > cs2cs epsg:4326 +to epsg:28356 > > I get a slightly different output: > > 502934.23 6958717.61 0.00 > > > And a large amount of output (see below) > > I just wanted to check whether this was expected behaviour, and if the > difference in the coordinate transformation could be interpreted as an > improvement? > I checked other projected coordinates systems, including > > * GDA2020 Zone 56 (EPSG:7856) > * Australian Albers GDA94 (EPSG:3755) > * Australian Albers GDA2020 (EPSG:9473) > > Each of these give slightly different results under proj 9.1.1 and 9.2.0. > The only relevant change I could see in proj was EPSG updated to EPSG > 10.082 in proj 9.2. I assume this is the source of the differences? > > > Thanks > Robert > > > > (output from cs2cs with proj 9.1.1 follows) > > pj_open_lib(proj.ini): call fopen(/usr/share/proj/proj.ini) - succeeded > pj_open_lib(proj.db): call fopen(/usr/share/proj/proj.db) - succeeded > pj_open_lib(au_icsm_GDA94_GDA2020_conformal_and_distortion.tif): call > fopen(/usr/share/proj/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif) - > succeeded > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: ellps=GRS80 > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: > pipeline: Pipeline: Building arg list for step no. 0 > pipeline: Pipeline: init - proj=axisswap, 2 > pipeline: order=2,1 > axisswap: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > axisswap: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 0 (proj=axisswap) at 0x562104a31020 > pipeline: Pipeline at [0x562104bc7f60]: step at [0x562104a31020] > (proj=axisswap) done > pipeline: Pipeline: Building arg list for step no. 1 > pipeline: Pipeline: init - proj=unitconvert, 3 > pipeline: xy_in=deg > pipeline: xy_out=rad > unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > unitconvert: pj_ellipsoid - final: ellps=GRS80 > unitconvert: xy_in unit: Degree > unitconvert: xy_out unit: Radian > pipeline: Pipeline: Step 1 (proj=unitconvert) at 0x56210470c510 > pipeline: Pipeline at [0x562104bc7f60]: step at [0x56210470c510] > (proj=unitconvert) done > pipeline: Pipeline: Building arg list for step no. 2 > pipeline: Pipeline: init - proj=utm, 4 > pipeline: zone=56 > pipeline: south > pipeline: ellps=GRS80 > utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > utm: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 2 (proj=utm) at 0x562104b90340 > pipeline: Pipeline at [0x562104bc7f60]: step at [0x562104b90340] > (proj=utm) done > pipeline: Pipeline: 3 steps built. Determining i/o characteristics > axisswap: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > axisswap: pj_ellipsoid - final: ellps=GRS80 > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: ellps=GRS80 > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: > pipeline: Pipeline: Building arg list for step no. 0 > pipeline: Pipeline: init - proj=unitconvert, 3 > pipeline: xy_in=deg > pipeline: xy_out=rad > unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > unitconvert: pj_ellipsoid - final: ellps=GRS80 > unitconvert: xy_in unit: Degree > unitconvert: xy_out unit: Radian > pipeline: Pipeline: Step 0 (proj=unitconvert) at 0x562104bc82a0 > pipeline: Pipeline at [0x562104b87920]: step at [0x562104bc82a0] > (proj=unitconvert) done > pipeline: Pipeline: Building arg list for step no. 1 > pipeline: Pipeline: init - proj=utm, 4 > pipeline: zone=56 > pipeline: south > pipeline: ellps=GRS80 > utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > utm: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 1 (proj=utm) at 0x562104b94000 > pipeline: Pipeline at [0x562104b87920]: step at [0x562104b94000] > (proj=utm) done > pipeline: Pipeline: 2 steps built. Determining i/o characteristics > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: ellps=GRS80 > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: > pipeline: Pipeline: Building arg list for step no. 0 > pipeline: Pipeline: init - proj=axisswap, 2 > pipeline: order=2,1 > axisswap: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > axisswap: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 0 (proj=axisswap) at 0x562104ac94a0 > pipeline: Pipeline at [0x562104c029b0]: step at [0x562104ac94a0] > (proj=axisswap) done > pipeline: Pipeline: Building arg list for step no. 1 > pipeline: Pipeline: init - proj=unitconvert, 3 > pipeline: xy_in=deg > pipeline: xy_out=rad > unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > unitconvert: pj_ellipsoid - final: ellps=GRS80 > unitconvert: xy_in unit: Degree > unitconvert: xy_out unit: Radian > pipeline: Pipeline: Step 1 (proj=unitconvert) at 0x562104b94d60 > pipeline: Pipeline at [0x562104c029b0]: step at [0x562104b94d60] > (proj=unitconvert) done > pipeline: Pipeline: Building arg list for step no. 2 > pipeline: Pipeline: init - proj=utm, 4 > pipeline: zone=56 > pipeline: south > pipeline: ellps=GRS80 > utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > utm: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 2 (proj=utm) at 0x562104b952a0 > pipeline: Pipeline at [0x562104c029b0]: step at [0x562104b952a0] > (proj=utm) done > pipeline: Pipeline: 3 steps built. Determining i/o characteristics > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: ellps=WGS84 > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: > pipeline: Pipeline: Building arg list for step no. 0 > pipeline: Pipeline: init - proj=axisswap, 2 > pipeline: order=2,1 > axisswap: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > axisswap: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 0 (proj=axisswap) at 0x562104b976f0 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b976f0] > (proj=axisswap) done > pipeline: Pipeline: Building arg list for step no. 1 > pipeline: Pipeline: init - proj=unitconvert, 3 > pipeline: xy_in=deg > pipeline: xy_out=rad > unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > unitconvert: pj_ellipsoid - final: ellps=GRS80 > unitconvert: xy_in unit: Degree > unitconvert: xy_out unit: Radian > pipeline: Pipeline: Step 1 (proj=unitconvert) at 0x562104b97cc0 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b97cc0] > (proj=unitconvert) done > pipeline: Pipeline: Building arg list for step no. 2 > pipeline: Pipeline: init - proj=push, 2 > pipeline: v_3 > push: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > push: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 2 (proj=push) at 0x562104b98290 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b98290] > (proj=push) done > pipeline: Pipeline: Building arg list for step no. 3 > pipeline: Pipeline: init - proj=cart, 2 > pipeline: ellps=WGS84 > cart: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > cart: pj_ellipsoid - final: ellps=WGS84 > pipeline: Pipeline: Step 3 (proj=cart) at 0x562104b98810 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b98810] > (proj=cart) done > pipeline: Pipeline: Building arg list for step no. 4 > pipeline: Pipeline: init - inv, 10 > pipeline: proj=helmert > pipeline: x=0.06155 > pipeline: y=-0.01087 > pipeline: z=-0.04019 > pipeline: rx=-0.0394924 > pipeline: ry=-0.0327221 > pipeline: rz=-0.0328979 > pipeline: s=-0.009994 > pipeline: convention=coordinate_frame > helmert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > helmert: pj_ellipsoid - final: ellps=GRS80 > helmert: Helmert parameters: > helmert: x= 0.06155 y= -0.01087 z= -0.04019 > helmert: rx= -0.03949 ry= -0.03272 rz= -0.03290 > helmert: s= -0.00999 exact=0 convention=coordinate_frame > helmert: dx= 0.00000 dy= 0.00000 dz= 0.00000 > helmert: drx= 0.00000 dry= 0.00000 drz= 0.00000 > helmert: ds= 0.00000 t_epoch= 0.00000 > helmert: Transformation parameters for observation t_obs=0 (t_epoch=0): > helmert: x: 0.06155 > helmert: y: -0.01087 > helmert: z: -0.04019 > helmert: s: -9.994e-09 > helmert: rx: -1.91465e-07 > helmert: ry: -1.58641e-07 > helmert: rz: -1.59494e-07 > helmert: theta: 0 > helmert: Rotation Matrix: > helmert: | 1 -1.59494e-07 1.58641e-07 | > helmert: | 1.59494e-07 1 -1.91465e-07 | > helmert: | -1.58641e-07 1.91465e-07 1 | > pipeline: Pipeline: Step 4 (inv) at 0x562104b98e90 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b98e90] (inv) > done > pipeline: Pipeline: Building arg list for step no. 5 > pipeline: Pipeline: init - inv, 3 > pipeline: proj=cart > pipeline: ellps=GRS80 > cart: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > cart: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 5 (inv) at 0x562104b99560 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b99560] (inv) > done > pipeline: Pipeline: Building arg list for step no. 6 > pipeline: Pipeline: init - proj=pop, 2 > pipeline: v_3 > pop: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pop: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 6 (proj=pop) at 0x562104b99ac0 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b99ac0] > (proj=pop) done > pipeline: Pipeline: Building arg list for step no. 7 > pipeline: Pipeline: init - proj=utm, 4 > pipeline: zone=56 > pipeline: south > pipeline: ellps=GRS80 > utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > utm: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 7 (proj=utm) at 0x562104b9a070 > pipeline: Pipeline at [0x562104b96660]: step at [0x562104b9a070] > (proj=utm) done > pipeline: Pipeline: 8 steps built. Determining i/o characteristics > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: ellps=GRS80 > pipeline: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > pipeline: pj_ellipsoid - final: > pipeline: Pipeline: Building arg list for step no. 0 > pipeline: Pipeline: init - proj=axisswap, 2 > pipeline: order=2,1 > axisswap: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > axisswap: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 0 (proj=axisswap) at 0x562104b9b790 > pipeline: Pipeline at [0x562104b9a890]: step at [0x562104b9b790] > (proj=axisswap) done > pipeline: Pipeline: Building arg list for step no. 1 > pipeline: Pipeline: init - proj=unitconvert, 3 > pipeline: xy_in=deg > pipeline: xy_out=rad > unitconvert: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > unitconvert: pj_ellipsoid - final: ellps=GRS80 > unitconvert: xy_in unit: Degree > unitconvert: xy_out unit: Radian > pipeline: Pipeline: Step 1 (proj=unitconvert) at 0x562104b9bd60 > pipeline: Pipeline at [0x562104b9a890]: step at [0x562104b9bd60] > (proj=unitconvert) done > pipeline: Pipeline: Building arg list for step no. 2 > pipeline: Pipeline: init - inv, 3 > pipeline: proj=hgridshift > pipeline: grids=au_icsm_GDA94_GDA2020_conformal_and_distortion.tif > hgridshift: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > hgridshift: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 2 (inv) at 0x562104b9c380 > pipeline: Pipeline at [0x562104b9a890]: step at [0x562104b9c380] (inv) > done > pipeline: Pipeline: Building arg list for step no. 3 > pipeline: Pipeline: init - proj=utm, 4 > pipeline: zone=56 > pipeline: south > pipeline: ellps=GRS80 > utm: pj_ellipsoid - final: a=6378137.000 f=1/298.257, errno=0 > utm: pj_ellipsoid - final: ellps=GRS80 > pipeline: Pipeline: Step 3 (proj=utm) at 0x562104b9c950 > pipeline: Pipeline at [0x562104b9a890]: step at [0x562104b9c950] > (proj=utm) done > pipeline: Pipeline: 4 steps built. Determining i/o characteristics > Using coordinate operation Inverse of GDA94 to WGS 84 (3) + Map Grid of > Australia zone 56 > pj_open_lib(au_icsm_GDA94_GDA2020_conformal_and_distortion.tif): call > fopen(/usr/share/proj/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif) - > succeeded > 502934.23 6958717.61 0.00 > > > > > > > > > > R > > ------------------------------ > The information in this email together with any attachments is intended > only for the person or entity to which it is addressed and may contain > confidential and/or privileged material. There is no waiver of any > confidentiality/privilege by your inadvertent receipt of this material. > Any form of review, disclosure, modification, distribution and/or > publication of this email message is prohibited, unless as a necessary part > of Departmental business. > If you have received this message in error, you are asked to inform the > sender as quickly as possible and delete this message and any copies of > this message from your computer and/or your computer system network. > ------------------------------ > _______________________________________________ > PROJ mailing list > [email protected] > https://lists.osgeo.org/mailman/listinfo/proj >
_______________________________________________ PROJ mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/proj
