Introdução aos dados de mudança florestal global de Hansen et al.

O conjunto de dados de mudança florestal global de Hansen et al. (2013) no Earth Engine representa a mudança florestal, com resolução de 30 metros, globalmente, entre 2000 e 2014. Vamos começar adicionando os dados de Hansen et al. ao mapa. Importe os dados de mudança florestal global (saiba mais sobre como pesquisar e importar conjuntos de dados) pesquisando "Hansen forest" e nomeando a importação como gfc2014 ou copie o seguinte código no Editor de código:

Editor de código (JavaScript)

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

Clique no botão Run na parte de cima do editor de código para ver algo como a Figura 1.

mudança na floresta padrão
Figura 1. Visualização padrão dos dados de mudança florestal de Hansen et al. (2013).

Não se preocupe, você vai melhorar a aparência dele em breve. Saiba mais sobre as visualizações de imagem padrão no Earth Engine. Ao final desta seção, você terá uma imagem semelhante à Figura 2, em que o verde representa onde o estudo detectou floresta no ano 2000, o vermelho é a perda estimada de floresta durante o período do estudo, o azul é o ganho de floresta durante esse período, o magenta são áreas onde a floresta foi perdida e ganha, e as áreas não florestais são mascaradas.

mudança florestal personalizada
Figura 2. Visualização personalizada dos dados de mudança florestal de Hansen et al. (2013).

Quando uma imagem multibanda é adicionada a um mapa, as três primeiras bandas da imagem são escolhidas como vermelho, verde e azul, respectivamente, e esticadas de acordo com o tipo de dados de cada banda. A imagem parece vermelha porque as três primeiras bandas são treecover2000, loss e gain. A banda treecover2000 é expressa como uma porcentagem e tem valores muito maiores que loss (verde) e gain (azul), que são binários ({0, 1}). Portanto, a imagem é exibida predominantemente em vermelho.

As bandas nos dados de mudança florestal global são:

Nome da bandaDescriçãoIntervalo
treecover2000Porcentagem de cobertura vegetal no pixel.0 - 100
perda 1 se houver perda durante o período do estudo. 0 ou 1
ganhar1 se houver ganho durante o período do estudo. 0 ou 1
lossyearO ano em que a perda ocorreu, indexado a partir de 2001, ou zero se não houver perda.0 - 12
first_b30A banda vermelha do Landsat 7 criada com base nos primeiros pixels válidos em 2000 (ou mais antigos, se não houver pixels válidos em 2000). 0 - 255
first_b40A banda de infravermelho próximo do Landsat 7 criada com base nos primeiros pixels válidos em 2000.0 - 255
first_b50A primeira banda de infravermelho de ondas curtas do Landsat 7 criada com base nos primeiros pixels válidos em 2000.0 - 255
first_b70A segunda banda de infravermelho de ondas curtas do Landsat 7 criada com base nos primeiros pixels válidos em 2000.0 - 255
last_b30A banda vermelha do Landsat 7 criada com os pixels válidos mais recentes em 2012. 0 - 255
last_b40A banda de infravermelho próximo do Landsat 7 criada com base nos pixels válidos mais recentes em 2012.0 - 255
last_b50A primeira banda de infravermelho de ondas curtas do Landsat 7 criada com base nos pixels válidos mais recentes de 2012.0 - 255
last_b70A segunda banda de infravermelho de ondas curtas do Landsat 7 criada com base nos pixels válidos mais recentes de 2012.0 - 255
datamaskSem dados (0), superfície terrestre mapeada (1) e corpos d'água permanentes (2).0, 1, 2

Para exibir a cobertura florestal no ano 2000 como uma imagem em escala de cinza, use a banda treecover2000, especificada no segundo argumento para Map.addLayer():

Editor de código (JavaScript)

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

Isso resulta em uma imagem parecida com a Figura 3.

Cobertura de árvores nos EUA
Figura 3. Imagem em escala de cinza da cobertura vegetal nos EUA em 2000.

Esta é uma imagem que usa três bandas do Landsat (5, 4 e 3) para 2015. Essa combinação de bandas mostra a vegetação saudável em verde e o solo em lilás:

Editor de código (JavaScript)

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

O resultado será parecido com a Figura 4.

Cor falsa dos EUA
Figura 4. Landsat 7, composto de cores falsas dos EUA em 2015.

Uma boa visualização do conjunto de dados de mudança florestal global mostra a extensão da floresta em 2000 em verde, a perda florestal em vermelho e o ganho florestal em azul. Especificamente, defina loss como a primeira banda (vermelha), treecover2000 como a segunda (verde) e gain como a terceira (azul):

Editor de código (JavaScript)

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

Os valores de banda de perda e ganho são binários, então eles serão pouco visíveis na imagem, que deve ser semelhante à Figura 5.

Cobertura florestal dos EUA
Figura 5. Cobertura vegetal nos EUA em 2000 (verde).

