GNSS学习笔记-坐标转换
GNSS 坐标转换
GNSS计算主要涉及三个坐标系,地心地固坐标系,地理坐标系和站心坐标系。这里主要介绍一下三个坐标的含义和转换公式。
-
地心地固坐标系如图X,Y,Z表示 (ECEF坐标系),以地心O为坐标原点,Z轴指向协议地球北极,X轴指向参考子午面与地球赤道的交点,也叫地球坐标系。一般GNSS坐标计算都在地心地固坐标系下进行的。由于地球是椭圆形,有WGS-84和CGC2000等多种标准
-
地理坐标系则通过经度(longitude),纬度(latitude)和高度(altitude)来表示地球的位置,也叫经纬高坐标系(LLA坐标系)。
-
站心坐标系以用户所在位置P为坐标原点,三个轴分别指向东向,北向和天向,也叫东北天坐标系(enu坐标系)。站心坐标系的天向方向和地理坐标系的高度方向是一致的。站心坐标系用在惯性导航和卫星俯仰角计算中较多。
参数 | WGS-84 | CGC200 |
---|---|---|
基准椭球体的长半径a | 6378137.0 m | 6378137.0 m |
基准椭球体的极扁率f | 1/298.257223565 | 1/298.257223563 |
地球自转角速度We | 7.2921151467*1e-5 | 7.2921151467*1e-5 |
地球引力和地球质量的乘积GM | 3986004.418*1e8 | 3986004.418*1e8 |
光速 | 2.99792458*1e8 m/s | 2.99792458*1e8 m/s |
LLA坐标系转ECEF坐标系
LLA坐标系下的(lon,lat,alt)转换为ECEF坐标系下点(X,Y,Z)
其中e为椭球偏心率,N为基准椭球体的曲率半径
由于WGS-84下极扁率f=a−ba,偏心率e和极扁率f之间的关系:
坐标转换公式也可以为
python实现
def lla2ecef(lat,lon,alt):
WGS84_A = 6378137.0
WGS84_f = 1/298.257223565
WGS84_E2 = WGS84_f*(2-WGS84_f)
deg2rad = math.pi/180.0
rad2deg = 180.0/math.pi
lat *= deg2rad
lon *= deg2rad
N = WGS84_A/(math.sqrt(1-WGS84_E2*math.sin(lat)*math.sin(lat)))
x = (N+alt)*math.cos(lat)*math.cos(lon)
y = (N+alt)*math.cos(lat)*math.sin(lon)
z = (N*(1-WGS84_f)*(1-WGS84_f)+alt)*math.sin(lat)
return [x,y,z]
ECEF坐标系转LLA坐标系
ECEF坐标系下点(X,Y,Z)转换为LLA坐标系下的(lon,lat,alt)
一开始lon是未知的,可以假设为0,经过几次迭代之后就能收敛
ECEF坐标系转enu坐标系
用户所在坐标点P0=(x0,y0,z0),,计算点P=(x,y,z)在以点P0为坐标原点的enu坐标系位置(e,n,u)这里需要用到LLA坐标系的数据,P0的LLA坐标点为LLA0=(lon0,lat0,alt0)
即坐标变换矩阵S=[−sin(lon0)cos(lon0)0−sin(lat0)cos(lon0)−sin(lat0)sin(lon0)cos(lat0)cos(lat0)cos(lon0)cos(lat0)sin(lon0)sin(lat0)]
enu坐标系转ECEF坐标系
S为单位正交矩阵
反之
LLA坐标系转enu坐标系
上述可以看到,从LLA坐标系转换到enu坐标系有较多计算量,在考虑地球偏心率e很小的前提下,可以做一定的近似公式计算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具