Neste experimento, vamos demostrar a aplicação das técnicas NDWI e NDVI, capazes de identificar água e a saúde da vegetação, por meio de imagens públicas de satélites com o Google Earth Engine. Essas técnicas foram apresentadas no post “Índice de Vegetação e Índice de Água”.
A técnica NDVI – Índice de vegetação por diferença normalizada, identifica a saúde da planta, calculando a diferença de refletância entre o infravermelho-próximo e o vermelho, com a fórmula:
Fórmula: NDVI = (Infravermelho Próximo - Vermelho) / (Infravermelho Próximo + Vermelho).
A técnica NDWI – Índice de vegetação por diferença normalizada identifica água, inundações, mar, etc. Calculando a diferença de refletância entre o infravermelho-próximo e o verde, com a fórmula:
Fórmula: NDWI = (Verde – Infravermelho Próximo) / (Verde + Infravermelho Próximo).
Estas duas técnicas diferentes, podem ser aplicadas em imagens de satélite ou através de câmeras infravermelho de forma muito simples. Neste post, iremos demonstrar como aplicá-las com a ferramenta Google Earth Engine utilizando uma base de dados geoespaciais pública, para pesquisa.
Google Earth Engine
É uma ferramenta desenvolvida pela Google que combina um catálogo de várias de imagens de satélite e conjuntos de dados geoespaciais com recursos de análise em escala planetária. Com o objetivo, de que cientistas, pesquisadores e desenvolvedores usam o Earth Engine para detectar mudanças, mapear tendências e quantificar diferenças na superfície da Terra.
A ferramenta está disponível para uso comercial e é gratuito para uso acadêmico e de pesquisa. Para utilizar o Code Editor, basta acessar o link “code”, realizar o login com sua conta do Google e de um navegador web desktop. A ferramenta contém os seguintes 4 painéis:
- O Editor, de código onde serão adicionados todos os procedimentos e script;
- O Painel de status, que exibem as saídas dos procedimentos executados, como exibição de logs e erros;
- O Painel de navegação, semelhante ao Explorer do Windows;
- O Mapa, onde serão exibidos todos os resultados e análises feitas pelos scripts criado.
Catálogos de Dados do Google Earth
Pare aplicar as técnicas de análise de dados geoespaciais, com o Earth Engine, primeiro é preciso selecionar qual ou quais coleções de dados/imagens deseja-se utilizar. Existe uma grande variedade de base de dados e para diversas finalidades, porém, para nosso agrado, o Google disponibiliza um buscador (Clique aqui para acessar) que nos facilita a encontrá-la.
Neste experimento, iremos utilizar a base USGS Landsat 8 Collection 1 Tier 1 TOA Reflectance. Base de dados com informações de refletância do espectro de luz magnético, que possui imagens com as cores e o infravermelho, necessário para aplicar as fórmulas NDVI e NDWI.
Esta base de dados, possui imagens coletadas entre o período de 2013 à 2022. As informações da base de dados são divididas em bandas, cada banda representa uma faixa do espectro eletromagnético. No experimento iremos utilizar as bandas B3, B4 e B5, que representam respectivamente o verde, vermelho e infravermelho próximo.
Experimento
Coletar NDVI e NDWI com o Earth Engine é muito fácil, para testes rápidos precisamos apenas realizar 4 etapas: selecionar a coleção de dados; selecionar as bandas; aplicar as fórmulas e exibir o resultado no mapa.
Selecionar Coleção de dados
Na primeira etapa, é preciso selecionar a região de interesse no mapa, o local que se deseja extrair as imagens, no experimento foi selecionado a região de Florianópolis – SC. Esta região foi selecionada por meio da função ee.Geometry.Point que criar uma variável com as informações da coordenada desejada.
Também é necessário coletar a base de imagens ou coleção de dados, por meio da função ee.ImageCollection. Com a coleção de dados indicada, agora precisamos indicar 2 filtros, o filtro da região de interesse e o filtro de período de busca de imagens. Estes filtros são aplicados por meio das funções filterBounds e filterDate.
//Coleta as posições do mapa na região de Florianópolis - SC var imagePoint = ee.Geometry.Point([-49, -27.6935391]); var viewPoint = ee.Geometry.Point([-48.5449963, -27.5930994]); //Base de imagens geoespaciais utilizada var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR'); //Informa o período de busca das imagens var l8Query = l8 .filterBounds(imagePoint) .filterDate('2021-01-01', '2021-12-31') .sort('CLOUD_COVER'); //Coleta a primeira imagem identificada para o período informado var image = ee.Image(l8Query.first()); //Centraliza o mapa Map.centerObject(viewPoint, 13);
Com os filtros e a região de interesse informada, basta solicitar os registros com a função l8Query.first. Com os registros coletados, devemos convertê-los em dados de imagens que podemos trabalhar com a função ee.Image que retorna uma classe com diversas funcionalidade.
Observe que, além dos filtros foi informada para ordenar a coleção de dados por meio da função sort, com base na ordem de dados do atributo CLOUD_COVER da coleção de dados. Este atributo indica o quanto da região esta coberta por nuvens, e como não queremos realizar a analise dos dados com nuvens, então indicamos para trazer a primeira imagem com o menor número de nuvens identificadas. Também é possível realizar filtros por este atributo, porém isso pode fazer com que não venha nenhuma imagem da região devido o filtro aplicado.
Selecionar Bandas
Na segunda etapa, basta extrairmos da imagem as bandas B3, B4 e B5 da coleção de dados que correspondem ao verde, vermelho e infravermelho-próximo do espectro eletromagnético, conforme código abaixo:
//Coleta as bandas de cores NIR, Vermelho e Verde var green = image.select('B3'); var red = image.select('B4'); var nir = image.select('B5');
Aplicar e visualizar Fórmulas
Por fim, basta realizar os cálculos e adicionar a camada (Layer) com a imagem do NDVi gerada pelo Earth Engine ao mapa. Para adicionar ao mapa basta chamar a função Map.addLayer. Note que ao adicionar a camada NDVI, foram adicionados 2 parâmetros adicionais, o primeiro parâmetro (ndviParams), indica quais cores representarão cada extremo do cálculo NDVI, utilizamos a cores vermelha pra representar o valor -1, verde +1 e branco valores próximo ao zero. O segundo parâmetro “NDVI imagem” indica o nome do botão que ativa e inativa a visualização da camada no visualizador do mapa.
// Computa o Índice de Vegetação de Diferença Normalizada (NDVI). var ndvi = nir.subtract(red).divide(nir.add(red)).rename('NDVI'); var ndviParams = {min: -1, max: 1, palette: ['red', 'white', 'green']}; Map.addLayer(ndvi, ndviParams, 'NDVI image');
Para calcular o NDWI basta realizar as mesmas operações do NDVI, porém ajustando o cálculo para utilizar o infravermelho e o verde.
// Computa o Índice de Água de Diferença Normalizada (NDWI). var ndwi = green.subtract(nir).divide(green.add(nir)).rename('NDVI'); var ndwiParams = {min: -1, max: 1, palette: ['red', 'white', 'blue']}; Map.addLayer(ndwi, ndwiParams, 'NDWI image');
Também é possível realizar todo o cálculo do NDVI e NDWI de uma forma bem mais simples. Como essas duas formulas são cálculos de normalização, basta utilizar os seguintes códigos abaixo que o próprio Earth Engine converte para as fórmulas descritas acima.
//Formas resumidas de coletar a informação var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); var ndwi = image.normalizedDifference(['B3', 'B5']).rename('NDVI'); Map.addLayer(ndvi); Map.addLayer(ndwi);
Com este experimento e o código acima foram geradas as seguintes imagens:
Na primeira imagem, na parte esquerda, visualizamos em verde a refletância de áreas cobertas por vegetação e em vermelho áreas com nenhuma refletância de vegetação segundo a fórmula do NDVI. Quanto mais escuro o verde é indicativo de maior concentração de vegetação ou vegetações mais saudáveis.
Observar que nem toda vegetação saudável possui um alto nível de NDVI, cada vegetação possui uma característica especifica de saúde, que requerem estudos específicos para saber identificar sua saúde através do NDVI. Porém para identificar regiões de mata, floresta ou de cultivo, o NDVI é ideal ideal.
Na segunda imagem, na parte esquerde, visualizamos em azul todas as regiões com superfície coberta por água, inundações e em vermelho a ausência d’água. O interessante nesta segunda imagem é que ela consegue identificar a Lagoa da Conceição, uma lagoa situada no meio de Florianópolis e se olharmos a mesma imagem, na parte direita, não é possível identificar a lagoa pela imagem de satélite.
Para visualizar esta aplicação, basta acessar o link Teste NDVI NDWI. Todo este experimento foi criado, com base no tutorial criado pelo próprio Google (clique aqui para acessar o tutorial).
Plataforma MapBiomas
Uma ferramenta muito mais elabora, que esta criada neste post, é a plataforma MapBiomas que disponibilizam diversas análises sensoriais do Brasil com scripts criados por meio do Google Earth Engine.
Clique aqui para acessar a ferramenta ou clique aqui para visualizar uma análise sensorial e temporal da superfície d’água no Brasil.
Todo o código fonte do projeto, está disponível para replicação do experimento no link abaixo. Caso tenha dúvidas ou sugestões de melhorias no post, deixe seu comentário abaixo.
Source:
Referências:
Iporã Brito Possantti via MasAbertos, O Google Earth Engine. Acessado em 04 mar 2022.
Google, NDVI, Mapping a Function over a Collection, Quality Mosaicking . Acessado em 04 mar 2022.
Nenhum comentário ainda!