4

私は 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)

私の質問: ループを使用しない簡単な解決策はありますか?

4

0 に答える 0