一、基本方法
在二维态势中显示卫星瞬时覆盖也是各类应用中的常见需求。作者所见过的最为拙劣的实现方法是以卫星星下点为中心绘制一个圆或者矩形,这显然毫无意义,甚至都不如一个PPT,至少后者并不会给人以误导。
当把三维的地球表面投影到二维平面上时,由于投影产生变形,因此圆锥形状(如天线类传感器)的覆盖形状产生的投影一般不会是圆(当卫星星下点处于赤道附近时近似为圆),四棱锥形状(如相机类传感器)的覆盖形状也不会是矩形。
解决上述问题的常用技术为离散化:
①以圆锥形状传感器为例,根据卫星位置和传感器指向、圆锥半角,按固定个数(如120、360等)计算出圆锥与地球表面的交点;
②根据二维态势的投影方式,计算交点的投影坐标,首先计算各交点经纬度坐标,然后计算投影坐标,方法见 博文《基于osgEarth的卫星瞬时覆盖绘制方法》 ;
③交点连线构成了地球表面的覆盖线,交点围城区域即为卫星瞬时覆盖区域。

上图中卫星所在纬度较低,其覆盖接近于圆。

而对于上图而言,卫星所处纬度较高,其形状已与标准的圆相去甚远了。
二、问题分析
但是问题在于,这些点存在2个跨越的可能:跨越东西半球交界;跨越南北极点。

本文详细介绍了如何在二维态势图上精确显示卫星瞬时覆盖区域,针对圆锥和四棱锥形状传感器的覆盖计算方法,以及处理跨越东西半球和南北极点的特殊情况。通过离散化技术确定覆盖点,并使用osg::PrimitiveSet::QUAD_STRIP构造图元来解决非凸多边形覆盖区域的问题。最后,展示了算法在各种情况下的良好效果,包括覆盖北极和跨越180°分界线的场景。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



