Tenho várias cenas do satélite Sentinel-2 para o mesmo local de datas diferentes. Cada cena contém bandas espectrais básicas (incluindo vermelho "B04" e infravermelho próximo "B08"). Carreguei os dados como um SpatRasterDataset
usando o terra
pacote. Como posso calcular o NDVI definido como NDVI = (NIR - RED) / (NIR + RED) para cada data?
library(terra)
r <- rast(system.file("ex/logo.tif", package="terra")) / c(1,2,3)
r <- c(r, r[[1]] + r[[2]])
names(r) <- paste0("B0", c(2:4, 8))
dates <- c("2023-02-08", "2023-03-02", "2023-04-06")
s <- sds(r, r, r)
names(s) <- dates
Dados de exemplo
Solução (aqui assumindo que "BO2" é "NIR" e "B04" é "RED")
Você pode usar uma lista em vez de um SpatRasterDataset