矢量化测地线计算。
geovectorslib的Python项目详细描述
概述
该库提供矢量化的直接和反向测地线方法。在
其动机是有准确和快速的矢量化测地线程序为帆船路线项目。python库很少,其中geographiclib最准确可靠。作为快速反演方法的一个例子,Haversine方法可以很容易地进行矢量化,但误差预计在least 0.5%。没有矢量化和精确的选项。在
此库基于numpy
,并使用Vincenty's formulae。它主要基于Movable Type Scripts blog和Javascript Geodesy代码。在
Vincenty的逆算法是精确的,但对nearly antipodal points敏感。一种方法是为这样的点返回NaN
,假设它们在实际应用中不经常被观察到,但是{a12}很好地指出,如果包不能处理这些情况,它就不能完成。我发现这个问题可以通过放宽一个收敛标准来解决,但是对于这些点,它导致的误差高达0.25%。在
因此,这个库使用矢量化的Vincenty公式和geographiclib作为未合并点的后备。在
请参见notebook查看执行时间与geographic clib的比较。在
Direct method for 100,000 points
94.9 ms ± 25 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
vs
9.79 s ± 1.4 s per loop (mean ± std. dev. of 7 runs, 1 loop each)
^{pr2}$
设置
要求
- Python 3.7+
- Numpy公司
- 地理位置
安装
将其直接安装到激活的虚拟环境中:
pip install geovectorslib
使用
安装后,可以导入包:
$ python >>> from geovectorslib import direct, inverse >>> direct(lats1, lon1, bearings, distances) >>> inverse(lats1, lons1, lats2, lons2)
Latitudes in decimal degrees [-90; +90]. Longitudes in decimal degrees [-180; +180]. Bearings in decimal degrees [0; 360]. Distances in meters.
参考文献
- 项目
标签: