R中distm函数或distVincentyEllipsoid之间的差异

问题描述 投票:3回答:1

您能否充分说明使用distm函数或distVincentyEllipsoid函数计算R中测地坐标的距离有何不同?

我注意到使用distm进行此计算会花费更长的时间。您能否超越差异向我解释,为什么会发生?

谢谢!

r distance
1个回答
0
投票

接着上一个问题,Distance calculation optimization in R

速度与返回的对象有关,不一定与距离计算之间的差异有关(我不确定distm()函数将其用作默认的大圆计算)。确实geosphere::文档在这里:https://cran.r-project.org/web/packages/geosphere/geosphere.pdf建议distVincentyEllipsoid()计算“非常准确”,但比其他大圈方法“计算强度更高”,尽管这会使您怀疑计算速度较慢,这是因为我的方式在我的答案中构造了代码,以返回每行之间的距离矢量(而不是每个点之间的距离矩阵)。

相反,原始代码中的distm()计算将返回每个点之间包含多个向量的矩阵。对于您的问题,只要订购数据就没有必要,这就是我这样做的原因。此外,也不需要使用层次聚类将基于这些距离的点聚类为3个(您定义的数量)聚类,因为我们可以使用距离值的百分位数来执行相同的操作。再次,速度优势涉及在单个矢量而不是矩阵上计算聚类。

[请注意,我是具有会计/财务背景的数据分析师,无论如何都不是GIS专家。话虽如此,我对distVincentyEllipsoid()函数的使用来自于我的一般理解,即这返回了一个很大的圆距距离作为矢量(相对于矩阵)的相当准确的估计。此外,过去曾使用此方法来优化用于定价的物流操作,我可以证明这些计算已在市场上经过测试并被认为是可靠的事实。

© www.soinside.com 2019 - 2024. All rights reserved.