栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Geod ValueError:未定义反短程线

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Geod ValueError:未定义反短程线

这两点仅相距几厘米。看起来

pyproj
/
Geod
不能很好地解决彼此靠近的点。这有点奇怪,因为在这样的距离下简单的​​平面几何体已经足够了。同样,该错误消息也有点可疑,因为这表明这两点是对立的,即在直径上是相反的,显然不是这种情况!OTOH,也许它所提到的对立点是在计算中以某种方式出现的中间点…不过,我还是会犹豫使用这种行为的库。

鉴于此缺陷,我怀疑

pyproj
还有其他缺陷。特别是,它可能会使用旧的Vincenty公式进行椭球测地线计算,众所周知,当处理近对映点时该算法不稳定,并且在大距离上并非特别精确。我建议使用CFF
Karney的现代算法。

Karney博士是一个主要贡献者上测地线的维基百科文章,特别是对一个椭球大地测量,他的geographiclib可PyPI上,这样你就可以很容易地使用安装它

pip
。请参阅他的SourceForge网站以获取更多信息以及其他语言的geolib绑定。

FWIW,这是一个使用geoliblib计算问题距离的简短演示。

from geographiclib.geodesic import GeodesicGeo = Geodesic.WGS84lat1, lon1 = -7.313341167341917, 10.65583081724002lat2, lon2 = -7.313340663909912, 10.655830383300781d = Geo.Inverse(lat1, lon1,  lat2, lon2)print(d['s12'])

输出

0.07345528623159624

该数字以米为单位,因此这两点相距73毫米多一点。


如果您希望看到geoliblib用于解决复杂的测地线问题,请参阅我去年在gist上使用Python
2/3源代码编写的math.stackexchange答案。


希望这不再是问题,因为pyproj现在使用来自geoliblib的代码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号