Introducción
Utilizando la banda Quality Assessment incluída en LANDSAT 8
Bit QA | Descripción |
---|---|
0 | Designated Fill |
1 | Dropped Frame |
2 | Terrain Occlusion |
3 | Reserved (not currently used) |
4-5 | Water |
6-7 | Reserved |
8-9 | Reserved |
10-11 | Snow/Ice |
12-13 | Cirrus |
14-15 | Cloud |
Las condiciones de un solo bit presentan las siguientes posibilidades:
- 0 = No, la condición no existe
- 1 = Si, la condición existe
Las condiciones de 2 bits, representan niveles de confianza de que una condición existe:
- 00 = “No determinado” = No está determinado el estado de la condición
- 01 = “No” = El nivel de confianza es bajo, entre 0% - 33%
- 10 = “Quizás” = El nivel de confianza es medio, entre 34% - 66%
- 11 = “Si” = El nivel de confiaza es alto, entre 67% - 100%
Se consultan los valores de la banda QA para la escena seleccionada:
r.report map=${SCENE}_BQA
+-----------------------------------------------------------------------------+
| RASTER MAP CATEGORY REPORT |
|LOCATION: LANDSAT8 Fri Nov 6 13:38:20 2015|
|-----------------------------------------------------------------------------|
| north: 755715 east: 536415 |
|REGION south: 522585 west: 308685 |
| res: 30 res: 30 |
|-----------------------------------------------------------------------------|
|MASK: none |
|-----------------------------------------------------------------------------|
|MAP: (untitled) (LC80090562013197LGN00_BQA in PERMANENT) |
|-----------------------------------------------------------------------------|
| Category Information |
| #|description |
|-----------------------------------------------------------------------------|
| 1| |
|20480| |
|20512| |
|23552| |
|28672| |
|28704| |
|36864| |
|36896| |
|39936| |
|45056| |
|53248| |
|53280| |
|61440| |
+-----------------------------------------------------------------------------+
De acuerdo con los valores obtenidos, se convierten estos números de decimales a binarios (utilizando el modo programador de la calculadora)
Decimal | Binario |
---|---|
1 | 0000 0000 0000 0001 |
20480 | 0101 0000 0000 0000 |
20512 | 0101 0000 0010 0000 |
23552 | 0101 1100 0000 0000 |
28672 | 0111 0000 0000 0000 |
28704 | 0111 0000 0010 0000 |
36864 | 1001 0000 0000 0000 |
36896 | 1001 0000 0010 0000 |
39936 | 1001 1100 0000 0000 |
45056 | 1011 0000 0000 0000 |
53248 | 1101 0000 0000 0000 |
53280 | 1101 0000 0010 0000 |
61440 | 1111 0000 0000 0000 |
Crear una máscara para eliminar el relleno externo a la imágen
r.mapcalc "MASK = if(${SCENE}_BQA > 1)"
Primer paso
Transformar las bandas de 16-bit a 8-bit moviendo los bits hacia la derecha:
# Definir el nombre de la escena a trabajar
SCENE=LC80090562013197LGN00
# Definir el número de la banda a trabajar
B=2
# Definir la región de cálculo
g.region rast=${SCENE}_B${B}
# Crear un nuevo raster con la información de los primeros 8 bits de la banda original
r.mapcalc "banda${B} = ${SCENE}_B${B} >> 8"
# Repetir el último comando
# Para la banda 3
B=3
r.mapcalc "banda${B} = ${SCENE}_B${B} >> 8"
# Para la banda 4
B=4
r.mapcalc "banda${B} = ${SCENE}_B${B} >> 8"
Segundo paso
Consultar las estadísticas extendedidas del DN de una banda previamente transformada a 8-bits:
B=2
r.univar -e map=banda${B}
total null and non-null cells: 58989661
total null cells: 18473479
Of the non-null cells:
----------------------
n: 40516182
minimum: 22
maximum: 255
range: 233
mean: 48.5554
mean of absolute values: 48.5554
standard deviation: 31.5795
variance: 997.267
variation coefficient: 65.0382 %
sum: 1967277823
1st quartile: 31
median (even number of cells): 33
3rd quartile: 48
90th percentile: 103
[Raster MASK present]
Tercer paso
Calcular un histograma de esta banda:
Realzar los valores de mayor frecuencia en el histograma:
\[DN_{r} = \frac{(DN_{i} - DN_{min})(2^8 - 1)}{DN_{max} - DN_{min}}\]Donde \(DN_{min}\) y \(DN_{max}\) son los valores mínimo y máximo de DN para el rango que se desea realzar del histograma, \(DN_{i}\) es el valor de DN de un pixel dado, y \(DN_{r}\) es el valor de DN del nuevo pixel realzado.
Para este ejemplo, vamos a realzar los valores comprendidos entre el mínimo y el tercer cuartil de los valores de DN:
Nota: Los \(DN_{i}\) que estén por debajo de \(DN_{min}\) y por encima de \(DN_{max}\) se van a considerar nulos
B=2
DNmin=22
DNmax=48
r.mapcalc "banda${B}stretch = if( banda${B} >= ${DNmin} && banda${B} <= ${DNmax}, (banda${B} - ${DNmin}) * (2^8 - 1) / (${DNmax} - ${DNmin}), null() )"
Calcular el histograma de la banda realzada:
Advertencia: Repetir el tercer y cuarto paso para las bandas 3 y 4. Teniendo en cuenta que los valores mínimo y máximo de DN cambian para cada banda.
B=3
r.univar -e map=banda${B}
DNmin=23
DNmax=45
r.mapcalc "banda${B}stretch = if( banda${B} >= ${DNmin} && banda${B} <= ${DNmax}, (banda${B} - ${DNmin}) * (2^8 - 1) / (${DNmax} - ${DNmin}), null() )"
B=4
r.univar -e map=banda${B}
DNmin=21
DNmax=43
r.mapcalc "banda${B}stretch = if( banda${B} >= ${DNmin} && banda${B} <= ${DNmax}, (banda${B} - ${DNmin}) * (2^8 - 1) / (${DNmax} - ${DNmin}), null() )"
Cuarto paso
De la introducción se observa que las 3 últimas categorías de la banda QA tienen un nivel de confianza alto para nubes, además que debemos eliminar los pixeles del relleno que no forman parte de la imágen (categoría 1) por lo que procedemos a crear una nueva máscara para excluir los pixeles que tengan estos valores:
r.mapcalc "MASK = if(${SCENE}_BQA > 1 && ${SCENE}_BQA < 50000)"
Al consultar nuevamente por las categorías de la banda QA, se observa que ya no aparecen las categorías correspondientes a nubes como tampoco el relleno externo a la imágen, y ahora aparecen como no data.
r.report map=${SCENE}_BQA
+-----------------------------------------------------------------------------+
| RASTER MAP CATEGORY REPORT |
|LOCATION: LANDSAT8 Fri Nov 6 14:17:08 2015|
|-----------------------------------------------------------------------------|
| north: 755715 east: 536415 |
|REGION south: 522585 west: 308685 |
| res: 30 res: 30 |
|-----------------------------------------------------------------------------|
|MASK: MASK in caesarivs |
|-----------------------------------------------------------------------------|
|MAP: (untitled) (LC80090562013197LGN00_BQA in PERMANENT) |
|-----------------------------------------------------------------------------|
| Category Information |
| #|description |
|-----------------------------------------------------------------------------|
|20480| |
|20512| |
|23552| |
|28672| |
|28704| |
|36864| |
|36896| |
|39936| |
|45056| |
| *|no data |
+-----------------------------------------------------------------------------+
Quinto paso
Establecer las tablas de colores para cada banda y combinarlas para obtener una representación del color natural utilizando la banda 4 en el canal rojo, la banda 3 en el canal verde, y la banda 2 en el canal azul.
Para esto, se utiliza la herramienta i.landsat.rgb
:
i.landsat.rgb r=banda4stretch g=banda3stretch b=banda2stretch