[PROJ] geoid model + Helmert
Even Rouault
even.rouault at spatialys.com
Fri May 2 15:27:54 PDT 2025
Hi Javier,
yes, your analysis is fully correct , and your enhanced pipeline too.
However that would suck a bit to have to implement it like that as doing
and undoing the vgridshift is inefficient. The ideal solution would use
some storage space as we discussed a few months ago but couldn't reach a
conclusion how to implement that. For 3D operations only like that, we
could use the v_4 component as the temporary storage using push +v_3 /
axisswap order=3,4 / pop +v_3 trickery
Even
Le 02/05/2025 à 21:10, Javier Jimenez Shaw via PROJ a écrit :
> Hi
>
> This is a question to understand what should be more correct, not a
> request to change anything in PROJ. The numerical difference is very
> small.
>
> The 3D transformation from EPSG:4258 to EPSG:4150+5729 has two
> components: a grid file for the geoid model of LHN95 height,
> interpolated in ETRS89, and the Helmert transformation from ETRS89
> (EPSG:4258) to CH1903+ (EPSG:4150).
> The input of the Helmert transformation should be ellipsoidal heights,
> but in this pipeline they are orthometric heights. Right?
> Technically that would change also the horizontal output because of
> the change in elevation in the input of the Helmert (again, the
> difference is very small. 1 or 2 mm. I just want to understand it).
>
> PROJ_NETWORK=ON projinfo EPSG:4258 EPSG:4150+5729 -o proj --3d
>
> +proj=pipeline
> +step +proj=axisswap +order=2,1
> +step +proj=unitconvert +xy_in=deg +xy_out=rad
> +step +inv +proj=vgridshift
> +grids=ch_swisstopo_chgeo2004_ETRS89_LHN95.tif
> +multiplier=1
> +step +proj=push +v_3
> +step +proj=cart +ellps=GRS80
> +step +inv +proj=helmert +x=674.374 +y=15.056 +z=405.346
> +step +inv +proj=cart +ellps=bessel
> +step +proj=pop +v_3
> +step +proj=unitconvert +xy_in=rad +xy_out=deg
> +step +proj=axisswap +order=2,1
>
>
> Would this be more correct? (undoing the vgridshift before calling
> Helmert, but after "push +v_3")
>
> +proj=pipeline
> +step +proj=axisswap +order=2,1
> +step +proj=unitconvert +xy_in=deg +xy_out=rad
> +step +inv +proj=vgridshift
> +grids=ch_swisstopo_chgeo2004_ETRS89_LHN95.tif
> +multiplier=1
> +step +proj=push +v_3
> +step +proj=vgridshift +grids=ch_swisstopo_chgeo2004_ETRS89_LHN95.tif
> +multiplier=1
> +step +proj=cart +ellps=GRS80
> +step +inv +proj=helmert +x=674.374 +y=15.056 +z=405.346
> +step +inv +proj=cart +ellps=bessel
> +step +proj=pop +v_3
> +step +proj=unitconvert +xy_in=rad +xy_out=deg
> +step +proj=axisswap +order=2,1
>
> Thanks.
>
> Javier.
>
> PS to get output in meters use EPSG:2056, that uses the Swiss
> projection. I removed it to simplify the pipelines.
> Just replace the last two lines of the pipeline with
> +step +proj=somerc +lat_0=46.9524055555556 +lon_0=7.43958333333333
> +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel
>
>
> _______________________________________________
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20250503/942db60f/attachment.htm>
More information about the PROJ
mailing list