3
我有一个包含在单个stack
中的栅格图层以及包含点坐标的SpatialPoints
对象。如果单元格包含一个点,我试图将栅格图层的值更改为NA。如果单元格包含点,则将光栅单元格值更改为NA
我在下面提供了一个可重现的例子。然而,为了说明这一点,我的真实数据由10层“栖息地”(海拔,树冠覆盖等)组成,这些层都包含在堆栈中。 rasters
覆盖面积约为34 x 26公里。另外,我有大约10,000个来自动物的GPS位置。
因此,对于可重复的例子。
library(raster)
library(sp)
提出三点rasters
并结合成一个stack
set.seed(123)
r1 <- raster(nrows=10, ncols=10)
r1 <- setValues(r1, sample(c(1:50), 100, replace = T))
r2 <- raster(nrows=10, ncols=10)
r2 <- setValues(r2, sample(c(40:50), 100, replace = T))
r3 <- raster(nrows=10, ncols=10)
r3 <- setValues(r3, sample(c(50:55), 100, replace = T))
Stack <- stack(r1, r2, r3)
nlayers(Stack)
充分利用SpatialPoints
Pts <- SpatialPoints(data.frame(x = sample(-175:175, 50, replace = T),
y = sample(-75:75, 50, replace = T)))
情节的栅格之一,点
plot(Stack[[2]])
plot(Pts, add = T)
现在,是否可以更改每个包含至少一个指向NA的单元格的值?在stack
上执行此操作会很好。
很酷。很有帮助。是否有一个原因是你在'Stack'中编入了层'[[1]]'的索引?测试一下,似乎你可以一次对整个堆栈执行操作。例如'ii < - unique(extract(Stack,Pts,cellnumbers = TRUE)[,“cells”])' 'Stack [ii] < - NA' –
@ B.Davis没有很好的理由,事实上, unique()'也不需要。我已编辑帖子以相应地简化。 –