在rasterStack中查找特定像素的坐标

时间:2014-07-11 17:21:18

标签: r coordinates raster

我想在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?

1 个答案:

答案 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)

然后在foobar中查找相同的行,可能是通过连接行,或计算foo-bar并识别零行。

编辑:更好的方法,马上给你坐标。

which(s==2 & r==0, arr.ind=TRUE)