Esta presentación trata un R Notebook en línea, indica las pautas a seguir para fusionar imágenes multiespectrales de menor resolución utilizando una imagen pancromática cuyo tamaño de pixel es menor, también este proceso es entiendo como Pansharpening, que es un enfoque que se utiliza para amalgamar las características en una secuencias de imágenes en la que conserva las características importantes de la imagen de entrada, para obtener imágenes multiespectrales cuyo tamaño de pixel es más alta. (Masood, et al, 2017). Para desarrollar este proceso de utilizaron imágenes satelitales de China–Brazil Earth Resources Satellite 4A (CBERS-4A), que se encuentra disponible en la pagina de la agencia espacial brasileña. Del mismo modo, para procesar los datos se utilizaron el programa RStudio, considerando la extensión RStoolbox donde nos indica las pautas para el proceso de fusión de imágenes en el manual de Package ‘RStoolbox (Leutner et al, 2019).

# Librerías a cargar para el ejercio.
library(sp)
library(raster)
library(ggplot2)
library(rgdal)
## rgdal: version: 1.4-8, (SVN revision 845)
##  Geospatial Data Abstraction Library extensions to R successfully loaded
##  Loaded GDAL runtime: GDAL 2.2.3, released 2017/11/20
##  Path to GDAL shared files: C:/Users/Usuario/Documents/R/win-library/3.6/rgdal/gdal
##  GDAL binary built with GEOS: TRUE 
##  Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]
##  Path to PROJ.4 shared files: C:/Users/Usuario/Documents/R/win-library/3.6/rgdal/proj
##  Linking to sp version: 1.4-1
library(RStoolbox)
############################################################
# Importamos las bandas a la plataforma RStudio.
#E:/Imagenes CBERS4A/ParaR
setwd("E:/Imagenes CBERS4A/ParaR")

files <- list.files(pattern='.sdat')
files
##  [1] "CBERS_4A_BAND0.sdat"         "CBERS_4A_BAND0.sdat.aux.xml"
##  [3] "CBERS_4A_BAND1.sdat"         "CBERS_4A_BAND1.sdat.aux.xml"
##  [5] "CBERS_4A_BAND2.sdat"         "CBERS_4A_BAND2.sdat.aux.xml"
##  [7] "CBERS_4A_BAND3.sdat"         "CBERS_4A_BAND3.sdat.aux.xml"
##  [9] "CBERS_4A_BAND4.sdat"         "CBERS_4A_BAND4.sdat.aux.xml"
b0 <- raster("E:/Imagenes CBERS4A/ParaR/CBERS_4A_BAND0.sdat")
b1 <- raster("E:/Imagenes CBERS4A/ParaR/CBERS_4A_BAND1.sdat")
b2 <- raster("E:/Imagenes CBERS4A/ParaR/CBERS_4A_BAND2.sdat")
b3 <- raster("E:/Imagenes CBERS4A/ParaR/CBERS_4A_BAND3.sdat")
b4 <- raster("E:/Imagenes CBERS4A/ParaR/CBERS_4A_BAND4.sdat")

