我想在rasterStack中找到具有相同矢量模式的像素坐标。下面是一个简单的例子。
> s<-r<-raster(ncol=5,nrow=5)
> r[]<-round(runif(ncell(r)))
> s[]<-2
> rs<-stack(r,s)
> rs
class : RasterStack
dimensions : 5, 5, 25, 2 (nrow, ncol, ncell, nlayers)
resolution : 72, 36 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
names : layer.1, layer.2
min values : 0, 2
max values : 1, 2
如果我有一个向量vet<-c(0,2)
,其像素坐标在第一层中的值为0,在第二层中的值为2?
答案 0 :(得分:0)
使用which
可能会有效。我坚持使用矩阵;你可以在以后光栅化它们: - )
foo<-which(r==0,arr.ind=TRUE)
s<-matrix(ncol=5,nrow=5)
set.seed(10)
r[]<-round(runif(ncell(r)))
s[1:3,]<-2
foo<-which(r==0,arr.ind=TRUE)
bar<-which(s==2,arr.ind=TRUE)
然后在foo
和bar
中查找相同的行,可能是通过连接行,或计算foo-bar
并识别零行。
编辑:更好的方法,马上给你坐标。
which(s==2 & r==0, arr.ind=TRUE)