function [E,A]= Get_EA(sx,sy,sz,x,y,z)

%GET_EA Summary of this function goes here

%sx,sy,sz:站点的XYZ坐标,x,y,z:卫星的XYZ坐标

% Detailed explanation goes here

[sb,sl]=XYZtoBLH(sx,sy,sz);

T=[-sin(sb)*cos(sl) -sin(sb)*sin(sl) cos(sb);

-sin(sl) cos(sl) 0;

cos(sb)*cos(sl) cos(sb)*sin(sl) sin(sb)];%transition matrix(XYZ to NEU)

deta_xyz=[x,y,z]-[sx,sy,sz];

NEU=T*(deta_xyz)';

E=atan(NEU(3)/sqrt(NEU(1)*NEU(1)+NEU(2)*NEU(2)));

A=atan(abs(NEU(2)/NEU(1)));

if NEU(1)>0

if NEU(2)>0

else

A=2*pi-A;

end

else

if NEU(2)>0

A=pi-A;

else

A=pi+A;

end

end

end

计算仰角\(E\)和方位角\(A\)的公式:

\[E=arctan\left(\frac{cos(\phi_2-\phi_1)\times cos\beta-0.15}{\sqrt{1-\left[cos(\phi_2-\phi_1)\times cos\beta\right]^2}}\right)\tag{1}

\]

\[A=arctan\left(\frac{tan(\phi_2-\phi_1)}{sin\beta}\right)\tag{2}

\]

对于输入时是XYZ坐标的卫星位置和接收机位置还要进行坐标转换

先将接收机位置的XYZ坐标转换成大地坐标系(BLH),转换公式为:

\[L=arctan\left(\frac{Y}{X}\right)\tag{3}

\]

\[B=arctan\left(\frac{Z(N+H)}{\sqrt{(X^2+Y^2)[N(1-e^2)+H]}}\right)\tag{4}

\]

\[H=\frac{Z}{sinB}-N(1-e^2)\tag{5}

\]

\(N\)为卵冒圈的半径,\(e\)表示椭球扁率,\(a\)和\(b\)分别表示长半轴和短半轴。

\[N=\frac{a}{\sqrt{1-e^2sin^2B}},\ \ e^2=a^2-b^2\tag{6}

\]

利用上面的式子有一个问题就是式\((4)​\)和\((5)​\)中有交叉变量。因此一般采用下面的方法迭代计算:

首先计算出\(B\)的初值

\[B=arctan\left(\frac{Z}{\sqrt{X^2+Y^2}}\right)\tag{7}

\]

然后利用\(B\)的初值求出\(H、N\)的初值,再求定\(B\)的值

\[N=\frac{a}{\sqrt{1-e^2sin^2B}}\tag{8}

\]

XYZ坐标转换为BLH坐标的matlab程序为:

function [B,L] = XYZtoBLH(X,Y,Z)

%WGS84坐标转换到大地经纬度

% Detailed explanation goes here

a=6378137;

e2=0.0066943799013;

L=atan(abs(Y/X));

if Y>0

if X>0

else

L=pi-L;

end

else

if X>0

L=2*pi-L;

else

L=pi+L;

end

end

B0=atan(Z/sqrt(X^2+Y^2));

while 1

N=a/sqrt(1-e2*sin(B0)*sin(B0));

H=Z/sin(B0)-N*(1-e2);

B=atan(Z*(N+H)/(sqrt(X^2+Y^2)*(N*(1-e2)+H)));

if abs(B-B0)<1e-6;break;end

B0=B;

end

N=a/sqrt(1-e2*sin(B)*sin(B));

end

也可以采用如下的方法直接转换

\[L=arctan(\frac{Y}{X})\tag{9}

\]

\[e'^2=\frac{a^2-b^2}{b^2},\ \ \ \theta=arctan\left(\frac{Z·a}{\sqrt{X^2+Y^2}·b}\right)\tag{10}

\]

\[B=arctan\left(\frac{Z+e'^2bsin^3\theta}{\sqrt{X^2+Y^2}-e'^2acos^3\theta}\right)\tag{11}

\]

\[H=\frac{\sqrt{X^2+Y^2}}{cosB}-N\tag{12}

\]

