Mais

Usando o Loop para calcular o NDVI em R?

Usando o Loop para calcular o NDVI em R?


Estou usando o MOD09Q1 agora e gostaria de calcular os dados do ano inteiro NDVI. Um ano, tenho 46 imagens da banda 1 e 46 imagens da banda 2.

  1. list.files

Estou criando lista de banda 1 e lista de banda 2.

Band1list <- list.files (path = ".", Pattern = "* .b01.tif", all.files = FALSE, full.names = FALSE, recursive = FALSE, ignore.case = FALSE) Band2list <- list. arquivos (caminho = ".", padrão = "* .b02.tif", all.files = FALSE, full.names = FALSE, recursivo = FALSE, ignore.case = FALSE)
  1. raster :: stack

Empilhar todas as 46 imagens da banda 1 (banda 2) em 'StackBand1' ('StackBand2')

StackBand1 <- pilha (Band1list) StackBand2 <- pilha (Band2list)
  1. Cálculo NDVI viaparaciclo

Tento empilhar imagens da mesma data (por exemplo, "2012.01.01.Smb01.tif" e "2012.01.01.Smb02.tif") e calcular o NDVI

para (i em 1: comprimento (Band1list)) {StackBand1 [[i]] == i StackBand2 [[i]] == i Stack <- brick (StackBand1 [[i]], StackBand2 [[i]])}

Aqui, não consegui executar o loop para todas as 46 imagens. Pode ser executado todo e o resultado é mostrado apenas para o último par.


Não há necessidade de umpara(ou qualquer outro tipo de) loop, uma vez que tais coisas estão inteiramente incluídas no raster pacote. Se você quiser calcular o NDVI, basicamente tudo que você precisa é

## biblioteca de pacotes necessária (raster) ## calcular ndvi de vermelho (banda 1) e infravermelho próximo (banda 2) canal ndvi <- sobreposição (StackBand1, StackBand2, fun = function (x, y) {(yx) / ( y + x)})

Assista o vídeo: Lecture 41: NDVI and other indices