我有很多光栅数据,我想检查它们是否完全包含在一个空间多边形内部、完全不在空间多边形内部或与空间多边形相交(这可能意味着多边形完全在光栅数据中,或者多边形和光栅数据重叠)。我进行这个检查是为了节省时间,避免不必要的蒙版操作。
以下是示例:
# 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))
绘制以下内容:
我将分别读取每个栅格,并检查它是否在空间多边形内、外或相交。
您认为在R中最有效的方法是什么? 我有数千个4MB的栅格图像,计划并行进行掩膜处理,并希望通过此检查加快速度。
但是,我认为它没有给出我需要的详细信息。例如,所有栅格都在空间多边形的范围内,但并不是所有栅格都在空间多边形内部。
像rgeos中的gIntersects、gContains等函数可能很方便。我不确定这些是最有效的,或者我应该如何将栅格(或其范围)转换为sp对象。
谢谢!