Como visualizar imagens e bandas de imagens

Agora que você já pode começar a escrever o JavaScript do Earth Engine, copie o seguinte código no editor de código:

Editor de código (JavaScript)

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

Clique no botão Run na parte de cima do editor de código e observe que uma imagem muito cinza aparece no mapa. Não se preocupe, você vai melhorar a aparência dele em breve. Se a sintaxe de qualquer parte deste exemplo não for familiar, consulte o tutorial de JavaScript para o Earth Engine.

Construtor de imagens

A primeira novidade neste exemplo é o construtor de imagem ee.Image(). O argumento fornecido ao construtor é o ID de string de uma imagem no Data Catalog do Earth Engine. Consulte a guia Docs, à esquerda do Editor de Código, para ver uma lista completa de possíveis argumentos para o construtor de imagens. A guia Documentos representa as informações mais atualizadas sobre o que o Earth Engine pode fazer.

Para descobrir o ID de uma imagem, pesquise no Data Catalog do Earth Engine usando a ferramenta de pesquisa na parte de cima do editor de código. Por exemplo, digite "elevação" no campo de pesquisa e observe que uma lista de rasters é retornada. Clique na entrada "SRTM Digital Elevation Data Version 4" para ver mais informações sobre esse conjunto de dados. No lado direito da descrição do conjunto de dados, há um campo ID da imagem. Observe que o ID da imagem no exemplo é copiado do ID da imagem mostrado na descrição do conjunto de dados.

Uma alternativa para copiar e colar IDs de imagem é usar o botão Importar na descrição do conjunto de dados ou o link importar no lado direito dos resultados da pesquisa. Se você clicar no link ou botão de importação, uma variável será criada automaticamente em uma seção especial, chamada Importações, na parte de cima do script. Para renomear a variável, clique no nome dela na seção de importações.

Configurar o mapa

A segunda parte nova deste exemplo é a chamada Map.setCenter(). Esse método no objeto Map, que representa a exibição do mapa no Editor de Código, centraliza o mapa na longitude e latitude fornecidas (em graus decimais) e no nível de zoom, em que 1 é o zoom reduzido para que o mapa mostre toda a superfície da Terra. Números maiores aumentam o zoom a partir daí. Descubra todos os métodos no objeto Map verificando a seção "Map" na guia "Docs" no lado esquerdo do editor de código.

Adicionar uma camada ao mapa

A última linha do exemplo diz: use o método addLayer() do objeto Map para adicionar uma imagem à exibição do mapa no Editor de Código.

Parabéns! Você criou seu primeiro script do Earth Engine. Na próxima seção, você vai aprender a melhorar a aparência dessa imagem.

Digressão: imagens no Earth Engine

As imagens no Earth Engine (consulte esta página para mais detalhes) são compostas por uma ou mais bandas. Cada banda em uma imagem tem o próprio nome, valores de pixel, resolução de pixel e projeção. Como você vai descobrir em breve, a imagem da SRTM tem uma banda: "elevation".

Quando você adiciona uma imagem a um mapa usando Map.addLayer(), o Earth Engine precisa determinar como mapear os valores nas bandas da imagem para as cores na tela. Se uma imagem de banda única for adicionada a um mapa, por padrão, o Earth Engine vai mostrar a banda em escala de cinza, em que o valor mínimo é atribuído ao preto e o valor máximo ao branco. Se você não especificar os valores mínimo e máximo, o Earth Engine vai usar valores padrão. Por exemplo, a imagem que você acabou de adicionar ao mapa é mostrada como uma imagem em escala de cinza esticada para todo o intervalo dos dados ou um número inteiro de 16 bits assinado [-32768, 32767]. Por padrão, as bandas float são estendidas para [0, 1] e as bandas byte são estendidas para [0, 255].

Para descobrir o tipo de dados da imagem, imprima e inspecione o objeto de imagem na guia Console. Por exemplo, cole o seguinte após o código anterior:

Editor de código (JavaScript)

print('SRTM image', image);

Ao clicar em "Run", um objeto aparece no console. Para investigar as propriedades do objeto, clique no zippy () à esquerda do objeto ou da propriedade para expandi-lo. Expanda o objeto de imagem, a propriedade "bands", a banda "elevation" no índice "0" e a propriedade "data_type" da banda "elevation" para descobrir que é um tipo de dados signed int16.

Como personalizar a visualização de camadas

Para mudar a forma como os dados são esticados, forneça outro parâmetro para a chamada Map.addLayer(). Especificamente, o segundo parâmetro, visParams, permite especificar os valores mínimo e máximo a serem mostrados. Para descobrir quais valores usar, ative a guia Inspetor e clique no mapa para ter uma ideia do intervalo de valores de pixel. Como alternativa, use o Gerenciador de camadas para esticar os dados de forma interativa e observe o mínimo e o máximo correspondentes aos percentis ou aos desvios padrão. Suponha que, por meio dessa experimentação, você determine que os dados precisam ser estendidos para [0, 3000]. Para mostrar a imagem usando esse intervalo, use:

Editor de código (JavaScript)

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

O parâmetro visParams é um objeto com propriedades que especificam min e max. Saiba mais sobre objetos JavaScript no tutorial de JavaScript ou nesta referência externa. O terceiro parâmetro para Map.addLayer() é o nome da camada exibida no Gerenciador de camadas. O resultado será parecido com a Figura 1. Passe o mouse sobre a caixa Camadas à direita para ver o efeito de renomear essa camada.

Tutorial_api_01_elevation.png
Figura 1. Imagem de elevação em escala de cinza, estendida para [0, 3000].

Para exibir uma única banda usando uma paleta de cores, adicione uma propriedade palette ao objeto visParams:

Editor de código (JavaScript)

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

O resultado será parecido com a Figura 2.

Tutorial_api_02_palette.png
Figura 2. Imagem de elevação como uma rampa de cores de azul para vermelho, estendida para [0, 3000].

Digressão: paletas

As paletas permitem definir o esquema de cores para imagens de banda única. Uma paleta é uma lista delimitada por vírgulas de strings de cores que são interpoladas linearmente entre os valores máximo e mínimo nos parâmetros de visualização (ou padrões de acordo com o tipo de banda, conforme descrito anteriormente). Por exemplo, os pixels menores ou iguais ao mínimo serão mostrados com a primeira cor da lista, e os pixels maiores ou iguais ao máximo serão mostrados com a última cor da lista. As cores intermediárias são estendidas linearmente para valores de pixel intermediários.

As cores são definidas usando o esquema de valores de cores CSS padrão da Web (consulte esta referência externa para saber mais). As cores podem ser especificadas por nome ou como strings hexadecimais que indicam a combinação de vermelho, verde e azul. O menor valor em qualquer uma das três posições é 00 (representando o número decimal 0), enquanto o maior é FF (representando o número decimal 255). A string "000000" representa a cor preta, "FFFFFF" é branca, "FF0000" é vermelha, "00FF00" é verde e "0000FF" é azul. Consulte a seção Paletas de cores para mais detalhes. Outros alongamentos são possíveis usando descritores de camada estilizados, conforme descrito nesta seção.

Mais adiante neste tutorial, você vai aprender a exibir imagens multibanda. Mas antes, acesse a próxima página para saber como realizar cálculos com imagens.