《表5 Linux 64位Python3环境下Haversine与pyslalib及双精度C++版本SOFA计算结果对比 (单位:度)》

《表5 Linux 64位Python3环境下Haversine与pyslalib及双精度C++版本SOFA计算结果对比 (单位:度)》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《球面距离计算方法及精度比较》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

Pyslalib中的slalib.sla_dsep直接对应了SLALIB中的sla_DSEP(A1,B1,A2,B2)球面距离计算函数,在64位的Ubuntu 16.04.4操作系统中使用64位Python3.5.2环境将其与Haversine函数的计算结果进行了对比,如表5。首先可以看到Linux版的Python Harversine程序计算结果与Windows一致,表明Python3在不同的操作系统中的表现一致。其次pyslalib的计算结果,除了(42,43)两行有轻微差别,与Haversine完全一致,精度也非常高。查看SLALIB的源代码,可以看到其使用了第2节中的直角坐标系三维向量作为计算单元。但与第2节不同,SLALIB进一步将其转换为法线向量(10),即n→1与n→2,再使用(11)式[10]进行计算。使用向量的主要优势是向量代数可取代部分三角函数的计算,其数值计算稳定性更好,能保持较好的精度,并且在边界点(如南北天极、0~360度边界)也无异常。