Introducción a los datos de cambio forestal global de Hansen et al.

El conjunto de datos de cambio forestal global de Hansen et al. (2013) en Earth Engine representa el cambio forestal, con una resolución de 30 metros, a nivel global, entre 2000 y 2014. Comencemos por agregar los datos de Hansen et al. al mapa. Importa los datos de cambio forestal global (obtén más información para buscar e importar conjuntos de datos) buscando "Hansen forest" y asignando el nombre gfc2014 a la importación, o copia el siguiente código en el editor de código:

Editor de código (JavaScript)

var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015');
Map.addLayer(gfc2014);

Haz clic en el botón Run en la parte superior del editor de código y deberías ver algo como la Figura 1.

forest change default
Figura 1. Visualización predeterminada de los datos de cambios forestales de Hansen et al. (2013).

No te preocupes, pronto harás que se vea mejor. (obtén más información sobre las visualizaciones de imágenes predeterminadas en Earth Engine). Al final de esta sección, tendrás una imagen similar a la figura 2, en la que el verde representa el lugar donde el estudio detectó bosque en el año 2000, el rojo es la pérdida estimada de bosque durante el período de estudio, el azul es la ganancia de bosque durante ese período, el magenta son las áreas en las que se perdió y se ganó bosque, y las áreas que no son de bosque están enmascaradas.

forest change custom
Figura 2. Visualización personalizada de los datos de cambios forestales de Hansen et al. (2013).

Recuerda que, cuando se agrega una imagen multibanda a un mapa, las primeras tres bandas de la imagen se eligen como rojo, verde y azul, respectivamente, y se estiran según el tipo de datos de cada banda. La razón por la que la imagen se ve roja es que las primeras tres bandas son treecover2000, loss y gain. La banda treecover2000 se expresa como un porcentaje y tiene valores mucho más altos que loss (verde) y gain (azul), que son binarios ({0, 1}). Por lo tanto, la imagen se muestra predominantemente en rojo.

Las bandas de los datos de Global Forest Change son las siguientes:

Nombre de la bandaDescripciónRango
treecover2000Es el porcentaje de cobertura arbórea en el píxel.0 - 100
pérdida 1 si se produce una pérdida durante el período del estudio 0 o 1
gain1 si se produce un aumento durante el período del estudio 0 o 1
lossyearEs el año en que se produjo la pérdida, con índice uno desde el año 2001, o cero si no se produjo ninguna pérdida.0 - 12
first_b30La banda roja de Landsat 7 se creó a partir de los primeros píxeles válidos en 2000 (o más antiguos si no había píxeles válidos en 2000). 0 - 255
first_b40La banda de infrarrojo cercano de Landsat 7 se creó a partir de los primeros píxeles válidos en el año 2000.0 - 255
first_b50La primera banda infrarroja de onda corta de Landsat 7 construida a partir de los primeros píxeles válidos en 2000.0 - 255
first_b70La segunda banda infrarroja de onda corta de Landsat 7 se creó a partir de los primeros píxeles válidos en el año 2000.0 - 255
last_b30La banda roja de Landsat 7 construida a partir de los últimos píxeles válidos en 2012. 0 - 255
last_b40La banda de infrarrojo cercano de Landsat 7 se creó a partir de los píxeles válidos más recientes en 2012.0 - 255
last_b50La primera banda infrarroja de onda corta de Landsat 7 construida a partir de los píxeles válidos más recientes de 2012.0 - 255
last_b70La segunda banda infrarroja de onda corta de Landsat 7 construida a partir de los píxeles válidos más recientes de 2012.0 - 255
datamaskSin datos (0), superficie terrestre asignada (1) y cuerpos de agua permanentes (2).0, 1, 2

Para mostrar la cobertura forestal en el año 2000 como una imagen en escala de grises, puedes usar la banda treecover2000, especificada en el segundo argumento de Map.addLayer():

Editor de código (JavaScript)

Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');

Esto genera una imagen que debería verse como la Figura 3.

