矢量化测地线计算。

geovectorslib的Python项目详细描述


概述

Unix Build StatusCoverage StatusScrutinizer Code QualityPyPI VersionPyPI License

该库提供矢量化的直接和反向测地线方法。在

其动机是有准确和快速的矢量化测地线程序为帆船路线项目。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.

参考文献

Movable Type Scripts

Geodesy

Geopy

Geographiclib

Stackoverflow discussion

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java不兼容类型:MainActivity无法转换为LifecycleOwner   java安卓是一种更有效的读取大文本文件的方法   java导出LWJGL本地人与项目?(IntelliJ IDEA)   JDK更新后,JavaJShell不再在下一行打印输出   父类对象上的继承Java比较子属性   Java:有没有一个容器可以有效地结合HashMap和ArrayList?   安卓 Java对象指针   java在annotationdriven Spring MVC应用程序中实现大气   java 安卓源代码构建应用找不到安卓supportv4。罐子   文件系统上的抽象层和Java中的jar/zip   java在水平滚动视图中添加多个图像?   java如何从firebase实时数据库中获取字符串数组   WIndows 10工作站上的java未满足链接错误   java命令在终端中工作,但在使用过程中出现“无结束引号”错误。执行官