【问题标题】:Using geos inside a Rcpp function [duplicate]在 Rcpp 函数中使用 geos [重复]
【发布时间】:2018-04-08 23:38:00
【问题描述】:

任何人都知道如何在 Rcpp 函数中使用 geos(我正在构建一个 R 包)? 实际上,我正在寻找一种更好的方法:

Rcpp::Environment rgeos_env = Environment::namespace_env("rgeos");
Rcpp::Function Dist = rgeos_env["gDistance"];

上下文化,我想计算空间多边形之间的距离,但我经常这样做(Monte Carlo Tests)并且我想提高我的代码速度。

【问题讨论】:

  • Rcpp 调用 R 函数不会得到任何加速。这是因为您必须停止 C++ 执行,将对象传回R,运行R 函数,将结果导出回C++,然后完成计算。总的来说,有更多的开销却收效甚微。
  • 您是否尝试过使用sf 包,它使用geos 进行空间计算?
  • @SymbolixAU,我去年尝试过,但比我之前的要慢。谢谢你的建议。
  • 这是一个 定性 重复,因为您无法想象从 C++ 中调用 R 函数 并以某种方式押注于让它比 R 更快的魔法小马。

标签: r geospatial spatial rcpp geos


【解决方案1】:

我看到了两种可能的方法来使用 geos 而无需从 C++ 回到 R:

【讨论】:

  • 感谢您的建议,非常有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 2017-03-21
  • 2013-11-13
相关资源
最近更新 更多