Cobertura arbórea de EE.UU.
Figura 3: Imagen en escala de grises de la cobertura arbórea de EE.UU. en el año 2000.

Esta es una imagen que usa 3 bandas, las bandas 5, 4 y 3 de Landsat para 2015. Esta combinación de bandas muestra la vegetación saludable en verde y el suelo en malva:

Editor de código (JavaScript)

Map.addLayer(
    gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');

El resultado debería ser similar al de la Figura 4.

Color falso de EE.UU.
Figura 4: Landsat 7, composición de falso color de EE.UU. del año 2015.

Una buena visualización del conjunto de datos de Global Forest Change muestra la extensión de los bosques en el año 2000 en verde, la pérdida de bosques en rojo y la ganancia de bosques en azul. Específicamente, haz que loss sea la primera banda (roja), treecover2000 la segunda (verde) y gain la tercera (azul):

Editor de código (JavaScript)

Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');

Los valores de las bandas de pérdida y ganancia son binarios, por lo que apenas se verán en la imagen, que debería verse como en la Figura 5.

Cobertura forestal de EE.UU.
Figura 5: Cobertura arbórea en EE.UU. en el año 2000 (verde).

Queremos que la pérdida de bosque se muestre en rojo brillante y que la ganancia de bosque se muestre en azul brillante. Para solucionar este problema, podemos usar el parámetro de visualización max para establecer el rango al que se extienden los datos de la imagen. Ten en cuenta que el parámetro de visualización max toma una lista de valores, que corresponden a los máximos de cada banda:

Editor de código (JavaScript)

Map.addLayer(gfc2014, {
  bands: ['loss', 'treecover2000', 'gain'],
  max: [1, 255, 1]
}, 'forest cover, loss, gain');

El resultado debería ser similar al de la Figura 6.

Cambio en los bosques de EE.UU.
Figura 6. Pérdida de bosques en EE.UU. (rojo), cobertura forestal en el año 2000 (verde) y aumento (azul).

Esto genera una imagen que es verde donde hay bosque, roja donde hay pérdida de bosque, azul donde hay ganancia de bosque y magenta donde hay ganancia y pérdida. Sin embargo, si se observa con más atención, se puede ver que no es del todo correcto. En lugar de que la pérdida se marque en rojo, se marca en naranja. Esto se debe a que los píxeles rojos brillantes se mezclan con los píxeles verdes subyacentes, lo que produce píxeles naranjas. Del mismo modo, los píxeles donde hay bosque, pérdida y ganancia son de color rosa, una combinación de verde, rojo brillante y azul brillante. Consulta la Figura 7 para ver una ilustración.

Cambio forestal en el noroeste del Pacífico
Figura 7. Pérdida de bosque en el noroeste del Pacífico de EE.UU. (rojo), cobertura del año 2000 (verde) y ganancia (azul).

Para obtener la imagen prometida al principio del instructivo, puedes crear imágenes separadas para el bosque, la pérdida, la ganancia y para la pérdida y la ganancia. Agrega cada una de estas imágenes al mapa en el orden que sea más adecuado para su visualización.

Paletas

Para mostrar cada imagen con un color diferente, puedes usar el parámetro palette de Map.addLayer() para las imágenes de una sola banda. Las paletas te permiten establecer el esquema de colores con el que se muestra la imagen (obtén más información sobre las paletas). Recuerda del instructivo de la API de Earth Engine que los colores de una paleta se extienden de forma lineal a min y max.

Por ejemplo, para usar una paleta verde que muestre la imagen de la extensión del bosque, puedes usar lo siguiente:

Editor de código (JavaScript)

Map.addLayer(gfc2014, {
  bands: ['treecover2000'],
  palette: ['000000', '00FF00']
}, 'forest cover palette');

El resultado debería ser similar al de la Figura 8.

extensión de bosque NA
Figura 8: Cobertura forestal en Norteamérica en el año 2000.

Acercar la imagen permite apreciar mejor su resolución. En la figura 9, se muestra un área alrededor de Mariscal Estigarribia, en Paraguay.

extensión de los bosques en Paraguay
Figura 9: Cobertura arbórea del año 2000 alrededor de Mariscal Estigarribia en Paraguay.

La imagen que se muestra en la Figura 3 es un poco oscura. El problema es que la banda treecover2000 tiene un tipo de datos de byte ([0, 255]), cuando, en realidad, los valores son porcentajes ([0, 100]). Para aumentar el brillo de la imagen, puedes configurar los parámetros min o max según corresponda. Luego, la paleta se extiende entre esos extremos.

Editor de código (JavaScript)

Map.addLayer(gfc2014, {
  bands: ['treecover2000'],
  palette: ['000000', '00FF00'],
  max: 100
}, 'forest cover percent');

El resultado debería ser similar al de la Figura 9. Ten en cuenta que, en este ejemplo, solo se establece max. El valor de min es cero de forma predeterminada.

Paraguay
Figura 9. Cobertura forestal del año 2000 alrededor de Mariscal Estigarribia en Paraguay, extendida a [0, 100].

Enmascaramiento

Todas las imágenes que se mostraron hasta ahora tenían grandes áreas negras donde los datos son cero. Por ejemplo, no hay árboles en el océano. Para que estas áreas sean transparentes, puedes enmascarar sus valores. Cada píxel en Earth Engine tiene un valor y una máscara. La imagen se renderiza con la transparencia que establece la máscara, donde cero es completamente transparente y uno es completamente opaco.

Puedes enmascarar una imagen con ella misma. Por ejemplo, si enmascaras la banda treecover2000 con ella misma, todas las áreas en las que la cobertura forestal sea cero serán transparentes:

Editor de código (JavaScript)

Map.addLayer(gfc2014.mask(gfc2014), {
  bands: ['treecover2000'],
  palette: ['000000', '00FF00'],
  max: 100
}, 'forest cover masked');

El resultado debería ser similar al de la Figura 10.

Cobertura arbórea de América
Figura 10. Cobertura arbórea del año 2000, estirada y enmascarada.

Ejemplo

Es casi posible crear una visualización de los datos de Hansen como la que se muestra al principio del instructivo. En este ejemplo, unimos todo con una pequeña diferencia. En lugar de especificar el parámetro bands en la llamada a Map.addLayer, creamos imágenes nuevas con select():

Editor de código (JavaScript)

var treeCover = gfc2014.select(['treecover2000']);
var lossImage = gfc2014.select(['loss']);
var gainImage = gfc2014.select(['gain']);

// Add the tree cover layer in green.
Map.addLayer(treeCover.updateMask(treeCover),
    {palette: ['000000', '00FF00'], max: 100}, 'Forest Cover');

// Add the loss layer in red.
Map.addLayer(lossImage.updateMask(lossImage),
            {palette: ['FF0000']}, 'Loss');

// Add the gain layer in blue.
Map.addLayer(gainImage.updateMask(gainImage),
            {palette: ['0000FF']}, 'Gain');

El resultado debería ser similar al de la Figura 11.

Ganancia o pérdida en América
Figura 11. Pérdida de bosque (rojo), cobertura del año 2000 (verde) y ganancia (azul).

Observa que hay tres llamadas addLayer(). Cada llamada a addLayer() agrega una capa al mapa. Si colocas el mouse sobre el botón Capas en la esquina superior derecha del mapa, se mostrarán estas capas. Cada capa se puede activar o desactivar con la casilla de verificación que se encuentra junto a ella, y la opacidad de la capa se puede modificar con el control deslizante que se encuentra junto al nombre de la capa.

Ya casi podemos crear la imagen que se muestra al principio del instructivo. Sin embargo, falta la capa que muestra los píxeles con pérdida y ganancia. Falta porque necesitamos saber cómo realizar algunos cálculos en las bandas de imágenes antes de poder calcular qué píxeles muestran pérdida y ganancia. Este es el tema de la siguiente sección.