[PROJ] geoid model + Helmert

Greg Troxel gdt at lexort.com
Sat May 3 17:38:00 PDT 2025


"Lesparre, Jochem" <Jochem.Lesparre at kadaster.nl> writes:

> Greg Troxel wrote:
>> A) Use the geoid model to get LHN95 height from the ETRS89 HAE, based on ETRS89 horizontal.
>> B) Take the original ETRS89 LLh and Helmert transform to CH1903+, and then discard the h, and swap in the LHN95 H from step A.
>
>> What I'm having trouble with is that for a station, I expect ETRS89 HAE and CH1903+ HAE to be different, and that therefore one has to do the
>> A/B procedure above.
>
> This is indeed the correct method, but this is not really possible
> with a single pipeline in PROJ. If two pipelines is not an option, one
> workaround is temporarily storing the height in the epoch field v_4. I
> don't like that, because we will publish a time-dependent
> transformation too.

Thanks.   It's nice to have confirmation that my understanding is ok.

>  > I don't understand how that relates to "Undoing" the grid shift. Perhaps these are two ways of expressing the same thing and that's what the push/pop is all about.
>
> This is another workaround, that we use. From global/regional to
> national/local datum (from bottom to top in the pipeline below): first
> apply the geoid model; save the height; undo the geoid model; apply
> the Helmert transformation; restore the saved height.
>
> From national/local to global/regional datum:
> +proj=pipeline
> +step +proj=push +v_3
> +step +proj=cart +ellps=intl
> +step +proj=helmert +x=... +y=... +z=... +rx=... +ry=... +rz=... +s=... +convention=coordinate_frame +exact
> +step +proj=cart +inv +ellps=GRS80
> +step +proj=vgridshift +grids=geoid.tif +omit_fwd
> +step +proj=pop +v_3
> +step +proj=vgridshift +inv +grids=geoid.tif
>
> I hope this clarifies what is meant with undoing the vgridshift,

Yes.  It seems to be exactly a way to merge the grid-derived vertical
with the local LLh from Helmert from regional LLh.  I was just confused
by undo.


I guess we need a way to express things like "do this pipeline and take
these components, and then this other pipeline and take these otehr
components" more cleanly.

Thanks for taking the time to explain things.

Greg



More information about the PROJ mailing list