為什麼不同基準之間的海拔高度不能直接轉換?

我所指二維和三維之間的分別就是少了高度。由於有些基準和地圖投影是將地球簡化成不同的橢圓球,它們的高度是指某一點跟橢圓球的距離。而某地的高程標準並不一定以橢圓球上的高度定義,有的是以大地水準面定義,有的又以當地平均海水水位作定義。

大地水準面跟地球真實形狀、引力方向和密度有關,而不同地方的平均海水水位又會跟海流、潮水、氣壓、溫度、鹽度等情況各地也不同,另外又會加入一些人為的定義,這些都是不規則的,所以不同的高度標準之間並沒有簡單的數學關係,所以不能直接轉換。它們只能以測量等方式建立關係,高程基準因而與平面座標分開處理和轉換。(就算是大地座標、平面座標和橢圓球上的高度轉換也會有一定誤差,更何況是其他定義的高程轉換)

例如不同型號的 GPS 接收器測出的高度有可能是基於橢圓球(WGS84)或按照大地水準面換算出來的正高(如使用 EGM96 模型),它們都跟本地海拔高度會有一定差距(參考這裡的 NMEA 輸出),兩者不能直接轉換。

取自維基百科,以 Creative Commons Attribution-Share Alike 3.0 Unported 授權。1 是海洋,2 是基準所定義的橢圓球平面, 3 是當地鉛錘線,4 是地表,5 是大地水準面,還有本地定義的海平面沒有在圖中顯示。2 和測量點的垂直高度差為橢圓球上的高度,5 和測量點的垂直高度差為正高,而 2 和 5 之間的距離是大地水準面高,還有測量點與本地定義的海平面的垂直高度差為本地海拔高度:
730px-Geoida.svg

參考資料:
Wikipedia - Geodetic datum
Wikipedia - Geographic coordinate system
Wikipedia - Geoid
Which of EGM96 geoid or WGS84 ellipsoid fits the earth better?
GIS Dictionary - vertical geodetic datum
Vertical Datums, Elevations, and Heights
http://www.region2coastal.com/sandy/abfe/vertical-datum
Geographiclib - a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems
Online geoid calculations using the GeoidEval utility
Proj.4 - Vertical Datums
Education: A Tutorial on Datums
Ordnance Survery - Spreadsheet for coordinate calculations
Ordnance Survery - A guide to coordinate systems in Great Britain
香港大地測量基準說明
Center for Operational Oceanographic Products and Services

內部連結:
【目錄】地理/地理資訊系統/空間資料庫/大地測量內部連結

本文連結