我正在寻找的是一种在一定范围内逐步光栅化(或加速)几何图形并将光栅化几何图形的各个部分连接到整个光栅对象的方法。
## create sample data
# create a frame
library(sf)
ob = st_sf(st_sfc(st_polygon(list(rbind(c(0,0), c(0,9), c(6,9), c(6,0), c(0,0)))))
# create tiles
library(GSIF)
tl <- getSpatialTiles(as(ob, 'Spatial'), block.x=3, overlap.percent=2)
plot(tl)
# create sample polygons
g <- st_sfc(st_point(c(1,2)), st_point(c(5,6)), st_point(c(2,4)), st_point(c(3,3)), st_point(c(3,4)), st_point(c(4,5)))
g.b <- st_buffer(g,0.6)
p <- st_sf(value = ceiling(10*runif(6)),
geometry = st_sfc(g.b))
plot(p, add=TRUE)
我猜,裁剪每个图块内的多边形(或多边形的一部分)效果很好。我的实际目标是逐块处理数据块。看起来下面的循环执行此操作,并将多边形的部分连接到整个多边形。好吧,输出(cr)与输入(p)相同......我认为这一步可能是必要的,以便在下一步中光栅化生成的(部分)多边形。我没想到多边形会被连接起来。我试图根据中间结果构建一个循环,因此添加了以下几行:
# crop polygons (or parts) for each tile
result <- p
for(i in 1:length(tl)) {cr <- rbind(result, st_crop(p, tl[i]))}
cr <- cr[-7,]
library(scales)
plot(st_geometry(cr), col=alpha("white", 0.5), add=TRUE)
但是,我很难栅格化(中间)结果。