r - R 中的 distm 函数和 distVincentyEllipsoid 之间的区别

标签 r distance

您能否充分解释使用 distm 的巨大差异?函数或 distVincentyEllipsoid计算R中测地坐标距离的函数?

我注意到使用 distm 进行此计算需要更长的时间。您能否向我解释一下差异之外,为什么会发生这种情况?

谢谢!

最佳答案

继续您之前的问题:Distance calculation optimization in R

速度与生成返回对象所需的计算级别有关,不一定与距离计算之间的差异有关(我不确定 distm() 函数使用什么大圆计算作为它的默认值)。确实是geosphere::此处的文档:https://cran.r-project.org/web/packages/geosphere/geosphere.pdf建议 distVincentyEllipsoid()与其他大圆方法相比,计算“非常准确”但“计算强度更大”,而这会让您怀疑计算速度较慢,这是因为我在回答中构建代码的方式是返回每行之间的距离向量(不是每个点之间的距离矩阵)。

相反,您的 distm()原始代码中的计算返回每个点之间的多个向量的矩阵。对于您的问题,只要对数据进行排序,就没有必要这样做,这就是我这样做的原因。此外,也没有必要使用分层聚类将基于这些距离的点聚类为 3 个(您定义的数量)聚类,因为我们可以使用每个点值之间的距离百分比来做同样的事情。同样,速度优势与在单个向量而不是矩阵上计算集群有关。

请注意,我是一名具有会计/金融背景的数据分析师,无论如何都不是 GIS 专家。话虽如此,我对 distVincentyEllipsoid() 的使用函数来自我的一般理解,即这会将大圆距离的相当准确的估计作为向量(而不是矩阵)返回。此外,在过去使用它来优化物流操作以达到定价目的,我可以证明这些计算已经在市场上进行了测试并被证明是合理的。

关于r - R 中的 distm 函数和 distVincentyEllipsoid 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62086618/

相关文章:

r - 使用列名称字符串在箭头中收集之前进行汇总

r - xkcd包: "Ignoring Unknown Aesthetics"

matlab - 如何计算没有循环的矩阵的欧几里德长度?

cluster-analysis - 对二进制向量的稀疏数据集进行聚类

r - 使用 shapefile 在 R 中创建连通性直方图

python - 2 条轨迹的 Fréchet 距离

r - 如何记录 r 包的数据集?

r - 为什么summary()给max()赋予不同的最大值

python - 使用 rpy2 库,R 中的 For 循环比 Python 中的循环快几倍

Python 飞行距离和时间计算器