Вы можете сделать
library(raster)
x <- brick('tLh2E.jpg')
#plotRGB(x)
Все ячейки с координатами:
xyz = rasterToPoints(x)
head(xyz)
# x y tLh2E.1 tLh2E.2 tLh2E.3
#[1,] 0.5 1103.5 222 222 224
#[2,] 1.5 1103.5 214 214 216
#[3,] 2.5 1103.5 223 223 225
#[4,] 3.5 1103.5 220 220 222
#[5,] 4.5 1103.5 197 197 199
#[6,] 5.5 1103.5 198 198 200
Или образец:
s1 <- sampleRandom(x, 100, xy=TRUE)
s2 <- sampleRegular(x, 100, xy=TRUE)
Чтобы посмотреть расположение образцов
plotRGB(x)
points(s1[, 1:2])
points(s2[, 1:2], col='red', pch=20)
Для создания изображения из обычного образца
r <- sampleRegular(x, 1000, asRaster=TRUE)
plotRGB(r)
Для стратифицированной выборки вы должны будете определить регионы. Вы можете нарисовать их с помощью raster::drawPoly()
с последующим rasterize
или смоделировать их, см. raster::predict
. Здесь очень простой и, возможно, не очень хороший подход, основанный на эффекте глаз. Оказывается, что второй, «зеленый» слой (из красно-зелено-синего изображения) содержит большую часть информации. Это сблизит вас:
r <- reclassify(x[[2]], rbind(c(0,100,1), c(100,175,2), c(175,255,3)))
plot(r, col=c('red', 'blue','gray'))
Теперь вы можете узнать, какой цвет имеет каждая точка:
extract(r, s1[,1:2])