💡 OBJETIVOS:
Comprender la teoría que subyace a la transformación tasseled cap.
Aplicar la transformación tasseled cap a imágenes multiespectrales (por ejemplo, Landsat TM/OLI).
Extraer y visualizar cada componente (brillo, verdor, humedad).
Interpretar en términos de comportamiento de las superficies terrestres los valores de brillo, verdor y humedad y usarlos para evaluar las condiciones de la vegetación y del suelo.
💡 MATERIALES PARA LA ACTIVIDAD:
Los materiales para el desarrollo de esta actividad son los siguientes.
► Imágenes satélite. Es la misma imagen multibanda utilizada en la actividad previa.
Este procedimiento fue pensado inicialmente como un procedimiento de simplificación de la información contenida en las bandas de las imágenes de satélite con el propósito de maximiniza la información contenida en esas imágenes (Kauth y Thomas, 1976) para resaltar fenómenos importantes en el desarrollo de cultivos. En definitiva, es un procedimiento que transforma las 6 bandas habitualmente utilizadas a partir de la plataforma Landsat (transformación en la que se obtienen otros datos independientes entre sí), obteniendo los siguientes neocanales de información:
Brightness (brillo): está asociado a las variaciones de reflectancia del suelo. Ocupa el eje principal de las coordenadas recién transformadas, y es la suma ponderada de la reflectancia de todas las bandas espectrales y representa la máxima variabilidad en los datos ráster.
Greeness (verdor): está correlacionado con el vigor de la vegetación y es es ortogonal (independiente) al primero.
Wetness (Humedad): está influído por las bandas en el IR medio y tiene que ver con la humedad vegetal y del suelo.Este último componente que es ortogonal a los dos primeros, y está asociado a la disponibilidad de agua, la humedad del suelo etc…
Esta simplificación de los componentes espectrales originales permite tratarlas como variables físicas, y es útil para detectar y comparar variaciones en la vegetación, el suelo y las superficies artificiales (por ejemplo, urbanas) en diferentes períodos de tiempo.
Se conoce como la transformación Tasseled Cap debido a la forma de la siguiente distribución gráfica; la región triangular muestra la vegetación en varias etapas de crecimiento. Por lo tanto, esta transformación es muy útil para el monitoreo y cartografía de la vegetación.
Una de las mayores limitaciones de la transformación Tasseled-cap es que solo se puede aplicar a sensores para los que ya se han desarrollado coeficientes de transformación. Actualmente, esto incluye Landsat, MODIS, ASTER, Ikonos, SPOT y, además, Sentinel 2.
Satélite | Bandas |
---|---|
Landsat4TM | 1,2,3,4,5,7 |
Landsat5TM | 1,2,3,4,5,7 |
Landsat7ETM | 1,2,3,4,5,7 |
Landsat8OLI | 2,3,4,5,6,7 |
MODIS | 1,2,3,4,5,6,7 |
QuickBird | 2,3,4,5 |
Spot5 | 2,3,4,5 |
RapidEye | 1,2,3,4,5 |
Los paquetes necesarios para realizar este ejercicio son los siguientes
library(terra) # Importación y transformación de imágenes ráster
## Warning: package 'terra' was built under R version 4.3.3
## terra 1.8.21
library(ggplot2) # Visualización de datos ráster con RStoolbox
## Warning: package 'ggplot2' was built under R version 4.3.3
library(RStoolbox) # Transformación y visualización de datos ráster.
## Warning: package 'RStoolbox' was built under R version 4.3.3
## This is version 1.0.0 of RStoolbox
También se trabajará con el objeto imagen
que ha sido
preparado en la introducción a este apartado. Si no se dispusiera de él
deberá importarse otra vez.
setwd("D:/G174_2025/LABORATORIO_6_Transformaciones_matematicas/datos") # Carpeta de trabajo
imagen <- rast("D:/G174_2025/LABORATORIO_6_Transformaciones_matematicas/datos/imagen.tif") # Importación del fichero.
imagen
## class : SpatRaster
## dimensions : 1245, 1497, 7 (nrow, ncol, nlyr)
## resolution : 30, 30 (x, y)
## extent : 594090, 639000, 4190190, 4227540 (xmin, xmax, ymin, ymax)
## coord. ref. : WGS 84 / UTM zone 10N (EPSG:32610)
## source : imagen.tif
## names : coast~rosol, blue, green, red, NIR, SWIR1, ...
## min values : 0.09641791, 0.0748399, 0.04259216, 0.02084067, 0.0008457669, -0.007872183, ...
## max values : 0.73462820, 0.7177562, 0.69246972, 0.78617686, 1.0124315023, 1.043204546, ...
Para facilitar el trabajo con las 7 bandas, se recomienda el cambio de los nombres de las bandas individuales en la imagen multibanda importada por los correspondientes a sus respectivas longitudes de onda (Landsat 8 OLI ).
names(imagen) <- c("coastal aerosol", "blue", "green", "red", "NIR", "SWIR1", "SWIR2")
En R la transformación Tasselled Cap se puede
realizar mediante función RStoolbox::tasseledCap()
. La
sintaxsis debe incluir:
Las bandas a utilizar en la transformación.
El nombre del sensor mediante el argumento
sat
.
Las unidades del ráster de entrada son reflectancia.
En el siguiente ejemplo de código, efectuaremos una transformación Tasseled cap a una imagen raster.
imagen_tc <- tasseledCap(imagen[[2:7]],
sat ="Landsat8OLI" )
imagen_tc
## class : SpatRaster
## dimensions : 1245, 1497, 3 (nrow, ncol, nlyr)
## resolution : 30, 30 (x, y)
## extent : 594090, 639000, 4190190, 4227540 (xmin, xmax, ymin, ymax)
## coord. ref. : WGS 84 / UTM zone 10N (EPSG:32610)
## source(s) : memory
## names : brightness, greenness, wetness
## min values : 0.04875321, -0.2373504, -0.8097868
## max values : 1.98364606, 0.4419796, 0.2490443
Cuando se aplica una transformación “tasseled cap”, los rangos de valores (normalizados) no son ni fijos ni universales, pero los rangos típicos para Landsat (usando reflectancia de superficie) suelen ser los siguientes:
Componente | Rango aproximado |
---|---|
Brightness (Brillo) | entre 0 y 3-4 |
Greenness (Verdor) | entre -2 y 2 |
Wetness (Humedad) | entre -2 y 2 |
La función ha calculado los tres componentes en forma de capas raster. A su vez, estas imágenes pueden ser dibujadas para observar las variaciones de los valores de brillo, verdor y humedad correspondientes al suelo, la vegetación y la humedad.
► Brillo
ggR(imagen_tc$brightness, geom_raster = TRUE) +
ggtitle("Brightness Tasseled cap") + # Título de la imagen
labs(x="Longitud(m)", y="Latitud (m)") + # Etiquetas del eje
theme(plot.title = element_text(hjust =0.5, # Título centrado
size =20), # Tamaño del título
axis.title = element_text(size =10), # Tamaño de las etiquetas de los ejes
legend.key.size =unit(1,"cm"), # Tamaño de la leyenda
legend.title = element_text(size = 20), # Tamaño del titulo de la leyenda
legend.text = element_text (size = 15)) + # Tamaño de la letra del texto de la leyenda
# Dibuja un gradiente de colores
scale_fill_gradientn(name = "Valores", colours = c("white", "green", "brown"),
limits = c(0, 1), # Límites de los valores
oob = scales::squish) + # Los valores fuera del rango se "aplasten" en los extremos +
theme_bw()
El parámetro brillo refleja la cantidad total de energía reflejada por la superficie terrestre en todas las bandas visibles e infrarrojas cercanas. Es básicamente una medida del albedo del suelo. A través de este parámetro se puede deducir:
El tipo de cobertura del suelo:
valores altos corresponden a superficies claras y reflectantes como suelos desnudos (arenosos, secos), áreas urbanas (cemento, techos) o zonas mineras.
Valores bajos corresponden a superficies oscuras como áreas densamente vegetadas, supeficies con agua o bajo sombras.
El estado del suelo o la vegetación, ya que un aumento del Brightness puede indicar deforestación, degradación de los suelos o sequías (la vegetación pierde humedad y reflejan más).
Se puede efectuar un seguimiento de cambios temporales, monitorizando cambios en el uso del suelo por expansión urbana o pérdida de vegetación.
Si, por ejemplo se realiza un seguimiento de una parcela agrícola
durante varios meses, un aumento de Brightness
podría
interpretarse como un la exposición del suelo desnudo tras la recogida
de la cosecha, o una disminución de la cobertura vegetal por estrés
hídrico.
► Verdor
ggR(imagen_tc$greenness, geom_raster = TRUE) +
ggtitle("Greenness Tasseled cap") + # Título de la imagen
labs(x="Longitud(m)", y="Latitud (m)") + # Etiquetas del eje
theme(plot.title = element_text(hjust =0.5, # Título centrado
size =20), # Tamaño del título
axis.title = element_text(size =10), # Tamaño de las etiquetas de los ejes
legend.key.size =unit(1,"cm"), # Tamaño de la leyenda
legend.title = element_text(size = 20), # Tamaño del título de la leyenda
legend.text = element_text (size = 15)) + # Tamaño del texto de la leyenda
# Dibuja un gradiente de colores
scale_fill_gradientn(name = "valores", colours = c("white", "darkgreen"),
limits = c(0, 1), # Límites de los valores
oob = scales::squish) + # Los valores fuera del rango se "aplasten" en los extremos)
theme_bw()
El componente verdor está relacionado con la cantidad, densidad y vigor de la vegetación verde, pues proporciona más peso a las bandas sensibles a la actividad fotosintética (como el rojo e infrarrojo cercano). Cuanto mayor es el valor de Greenness, más vegetación activa hay. De la observación de este parámetro se puede deducir:
La existencia y densidad de la vegetación: valores altos de Greenness indican zonas con cobertura vegetal densa y/o vegetación saludable y activa (con una alta alta fotosíntesis); valores bajos indican suelo desnudo, áreas urbanas, cuerpos de agua o vegetación seca o escasa.
El estado de salud de la vegetación, pues ayuda a distinguir entre vegetación sana y estresada, complementando a índices como el NDVI, pero con más contexto espectral.
El seguimiento de cambios estacionales o temporales, como ciclos de cultivo (crecimiento, cosecha), efectos de sequías, fenología vegetal o la regeneración de áreas deforestadas o quemadas
La clasificación del uso del suelo, identificando tipos de cobertura como bosques, áreas agrícolas o pastizales.
En el caso anterior, dos imágenes con Greenes pertenecietes a dos fechas distintas
En abril: valores altos de Greenness indican cobertura vegetal activa, probablemente cultivo en crecimiento.
En julio: disminuyen los valores, por que ya se haya cosechado o que haya estrés hídrico.
El uso de este parámetro tiene algunas utilidades adicionales, por ejemplo reduciendo el “ruido” de otras superficies no vegetadas.
En comparación con otros índices de vegetación:
NDVI puede dar valores cercanos a 0.8–0.9, pero se satura y no diferencia bien entre vegetación moderada y muy densa.
EVI mantiene mejor separación en zonas de vegetación densa, con más precisión en zonas húmedas y sombreadas.
Greenness puede reflejar más detalle de cambios estructurales en la vegetación (más allá de su “verdor”), ya que incorpora bandas SWIR, que son sensibles a humedad y estructura de la planta.
En conclusión
NDVI: Bueno, simple y ampliamente usado, pero limitado en vegetación densa.
EVI: Mejor en zonas con alta biomasa o condiciones atmosféricas complejas.
Greenness: Muy útil si ya aplicaste Tasseled Cap y quieres una visión rica del paisaje vegetado, integrando más información espectral.
► Humedad
ggR(imagen_tc$wetness, geom_raster = TRUE) +
ggtitle("Wetness") + # Título de la imagen
labs(x="Longitud(m)", y="Latitud (m)") + # Etiquetas del eje
theme(plot.title = element_text(hjust =0.5, # Título centrado
size =20), # Tamaño del título
axis.title = element_text(size =10), # Tamaño de las etiquetas de los ejes
legend.key.size =unit(1,"cm"), # Tamaño de la leyenda
legend.title = element_text(size = 20), # Tamaño del título de la leyenda
legend.text = element_text (size = 15)) + # Tamaño del texto de la leyenda
# Dibuja un gradiente de colores
scale_fill_gradientn(name = "valores", colours = c("skyblue", "darkblue"),
limits = c(0, 1), # Límites de los valores
oob = scales::squish) + # Los valores fuera del rango se "aplasten" en los extremos
theme_bw()
El componente humedad está relacionado con la humedad en la vegetación y en el suelo. Se calcula como una combinación lineal de bandas multiespectrales, donde se le da especial peso a las bandas del infrarrojo cercano (NIR) y del infrarrojo de onda corta (SWIR), que son sensibles al contenido de agua. Indica cuánta agua hay presente en la superficie terrestre, ya sea en forma de:
Humedad del suelo
Contenido de agua en la vegetación
Presencia de cuerpos de agua poco profundos o humedad superficial
Valores de humedad:
Altos (positivo): alta humedad del suelo, vegetación húmeda, zonas encharcadas o cuerpos de agua
Bajos (negativo): suelo seco, vegetación seca o escasa, zonas urbanas o áridas
Aplicaciones del parámetro humedad
Monitoreo de sequías
Detecta zonas con pérdida de humedad en cultivos, pastizales o ecosistemas naturales.
Evaluación de incendios: una imagen pre identifica zonas secas y susceptibles; una imagen pos zonas quemadas muestran valores muy bajos de humedad.
Análisis agrícola: ayuda a evaluar el estado hídrico de los cultivos y planificar riego.
Estudios hidrológicos: localiza zonas inundadas, humedales, suelos saturados.
Cartografía de humedales: ayuda distinguir zonas naturalmente húmedas de otras coberturas.
Evaluación post-lluvia: útil para ver cómo responde el suelo tras eventos de lluvia o deshielos.
Comparación con otros índices de humedad
NDWI (Normalized Difference Water Index): NDWI se centra en cuerpos de agua, mientras que Wetness capta humedad general (agua en plantas, suelo, etc.)
MSI (Moisture Stress Index): MSI requiere solo dos bandas, pero Wetness aprovecha más información espectral
MNDWI (Modified NDWI): bueno para agua superficial, pero Wetness es más completo en vegetación y suelos
Si analizas una región agrícola:
Una zona con valores altos de Greenness pero bajos de Wetness podría indicar vegetación verde pero estresada por falta de agua.
Un área con alto Wetness y bajo Greenness podría ser un suelo húmedo sin vegetación, como un campo recién regado o inundado.
A continuación se grabarán las tres capas en un fichero multibanda
Para interpretar es significado de los valores obtenidos en los índices, se puede recurrir a compararlos con una clasificación de usos de suelo disponible. El procedimiento es relativamente simple, ya que consiste en crear un ráster que combine las capas de los índices con la capa de usos de suelo, convertir este nuevo ráster en un data frame y, a partir de este último, aplicar diferentes procedimientos de análisis estadístico, tanto cuantitativos como numéricos.
Primero, se cargaría el fichero ráster con los usos de suelo.
usos_orig <- rast("D:/G174_2025/LABORATORIO_6_Transformaciones_matematicas/datos/usos_para_tc.tif")
A continuación, se podría comprobar su contenido, y representarlo gráficamente.
usos_orig
## class : SpatRaster
## dimensions : 1230, 1877, 1 (nrow, ncol, nlyr)
## resolution : 0.0002694946, 0.0002694946 (x, y)
## extent : -121.9258, -121.42, 37.85402, 38.1855 (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## source : usos_para_tc.tif
## name : landcover_1
## min value : 11
## max value : 95
plot(usos_orig,
type="classes",
main="Mapa de usos de suelo")
Las categorías de usos de suelo que contiene el fichero ráster son las siguientes
unique(values(usos_orig)) # Clases de uso/cobertura presentes
## landcover_1
## [1,] 95
## [2,] 82
## [3,] 71
## [4,] 11
## [5,] 21
## [6,] 90
## [7,] 81
## [8,] 23
## [9,] 22
## [10,] 24
## [11,] 31
## [12,] 41
## [13,] 52
## [14,] 42
## [15,] 43
Antes de proceder a la asignación de categorías a esos valores
numéricos (que son en realidad usos
de suelo codificados -pe. 11 = Agua, 21 = Área urbana baja densidad,
41 = Bosque de hoja caduca…), conviene comprobar que el Sistema de
Coordenadas de Referencia de este objeto ráster, así como su resolución
y extensión, son idénticas al del objeto ráster con los valores de los 3
neocanales calculados anteriormente, pues provienen de diferentes
fuentes de información. Esto debe realizarse ahora, y no posteriormente,
cuando hayamos asignado a esos valores numéricos sus etiquetas en forma
de caracteres. Para comprobar si comparten las mismas características se
utiliza la función terra::compareGeom()
:
compareGeom(usos_orig, imagen_tc)
Para conocer en qué difieren se recurre a la función terra:crs()
crs(usos_orig, describe = TRUE)
## name authority code area extent
## 1 WGS 84 EPSG 4326 World -180, 180, -90, 90
crs(imagen_tc, describe = TRUE)
## name authority code
## 1 WGS 84 / UTM zone 10N EPSG 32610
## area
## 1 Between 126°W and 120°W, northern hemisphere between equator and 84°N, onshore and offshore. Canada - British Columbia (BC); Northwest Territories (NWT); Nunavut; Yukon. United States (USA) - Alaska (AK)
## extent
## 1 -126, -120, 0, 84
Como ambos objetos no son idénticos, se procede a un remuestreo con la función `terra::project().
usos_reproyectado <- project(usos_orig,
imagen_tc,
method="near") # Método de remuestreo para categorías
Ahora se podría preguntar al programa si la extensión espacial de ambos ficheros ráster es la misma.
ext(usos_reproyectado) == ext(imagen_tc)
## [1] TRUE
Estando ante el fichero de usos definitivo que, como se ha señalado contiene valores numéricos (que son en realidad usos de suelo codificados -pe. 11 = Agua, 21 = Área urbana baja densidad, 41 = Bosque de hoja caduca…), éstos deben ser convertidos en categorías. Por otro lado, existe una gran diversidad de usos de suelo, que convendría simplificar. Por ello, en primer lugar se recodificarán algunas categorías, agrupándolas en otras clases más simples
matriz_reclas <- matrix(c(11, 1, # Agua
21, 2, # Artificial
22, 2,
23, 2,
24, 2,
31, 3, # Suelo desnudo
41, 4, # Bosque
42, 4,
43, 4,
52, 5, # Matorral
71, 6, # Pastizal
81, 7, # Cultivos
82, 7,
90, 8, # Humedales
95, 8),
ncol=2, byrow=TRUE)
usos_reclasificado <- classify(usos_reproyectado, matriz_reclas)
# Ver resultado
plot(usos_reclasificado, col=rainbow(7),
main="Usos de suelo reclasificados")
A continuación, se identificarán los valores numéricos reclasificados con sus respectivas etiquetas
usos_categorias <- c("Agua", "Artificial", "Suelo desnudo", "Bosque", "Matorral", "Pastizal", "Cultivos", "Humedales")
categorias_df <- data.frame(value = c(1,2,3,4,5,6,7,8),
uso = usos_categorias)
levels(usos_reclasificado) <- categorias_df
Finalmente, se volverá a representar el ráster, pero ahora ya reclasificado.
colores <- c("#5475A8", "#B50000", "#D2CDC0", "#38814E", "#AF963C", "#D1D182", "#FBF65D", "#C8E6F8") # Colores en forma de código hexidecimal
plot(usos_reclasificado, col = colores)
Este fichero reclasificado será renombrado como
usos_definitivo
para su posterior utilización. También
debería ser grabado en el disco duro
usos_definitivo <- usos_reclasificado
writeRaster(usos_definitivo, "D:/G174_2025/LABORATORIO_6_Transformaciones_matematicas/datos/usos_definitivo.tif", overwrite = TRUE)
Por último, se eliminarán todos los objetos creados anteriormente, que no tienen uso a continuación.
rm(categorias_df, colores, matriz_reclas, usos_categorias, usos_orig, usos_reclas, usos_reclasificado, usos_reproyectado)
## Warning in rm(categorias_df, colores, matriz_reclas, usos_categorias,
## usos_orig, : objeto 'usos_reclas' no encontrado
Una vez se dispone de un fichero reclasificado con las mismas dimensiones, sistema de referencia etc, se puede elaborar la frecuencia de píxeles por clase y convertir en una tabla con la superficie ocupada por cada uso
frecuencia <- freq(usos_definitivo)
area_ha <- as.data.frame(frecuencia)
area_ha$area_ha <- area_ha$count * res(usos_definitivo)[1] * res(usos_definitivo)[2] / 10000
area_ha
## layer value count area_ha
## 1 1 Agua 192706 17343.54
## 2 1 Artificial 227770 20499.30
## 3 1 Suelo desnudo 4049 364.41
## 4 1 Bosque 66500 5985.00
## 5 1 Matorral 17314 1558.26
## 6 1 Pastizal 328766 29588.94
## 7 1 Cultivos 869352 78241.68
## 8 1 Humedales 108453 9760.77
Para la obtención de algunos valores estadísticos y gráficos apropiados, se procede a crear un único objeto ráster combinando el ráster con los neocanalaes y el ráster con los usos de suelo:
raster_combinado <- c(imagen_tc, usos_definitivo)
Además, conviene asignar nombres fácilmente recordables a las capas de este nuevo ráster…
names(raster_combinado) <- c("brillo", "verdor", "humedad","usos_suelo")
…que será convertido en un dataframe eliminando posibles NA
df <- as.data.frame(raster_combinado,
xy=FALSE,
na.rm=TRUE)
df$usos_suelo <- factor(df$usos_suelo)
Por ejemplo, el cálculo del valor promedio de cada neocanal según usos de suelo:
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'tidyr' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'stringr' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.4 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ tidyr::extract() masks terra::extract()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
resultados_verdor <- df %>%
group_by(usos_suelo) %>%
summarise(promedio_verdor = mean(verdor),
desv_típica_verdor = sd(verdor))
También es posible elaborar un gráfico boxplot con este parámetro según usos de suelo
boxplot(verdor ~ usos_suelo,
data = df,
ylimi = c(-0.4, 0.4),
names = c("Ag", "Art", "Slo", "Bosq", "Matr", "Past", "Clv", "Hum"), # Categorías
outline = FALSE) # No dibuja outliers
📝 ACTIVIDAD DE EVALUACIÓN 1 TASSELLED CUP:
Esta actividad utiliza dos ficheros ráster, una escena
multibanda conteniendo valores de reflectancia superficial obtenidas
de Landsat 8 y correspondiente a parte de la ciudad de Los Ángeles, en
EEUU (LC08_040036_20170415.tif
), y un fichero con usos de
suelo procedente de la base de datos National Land Cover Database [https://www.usgs.gov/centers/eros/science/national-land-cover-database],
correspondiente a la misma zona.
Las bandas del fichero LC08_040036_20170415.tif
son las
siguientes:
Banda | Denominación |
---|---|
Banda 1 | Coastal aerosol -Blue Edge- |
Banda 2 | Blue |
Banda 3 | Green |
Banda 4 | Red |
Banda 5 | NIR |
Banda 6 | SWIR 1 |
Banda 7 | SWIR 2 |
► Convierte los ficheros individuales en objetos
SpatRaster
y comprueba los nombres de las bandas.
Para asegurar unos resultados satisfactorios, aplica la fórmula SR = (DN * 0.0000275) - 0.2 para convertir los números digitales (DN) que proporciona la imagen en bruto en valores de reflectancia.
► Realiza una transformación Tasseled Cap de la imagen Landsat 8 OLI
posterior al incendio con RStoolbox()
.
► Cambia los nombres de los neocanales de tal manera que ahora se llamen brillo, verdor y humedad.
► Representa gráficamente los valores de humedad mediante un histograma
► Representa en un mapa los valores de Humedad ajustando los límites de acuerdo con el histograma anterior.
► Representa gráficamente los valores de brillo mediante un histograma
► Representa en un mapa los valores de brillo ajustando los límites de acuerdo con el histograma anterior.
► Crea un mapa que muestre los resultados de la transformación Tasseled Cap como una image RGB (r = brillo, g = verdor, b = humedad).
► Importa el fichero con los usos de suelo nlcd.tif
y
responde a las siguientes preguntas:
Elabora un gráfico boxplot con los valores de “humedad” según usos de suelo
¿Cuál es el uso del suelo con un valor medio de “brillo” más elevado? ¿Y cuál posee una mayor dispersión de este mismo parámetro?
¿Cuáles son los valores medios y la dispersión de los 3
neocanales en el caso de los usos de suelo
artificiales
?