[PROJ] Different transformation results between PROJ 9.0.0 and PROJ 9.0.1
Even Rouault
even.rouault at spatialys.com
Thu Aug 4 10:51:41 PDT 2022
Alexander,
in 9.0.0 the operation that gets applied is:
unknown id, Inverse of WGS 84 to EGM96 height (1) + Inverse of NAD83 to
WGS 84 (43) + NAD83 to NAD83(HARN) (3) + NAD83(HARN) to NAVD88 height
(5) + Inverse of NAD83 to NAD83(HARN) (3) + SPCS83 California zone 1 (US
Survey feet), 3.15 m, unknown domain of validity, at least one grid missing
PROJ string:
+proj=pipeline
+step +proj=axisswap +order=2,1
+step +proj=unitconvert +xy_in=deg +xy_out=rad
+step +proj=vgridshift +grids=us_nga_egm96_15.tif +multiplier=1
+step +inv +proj=vgridshift +grids=us_noaa_g1999u05.tif +multiplier=1
+step +inv +proj=hgridshift +grids=us_noaa_cnhpgn.tif
+step +proj=lcc +lat_0=39.3333333333333 +lon_0=-122
+lat_1=41.6666666666667
+lat_2=40 +x_0=2000000.0001016 +y_0=500000.0001016 +ellps=GRS80
+step +proj=unitconvert +xy_in=m +xy_out=us-ft
and in 9.0.1/master:
unknown id, Inverse of WGS 84 to EGM96 height (1) + Inverse of
NAD83(HARN) to WGS 84 (3) + NAD83(HARN) to NAVD88 height (5) + Inverse
of NAD83 to NAD83(HARN) (3) + SPCS83 California zone 1 (US Survey feet),
2.1 m, unknown domain of validity, at least one grid missing
PROJ string:
+proj=pipeline
+step +proj=axisswap +order=2,1
+step +proj=unitconvert +xy_in=deg +xy_out=rad
+step +proj=vgridshift +grids=us_nga_egm96_15.tif +multiplier=1
+step +proj=cart +ellps=WGS84
+step +inv +proj=helmert +x=-0.991 +y=1.9072 +z=0.5129
+rx=-0.0257899075194932
+ry=-0.0096500989602704 +rz=-0.0116599432323421 +s=0
+convention=coordinate_frame
+step +inv +proj=cart +ellps=GRS80
+step +inv +proj=vgridshift +grids=us_noaa_g1999u05.tif +multiplier=1
+step +inv +proj=hgridshift +grids=us_noaa_cnhpgn.tif
+step +proj=lcc +lat_0=39.3333333333333 +lon_0=-122
+lat_1=41.6666666666667
+lat_2=40 +x_0=2000000.0001016 +y_0=500000.0001016 +ellps=GRS80
+step +proj=unitconvert +xy_in=m +xy_out=us-ft
So the difference is that in 9.0.1/master NAD83(HARN) to WGS 84
transformation is modeled by a Helmert transformation, whereas in 9.0
its is a null transformation. This is likely due to a new record in the
EPSG database incorporated in >= 9.0.1
(I got this by looking at the pipeline name emitted by PROJ_DEBUG=2 on
cs2cs, and then getting the list of transformations from projinfo)
Regarding the differences between specifying or not --bbox, this was a
bug for which I've queued a fix in
https://github.com/OSGeo/PROJ/pull/3282. With that fix I get the same
result when specifying --bbox -122.1,40.9,-121.9,41.1 or not
Even
Le 04/08/2022 à 11:34, Alexander Nehrbass via PROJ a écrit :
>
> Hi everyone,
>
> I’m observing a significant difference between PROJ 9.0.0 and PROJ
> 9.0.1/master[c482ea8] when doing some coordinate transformations:
>
> $ echo 41.0 -122.0 0.0 | PROJ_NETWORK=ON ./cs2cs EPSG:4326+5773
> EPSG:2225+5703 -d 8
>
> 6561666.44282083 2247576.19215388 0.21377754 (in PROJ 9.0.0)
> 6561670.17486934 2247574.26932194 0.70338464 (PROJ 9.0.1/master)
>
> When running these commands with PROJ_DEBUG=3, I can see that
> different transformation pipelines are being used. PROJ 9.0.0 uses an
> 11 step pipeline whereas PROJ 9.0.1 uses a 7 step pipeline.
>
> While trying to understand where this difference might come from, I
> started to play around with the –bbox option. Doing the above
> transformation with a bounding box surprisingly does NOT lead to
> different transformation results between PROJ 9.0.0 and PROJ
> 9.0.1/master:
>
> $ echo 41.0 -122.0 0.0 | PROJ_NETWORK=ON ./cs2cs EPSG:4326+5773
> EPSG:2225+5703 -d 8 --bbox -122.1,40.9,-121.9,41.1
>
> 6561666.44282083 2247576.19215388 0.31567764
>
> As you can see the horizontal coordinates are the same as when doing
> the transformation without the bounding box in PROJ 9.0.0, however
> there is a difference in the vertical coordinate. I also tried
> changing the size of the bounding box which didn’t seem to have an
> influence.
>
> My questions at the moment are:
> 1. Where does the difference between PROJ 9.0.0 and 9.0.1 when doing
> the transformation without the bounding box come from?
> 2. How does using the bbox option affect the transformation results?
> In particular:
> 2a. Why are the differences between PROJ 9.0.0 and 9.0.1 gone when
> using a bounding box?
> 2b. Why does the vertical coordinate in PROJ 9.0.0 differ when doing
> the transformation with and without the bounding box?
> 3. Related bonus question: I was under the impression that passing the
> -bbox option to projinfo would result in projinfo returning exactly
> one transformation. However, this seems in correct. Was I under the
> wrong impression? E.g.:
>
> $ ./projinfo -s EPSG:4326+5773 -t EPSG:2225+5703 --spatial-test
> intersects --bbox -122.1,40.9,-121.9,41.1
>
>
> Any help with finding answers to these question is highly appreciated.
>
> Thanks in advance and best regards,
> Alex
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/proj
--
http://www.spatialys.com
My software is free, but my time generally not.
More information about the PROJ
mailing list