我想从栅格图层中获取系统的细胞样本。我用来选择样本的栅格分为15个部分。我想从每个部分中抽取2个单元格,但我希望每个部分中采样单元格的相对位置相同。
例如。如果选择了第一部分右上角的单元格,我想对其他14个部分的右上角单元格进行采样。但我希望“起点”是随机的。
这就是我的栅格的样子,其中单元格值代表它所属的部分
r<-raster(ncol=36, nrow=35)
r[1:7,1:12]<-1
r[1:7,13:24]<-2
r[1:7,25:36]<-3
r[8:14,1:12]<-4
r[8:14,13:24]<-5
r[8:14,25:36]<-6
r[15:21,1:12]<-7
r[15:21,13:24]<-8
r[15:21,25:36]<-9
r[22:28,1:12]<-10
r[22:28,13:24]<-11
r[22:28,25:36]<-12
r[29:35,1:12]<-13
r[29:35,13:24]<-14
r[29:35,25:36]<-15
plot(r)
我该怎么做?
答案 0 :(得分:0)
这是我回答的另一个非常相似的问题,但是用户想要在较大的栅格中从3x3网格中随机放置样本。
library(raster)
ras <- raster(nrows = 3, ncols = 3)
v <- c(1,2,NA,4,NA,NA,7,8,9)
ras[] <- v
plot(ras)
res(ras)
ras_fine <- raster(nrows = 9, ncols = 9) #finer resolution raster
ras<-resample(ras,ras_fine,method='ngb')
plot(ras)
samp_strat.rand<- sampleStratified(ras, 1, xy = TRUE, sp=TRUE, na.rm = TRUE)
plot(ras)
points(samp_strat.rand)
稍微调整一下:
library(raster)
r<-raster(ncol=36, nrow=35)
r[1:7,1:12]<-1
r[1:7,13:24]<-2
r[1:7,25:36]<-3
r[8:14,1:12]<-4
r[8:14,13:24]<-5
r[8:14,25:36]<-6
r[15:21,1:12]<-7
r[15:21,13:24]<-8
r[15:21,25:36]<-9
r[22:28,1:12]<-10
r[22:28,13:24]<-11
r[22:28,25:36]<-12
r[29:35,1:12]<-13
r[29:35,13:24]<-14
r[29:35,25:36]<-15
r
plot(r)
res(r)
#ras_fine <- raster(nrows = 9, ncols = 9) #finer resolution raster
#ras<-resample(ras,ras_fine,method='ngb')
#plot(ras)
samp_strat.rand<- sampleStratified(r, 2, xy = TRUE, sp=TRUE, na.rm = TRUE)
plot(r)
points(samp_strat.rand)
所以我们每个细胞得到两个随机样本点.. 并进行一些小调整...
samp_strat.reg<- sampleRegular(r, 36, xy = TRUE, sp=TRUE, na.rm = TRUE)
samp_strat.reg.off<-data.frame(samp_strat.reg)
coordinates(samp_strat.reg.off) <- cbind(samp_strat.reg$x+runif(1,min=0,max=res(r)[1]),samp_strat.reg$y+runif(1,min=0,max=res(r)[2]))
samp_strat.off<-samp_strat.reg.data
plot(r)
points(samp_strat.off,col="red")
points(samp_strat.reg,col="blue")
现在我们在一个单元格的范围内有一个随机定位的点,每次都是相同的随机点。我认为这就是你要找的东西。