xyz坐标转换ybc_GNSS仰角和方位角的计算及代码,XYZ转BLH坐标的代码及原理相关推荐

  1. 【北斗导航】GNSS仰角和方位角的计算和XYZ与BLH的坐标转换(附原理matlab源代码)

    目录 GNSS仰角和方位角的计算和XYZ与BLH的坐标转换 GNSS仰角和方位角的计算和XYZ与BLH的坐标转换 本代码是计算GNSS卫星仰角和方位角,并且实现了XYZ与BLH之间的坐标转换.下面是具 ...

  2. 北斗导航 | GNSS仰角和方位角的计算和XYZ与BLH的坐标转换(附原理matlab源代码)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  3. 根据卫星仰角和方位角使用html5绘制天空图(投影图)

    本文记录根据卫星仰角和方位角使用html5绘制天空图(投影图). 也就是根据这两个角度绘制坐标点在圆形上的投影. 术语: 方位角:从标准方向的北端起,顺时针方向到直线的水平角称为该直线的方位角.方位角 ...

  4. GNSS基本概念(1):仰角和方位角(Elevation and Azimuth)

    仰角和方位角描述了物体在天空相对于观察者的位置,如下图所示: 一.仰角(Elevation) 有时也称海拔高度.当方位角测量完毕之后,需要用仰角来描述被观察物体相对于观察者的高度.如果观察者在地面上, ...

  5. 太阳 仰角和方位角(Elevation and Azimuth)

    太阳 仰角和方位角(Elevation and Azimuth) 引用 一.仰角和方位角(Elevation and Azimuth) 仰角和方位角描述了物体在天空相对于观察者的位置. 二.仰角(El ...

  6. gps两点距离 php,PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法

    <PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法>要点: 本文介绍了PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法,希望对您有用.如果有疑问,可以联系我们. 本文实 ...

  7. 自己写的计算时间坐标的代码

    1 数据库sql查询的数据 2 最终echarts画出来的图 3 代码如下 计算主方法方法 /*** echarts算时间轴代码(算流量的代码),这里的时间间隔为5秒钟,一分钟的流量,totalSiz ...

  8. php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法

    这篇文章主要介绍了PHP计算百度地图两个GPS坐标之间距离的方法,是针对百度地图接口开发的典型应用,需要的朋友可以参考下 本文实例讲述了PHP计算百度地图两个GPS坐标之间距离的方法.分享给大家供大家 ...

  9. php实现两个大整数求和,PHP计算两个特别大的整数实例代码

    这篇文章主要介绍了关于PHP计算两个特别大的整数实例代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 废话不多说了,具体代码如下所示: function getIntAdd($a,$ ...

  10. 栈应用_计算按运算符优先级分布的算式(代码、分析、汇编)

    目录: 代码: 分析: 汇编: 代码: LinkList.h LinkList.c LinkStack.h LinkStack.c 栈-线性表 main.c #include <stdio.h& ...

最新文章

  1. Linux大文件处理,伪分区
  2. 使用MySQL的geometry类型处理经纬度距离问题
  3. J2EE业务层模式:服务门面,应用服务,以及业务委托,服务定位器
  4. SharePoint KB
  5. 个人电脑 公司电脑 代理_这样的电脑谁来用?一体式水冷,磁悬浮风扇!
  6. Redis系列 --第一篇
  7. 百度第三季度研发费用62亿元,同比增长35%,持续高强度研发投入
  8. c++ primer5 第一章练习题答案 尚未完成 后续补充(基本已经完结)
  9. 高三!忏悔ing~(在这儿的第一篇随笔)
  10. mysql(5.6及以下)解析json
  11. 190702每日一句 孤独之前是迷茫,孤独之后是成长
  12. MemTest64内存测试
  13. 宏观经济学 马工程教材个人笔记整理
  14. 电容单位F法拉、mF毫法、纳法nF、皮法pF之间是如何转换
  15. dede标签详细的dede标签大全,dede标签在线学习
  16. Faceboxes pytorch代码解读(一) box_utils.py(上篇)
  17. 数据之美:迄今 10 佳数据可视化示例
  18. 怎样制作一个漂亮的艺术二维码?
  19. 信息论小课堂:纠错码(海明码在信息传输编码时,通过巧妙的信道编码保证有了错误能够自动纠错。)
  20. 微信公众平台消息体加解密实现

热门文章

  1. 注意力、自注意力和多头注意力
  2. 【Java编程】写一个将华氏温度转换成摄氏温度的程序,转换的公式是:°F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度。
  3. 实现px和vw的转换
  4. Win10账户锁定的解除方法
  5. 达梦 DCA 培训总结
  6. word转PDF时,英文单词的字母间距问题
  7. 北京地区的图像处理公司
  8. 张小龙是高球冠军,大前研一是物理学家:​为什么牛人在很多领域都是世界第一?...
  9. #python#生物信息学 提取文本某列信息 #提取氨基酸序列并且提取氨基酸结构序列与之对应
  10. MySQL 查询题型总结