问题描述
我正在使用reticulate
包在R代码中集成一个python函数,python中的原始输出是MultiLinestring。
Rstudio中的输出类别为:
> class(result)
[1] "centerline.geometry.Centerline" "shapely.geometry.multilinestring.MultiLinestring"
[3] "shapely.geometry.base.BaseMultipartGeometry" "shapely.geometry.base.BaseGeometry"
[5] "python.builtin.object"
> typeof(result)
[1] "environment"
> result
MULTILInesTRING ((188.84310143 -25.44115933212567,189.0883871453183 -25.39224242194983),(189.34310143 -25.40412148482432,189.0883871453183 -25.39224242194983))
我是python的新手,有什么方法可以在python或R中传输输出,所以我可以用它来制作Spatiallines或SF对象?
解决方法
#output of python function in R
> class(result)
[1] "centerline.geometry.Centerline" "shapely.geometry.multilinestring.MultiLineString"
[3] "shapely.geometry.base.BaseMultipartGeometry" "shapely.geometry.base.BaseGeometry"
[5] "python.builtin.object"
> typeof(result)
[1] "environment"
#Convert from Python to R object
processed <- reticulate::py_to_r(result)
#change type from environment to character
result_2<-type.convert(processed,as.is = TRUE)
#read WKT and construct SpatialLines
x<-readWKT(result_2)
> x
class : SpatialLines
features : 1
extent : 187.6103,191.6382,-25.8519,-24.55464 (xmin,xmax,ymin,ymax)
crs : NA