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

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

文章目录

高度相关的几个基本概念RTKLIB中高度设置与计算参考文献

由于在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]如何区分:大地水准面、似大地水准面、参考椭球面

相关推荐

中国停车网
365BET导航

中国停车网

📅 07-24 👁️ 7233
日本足球的目标没变:2050年在世界杯上夺冠
365bet投注盘口

日本足球的目标没变:2050年在世界杯上夺冠

📅 07-16 👁️ 1500
韩国选手:没想到武大靖决赛破纪录 裁判没有更严厉
重建主引导记录(重建MBR)
office365无法登录激活

重建主引导记录(重建MBR)

📅 10-01 👁️ 3574
qq怎么查看添加好友时间?
365bet投注盘口

qq怎么查看添加好友时间?

📅 08-21 👁️ 7082
免费在线通话录音
365bet投注盘口

免费在线通话录音

📅 07-26 👁️ 6046