st_difference to sf object

时间:2019-02-19 16:39:15

标签: r dplyr lapply sf

可用数据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)

0 个答案:

没有答案