У меня есть код Rstudio, который случайным образом распределяет точки по растру «поверхности вероятности», где точки с большей вероятностью попадают в ячейки с большей вероятностью.Однако, как только ячейка была выбрана, она не может быть взята снова, и мне нужно сделать примерно 280 000 точек, которые просто покрывают весь регион.
Поэтому я хочу вместо этого запустить функцию для распределения, например, 1000очки, а затем запустить его 280 раз.Перед добавлением всех прогонов вместе, чтобы получить плотность клеток.Таким образом, ячейка может иметь максимальное значение = количества прогонов, например, 280.
Я знаю, что это будет использовать некоторую форму цикла FOR, однако я не уверен точно, где разместить цикл, так какЯ очень хорошо знаком с кодированием.
Я также пытался создать 'SUM' для возможного накопления всех выходов, однако не знаю, как сохранить выходы всех прогонов, чтобы затем использоватьфункция SUM.
probsel = function(probrast,N) {
x = getValues(probrast)
x[is.na(x)] = 0
samp = sample(nrow(probrast)*ncol(probrast),replace=TRUE, size=N, prob=x)
samprast = raster(probrast)
samprast[samp] = 1
points<-rasterToPoints(samprast, fun=function(x){x>0})
points<-SpatialPoints(points)
return(points)
}
library(raster)
library(rasterVis)
prob = raster("ssp3_prob_clip.tif")
#This loads in the raster 'probability surface' over which the points are distributed depending on the probability of the underlying cell
plot(prob)
probrast = prob
probrast = probrast/sum(getValues(probrast), na.rm=T)
plot(probrast)
sum(getValues(probrast),na.rm=T)
samppoints = probsel(probrast, 100)
#This determines the number of sample points are added in the run. However once a cell is taken it can not be overlapped.
plot(probrast, axes=F)
plot(samppoints, add=T, pch=16, cex=0.2, col="black")
Поэтому я хочу получить конечный продукт, который имеет плотность значений во всех прогонах.Это обеспечит возможность повторной выборки ячеек, которые были отобраны в ходе каждого прогона, с сопоставленным конечным продуктом.