UNIVERSIDADE FEDERAL DO PARANÁ
DEPARTAMENTO DE GEOMÁTICA
Sensoriamento Remoto
Exercicio No. 04 : IV

índices espectrais

O contraste entre a reflectância da vegetação no infravermelho próximo e no vermelho é alto. A clorofila na folha é responsável por uma alta taxa de absorção no vermelho, enquanto que a superfície da folha reflete muito no infravermelho próximo. Com base nestes fatos, foram propostos índices de vegetação para salientar a presença e a saúde da vegetação. Nesta aula, você deverá calcular os índices de vegetação:
Diferença simples IV= IVP - RED NDVI
Aplicando-se o conceito de contraste a estas duas bandas obtêm-se índice de vegetação por diferença Normalizada ou Normalized Difference Vegetation Index - NDVI, que varia entre -1 a +1. Valores altos do NDVI correspondem a vegetacao sadia e densa enquanto valores pequenos mostram vegetação seca, sob estresse, ou pouco densa. IV= (IVP-RED)/(IVP+RED) : Existem outros índices similares, como: O SAVI, soil adjusted vegetation index, que usa uma constante para minimizar o efeito do brilho do solo SAVI= (IVP-RED)/(IVP+RED + C) (1+C)


O EVI, enhanced vegetation index, que inclui as duas faixas de absorção da clorofila na região do visível (RED e BLUE). C1, C2 são coeficientes para cada banda, X um fator de ajuste associado ao fundo and G um ganho ou fator de escala. EVI=G (IVP-RED)/(IVP+C1*RED + C2*BLUE+X) Um bom resumo de índices de vegetação se encontra em ScienceDirect .

NDVI no e.e.

Bem, agora, usando o e.e. e a imagem da Ilha do Mel/Paranaguá da primeira aula...
vamos calcular uns dois índices de vegetação e tentar responder às seguintes questões: Primeiro, defina uma área de interesse no mapa. Delimite um retângulo com o mouse. use a opção disponível no lado superior esquerdo do mapa.
OK. Agora, vamos ler nossa imagem Landsat. Você já sabe fazer isto... // Definimos o local de interesse com um retângulo, não esquecer
// ler imagem Landsat 8, como na 1a aula...
var image = ee.Image('LANDSAT/LC08/C01/T1/LC08_220078_20210525');
// Selecionar as bandas que deseja visualizar E alguns parâmetros:
var vizParams = {bands: ['B6', 'B5', 'B4'], min: 5000, max: 20000, gamma: 1.3};
// Desloque o display ao ponto selecionado (voo). TEM QUE TER O RETANGULO para definir geometry
Map.centerObject(geometry, 12);
// Ajustar a área de trabalho ao recorte selecionado e transformar em float.
var recorte = image.clip(geometry);
var recorte = recorte.toFloat()
// Adicionar ao mapa como camada
Map.addLayer(recorte , {bands: ['B6', 'B5', 'B4'], min: 5000, max: 20000}, "recorte", false);
Agora, Selecionemos as bandas e calculemos a diferença simples , usando a função substract. Vamos pedir para ver os valores extremos. Pode ser útil para escolher o mínimo e máximo para visualizar a imagem. Aqui escolhemos, a princípio para ver valores entre 0 e 0,6.
para visualizar a imagem usaremos uma paleta de cores entre amaterloe verde, porém você pode escolher as cores. Verde=vegetação sadia (valores altos). Tente mudar os valores minimo e máximo do display. // a) selecionar bandas e calcular a diferença
var nir = image.select('B5');
var red = image.select('B4');
var di = nir.subtract(red);
// valor minimo e maximo
var minReducer = ee.Reducer.min();
var theMin = di.reduceRegion(minReducer, geometry);
var maxReducer = ee.Reducer.max();
var theMax = di.reduceRegion(maxReducer, geometry);
print(theMin, theMax);
visualizar usando uma paleta de cores entre amarelo e verde
var vi = di.clip(geometry);
Map.addLayer(vi, {min: -1000, max: 10000, palette: ['black', 'yellow', 'green']}, 'continuous VI',false);
Se você visualizar no mapa, pode ligar/desligar a camada (layer) do polígono, ou as camadas das imagens apresentadas. a composição colorida do recorte ou o resultado da diferença entre bandas (VI).

NDVI
Agora vamos ao NDVI. Como já selecionamos as bandas, agora usaremos uma maneira parecida de efetuar a operação de adição e depois a divisão. com add e divide. // calcular NDVI
var ndvi = nir.subtract(red).divide(nir.add(red));
var ndvi = ndvi.clip(geometry);
// valor minimo e maximo
var minReducer = ee.Reducer.min();
var theMin = ndvi.reduceRegion(minReducer, geometry);
var maxReducer = ee.Reducer.max();
var theMax = ndvi.reduceRegion(maxReducer, geometry);
print(theMin, theMax);
// Adicionar ao mapa
Map.addLayer(ndvi, {min: 0, max: 0.6, palette: ['black', 'yellow', 'green']}, 'continuous NDVI',false);

Analise as imagens

Compare as duas imagens calculadas, VI e NDVI.

NDVI

Agora se concentre noa imagem do NDVI. Se quiser, altere os valores do display min/max para poder ver melhor esta imagem. Com ajuda do Inspector leia os valores digitais do NDVI para as seguintes coberturas, e calcule a média de cada classe.

Objeto

Pixel 1

Pixel 2

Pixel 3

Média

água

Areia

área urbana

Solo úmido

Solo exposto seco

Vegetação densa

Manguezal

Restinga

Fatiamento

Finalmente, podemos tentar dividir a imagem do índice NDVI em faixas. Você poderia escolher valores minimo e maximo para separar:
alvo minmax

Água

Solu/Urbano

Vegetação menos densa

Vegetação densa

Agora, vamos gerar este mapa no e.e. ALtere os valores das faixas segundo sua tabela. // 3. Classificar meu em 5 classes
var ndvi2 = ee.Image(1)
   .where(ndvi.gt(0.0).and(ndvi.lte(0.2)), 2)
   .where(ndvi.gt(0.2).and(ndvi.lte(0.4)), 3)
   .where(ndvi.gt(0.4).and(ndvi.lte(0.6)), 4)
   .where(ndvi.gt(0.6), 5)
var ndvi2 = ndvi2.clip(geometry);
Map.addLayer(ndvi2, {min: 1, max: 5, palette: ['#654321','#FFA500','#FFFF00', '#00FF00', '#008000']}, 'NDVI fatiado',true);

Finalmente, sabia que existe uma função pronta para o cálculo do NDVI no e.e.?

Avaliação

Responda
  1. É possível diferenciar vegetação de outros alvos usando um índice de vegetação?
  2. Como aparece a vegetação mais densa ou sadia em relação àquela mais seca/rala?
  3. Por que a água aparece tão escura no NDVI?
  4. Como apareceriam nuvens no NDVI?
  5. O que ocorreria com o NDVI da vegetação se o teor de clorofila na folha diminuir?
  6. O NDVI pode ser usado para monitorar a umidade dos solos?
  7. O conceito do NDVI poderia ser estendido para se obter outro índice? qual? como?
  8. Poderia usar o verde em lugar do vermelho, para calcular o NDVI?

Copyright © 2021
Jorge Centeno: centeno@ufpr.br