在R中,distm函数和distVincentyEllipsoid函数有什么区别?

4

你能够完整地解释在R中使用distm函数或distVincentyEllipsoid函数计算大地坐标距离时的显著差异吗?

我注意到使用distm计算所需时间更长。 除了这个差异,您能否向我解释为什么会出现这种情况?

谢谢!

1个回答

2

在你之前的问题 Distance calculation optimization in R 的基础上,这里有进一步的解答。

速度是指产生返回对象所需的计算级别,而不一定是距离计算之间的差异(我不确定distm()函数使用的默认大圆计算方式)。实际上,geosphere::的文档在这里: https://cran.r-project.org/web/packages/geosphere/geosphere.pdf表明distVincentyEllipsoid() 计算是“非常精确”的,但比其他大圆方法“计算量更大”,尽管这会使您怀疑计算速度较慢,但这是因为我已经按照我的答案结构化代码以返回每行之间的距离向量(而不是每个点之间的距离矩阵)。

相反,您在原始代码中的distm()计算返回每个点之间的多个向量的矩阵。对于您的问题,只要数据已排序,则不必如此。这就是为什么我这样做的原因。此外,基于这些距离使用分层聚类将点分成3个(您定义的数量)簇也不是必要的,因为我们可以使用每个点值之间距离的百分位数来完成相同的效果。同样,速度好处与在单个向量上计算聚类有关,而不是在矩阵上。

请注意,我是一名会计/金融背景的数据分析师,而不是GIS专家。尽管如此,我的distVincentyEllipsoid()函数的使用基于我对其能够返回一个相当精确的大圆距离估计结果(作为向量而不是矩阵)的一般理解。此外,在过去用于优化物流运营以进行定价目的时,我可以证明这些计算已经在市场上得到测试并被发现是可靠的。


非常感谢你的解释,hello_friend。我现在理解得更好了。 - Antonio
没问题,@Jose,总是很愉快的。如果你有任何其他与R相关的问题,请告诉我。 - hello_friend
再次感谢你,hello_friend。目前我还没有任何问题。但是一旦有了,我会告诉你的。 - Antonio
你好朋友,请问能否看一下这个问题?https://stackoverflow.com/questions/62458565/link-excel-database-with-downloadlink-in-shiny 谢谢! - Antonio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接