O Earth Engine é uma ferramenta de análise avançada, mas talvez seja necessário exportar os resultados da sua análise para incorporar gráficos, imagens, mapas etc. em relatórios ou publicações. Nesta seção, você vai aprender a criar gráficos e imagens que podem ser exportados e visualizados em outros softwares. Na seção anterior, você usou um código como este para adicionar uma banda NDVI a todas as imagens de uma coleção, em que a variável l8
faz referência à coleção de refletância TOA do Landsat 8:
Editor de código (JavaScript)
// Import the Landsat 8 TOA image collection. var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); // Map a function over the Landsat 8 TOA collection to add an NDVI band. var withNDVI = l8.map(function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); return image.addBands(ndvi); });
Criando o gráfico
Suponha que você queira um gráfico do NDVI ao longo do tempo em um determinado local. Para criar um gráfico assim, a primeira etapa é escolher um local de interesse. Crie um ponto
usando a ferramenta de desenho de ponto ()
e faça uma geometria de ponto único na sua área de interesse. Se você já tiver importações, passe o cursor sobre Importações de geometria e clique em + nova camada primeiro.
Localize o ponto em uma área de agricultura, floresta decídua, pastagem anual ou alguma outra cobertura vegetal com um ciclo anual. Nomeie a importação como
roi
. Consulte esta página para informações sobre como criar geometrias de maneira programática.
Agora vamos usar o ponto roi
para criar um gráfico de NDVI ao longo do tempo no pixel abaixo desse ponto. A maneira de criar gráficos no Earth Engine é com o pacote ui.Chart
. Saiba como criar gráficos no Earth Engine.
Para criar um gráfico ao longo do tempo, use o método
ui.Chart.image.series()
:
Editor de código (JavaScript)
// Create a chart. var chart = ui.Chart.image.series({ imageCollection: withNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'NDVI over time'}); // Display the chart in the console. print(chart);
Para a geometria roi
, escolhemos um ponto em uma área agrícola, resultando em um gráfico semelhante à Figura 10. Os parâmetros do construtor de gráficos incluem um redutor e uma escala como reduceRegion()
. Como o ponto que estamos fornecendo como uma região só pode cruzar um pixel, basta usar o redutor "first". Se você tiver uma região maior, use uma média ou outro redutor que especifique como agregar pixels. Além disso, para visualizar um gráfico, basta imprimi-lo.

Digressão: mascaramento de nuvem simples para Landsat
Você deve ter notado que a série temporal de valores de NDVI no ponto parece um pouco ruidosa. Isso provavelmente acontece por causa das nuvens. Para atenuar esse efeito, o Earth Engine inclui um algoritmo de mascaramento de nuvens para sensores do Landsat com uma banda térmica: ee.Algorithms.Landsat.simpleCloudScore()
. Ele usa uma imagem de refletância TOA do Landsat como entrada e adiciona uma banda chamada cloud
, que é um índice de nebulosidade no pixel de zero a 100, do menos ao mais nublado, respectivamente. Ao modificar a função mapeada na coleção, é possível usar um limite arbitrário (20) no índice de nuvem para limpar um pouco o gráfico:
Editor de código (JavaScript)
var cloudlessNDVI = l8.map(function(image) { // Get a cloud score in [0, 100]. var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud'); // Create a mask of cloudy pixels from an arbitrary threshold. var mask = cloud.lte(20); // Compute NDVI. var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); // Return the masked image with an NDVI band. return image.addBands(ndvi).updateMask(mask); }); print(ui.Chart.image.series({ imageCollection: cloudlessNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'Cloud-masked NDVI over time'}));
O resultado com máscara de nuvem é ilustrado na Figura 11. A série temporal parece um pouco mais suave, mas ainda pode conter pixels afetados por nuvens. Ajuste o limite no índice da nuvem e observe a série temporal representada para saber como esse limite pode afetar seus resultados.

Exportar imagens
Você já viu uma maneira de exportar um gráfico de dados computados pelo Earth Engine, mas e uma imagem inteira? Por exemplo, suponha que você tenha criado um mosaico do pixel mais verde conforme discutido na seção anterior:
Editor de código (JavaScript)
var greenest = cloudlessNDVI.qualityMosaic('NDVI');
A única diferença entre este código e o que você fez antes é que agora estamos usando a coleção mascarada de nuvem. É possível exportar um subconjunto (definido por uma região) usando o pacote Export
. Saiba mais sobre como exportar dados raster e vetoriais do Earth Engine. Por exemplo, para exportar uma imagem que possa ser incorporada facilmente em outros documentos, crie uma imagem de visualização, como você fez antes, e exporte para sua pasta do Google Drive:
Editor de código (JavaScript)
// Create a 3-band, 8-bit, color-IR composite to export. var visualization = greenest.visualize({ bands: ['B5', 'B4', 'B3'], max: 0.4 }); // Create a task that you can launch from the Tasks tab. Export.image.toDrive({ image: visualization, description: 'Greenest_pixel_composite', scale: 30 });
Ao executar esse código, observe que uma nova tarefa é criada na guia Tarefas. Para abrir a caixa de diálogo de configuração de exportação, clique no botão EXECUTAR na guia Tarefas. Depois de configurar a tarefa, clique no botão Executar na caixa de diálogo para iniciar a exportação. Mas antes disso, saiba que:
O motivo para ter cuidado ao exportar sem um argumento region
é que, se você definir um valor relativamente pequeno para scale
e o mapa for reduzido para uma área grande, vai exportar uma imagem potencialmente muito grande para a pasta do Drive. Consulte a documentação Export.image.toDrive()
na guia Documentos para mais detalhes e uma lista de possíveis parâmetros de configuração.
Isso conclui esta introdução à API Earth Engine. Agora você já conhece grande parte da funcionalidade mais comum do Earth Engine e pode prosseguir com confiança para análises mais complexas. Leia a documentação e pesquise no fórum para encontrar respostas a outras dúvidas. Divirta-se com os códigos!