# 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(427000, 428500,8430250,8431000)
ventana
## class      : Extent 
## xmin       : 427000 
## xmax       : 428500 
## ymin       : 8430250 
## ymax       : 8431000
#Presentamos la imagen  en función de la ventana seleccionada.
x11()
ggRGB(bandas,r=3,g=2,b=1,stretch = "lin", ext= ventana)

#Proceso de Panshapen (Fusión de bandas)
#Consiste en corroborar cual de los mƩtodos son los que revelan mejor desempeƱo la identificacion de objetos,
#despues del proceso de panshapening mediante la viualización.

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

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


fbrovey <- panSharpen(bandas, b0, r = 3, g = 2, b = 1, method = "brovey")
fbrovey
## 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_BAND1_pan, CBERS_4A_BAND2_pan, CBERS_4A_BAND3_pan 
## min values :           59.70486,           51.26966,           36.81037 
## max values :           375.9842,           371.5016,           428.5106
# Presentamos la imagen en la ventana seleccionada.
ggRGB(fbrovey, r=3,g=2,b=1, stretch = "lin") 

# Presentamos la imagen en la ventana seleccionada.
ggRGB(fbrovey, r=3,g=2,b=1, stretch = "lin", ext = ventana) + ggtitle("Pansharpening brovey")

# Convertir en bandas pancromaticas Utlizando el mƩtodo de pca

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


fpca <- panSharpen(bandas, b0, r = 4, g = 3, b = 2, method = "pca")
fpca
## class      : RasterBrick 
## dimensions : 2533, 3049, 7723117, 4  (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_BAND1_pan, CBERS_4A_BAND2_pan, CBERS_4A_BAND3_pan, CBERS_4A_BAND4_pan 
## min values :           419.1262,           380.2678,           488.7827,            17.4108 
## max values :           765.5492,           733.6358,           740.4909,          1118.5740
#Toda la imagen en la ventana
ggRGB(fpca, r=3,g=2,b=1,stretch = "lin") 

# Presentamos la imagen en la ventana seleccionada.

ggRGB(fpca, r=3,g=2,b=1, stretch = "lin",ext = ventana) + ggtitle("Pansharpening PCA")

######
# Convertir en bandas pancromaticas Utlizando el mƩtodo de ihs

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


fihs <- panSharpen(bandas, b0, r = 3, g = 2, b = 1, method = "ihs")
fihs
## 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_BAND1_pan, CBERS_4A_BAND2_pan, CBERS_4A_BAND3_pan 
## min values :           118.0938,           136.1094,           160.9323 
## max values :           1136.667,           1071.797,           1046.417
#Toda la imagen en la ventana
ggRGB(fihs,r=3,g=2,b=1,stretch = "lin") 

# Presentamos la imagen en la ventana seleccionada.

ggRGB(fihs, r=3,g=2,b=1, stretch = "lin", ext = ventana) + ggtitle("Pansharpening ihs")