电离层穿刺点坐标计算(C++实现)

电离层穿刺点(ionospheric pierce point,IPP)的定义:

电磁波源由外空间向地球上某点传播时,该电磁波束射入电离层时的交点

显然,电离层穿刺点是建立在电离层单层薄壳模型的基础上的,如图所示:

Alt

图中(\varphi_{PP} , \lambda_{PP}) 代表电离层穿刺点的纠度和经度坐标,而(\varphi , \lambda )则为地面基站的纬度和经度坐标。H为电离层的高度(一般情况为300~450km,在本文中选用450km),而R_E则为地球平均半径,直接取6371km即可。(El,Az)则代表卫星相对于基站的高度角和方位角,而z和z’则分别代表个基站和穿刺点的天顶角。

由此可见,如果想要计算IPP的坐标,则至少需要卫星相对于基站的方位角和高度角,以及基站的坐标。

下面是具体的计算公式:

z = \pi /2 - El \\ z' = arcsin \frac{R_E sin z} {R_E + H} \\ \alpha = z - z' \\ \varphi_{PP} = arcsin(cos \alpha sin \varphi + sin \alpha cos \varphi cos Az) \\ \lambda_{PP} = \lambda + arcsin \frac{sin \alpha sin Az} { cos \varphi_{PP} }

C++实现的源码与matlab实现的源码已托管到github

C++源码

matlab源码

此条目发表在CODING, DORIS, GNSS分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。