Данные доступны здесь
У меня есть 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 дней (я перестал ждать);не достаточно хорош.Есть ли способ отличить эти большие объекты в гораздо более короткие сроки?Я использую ПК с процессором i7-6700 @ 3,4 ГГц и 32 ГБ оперативной памяти.
Обновление : Оказывается, st_difference отличается от разницы в QGIS.Я нашел следующее в документе 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)