Queremos que a perda de floresta apareça em vermelho brilhante e o ganho de floresta em azul brilhante. Para corrigir isso, podemos usar o parâmetro de visualização max para definir o intervalo em que os dados da imagem são estendidos. O parâmetro de visualização max usa uma lista de valores, correspondente aos 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');

O resultado será parecido com a Figura 6.

Mudança florestal nos EUA
Figura 6. Perda florestal nos EUA (vermelho), cobertura florestal no ano 2000 (verde) e ganho (azul).

Isso resulta em uma imagem verde onde há floresta, vermelha onde há perda de floresta, azul onde há ganho de floresta e magenta onde há ganho e perda. No entanto, uma inspeção mais detalhada revela que não é bem assim. Em vez de a perda ser marcada como vermelha, ela é laranja. Isso ocorre porque os pixels vermelhos brilhantes se misturam com os pixels verdes subjacentes, produzindo pixels laranjas. Da mesma forma, os pixels onde há floresta, perda e ganho são rosa, uma combinação de verde, vermelho brilhante e azul brilhante. Veja uma ilustração na Figura 7.

Mudança na floresta do noroeste do Pacífico
Figura 7. Perda de floresta no noroeste do Pacífico dos EUA (vermelho), cobertura do ano 2000 (verde) e ganho (azul).

Para conseguir a imagem prometida no início do tutorial, crie imagens separadas para floresta, perda, ganho e para perda e ganho. Adicione cada uma dessas imagens ao mapa na ordem mais adequada para exibição.

Paletas

Para exibir cada imagem com uma cor diferente, use o parâmetro palette de Map.addLayer() para imagens de banda única. As paletas permitem definir o esquema de cores com que a imagem é exibida (saiba mais sobre paletas). No tutorial da API Earth Engine, você aprendeu que as cores em uma paleta são estendidas linearmente para min e max.

Por exemplo, para usar uma paleta verde para exibir a imagem de extensão da floresta, use:

Editor de código (JavaScript)

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

O resultado será parecido com a Figura 8.

extensão florestal NA
Figura 8. Cobertura florestal do ano 2000 na América do Norte.

Amplie para ter uma ideia melhor da resolução das imagens. A Figura 9 mostra uma área ao redor de Mariscal Estigarribia, no Paraguai.

extensão da floresta no Paraguai
Figura 9. Cobertura arbórea em 2000 ao redor de Mariscal Estigarribia, no Paraguai.

A imagem mostrada na Figura 3 está um pouco escura. O problema é que a banda treecover2000 tem um tipo de dados de byte ([0, 255]), quando, na verdade, os valores são porcentagens ([0, 100]). Para clarear a imagem, defina os parâmetros min e/ou max de acordo. A paleta é esticada entre esses extremos.

Editor de código (JavaScript)

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

O resultado será parecido com a Figura 9. Neste exemplo, apenas o max está definido. O min é zero por padrão.

Paraguai esticado
Figura 9. Cobertura florestal do ano 2000 em torno de Mariscal Estigarribia, no Paraguai, estendida para [0, 100].

Mascaramento

Todas as imagens mostradas até agora tinham grandes áreas pretas onde os dados são zero. Por exemplo, não há árvores no oceano. Para tornar essas áreas transparentes, é possível mascarar os valores delas. Cada pixel no Earth Engine tem um valor e uma máscara. A imagem é renderizada com a transparência definida pela máscara, em que zero é completamente transparente e um é completamente opaco.

É possível mascarar uma imagem com ela mesma. Por exemplo, se você mascarar a banda treecover2000 com ela mesma, todas as áreas em que a cobertura florestal é zero ficarão transparentes:

Editor de código (JavaScript)

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

O resultado será parecido com a Figura 10.

Cobertura de árvores nas Américas
Figura 10. Cobertura vegetal do ano 2000, esticada e mascarada.

Exemplo

É quase possível fazer uma visualização dos dados de Hansen como aquela no início do tutorial. Neste exemplo, vamos juntar tudo com uma pequena diferença. Em vez de especificar o parâmetro bands na chamada Map.addLayer, estamos criando novas imagens usando 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');

O resultado será parecido com a Figura 11.

Ganho de perda nas Américas
Figura 11. Perda de floresta (vermelho), cobertura do ano 2000 (verde) e ganho (azul).

Observe que há três chamadas addLayer(). Cada anúncio de chamada addLayer() adiciona uma camada ao mapa. Passe o mouse sobre o botão Camadas no canto superior direito do mapa para revelar essas camadas. Cada camada pode ser ativada ou desativada usando a caixa de seleção ao lado dela, e a opacidade da camada pode ser afetada pelo controle deslizante ao lado do nome da camada.

Estamos quase conseguindo criar a imagem mostrada no início do tutorial. No entanto, a camada que mostra os pixels com perda e ganho está ausente. Ela está faltando porque precisamos saber como realizar alguns cálculos em bandas de imagem antes de calcular quais pixels mostram perda e ganho. Esse é o tema da próxima seção.