График временного ряда пикселей

Я пытаюсь создать интерактивный график растрового кирпича, в котором щелчок по пикселю дает вам временной ряд данных для этого пикселя. (Мой растровый кирпич составляет около 345 изображений.)

Вот что я сделал:

library(raster)

EVI <- "D:\\Modis_EVI\\Original\\EVI_Stack_single5000.tif"
y.EVI <- brick(EVI)
plot(as.numeric(click(y.EVI)), type="l", lwd=2)

Но это вовсе не сюжет. И когда я пытаюсь с меньшим стеком, как только 4 изображения, это выдает эту ошибку:

 Error in plot.window(…) : need finite 'xlim' values

Любой совет, пожалуйста?

1 ответ

Предполагая, что вы хотите разрешить пользователю кликать один раз, вы должны указать n=1 в click, Например:

library(raster)
b <- brick(replicate(10, raster(matrix(runif(100), ncol=10))))

plot_ts <- function(x) {
  plot(x[[1]])
  z <- c(click(x, n=1, show=FALSE))
  plot(z, type='l', lwd=2, ylab='y', xlab='time', las=1)
  z
}

z <- plot_ts(b)

Вот пример графика после нажатия на ячейку... введите описание изображения здесь

Другие вопросы по тегам