我使用python pyproj将美国路易斯安那州地区的xyz值从NAD27+NGVD29高度(ftUS(转换为NAD27+NAVD88高度(ftUS(。所以,我没有改变水平投影(因为两者都是NAD27(,只有垂直投影从NGVD29变为NAVD88。然而,NAD83+NAVD88高度(ftUS(也应该起作用,因为NAD83和NAD27几乎相同。
这是一个输入高度为2.73英尺的点的示例代码(-898469444,31.23777778,2.73(
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)
因此,代码给出了2.73英尺的输出,但正确的结果应该是2.267英尺。这是NOAA的一个站点,我可以在那里验证输出应该是2.267ft。这是另一个用于基准转换的NOAA Vdatum站点,它也给了我2.267英尺。我非常感谢任何帮助。
有一个专门用于GIS问题的StackExchange。看看吧https://gis.stackexchange.com/questions/340392/vertical-datum-transformation-using-pyproj