下面是一些运行的代码。它假设:
-
您希望比较相邻日期(图层按日期排序)
library(raster)
m_date <- data.frame(date =
as.Date(c('2009-05-01','2010-03-25','2007-06-14','2008-12-18')))
m_r <- lapply(m_date$date, function(x) raster(matrix(rnorm(60),3,4)))
m_stack <- stack(m_r)
m_stack@z <- list(m_date = m_date[,1])
# sort by date
m_stack <- m_stack[[order(m_stack@z$m_date)]]
new_stack <- m_stack[[-1]]
for (i in 1:(nlayers(new_stack))) {
new_stack[[i]] <- calc(m_stack[[i:(i+1)]], fun = max)
new_stack@z$m_date[[i]] <- m_stack@z$m_date[i:(i+1)][
which.max(c(
cellStats(m_stack[[i]], stat = max),
cellStats(m_stack[[i+1]], stat = max)))]
}
new stack
dimensions : 3, 4, 12, 3 (nrow, ncol, ncell, nlayers)
resolution : 0.25, 0.3333333 (x, y)
extent : 0, 1, 0, 1 (xmin, xmax, ymin, ymax)
coord. ref. : NA
names : layer.1, layer.2, layer.3
min values : -0.03990727, -0.46295595, -0.39121706
max values : 2.261900, 2.261900, 1.647811
m_date : 2008-12-18, 2008-12-18, 2009-05-01