GNSS定位中的不同高度概念及计算


由于在GNSS定位中由多种高度表示,不同的高度概念很容易混淆,中英文对应有时候也容易搞混。因此整理了一下常用的两种高度——椭球高、正高的概念与计算,并且标注了对应的英文,让自己的脑子清醒一点。如果你也感兴趣的话,就请继续看下去吧。

高度相关的几个基本概念

椭球高 (Ellipsodial height):是以参考椭球面(ellipsoid) 为基准面的高程系统,也称大地高。
在这里插入图片描述

正高 (Orthometric height):以大地水准面(geoid) 为基准面的高程系统。即地面点到大地水准面的铅垂距离。又称为海拔高(height above mean sea level)

在这里插入图片描述

大地水准面差距(Geoid height): 大地水准面与参考椭球面之间的高程差,英文中也常用Geoid separation, Geoid undulation 或者 Geoid deviation表示。

由上述表述可知: 大地水准面差距(Geoid height) = 椭球高 (Ellipsodial height) – 正高 (Orthometric height)
在这里插入图片描述

RTKLIB中高度设置与计算

如下图中RTKPOST的配置页面所示,RTKLIB中支持两种高度输出:

  • 默认的ellipsoidal选项就是椭球高 (Ellipsodial height)
  • Geodetic选项则是正高 (Orthometric height)
    在这里插入图片描述

要计算正高 (Orthometric height),首先需要知道大地水准面的模型。根据不同的定义,有不同的大地水准面模型【3】。RTKLIB目前支持EGM96模型,具体模型相关参数位于源码geoid.c中。大地水准面模型包含了大地水准面差距(Geoid height)的网格值。

从上面等式我们知道,正高 (orthometric height) = 椭球高(ellipsoidal height) – 大地水准面差距(Geoid height)。因此可以通过插值的方法计算出不同经纬度下的正高 (Orthometric height)。

  • 插值计算Geoid height可以参见位于geoid.c中的“geoidh_emb”函数
  • 计算输出正高 (Orthometric height)可参见solution.c中的“outpos”函数,相关代码如下:
/* output solution as the form of lat/lon/height -----------------------------*/
static int outpos(uint8_t *buff, const char *s, const sol_t *sol,
                  const solopt_t *opt)
{
    double pos[3],vel[3],dms1[3],dms2[3],P[9],Q[9];
    const char *sep=opt2sep(opt);
    char *p=(char *)buff;
    
    trace(3,"outpos  :\n");
    
    ecef2pos(sol->rr,pos);
    soltocov(sol,P);
    covenu(pos,P,Q);
    if (opt->height==1) { /* geodetic height */
        pos[2]-=geoidh(pos); // 根据经纬度计算Geoid height,再从椭球高 (Ellipsodial height)中减去Geoid height
    }
    ...
}

参考文献

[1]正常高、大地高、海拔高的测绘概念
[2]Ellipsoidal, orthometric and geoid height 101
[3]EGM96 and EGM2008 and Other Geoid Grids
[4]如何区分:大地水准面、似大地水准面、参考椭球面

  • 11
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值