如何将python中产生的MultiLineString转换为R对象?

问题描述

我正在使用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"

Rstudio中的输出

> 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