EPSG
EPSG guidance note #7-2, https://epsg.org
2021-03-18
The relationship between two gravity-related coordinate reference systems may be available through gridded data files of offsets (sometimes called height differences). The vertical offset at a point is first interpolated within the grid of values using bi-linear interpolation. For interpolation within the offset grid, horizontal positions in the Interpolation CRS are used. The interpolated value is then applied as a correction parameter A. The interpolated offset is added to the height in the source CRS: H2 = H1 + A1>2 where H2 = value in the target vertical coordinate reference system. H1 = value in the source vertical coordinate reference system. A1>2 is the offset to be applied for the transformation from CRS 1 to CRS 2. Its value for the forward calculation is the value of the origin of the source CRS 1 in the target CRS 2. For the reverse transformation from CRS 2 to CRS 1, the same formula is used but with the sign of the offset A1>2 reversed: H1 = H2 + (–A1>2) Care! In the EPSG Dataset, offsets are additive (for the forward transformation). See EPSG Guidance Note 7-2, Implementation Notes - Offsets.
For coordinate transformation: NZVD2016 height to Dunedin 1958 height (2), code 9314: For a point at 44.42°S, 168.92°E (using CRS code 4167, NZGD2000, for interpolation) with NZVD2016 height of 50.000 metres, to find its Dunedin 1958 height: First obtain the offsets at each of the surrounding grid nodes: NW corner 44.4000°S, 168.9000°E, offset = 0.3028m NE corner 44.4000°S, 168.9333°E, offset = 0.3029m SE corner 44.4333°S, 168.9333°E, offset = 0.3055m SW corner 44.4333°S, 168.9000°E, offset = 0.3051m Then using bi-linear interpolation for 44.42°S, 168.92°E, offset = 0.304m Then Dunedin 1958 height = 50.000 + 0.304 = 50.304m. For the reverse calculation to find the NZVD2016 height from a point with Dunedin 1958 height of 50.304m: First obtain the offsets at each of the surrounding grid nodes again using coordinates referenced to NZGD2000 for interpolation: NW corner 44.4000°S, 168.9000°E, offset = 0.3028m NE corner 44.4000°S, 168.9333°E, offset = 0.3029m SE corner 44.4333°S, 168.9333°E, offset = 0.3055m SW corner 44.4333°S, 168.9000°E, offset = 0.3051m Then using bi-linear interpolation for 44.42°S, 168.92°E, offset = 0.304m Then NZVD2016 height = 50.304 - 0.304 = 50.000m.