【问题标题】:Using writeOGR with rpy2将 writeOGR 与 rpy2 一起使用
【发布时间】:2020-07-20 18:41:31
【问题描述】:

我正在尝试使用从 Python 3.8 调用的 R 来使用 writeOGR。

import rpy2.robjects as ro

.....
ro.r('ttops <- .....')
ro.r('writeOGR(obj=ttops, dsn="T:/Internal/segmentation", layer="test", driver="ESRI Shapefile")')

错误:

R[write to console]: Error in writeOGR(obj = ttops, dsn = "T:/Internal/LiDAR/crown_segmentation",  : 
  could not find function "writeOGR"

Traceback (most recent call last):
  File "C:/Users/david/PycharmProjects/main.py", line 7, in <module>
    main()
  File "C:/Users/david/PycharmProjects/main.py", line 4, in main
    R_Packages().process()
  File "C:\Users\david\PycharmProjects\model_testing\r_methods.py", line 17, in process
    ro.r('writeOGR(obj=ttops, dsn="T:/Internal/segmentation", layer="test", driver="ESRI Shapefile")')
  File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\rpy2\robjects\__init__.py", line 416, in __call__
    res = self.eval(p)
  File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\rpy2\robjects\functions.py", line 197, in __call__
    return (super(SignatureTranslatedFunction, self)
  File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\rpy2\robjects\functions.py", line 125, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
  File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\rpy2\rinterface_lib\conversion.py", line 44, in _
    cdata = function(*args, **kwargs)
  File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\rpy2\rinterface.py", line 624, in __call__
    raise embedded.RRuntimeError(_rinterface._geterrmessage())
rpy2.rinterface_lib.embedded.RRuntimeError: Error in writeOGR(obj = ttops, dsn = "T:/Internal/segmentation",  : 
  could not find function "writeOGR"

我是否遗漏了什么或者这是 rpy2 的限制?如果是限制,那么使用 Python 编写 R 数据的 shapefile 的替代方法是什么?

【问题讨论】:

  • 你确实安装了GDAL,不是吗?
  • 我刚升级到python 3.8。 pip install gdal 出错。将为此打开新主题并告知是否解决了以前的问题。
  • 获取二进制文件gdal
  • 对不起,我下载了 3.1.2 并解压。它应该在哪里/我需要在环境变量中引用它吗?
  • 我是 ubuntu,自从我构建 Windows 以来已经有好几年了。我会使用二进制文件并让我的 r2py 工作。

标签: r rpy2


【解决方案1】:

有一个我不需要在 R 中定义但在 Python 中需要的库:

ro.r('library(rgdal)')

【讨论】:

    猜你喜欢
    • 2013-02-10
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 2012-10-30
    • 2014-03-16
    • 2015-01-28
    • 2021-04-20
    相关资源
    最近更新 更多