#Características de los datos de las bandas multiespectrales, tamaño de pixel 8 metros.
b1
## class      : RasterLayer 
## dimensions : 633, 762, 482346  (nrow, ncol, ncell)
## resolution : 8, 8  (x, y)
## extent     : 423838, 429934, 8428570, 8433634  (xmin, xmax, ymin, ymax)
## crs        : +proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
## source     : E:/Imagenes CBERS4A/ParaR/CBERS_4A_BAND1.sdat 
## names      : CBERS_4A_BAND1 
## values     : -32768, 32767  (min, max)
# Características de la banda Pancromática tamaño de pixel 2 metros. 
b0
## class      : RasterLayer 
## dimensions : 2533, 3049, 7723117  (nrow, ncol, ncell)
## resolution : 2, 2  (x, y)
## extent     : 423838, 429936, 8428570, 8433636  (xmin, xmax, ymin, ymax)
## crs        : +proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
## source     : E:/Imagenes CBERS4A/ParaR/CBERS_4A_BAND0.sdat 
## names      : CBERS_4A_BAND0 
## values     : -32768, 32767  (min, max)
#Integramos las bandas.
bandas <- addLayer(b1,b2,b3,b4) 
bandas
## class      : RasterStack 
## dimensions : 633, 762, 482346, 4  (nrow, ncol, ncell, nlayers)
## resolution : 8, 8  (x, y)
## extent     : 423838, 429934, 8428570, 8433634  (xmin, xmax, ymin, ymax)
## crs        : +proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
## names      : CBERS_4A_BAND1, CBERS_4A_BAND2, CBERS_4A_BAND3, CBERS_4A_BAND4 
## min values :         -32768,         -32768,         -32768,         -32768 
## max values :          32767,          32767,          32767,          32767
# Presentamos la banda en la ventana.
ggRGB(bandas,r=3,g=2,b=1,stretch = "lin") + ggtitle("Combinacion bandas 321") 

# Generamos la extensión, primero en el eje "X" y luego en el eje "y".
ventana <-extent(426000, 428000,8430000,8431000)
ventana
## class      : Extent 
## xmin       : 426000 
## xmax       : 428000 
## ymin       : 8430000 
## ymax       : 8431000
#Presentamos la imagen  en función de la ventana seleccionada.
ggRGB(bandas,r=3,g=2,b=1,stretch = "lin", ext= ventana)

#Presentamos la imagen en función de la ventana seleccionada en la que se adiciona el título o un comentario en la parte superior de la imagen.

ggRGB(bandas, stretch="lin", ext = ventana ) + ggtitle("Combinacion bandas 321")

#Proceso de Panshapen (Fusión de bandas)
#El proceso de la fusión de las bandas consiste en convertir el tamaño de pixel de las 
#bandas multiespectrales en resoluciones más finas, a partir de una banda pancromática 
#donde el tamaño de pixel es menor que los pixeles de las bandas multiespectrales, esta consideración es fundamental.


# Convertir en bandas pancromaticas Utlizando el método de Broyey

#panSharpen(img, pan, r, g, b, pc = 1, method = "brovey", norm = TRUE), 


fusion <- panSharpen(bandas, b0, r = 4, g = 3, b = 2, method = "brovey")
fusion
## class      : RasterBrick 
## dimensions : 2533, 3049, 7723117, 3  (nrow, ncol, ncell, nlayers)
## resolution : 2, 2  (x, y)
## extent     : 423838, 429936, 8428570, 8433636  (xmin, xmax, ymin, ymax)
## crs        : +proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
## source     : memory
## names      : CBERS_4A_BAND2_pan, CBERS_4A_BAND3_pan, CBERS_4A_BAND4_pan 
## min values :           40.58824,           32.00000,           42.77258 
## max values :           401.8531,           423.5611,           362.7040
#Presentamos la imagen fusionada
ggRGB(fusion, stretch = "lin") + ggtitle("Original")

# Presentamos la imagen en la ventana seleccionada.
ggRGB(fusion, stretch = "lin", ext = ventana) + ggtitle("Original")

# Se presenta diferentes combinaciones de bandas, utilizando las imagenes fusionadas. 

ggRGB(fusion,r=2,g=3,b=1,stretch = "lin",ext = ventana) + ggtitle("Combinación bandas Red,NIR,Geen")

# otra ventana
arena <-extent(428000, 430000, 8430000,8431000)
arena
## class      : Extent 
## xmin       : 428000 
## xmax       : 430000 
## ymin       : 8430000 
## ymax       : 8431000
x11()
ggRGB(fusion,r=3,g=2,b=1,stretch = "lin",ext = arena)+ ggtitle("Combinación bandas NIR,Red,Geen")