Gis 使用光栅对象时提取函数的替代方法
我想知道如何对另一个光栅类别的每个类别的光栅值求和。换句话说,在处理光栅对象时,是否存在函数提取的替代方法?多谢各位Gis 使用光栅对象时提取函数的替代方法,gis,raster,Gis,Raster,我想知道如何对另一个光栅类别的每个类别的光栅值求和。换句话说,在处理光栅对象时,是否存在函数提取的替代方法?多谢各位 # sample raster with categories cat_r<-raster(ncol=3,nrow=3, xmn=-10, xmx=10, ymn=-10, ymx=10) cat_r[]<-c(1,2,1,3,4,3,4,4,4 ) #4 categories: 1, 2, 3 and 4 #sample raster with pixel val
# sample raster with categories
cat_r<-raster(ncol=3,nrow=3, xmn=-10, xmx=10, ymn=-10, ymx=10)
cat_r[]<-c(1,2,1,3,4,3,4,4,4 ) #4 categories: 1, 2, 3 and 4
#sample raster with pixel values
val_r <-raster(ncol=3,nrow=3, xmn=-10, xmx=10, ymn=-10, ymx=10)
val_r[]<-c(1,0,1,5,2,5,2,2,2)
#extract function doesn't work for
extract(val_r, cat_r, fun=sum)
#I should find the following values: category 1: 2, cat 2: 0, cat 3: 10, cat 4: 8
您可以使用分区方法:
这相当于
s <- stack(cat_r, val_r)
v <- values(s)
tapply(v[,2], v[,1], sum)
# 1 2 3 4
# 2 0 10 8
s <- stack(cat_r, val_r)
v <- values(s)
tapply(v[,2], v[,1], sum)
# 1 2 3 4
# 2 0 10 8