Pular para o conteúdo principal

Questão de Programação — JSON — CESPE / CEBRASPE 2025

ProgramaçãoJSON
Código
ce201841
Banca
CESPE / CEBRASPE
Órgão
EMBRAPA
Ano
2025
Nível
Superior
Cargo
Pesquisador – Área: Engenharias – Subárea: Recursos Florestais e Engenharia Florestal

O NDVI (ou índice de vegetação por diferença normalizada) permite identificar a presença de vegetação verde e caracterizar sua distribuição espacial, como também sua evolução no decorrer do tempo. Para calcular o NDVI, a linguagem Python é amplamente utilizada, devido à sua flexibilidade e às bibliotecas de processamento de dados geoespaciais disponíveis. A seguir, é apresentado um código em Python relativo ao cálculo do NDVI. 


import numpy as np

import rasterio def calcular_ndvi(arquivo_nir, arquivo_red,

saida_ndvi):

    with rasterio.open(arquivo_nir) as nir_src:

        nir = nir_src.read(1).astype('float32')

        perfil = nir_src.profile

    with rasterio.open(arquivo_red) as red_src:

        red = red_src.read(1).astype('float32')

    ndvi = (nir - red) / (nir + red + 1e-10)

    perfil.update(dtype=rasterio.float32,

count=1)

    with rasterio.open(saida_ndvi, 'w',

**perfil) as dst:

        dst.write(ndvi, 1)

    print(f"NDVI calculado e salvo em:

{saida_ndvi}") 


Com base no código precedente, julgue os itens a seguir. 

Com base no código precedente, julgue o item a seguir.Ao salvar a imagem resultante, o código preserva automaticamente a escala original dos valores de NDVI, sem precisar de ajustes adicionais.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

NDVI e processamento em Python

Gabarito: Errado (Alternativa E). O código não preserva a escala original dos valores de NDVI, pois utiliza os números digitais (DN) das bandas NIR e Red sem qualquer calibração para reflectância. O NDVI calculado a partir de dados brutos não segue uma escala padronizada e, portanto, a afirmação está incorreta.

O código lê as bandas NIR e Red com rasterio, converte para float32 e calcula (nir - red) / (nir + red + 1e-10). Esse cálculo produz valores no intervalo [-1, 1], mas a escala original dos dados de entrada (geralmente inteiros como 0-255 ou 0-65535) é perdida. Para que o NDVI tenha significado físico, as bandas devem ser convertidas para reflectância (usando fatores de calibração e correção atmosférica). O código não realiza essa conversão, portanto o resultado não preserva nenhuma "escala original" — ele gera uma nova escala derivada dos DNs.

PEGA ESSA DICA!

Em sensoriamento remoto, o NDVI deve ser calculado a partir de reflectância de superfície, não de números digitais brutos. O código apresentado é apenas um esqueleto didático; em aplicações reais, é necessário calibrar os dados antes.

Item — ❌ Errado

A afirmação diz que "Ao salvar a imagem resultante, o código preserva automaticamente a escala original dos valores de NDVI, sem precisar de ajustes adicionais." Isso é falso porque:

  • Não existe "escala original" de NDVI; o NDVI é calculado a partir de outras bandas.

  • O código não aplica nenhum fator de escala ou calibração, apenas lê os DNs e calcula a fórmula.

  • A escala dos valores de saída é a da fórmula (entre -1 e 1), não a escala de entrada.

  • Se os dados de entrada fossem reflectância (já calibrados), o NDVI seria correto, mas o código não faz essa distinção.

Portanto, o item está Errado.

Link permanente: /questoes/ce201841