0

I am using Python pyproj to convert xyz values of Louisiana, USA region from NAD27 + NGVD29 height (ftUS) to NAD27 + NAVD88 height (ftUS). So, I am not changing the horizontal projection (because it's NAD27 for both), only the vertical projection is changing from NGVD29 to NAVD88.However, NAD83 + NAVD88 height (ftUS) should also work because NAD83 and NAD27 are almost same.

here is a sample code for a point (-89.8469444,31.23777778,2.73) where input height is 2.73 ft.

from pyproj import Transformer
from pyproj import CRS
#"epsg:7406" for NAD27 + NGVD29 height (ftUS)

t = Transformer.from_crs("epsg:7406", "epsg:8744", always_xy=True)#x is lon, y is lat

t = Transformer.from_crs("epsg:5702", "epsg:6360", always_xy=True)# only z conversion

a=t.transform(-89.8469444,31.23777778,2.73) print(a) #CRS("epsg:8743") # Louisiana North

output:

(3745443.9938408486, 998779.7596375213, 2.73)

So, the code gives me 2.73 ft as output but the right result should be 2.267 ft. Here is a NOAA site where I can verify the output should be 2.267 ft(just select Horizontal+height, Geodetic lat-long and Orthometric tabs, unit of height to US Survey feet). Here is another NOAA Vdatum site for the datum conversion which also gives me 2.267 ft.

Vince
  • 20,017
  • 15
  • 45
  • 64
ZVY545
  • 119
  • 3
  • 1
    What happens if you replace and rename the pyproj GTX file with the appropriate GTX file from vDatum? Does that alter the resulting values? – GBG Nov 06 '22 at 16:32
  • 1
    This answer seems relevant and can likely help you debug some more at least https://gis.stackexchange.com/a/385738 – Shawn Nov 06 '22 at 16:56

0 Answers0