【发布时间】:2016-04-13 16:38:27
【问题描述】:
我有许多栅格,我想检查它们是否完全包含在空间多边形内、完全没有空间多边形或与空间多边形相交(这可能意味着多边形完全在栅格内,或者多边形和栅格重叠)。我正在做这项检查,以便尽可能避免时间密集型掩蔽。
这是一个例子:
# create 3 example rasters
r <- raster()
r[] <- rnorm(n = ncell(r))
e1 <- extent(c(45,55,45,50))
r1 <- crop(r,e1)
e2 <- extent(c(20,25,25,30))
r2 <- crop(r,e2)
e3 <- extent(c(38,55,57,65))
r3 <- crop(r,e3)
#create SpatialPolygons
x <- c(40,60)
y <- c(40,60)
m <- expand.grid(x,y)
m <- m[c(1,2,4,3),]
p1 <- Polygon(m)
p1 <- Polygons(list(p1),1)
x <- c(10,15)
y <- c(10,15)
m <- expand.grid(x,y)
m <- m[c(1,2,4,3),]
p2 <- Polygon(m)
p2 <- Polygons(list(p2),2)
x <- c(30,45)
y <- c(70,80)
m <- expand.grid(x,y)
m <- m[c(1,2,4,3),]
p3 <- Polygon(m)
p3 <- Polygons(list(p3),3)
poly <- SpatialPolygons(list(p1,p2,p3))
绘制这些:
我将分别读取每个栅格并检查它是否在 SpatialPolygons 之内、之外或与 SpatialPolygons 相交。
您认为在 R 中最有效的方法是什么?我计划并行屏蔽数千个 4mb 栅格,并希望通过此检查加快处理速度。
但是,我认为它没有提供我正在寻找的细节。例如,所有栅格都在空间多边形的范围内,但并非所有栅格都在空间多边形内。
类似 rgeos 中的函数(gIntersects、gContains)可能会很方便。我不确定这些是否最有效,或者我应该如何将栅格(或其范围)转换为 sp 对象。
谢谢!
【问题讨论】: