En teoria solo con el paquete raster es suficiente, pero puede ser necesario usar otros paquetes para paralelizar, segun el el tamaño de los archivos.
Leemos las bandas que estan guardadas en el directorio IMG de mi proyecto (ejemplo con un archivo de micasense) que tiene bandas separas, que en este caso las entro individualmente.
bb <- raster("./IMG/blue.tif")
bg <- raster("./IMG/green.tif")
br <- raster("./IMG/red.tif")
bre <- raster("./IMG/rededge.tif")
bnir <- raster("./IMG/nir.tif")
b = banda azul g = banda verde r = banda roja re = banda red edge nir = banda infrarrojo cercano
NDVI <- function(nir,r){
vi= (nir-r)/(nir+r)
vi
}
NDVIg <- function(nir,g){
vi= (nir-g)/(nir+g)
vi
}
NGRDI <- function(g,r){
vi= (g-r)/(g+r)
vi
}
CL <- function(nir,g){
vi= (nir/g)-1
vi
}
BI <- function(g,r,nir){
vi= (nir+r+g)^(1/3)
vi
}
CI <- function(nir,g){
vi= (nir-g)/nir
vi
}
EVI2 <- function(nir,r){
vi= 2.5 *(nir-r)/(nir+2.4*r+1)
vi
}
CLre <- function(nir,re){
vi= (nir/re)-1
vi
}
pgris <- function(VI){
plot(VI,
col=grey(0:255/255), #rampa de grises
legend=FALSE,
main= quote(VI),
axes=FALSE)
}
#writeRaster(r, filename=file.path(tmp, "test.tif"), format="GTiff", overwrite=TRUE)
micaCL <- CL(bnir,bg)
pgris(micaCL)
writeRaster(micaCL, filename="./IMG/micaCL.tif", format="GTiff", overwrite=TRUE)
micaBI <- BI(bg,br,bnir)
pgris(micaBI)
writeRaster(micaBI, filename="./IMG/micaBI.tif", format="GTiff", overwrite=TRUE)
micaCLre <- CL(bnir,bre)
pgris(micaCLre)
writeRaster(micaCLre, filename="./IMG/micaCLre.tif", format="GTiff", overwrite=TRUE)