私は 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)
私の質問: ループを使用しない簡単な解決策はありますか?