可用数据here
我有2个大型sf对象。一个是带缓冲点的sf多边形对象,另一个是sf线对象。我想像这样使用多边形对象来区别线对象:
library(sf)
geopackage = 'differenceBIG.gpkg'
lines <- st_read(geopackage , layer = "lines")
points <- st_read(geopackage , layer = "points")
poly <- st_buffer(points, dist = 0.001)
differenced <- st_difference(lines, poly)
这需要3天多的时间才能完成(我放弃了等待);还不够好。是否可以在更短的时间内区分这些大型SF对象?我使用的是PC,配备i7-6700 CPU @ 3.4 GHz和32 GB RAM。
更新:结果证明st_difference与QGIS中的Difference不同。我在sf.pdf文档中找到了以下内容
# A helper function that erases all of y from x:
st_erase = function(x, y) st_difference(x, st_union(st_combine(y)))
differenced <- st_erase(lines, poly)