日报标题:外星上没有海和「海拔」,怎么确定山的高度?
首先,题主说的地球的情况是不很准确的。
地球上,我们有海洋,有海平面,所以以此为基准,说某个山海拔 8848 之类的。
虽然海拔的定义确实是某地于海平面的高度差,但由于每个地方每个时间段的海平面高度都有差异,所以实际上获得一个统一的高程起点要复杂得多,并不是想当然地认为是从当地附近的海平面开始测量的高度。
其次,虽然行星表面没有海洋,但对行星高程的定义并不是新建了一套系统,而依然参考的是地球上高程和坐标定义的标准,或者可以说,实质上并没有什么不同,所以这个问题还是得从地球的高程定义开始说起才能说得清楚。需要强调的一点是:高程基准面的定义本质上是用一个参考面来近似表示实际的星体表面形状,但归根结底,每种定义下的高程面理论上都有无数个,我们只不过是为了统一起见人为地选定了其中一个作为高程起点而已。
1. 地球的高程系统
地球的高程基准面主要有两种基准:参考椭球面 reference ellipsoid和大地水准面 geoid,两者可以相互换算。
参考椭球面就是用一个(或者说无数个)椭球来近似代替地球的形状,也就是说这是一个纯几何的基准面,定义了高程起始面之后,地面每个点的实际高程就是和这个起始面的差值。对地球这种有江河湖海生物活动的星球来说,这个基准面在实际操作上不是很好使——几何高程低的地方的重力位有时候比几何高程高的地方还高,这就是在有些地方我们能看到的“水往高处流”的景象了。所以在实际测量中,我们更需要一个物理上的基准面——大地水准面。
大地水准面本质上是一个(或者说无数个)重力等位面,也就是说如果我们能够精确获知地球(或者任何星体)的全球重力场,那么就可以推算出任一个重力等位面(后面会细说),基于大地水准面的高程叫做正高。
但实际上,地球没有这么做。一方面是因为全球重力场的获取在重力卫星之前都是极其困难的,另一方面更重要的是,地球有一个天然的重力等位面——平均海水面(mean sea level,MSL)。显然,这个平均海水面是因时因地而异的,必须统一之后才能进行不同地物间的高程比较。实际操作中不同国家会选择不同的标准作为本国的大地水准面起点,比如中国 1956 年以后统一采用的黄海平均海面,就是规定以青岛验潮站的 1950-1956 年潮汐观测资料计算的平均海面作为高程基准面。标高 8844 米的珠穆朗玛峰就是以黄海平均海面为基准的。(这是 2005 年中国国家测绘局测量的岩面高,而尼泊尔则使用传统的雪盖高就是 8848 米,2010 年起两国官方互相承认对方的测量数据。)多说一句,珠穆朗玛峰虽然是世界海拔最高的山峰,但在不同的高程系统或者高程基准面之下,它却未必总是“最高”的——维基上说峰顶距离地心最远的一点位于南美洲的钦博拉索山(如果参考椭球采用球面的话,这个就相当于比较的是椭球高了);而从海底山脚算起,世界最高的山峰则是夏威夷的冒纳凯阿火山,高度为 10203 米。
(图:改编自ICA course on Toponymy)
传统的高程测量采取的是水准仪高程传递的方式:一点一点累积测出目标点和基准点的高程差,想测哪点就把水准仪架到哪里去测。不用多说,这种方式显然是费时费力而且覆盖性和更新度都很差的。
(图:水准仪使用)
2. 空间直角坐标系和大地坐标系(两者都基于参考椭球面)
随着 GPS 和测高卫星的广泛应用,高精度全球覆盖的地球高程信息获取成为可能。2005 年中国国家测绘局测量的珠穆朗玛峰海拔就是采用了经典测量与 GPS 测量结合的技术方案。使用 GPS 和测高卫星测量高程就意味着,我们还是必须先依赖于一个基于参考椭球面的几何坐标系统,然后才能进行空间直角坐标到大地坐标的转化。目前世界统一的地球坐标系统是 WGS84(World Geodetic System):
以地球质心为坐标原点,以过原点垂直于地球自转轴的大圆为 0°纬线,以国际地球自转服务(IERS)维护的本初子午线为 0°经线,以此定义了 XYZ 轴
这一坐标系统虽然最初建立于 1984 年,但在 2004 年已经更新过一次了。
(图:改编自维基World Geodetic System)
于是,地球上某个点的坐标就可以通过空间直角坐标系(X, Y, Z)或者大地坐标系(B, L, H)来表示(B 为大地纬度,同下面的 ,L 为大地经度,同下面的 ,H 为大地高),前者是 GPS 的观测解算坐标,后者就是我们日常读地图或者定位自己位置的时候最常用的经纬度坐标了。也就是说,当我们想通过 GPS 或者测高卫星这样的手段来获取全球高精度覆盖、实时更新的高程信息的时候,我们首先得到的是基于参考椭球面的空间直角坐标或者大地高 H,然后才可以转化为正高。
3. 重力场推算出的重力等位面
前面 1.中说了,如果我们知道全球重力场,那么就可以推算出任一个理论上的重力等位面。不考虑自转项的情况下过地球外部某点得重力位 V 一般通过球谐函数来表示(TeX 这个公式真心敲累死我了 orz):
球谐函数是基于极坐标系的表达,其中 是某点到参考系原点(质心)的距离, 是参考椭球的半长轴,这个时候的参考椭球面一般取球面,所以实际上就是对应星体的参考半径,也就是
(写了这么多主角才隆重登场的赶脚……), 和 是大地经纬度, 为展开的阶数, 是完全正规化的伴随勒让德多项式(Associated Legendre polynomials), 和 是完全正规化的球谐系数(通过实际观测数据反算而来)。
球谐展开本质上是一个对距离倒数的级数展开,零阶展开实际上就是高中学的 ,可以简单理解为把某个量分解为 n 多个数的级数求和就可以了, 越大球谐展开的分辨率就越高。
4. 拓展到其他星体
对于其他星体,尤其是月球火星这种已经有海量探测器数据的星体,我们已经拥有足够充分的重力场数据了(如何对一颗星体进行详细观测? - haibaraemily 的回答 - 知乎),所以由 3.所说,如果我们想要在其他星体(以下都用火星来举例)上建立高程系统,我们完全可以构建出具有物理意义的大地水准面。
但实际操作中,我们也没有这么做。因为 1) 其他星体没有液态海洋,没有天然的等位面起点,而且就算通过理论计算给出具有物理意义的正高,实际操作中目前也没啥用处;2) 既然用处不大,等位面的获取也不是那么便利,更重要的是每个绝对高程点减掉一个几何上参差不齐的参考面,操作起来也有点麻烦,视觉效果看着也不直观。所以其他星体的高程系统都是用的参考椭球面的椭球高,而且一般是看做球面,参考半径与重力场球谐模型的参考半径 统一(就是 3.中说的那个,每个星体的重力场球谐模型中都会给出这个参考半径值的,直接拿来用就可以了,火星统一采用的是 ),去掉这个统一的参考半径之后才有这样的地形图,奥林帕斯山的标高约有 22km。
(图:改编自维基MOLA Highres topography)
5. 总结
地球:多种高程系统共存且可以相互转化,但海拔统一采用的是相对于大地水准面的正高系统,我国采用的大地水准面起点是黄海高程基准面
其他星体:一样可以采用多种高程系统,但出于表达上的便利性,以及没有什么特别的实际需要,所以一般统一采用一个参考(椭)球面的半径作为参考面,且与重力场球谐系数的参考半径统一。