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.
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.
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 banda | Descrição | Intervalo |
|---|---|---|
| treecover2000 | Porcentagem de cobertura vegetal no pixel. | 0 - 100 |
| perda | 1 se houver perda durante o período do estudo. | 0 ou 1 |
| ganhar | 1 se houver ganho durante o período do estudo. | 0 ou 1 |
| lossyear | O ano em que a perda ocorreu, indexado a partir de 2001, ou zero se não houver perda. | 0 - 12 |
| first_b30 | A 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_b40 | A banda de infravermelho próximo do Landsat 7 criada com base nos primeiros pixels válidos em 2000. | 0 - 255 |
| first_b50 | A primeira banda de infravermelho de ondas curtas do Landsat 7 criada com base nos primeiros pixels válidos em 2000. | 0 - 255 |
| first_b70 | A segunda banda de infravermelho de ondas curtas do Landsat 7 criada com base nos primeiros pixels válidos em 2000. | 0 - 255 |
| last_b30 | A banda vermelha do Landsat 7 criada com os pixels válidos mais recentes em 2012. | 0 - 255 |
| last_b40 | A banda de infravermelho próximo do Landsat 7 criada com base nos pixels válidos mais recentes em 2012. | 0 - 255 |
| last_b50 | A primeira banda de infravermelho de ondas curtas do Landsat 7 criada com base nos pixels válidos mais recentes de 2012. | 0 - 255 |
| last_b70 | A segunda banda de infravermelho de ondas curtas do Landsat 7 criada com base nos pixels válidos mais recentes de 2012. | 0 - 255 |
| datamask | Sem 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.
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.
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.
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.
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.
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.
Amplie para ter uma ideia melhor da resolução das imagens. A Figura 9 mostra uma área 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.
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.
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.
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.