ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

GNSS高程测量与似大地水准面:如何把大地高转换为正常高

GNSS高程测量与似大地水准面:如何把大地高转换为正常高 去年在西南某山区做形变监测项目GNSS组一天能测十几个控制点可为了把这些点的海拔定下来项目上硬是排了半个多月的三等水准测量。烈日底下扛着水准仪顺着盘山便道一段一段往前挪后视减前视一个转点接一个转点晚上回到驻地还要算测段闭合差。当时我就一直在想同一个问题为什么GNSS把平面坐标做得又轻松又准高程方向却还是要靠水准仪一步一个脚印地量答案其实不复杂——GNSS给的是大地高而工程上要的是海拔意义上的正常高中间差着一条说大不大、说小不小的空间曲面也就是似大地水准面。这篇文章把水准测量和似大地水准面的关系掰开揉碎讲清楚适合工程测量员、GNSS应用工程师、地信专业的学生也适合所有被高程系统绕晕过的朋友。看懂之后你至少能明白手头的高程成果到底是怎么来的也知道怎么把GNSS测的大地高转换成可以直接用的海拔。1. 水准测量的本质后视减前视累计出的高差背后藏着基准面问题1.1 一测站的几何观测逻辑水准测量的基本原理说穿了特别朴素用水平视线去量两根竖直标尺之间的高差。仪器架在中间后视立尺点A前视立尺点B读后视读数a和前视读数b那么A到B的高差就是h a – b如果a大于b说明前视点比后视点低高差为正反之高差为负。一个测站只能解决视线能看清的范围所以长距离测量就要不断转点、搬站把一站一站的高差累加起来得到整条水准路线的总高差。做二等水准的时候观测手簿上记录的项目比这多得多前后视距、基辅分划读数差、基辅差、测段往返测高差不符值……但如果你把这些要求全部拨开核心逻辑仍然是每一站读出两个数相减得高差最后累加。前后视距尽量相等这条规范要求本质上就是为了抵消仪器i角误差、地球曲率以及大气折光这三样东西的影响。视线在空气中并不是严格直线长视距尤其明显只有让前后视距大致相等这些误差才会在相减中抵消掉。1.2 高差必须挂在某个零面上不过这里有个容易被忽略的问题水准测量只能告诉你两个点谁高谁低、差多少它回答不了这个点到底海拔多少米。要回答海拔必须先把高差累加结果挂到一个全国统一的高程起算面上也就是常说的高程基准。我国现行的高程基准是1985国家高程基准。它的来历是这样的利用青岛验潮站1952年到1979年共27年的潮汐观测资料计算出黄海平均海面把这个平均海面定义为高程起算的零面然后在青岛观象山上埋设水准原点通过精密水准测量把原点的海拔确定下来。全国所有水准点的高程理论上都是从这个原点出发沿着水准路线一级一级传递过去的。所以你在测绘院里看到1985国家高程基准这几个字一定要意识到它不是一句空话而是一条可以追溯到青岛原点的完整传递链。南方一个县城的水准点和北方一个矿区的水准点之所以能在同一套高程系统里比较靠的就是这条跨越几千公里的水准网。1.3 一个隐含前提水准面差不多平行水准测量还有一个隐含前提平时没人提但测量长了就绕不开当你把每个测站的高差累加成海拔差时你其实默认了一件事——沿途每个测站的局部水准面是差不多平行的。但真实地球重力场分布不均匀水准面并不是一组严格的平行面。尤其是在南北跨度大或者高差大的测区两条不同位置的水准面之间是有微小的不平行性的。这会导致一个现场做水准的人都会遇到的现实问题一条水准闭合环理论上闭合差应该为零但实际上往往出现一个微小差值而且这个差值不能完全用观测误差解释。要消除它就得在数据后处理时加一项正常位水准面不平行性改正也就是很多规范里写的高程异常改正或重力改正项。顺便说一句这在低等级水准测量中经常被忽略。三、四等水准在某些地区测下来闭合差不大就直接平差了这在平原地区问题不大但在西部高差大的测区一疏忽可能就换来几十毫米甚至更大的系统性偏差。我这个项目后来复核时就发现一条北向测段里藏着一笔约3厘米的不平行性影响当时心里一激灵好在前面的平差没有把这条测段当成多余观测处理否则成果就会悄悄偏离正确值。2. 三张面椭球面、大地水准面、似大地水准面到底差在哪2.1 三张面的定义、用途与空间关系搞懂高程系统必须先在脑子里建立三张面的立体图景。坐标系和高程扯不清楚多半就是因为这三张面在脑子里糊成了一片。第一张面是参考椭球面。它是一个规则的数学旋转椭球有确定的长半轴、短半轴和扁率比如CGCS2000椭球、WGS84椭球。GNSS接收机解算出来的经纬度和大地高就是相对于参考椭球面的坐标值。椭球面最大的好处是规则、可计算、全球统一GPS卫星轨道的计算、控制网平差都离不开它。第二张面是大地水准面。它是与全球平均海面最贴近的一个重力等位面并且把它延伸到大洋和大陆之下。真实的地球由于内部物质分布不均大地水准面是个不规则的起伏曲面山谷、洋脊、矿体都会让它向某个方向鼓一点或者瘪一点。第三张面是似大地水准面。它是正常高系统的高程起算面也是这篇内容的主角。似大地水准面与大地水准面有差别但它是通过地面点的正常高来定义的不依赖地球内部密度的假设可以精确计算。它们之间的关键距离是两个参考椭球面到大地水准面的距离叫大地水准面差距符号N参考椭球面到似大地水准面的距离叫高程异常符号ζ。这两个概念别混用混了就会把正高和正常高也搞混。2.2 为什么不能直接拿椭球面当海拔零面有人会问既然椭球面计算方便为什么不干脆把椭球面当成海拔零面让GNSS直接出海拔原因很简单椭球面不是重力等位面。水不会顺着椭球面流重力方向也不垂直于椭球面。你在野外用水准仪测高差水平视线是垂直于重力方向的你在GNSS里拿到的大地高则是相对椭球面的几何高度。两者拿在一起比就像用卷尺量一段有坡度的路面的实际长度却拿去跟地图上的水平距离对比——根本不匹配。所以工程和国计民生中需要的海拔必须建立在重力场相关的基准面上。为什么偏偏不用好算的椭球面因为它没有物理意义不能用来描述水的流动、大气压的变化也不能作为工程建设的稳定高度基准。这一点想通了后面所有换算逻辑就顺了。2.3 中国境内的高程异常大致长什么样从全国范围看似大地水准面相对参考椭球面的起伏相当可观。青藏高原、天山、横断山区等高海拔区域高程异常往往达到负几十米甚至更深东部平原相对缓和通常在一个相对稳定的负值区间内小幅波动沿海地区则逐渐接近大地水准面因为海面上两者本来就是一回事。这意味着什么呢意味着你不能在全国任意一个地方取一个固定的高程异常常数来用。哪怕在同一个省内南北方向或者东西方向的高程异常也可能相差几米。这种情况在山区做小范围控制测量时特别容易出问题——有些组图省事直接拿一个点在EGM2008上查的高程异常当全区常数最后检核时发现高程差出去几十厘米回头还怪GNSS不靠谱其实锅在模型应用上。3. 正高与正常高被密度猜想困扰的海拔定义3.1 正高系统遇到的终极难题接下来要聊一个看起来有点绕、但非常核心的问题海拔到底应该怎么定义最贴近物理直觉的定义是正高。正高表示某点沿着铅垂线到大地水准面的距离它的严格表达式需要沿垂线对实际重力加速度做积分。问题在于你根本不知道地面以下每一层的密度分布。虽然地球物理学家给出了各种地壳密度模型但模型始终是模型。一条水准路线跨越不同地质构造下面的密度可能有明显变化你无法精确知道每一段的密度也就无法精确算出正高。正高系统在理论上是完美的在工程上却是折磨人的。3.2 正常高系统怎么绕开密度问题正常高系统换了个思路。它不试图算实际重力沿垂线的平均值而是直接用正常重力公式来计算也就是把地球近似成一个规则旋转椭球然后根据该点的纬度和近似高程计算出一个理论上应该有的重力值用它代替实际重力做积分。这么一替换地下密度信息就从公式里消失了。无论脚底下是花岗岩还是石灰岩还是海水公式只关心你的纬度和高度。于是正常高变成了一个可计算、可复现、不需要勘探资料配合的实用高程量。正常高系统的零面就是似大地水准面。你可能已经感觉到这个设计的精妙之处了它用理论上的引力代替实际的重力代价是引入了一个符号化的零面——似大地水准面收益是让全国高程基准真正具有可操作性。这也是中国采用正常高系统作为法定高程系统的根本原因。3.3 1985国家高程基准与正常高的对应关系严格说1985国家高程基准的起算面黄海平均海面在定义上更接近大地水准面但在实际传递中全国精密水准网的平差成果是以正常高形式存储和使用的。所以当你说某点的1985高程是多少时你实际用的就是正常高系统下的数值。这带来一个现实问题当你从测绘存档资料里拿到一个水准点的高程时要清楚它是正常高其零面是似大地水准面而不是大地水准面。这两张面在陆地上的差异平原地区通常只有几厘米到几十厘米在高原山区可以达到数米。对大多数工程来说这个差不足以在低等级测量中造成明显后果但在高精度科学测量、跨区域长距离水准网的统一中绝不能视而不见。3.4 两种高度差多少才算大我习惯用一句话给同事解释正高和正常高的差异大约等于大地水准面和似大地水准面在当地的间距而这个间距在平原可以忽略到厘米级在西部高山能到米级甚至更大。如果你手头正好有一份某地区的高精度似大地水准面模型甚至可以直接把两种高度的差值读出来——它正好等于两个面之间的距离。换算时要记住一句话高程异常是椭球面和似大地水准面的差距不是正高和正常高的差距。正高和正常高的差距看的是似大地水准面与大地水准面的距离。很多教材里画得明明白白可一到现场应用就容易混我在这上面吃过文字亏所以特别提醒。4. GNSS测高与水准测量之间那座桥高程异常4.1 GNSS拿到的高度和你要的高度差一个关键量现在把工具换到GNSS上。无论静态解算还是网络RTK你最终得到的高程分量是相对于参考椭球面的大地高符号习惯上记为h。而施工设计、地形图、建筑标高需要的通常是正常高记为H。它们之间的关系用一个式子就能说清H h – ζ其中ζ是该点的似大地水准面差距也常直接叫高程异常。如果你所在地区的高程异常是负值比如ζ -15米那么正常高大出大地高15米如果ζ是正值那么正常高反而小于大地高。这里的关键是符号别搞反很多使用上的翻车现场都出在这个简单环节。为了直观我举个实际换算的例子。某控制点经CGCS2000框架下的静态GNSS解算得到大地高h 50.325米通过该区域似大地水准面模型查到该点高程异常ζ -17.486米。那么正常高H 50.325 – (-17.486) 67.811米。整个过程只有一步减法真正的难点全在ζ的精度上——这也是为什么这篇文章一大半篇幅都在讲似大地水准面。4.2 GNSS高程测量的作业模式知道了H和ζ的关系你就能理解现在工程界流行的GNSS水准作业模式了。第一种是静态控制模式。你在测区内布设GNSS控制点同时联测若干已知水准点用来反算或校核高程异常然后通过似大地水准面模型把其他点的大地高转成正常高。这个流程可以在大范围布点时代替大量低等级水准测量。第二种是RTK实时模式。现在的测量型RTK手簿里都可以加载似大地水准面模型文件主机实时解算出大地高后手簿实时完成正常高转换直接输出海拔。你拿着它放样某个高程点看到的数字就是相对于1985国家高程基准的海拔值方便是极其方便。但不管哪种模式都必须有一个前提你手上的似大地水准面模型在精度上符合你当前任务的需求。模型精度不够后端的测量仪器再贵再准最后输出去的海拔照样偏。把GNSS高程测量当成完全替代水准测量是不现实的但把模型用好在低等级测量和图根控制中完全可以省下大量人力。4.3 为什么说它是桥如果说水准测量是从青岛原点一级一级爬过来的连续山路似大地水准面模型就是一座可以直达的桥GNSS给你一个点位的大地高模型告诉你这座桥的桥面高度高程异常你一步就能从椭球面高度跨越到正常高海拔。有意思的是这座桥的建造本身又依赖水准测量。因为要构建一个区域似大地水准面模型必须用已知水准点提供正常高再配合GNSS测得的大地高反算这些点上的高程异常才能拟合出模型。所以这两样东西是互相成就的关系没有水准测量似大地水准面模型无从谈起有了好的似大地水准面模型未来的高程测量可以大幅减少对水准测量的依赖。这大概就是现代测绘里传统技术和空间技术最好的相处方式。5. 构建区域似大地水准面模型的完整流程从EGM2008查值到移去恢复拟合5.1 三条路线的总体对比现在说说实际生产中最关心的我怎么获得一个测区里每个点的ζ值总的说来有三条路线我按实用程度排了个序。路线原理精度水平成本适用场景全球重力场模型查值直接查EGM2008/EGM2020模型文件得到ζ平原5-20cm山区可能更差极低可能免费低精度估算、偏远的无资料区域区域曲面拟合用已知水准点的GNSS大地高与正常高反算ζ然后拟合曲面取决于控制点密度小范围可到2-5cm中等需要水准点GNSS联测最常见市政、公路、水利测区移去-恢复法用全球模型先扣除长波部分只对残差拟合综合最高可到1-3cm较高需要模型文件足够控制点高精度控制网、大型工程项目这张表基本就是这几年我做项目的选型逻辑先看精度需求再看手里有没有已知水准点最后决定要不要上移去恢复。下面把每一条都展开说说。5.2 全球模型够快但别直接迷信EGM2008可能是测绘人员听到最多的全球重力场模型。它的空间分辨率大约5弧分所谓的2.5′×2.5′格网在很多区域能提供厘米级到分米级的性能。城市里、平原上直接查EGM2008得到的高程异常和真值往往只有几厘米到十几厘米的偏差用来估算是够用的。但有三条要记住。第一EGM2008是基于WGS84椭球发布的如果你用的是CGCS2000框架下的大地高两者本身有椭球差异直接算出的正常高会带有一个系统性的面差可能需要先做椭球参数转换或者用已知点做整体平移。第二山区重力场变化剧烈模型在局部地区可能差到几十厘米甚至更大把它的输出当成准值是不行的。第三EGM2020等新模型也在陆续被不同国家采用但能否直接用于我国现行高程基准仍然需要用已知水准点来验证。我的习惯是无论用哪个全球模型一定要在测区内找两三个已知水准点做闭合检核一旦发现系统性偏大就果断回到区域拟合路线。5.3 区域拟合最传统的做法区域拟合的思路非常直白在测区内分散选择若干已知正常高的水准点在每个点上用GNSS测出大地高反算出这些点的高程异常然后假设高程异常在空间上是平滑变化的用一个数学曲面把这些离散值连起来形成测区内的ζ连续曲面。之后任意一点的ζ都可以从曲面函数上算出来。常用的拟合函数有二次多项式曲面拟合、多面函数拟合、克里金插值等。以最简单的二次曲面为例ζ(x, y) a0 a1·x a2·y a3·x² a4·x·y a5·y²其中x和y是平面坐标通常是高斯投影坐标或独立坐标系坐标。只要有6个以上控制点就能用最小二乘解出a0到a5这6个系数。控制点越多多余观测越多解算的结果越抗差。这个流程的关键在控制点布设。经验上拟合范围不要超出控制点覆盖区域太远外推出去的部分精度滑坡非常快。在平原地区控制点间距10到20公里通常可以保证较好的拟合效果山区地形起伏大高程异常梯度大控制点间距要缩短到5公里甚至更密否则拟合面会在地形剧烈的地方出现明显的飘。5.4 移去-恢复法把难题拆开解决单纯用二次曲面拟合隐含了一个不太成立的假设——高程异常在测区里是平滑二次面。但真实情况是一个小区域的高程异常可以分解为两部分一部分由全球性大地水准面特征决定是长波趋势很平滑另一部分是局部重力异常、地形起伏引起的短波残差变化快、梯度大。移去-恢复法正式抓住这个分解思路先用EGM2008算出每个控制点上的长波高程异常把它从实测ζ中减掉剩下的是变化平缓的小残差对这个小残差做曲面拟合难度就比直接拟合原始ζ小得多精度也相应提上去。最后使用时任意点的ζ等于EGM2008算出的值加上拟合残差面计算出的值。这个过程就叫移去—拟合—恢复。我做一个项目的体会是移去恢复法特别适合控制点少但区域跨度大的场景。直接用二次曲面拟合跨度大且高差大的区域曲面形态很难跟上真实起伏用移去恢复法把长波部分剥离掉之后拟合只负责几厘米到十几厘米的残差小波动即使控制点不密也能拟合得比较稳定。当然代价是多一套EGM2008的计算程序或者模型文件以及多几步编程/脚本处理的功夫但换来的是精度和稳健性值得。5.5 精度评定的门道不管用哪种方法拟合最后都要做精度评定。没有一个合格的工程师会拿拟合方程的残差就当精度指标。正确做法是预先从全部已知点中留出一批通常20%左右作为检查点它们不参与拟合只在拟合完成后用来检验。误差计算用标准的中误差公式m sqrt(Σ(vi²) / (n-1))其中vi是每个检查点上模型换算正常高与已知正常高的差值n是检查点个数。一个比较稳妥的经验是拟合中误差小于测区高程允许误差的1/3到1/2时模型可用于该等级测量如果不够就得加密控制点或者换拟合方法。千万别小看这一步我见过不少项目拟合残差本身很小一上检查点就露馅原因是参与拟合的控制点自身高程质量差把曲面拉偏了。6. 精度控制与实操避坑清单这些细节决定转换后的高程能不能用6.1 最容易被忽视的五个坑做了这么多年项目模型本身算对不算坑真正坑人的往往是周边环节。我挑几个印象深的讲。第一个坑是已知水准点等级太低。有些项目图省事拿四等水准点甚至等外水准点当已知点参与拟合。那些点本身的高程误差就可能超过5厘米拟合面被它们带偏最后测量成果自然不会好。我的建议是参与高精度拟合的已知点至少要用四等以上水准成果三等以上更好。第二个坑是外推。拟合区域边界以外的地方模型的可靠性断崖式下降。有时候为了省事在测区外两三公里处放样也拿模型算结果比水准差出十几厘米。算高程异常一定要严格限制在控制点覆盖范围内。第三个坑是基准不一致。GNSS解算用的是CGCS2000或者WGS84大地高已知点高程用的是1985国家高程基准理论上没问题但很多地方还保有用吴淞高程、珠江基准、地方独立坐标系的老水准资料。把这些不同基准的高程混在一起算ζ等于直接把模型搞乱。开工前先把所有已知点的高程系统核对清楚是必须做的一步。第四个坑是RTK标高不稳。网络RTK的平面精度能到1到2厘米但高程分量的精度通常只有平面的一半甚至更低而且受多路径效应和对流层延迟影响明显。你说RTK测个平面放样问题不大但用它去测参与模型拟合的已知点的大地高这个数据源特别容易被污染。拟合求ζ时需要的是高精度大地高求平面控制高程可以用普通静态或者快速静态解算尽量不要用单点短时RTK成果。第五个坑是符号约定混乱。不同软件、不同书籍对高程异常的定义有细微差别有的写normal height ellipsoidal height – geoid undulation有的把geoid undulation定义为N h – H符号方向一致但叫法不同。拿到陌生软件时先拿两个已知点试算一下确认程序和你的数学关系一致再放心批量处理。6.2 我在项目中坚持的几条纪律说几个我自己定下来的规矩不一定写入任何规范但很管用。第一凡是拟合或转换后的成果都必须至少经过一个已知水准点的闭合检核且检核点不能是参与拟合的点。这个规矩成本极低但能拦住绝大多数系统性错误。第二在测区高差大的地方手动检查每隔一段距离的高程异常梯度。如果两三个拟合点之间ζ的差值呈现出不符合重力场规律的大跳变我倾向于怀疑拟合面有问题而不是去看GNSS数据。第三对任何一条GNSS高程成果别直接写1985高程写清楚一点由CGCS2000大地高经某某模型转换得到。这个习惯能在数据交接时省掉无数扯皮因为同样的原始数据用不同模型出来的正常高可能相差十几厘米不交代清楚模型来源下游用数据的人会一脸懵。6.3 快速验证模型是否可用的小技巧这里分享一个特别便宜又有效的自检方法在测区选两个高差很大的已知水准点比如一个在山脚、一个在山顶正常高差100米以上用你的似大地水准面模型从GNSS大地高换算两个点的正常高差值跟已知正常高差做对比。如果对了说明模型在垂直方向上的尺度没问题如果明显不对那十有八九是模型在高差较大区域的外延出了问题。这个方法我屡试不爽。它不需要统计学上的大样本只需两个点就能快速判断模型有没有犯下系统性错误特别适合在野外条件下快速决策。回头看这几年做过的项目我最大的体会是高程系统不是一套可以从教科书上背下来就够用的知识它需要你在具体测区里反复验证、反复磨。水准测量给出的正常高是一条一条路线量出来的可靠基准GNSS则是一天就能铺满全测区的效率机器而似大地水准面模型就是连接两者的那座桥。桥的最优建造方式全球模型、区域拟合还是移去恢复取决于你对精度的要求、手里有多少已知资料以及测区地形的脾气。把本文提到的换算关系、符号约定和检核流程吃透再用你自己的数据多试几次你会发现原本绕来绕去的高程问题其实就这回事。
返回列表