0

如何使用 R maptools 库将 Dataframe 转换为 SpatialGridDataFrame?我是 Rpy2 的新手,所以这可能是一个非常基本的问题。

R代码是:坐标(dataf)=~X+Y

在 Python 中:

import rpy2
import rpy2.robjects as robjects
r = robjects.r
# Create a Test Dataframe 
d = {'TEST': robjects.IntVector((221,412,332)), 'X': robjects.IntVector(('25', '31', '44')), 'Y': robjects.IntVector(('25', '35', '14'))}
dataf = robjects.r['data.frame'](**d)
r.library('maptools')
# Then i could not manage to write the above mentioned R-Code using the Rpy2 documentation

除了这个特殊的问题,我很高兴能得到一些关于更一般性想法的反馈:我的最终目标是使用 gstat 库对空间数据进行回归克里金法。R 脚本工作正常,但我想从 Python/Arcgis 调用我的脚本。您如何看待这项任务,这可以通过 rpy2 实现吗?

非常感谢!理查德

4

1 回答 1

0

在某些情况下,Rpy2 仍然无法动态(和自动)生成智能绑定。

对 R 代码的分析将有助于:

coordinates(dataf)=~X+Y

这可以更明确地写成:

dataf <- "coordinates<-"(dataf, formula("~X+Y"))

最后一个表达式使 Python/rpy2 直截了当:

from rpy2.robjects.packages import importr
sp = importr('sp') # "coordinates<-()" is there

from rpy2.robjects import baseenv, Formula
maptools_set = baseenv.get('coordinates<-')
dataf = maptools_set(dataf, Formula(' ~ X + Y'))

要(明智地)明确“坐标<-”的来源,请使用:

maptools_set = getattr(sp, 'coordinates<-')
于 2012-05-29T07:31:08.967 回答