问题描述
我目前正在研究R中的点的SF数据集,并且我想将该数据集转换为SpatialPointsDataFrame进行一些下游分析。这似乎很容易,所以我使用了as_Spatial()
函数,但是它抛出了一个我从未见过的错误:
Error in sp::CRS(SRS_string = from$wkt) : unused argument (SRS_string = from$wkt)
我要转换的对象对我来说有点大,但基本对象信息如下:
Simple feature collection with 1357 features and 10 fields
geometry type: POINT
dimension: XY
bBox: xmin: 2.763816 ymin: 4.292756 xmax: 13.66089 ymax: 13.76644
geographic CRS: WGS 84
我试图转换对象的CRS代码,以为它可能包含as_Spatial函数无法识别的字符串。但是,当我尝试使用st_transform()
函数时,它似乎没有更新地理CRS。我猜想一种解决方法是在上游更改我的工作流,以便不使用sf对象,但这将意味着丢弃大量以前的工作,并使用效率较低的intersect()
函数而不是st_join()
函数。如果有人知道我可以在哪里解决该问题,那就太好了。谢谢大家。
解决方法
我做了一些进一步的挖掘,发现sf
对象的CRS设置不正确。由于某种原因,当我在进行空间连接之前加载初始shapefile时,CRS包含了大量sf
最终无法处理的额外信息。我使用st_crs()
重设了CRS信息,从而解决了该问题。