在R中随机分组栅格的简单方法

时间:2013-04-25 14:09:04

标签: r random subset raster

我在R工作 我有一个栅格(raster_entrop)。我想自动生成此栅格的随机子集。问题是它的范围不是矩形的,我希望子集完全包含在范围内。 我的解决方案是检查在我的“子范围”的坐标中是否没有“NaN”(对应于raster_entrop范围之外的像素),这些坐标是在原始栅格范围内随机选择的。

ext<-extent(raster_entrop)
repeat{
  rnd.x<-runif(1,ext@xmin, ext@xmax)
  rnd.y<-runif(1,ext@ymin, ext@ymax)

  #Test if the sub extent is completely within the "big extent" 
  test<-is.na(extract(raster_entrop, cbind(rnd.x,rnd.y)))+
  is.na(extract(raster_entrop, cbind(rnd.x,rnd.y+0.02)))+
  is.na(extract(raster_entrop, cbind(rnd.x+(0.02),rnd.y)))+
  is.na(extract(raster_entrop, cbind(rnd.x+(0.02),rnd.y+0.02)))

  if (test==0){
    break
  }
}
ext_sub<-extent(c(rnd.x, rnd.x+0.02,rnd.y,rnd.y+0.02))
raster_entrop_sub <- crop(raster_entrop, ext_sub)

我的问题:是否有更简单的解决方案不使用循环?

0 个答案:

没有答案