Добавление значений растра при построении всего стека растров - PullRequest
2 голосов
/ 10 мая 2019

Как добавить растровые значения при построении всего растрового стека с помощью text()? им легко управлять при построении одного растра, но я озадачен тем, как сделать это для всего стека растров.

пример данных:

set.seed(123)
library(raster)
r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)
rr <- lapply(1:10, function(i) setValues(r1,seq(1,ncell(r1),1)))
s <- stack(rr)

для одного растра, как показано ниже:

plot(s[[1]])
text(s[[1]])

Ответы [ 2 ]

2 голосов
/ 10 мая 2019

Вы можете настроить графический параметр par и циклически проходить по слоям для построения графика вместо использования plot на всем стеке:

set.seed(123)
library(raster)
r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)
rr <- lapply(1:10, function(i) setValues(r1,seq(1,ncell(r1),1)))
s <- stack(rr)

# 3 rows, 4 columns
par(mfrow=c(3,4))

for (ii in 1:nlayers(s)){

  plot(s[[ii]])
  text(s[[ii]])

}

enter image description here

1 голос
/ 10 мая 2019

Пример данных

set.seed(123)
library(raster)
r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)
rr <- lapply(1:10, function(i) setValues(r1, sample(ncell(r1))))
s <- stack(rr)

Простой подход

par(mfrow=c(3,4))
for (i in 1:nlayers(s)) {
    plot(s[[i]])
    text(s[[i]])
}

Любительница, но хитрая. Он использует глобальную переменную i, которую необходимо сбрасывать в 1 каждый раз, прежде чем использовать ее с plot

f <- function() {  text(s[[i]]); i <<- i + 1 }
i <- 1
plot(s, addfun=f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...