Normalize os valores de varredura para 0-255

8

Eu preciso normalizar os valores atingidos de uma taxa de banda para 0-255. Estou usando o QGIS. Como eu faço isso? Alguma ideia?

vascobnunes
fonte
1
Porque é uma proporção, cuidado! Por exemplo, se for uma proporção de duas imagens de 0 a 255 com histogramas equalizados, metade das proporções estará entre 0 e 1, enquanto a outra metade estará entre 1 e 255 (e algumas serão indefinidas): é uma enorme discrepância nos intervalos ! Dependendo do seu objetivo, o logaritmo da proporção pode ser uma quantidade melhor para calcular; melhor ainda, calcule o log ((1 + banda1) / (1 + banda2)) para evitar quantidades indefinidas. No mínimo, isso produzirá um mapa mais legível.
whuber

Respostas:

11

Você pode usar o utilitário gdal_translate. Use a opção -scale [src_min src_max [dst_min dst_max]] com src_min e src_max como valores mín / máx atuais de seus dados e 0,255 como dst_min, dst_max. Sem os colchetes.

Se você instalou o pacote QGIS com OSGeo4W, pode ter o programa de terminal chamado 'MSYS'. Abra isso e use o comando gdal_translate. Caso contrário, no QGIS, escolha Raster -> Conversion -> Translate. Escolha seus arquivos e opções. Na parte inferior da janela, o comando gdal_translate completo será exibido. Clique em editar e adicione a opção -scale.

pensamentos espaciais
fonte
16

A seguir, os dados serão expandidos para 8 bits (0-255).

smin=0; smax=255

( x - min(x) ) * (smax - smin) / ( max(x) - min(x) ) + smin

Deve ser bastante fácil traduzir isso para a sintaxe da álgebra raster no seu software de escolha. Você só precisa saber quais são os valores mínimo e máximo na sua varredura. Se a varredura é o resultado de uma taxa de banda, é seguro assumir -1 para 1 e a sintaxe deve se parecer com isso.

NewRaster = ( OldRaster - -1 ) * 255 / ( 1 - -1 ) + 0
Jeffrey Evans
fonte
1
+1: Respostas gerais (independentes de sintaxe) têm ampla aplicação. Bem-vindo ao nosso site, Jeffrey!
whuber
O primeiro smaxtermo realmente deve ser smax - smin- no exemplo (0-255) não importa, mas o faz, onde smin= 0!
Simbamangu