空间直接坐标系(XYZ)转经纬度(BLH)
创始人
2024-04-17 12:15:35
0

本章首先介绍空间直角坐标系与大地坐标系,然后列出XYZ转换BLH的公式,最后基于C语言完成该部分代码设计。

参考书籍:

董大男,陈俊平,王解先等,GNSS高精度定位原理,科学出版社

黄丁发,熊永良,周乐韬等,GPS卫星导航定位技术与方法,科学出版社。

公式原理 

空间直角坐标系

空间直角坐标系原点位于参考椭球的中心,Z轴指向参考椭球的北极,X轴指向首子午面与赤道的交点,Y轴位于赤道面上,且按右手坐标系与X轴呈90°夹角。某点在空间中坐标可用该店在次坐标系的各个坐标轴上的投影来表示。(如下图所示)

空间直角坐标系

大地坐标系

空间大地坐标系是采用大地经纬度和大地高来描述空间位置的(下图)。维度是指P点的法线与赤道面的夹角,用B(-90°~ 90°)表示,向北为正称为北纬,向男为负称为南纬。经度是指P点的参考椭球子午面与起始子午面的二面角,用L表示(-180°~180°),由起始子午面起算,向东为正称为东京,向西为负称为西经。大地高是空间点沿该法线到椭球面的距离,用H表示,向上为正,向下为负。

空间大地坐标系

XYZ转BLH

空间直角坐标系(X,Y,Z)与大地坐标系 (B,L,H)关系如下:

式中:N为某点P的卯酉圈半径;(B,L,H)为P点的大地坐标系,卯酉圈半径N公式如下:

式中:a为椭球长半轴,b为椭球短半轴,e=\frac{\sqrt{a^{2}+b^{2}}}{a}为第一离心率,B为大地维度。不难看出,大地维度是关于自身的函数,需要迭代求解。计算方式如下:

初始迭代时,设:

 于是:

当ΔH<0.001m,B的经度保证在0.001秒即可停止迭代。

关于上述代码的详细推导过程,请参考charlee44博主的大地经纬度坐标与地心地固坐标的的转换

 

程序设计

#define a  6378137.0//长半轴
#define f  (1 / 298.257222101)//扁率
#define b  (a - a * f)//短半轴
#define e2  (f*(2-f))//第一偏心率平方//经纬度转换(弧度)
BLH XYZtoLB(double X, double Y, double Z)
{BLH res = { 0 };double B = 0.0, N = 0.0, H = 0.0, R0, R1, deltaH, deltaB;R0 = sqrt(pow(X, 2) + pow(Y, 2));R1 = sqrt(pow(X, 2) + pow(Y, 2) + pow(Z, 2));//经度直接求解res.L = atan2(Y, X);//迭代求大地维度和大地高N = a;H = R1 - sqrt(a * b);B = atan2(Z * (N + H), R0 * (N * (1 - e2) + H));do{deltaH = N;//判断收敛所用deltaB = B;N = a / sqrt(1 - e2 * pow(sin(B), 2));H = R0 / cos(B) - N;B = atan2(Z * (N + H), R0 * (N * (1 - e2) + H));} while (fabs(deltaH - H) > 0.001 && fabs(deltaB - B) > 1.0e-9);res.B = B;res.H = H;return res;
}

其中,BLH为用于传参的结构体,代码如下:

//经纬度函数传参
typedef struct BLH
{double B;//维度double L;//经度double H;//高
}BLH;

代码部分与上述公式部分对应,代码并不复杂按公式来即可,求出测站的经纬度后,即可求出卫星的高度角、方位角,从而进行定权、误差改正等内容。

卫星高度角、方位角求解可参考我的博客:求解卫星高度角、方位角

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...