Caculadora Raster

434 views
Skip to first unread message

Felipe Dantas

unread,
Dec 2, 2014, 2:57:32 PM12/2/14
to qgisb...@googlegroups.com
Pessoal, existe alguma fórmula base para transformação de raster codificado em 16 bits para 8 bits / Float64 para Float32, etc ?

Jorge Santos

unread,
Dec 2, 2014, 3:03:18 PM12/2/14
to qgisb...@googlegroups.com

Jorge Santos
Técnico em Geoprocessamento
http://www.processamentodigital.com.br/

Em 2 de dezembro de 2014 17:57, Felipe Dantas <felipera...@gmail.com> escreveu:
Pessoal, existe alguma fórmula base para transformação de raster codificado em 16 bits para 8 bits / Float64 para Float32, etc ?

--
Comunidade QGIS Brasil: http://qgisbrasil.wordpress.com
---
Você recebeu essa mensagem porque está inscrito no grupo "qgisbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para qgisb...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/qgisbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.

Felipe Dantas

unread,
Dec 2, 2014, 3:16:50 PM12/2/14
to qgisb...@googlegroups.com
Jorge, eu já até tinha visto está fórmula no seu site anteriormente, porém, mesmo estando de posse da fórmula, ainda sim precisaria dizer o tipo de codificação de saída do dado. Nas novas versões não tem no repositório esse plugin, então a saída seria eu instalar a versão 1.8 !

Vlw, Jorge !

Jorge Santos

unread,
Dec 2, 2014, 3:17:53 PM12/2/14
to qgisb...@googlegroups.com
Use a calculadora raster do QGIS pós 1.8 e aplique a fórmula. A lógica é a mesma.

Jorge Santos
Técnico em Geoprocessamento
http://www.processamentodigital.com.br/

yjmenezes

unread,
Dec 2, 2014, 4:59:26 PM12/2/14
to qgisb...@googlegroups.com

Felipe,


tenta o gdal_translate


-ot  tipo_de_saida


-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
             CInt16/CInt32/CFloat32/CFloat64}

[]s
julio menezes

Jorge Santos

unread,
Dec 2, 2014, 5:04:45 PM12/2/14
to qgisb...@googlegroups.com, Jorge Santos
CONVERSÃO DE IMAGENS LANDSAT-8 DO TIPO DE DADO DE 16 BIT PARA 8 BIT

Imagens Landsat-8 são entregues em 16 Bits, é o padrão do USGS. O procedimento para conversão de um raster de 16 Bit para 8 Bit requer alguns passos simples, mas obrigatórios. Veja o tutorial abaixo.


A) CALCULAR AS ESTATÍTICAS ATRAVÉS DA INFORMAÇÃO DO RASTER

Você precisa conhecer o Range (intervalo de dados) de cada banda para conseguir transformar corretamente os dados. Na prática, são os valores numéricos armazenados nos pixels.

Somente através das estatísticas podemos obter os valores Mínimo e Máximo de cada banda. Depois, através do GDALINFO embutido no QGIS vamos imprimir na tela essa informação.

RASTER – MISCELÂNEA – INFORMAÇÃO



Primeiro, selecione a sua banda na lista. Segundo, Clique no lápis e digite o parâmetro -stats para que o GDALINFO possa computar as estatísticas.

ANTES

gdalinfo C:/LANDSAT8_PE/LC82150652013152LGN00_B6.TIF

DEPOIS

gdalinfo -stats C:/LANDSAT8_PE/LC82150652013152LGN00_B6.TIF



Clique no botão OK para executar o comando e depois, clique novamente no lápis para sair da edição do comando. As estatísticas precisosas serão armazenadas no bloco acima.

Rolando a lista de metadados até o final, temos a informação que precisamos. Veja abaixo os resultados para a banda que estou utilizando nesse teste:

    STATISTICS_MAXIMUM=62455
    STATISTICS_MEAN=11150.17715019
    STATISTICS_MINIMUM=0
    STATISTICS_STDDEV=7741.5369127271



Estes são os valores necessários para gerar a imagem em 8 Bit:

Valor mínimo de pixel = 0 
Valor máximo do pixel = 62455

Anote esses valores porque vamos utilizá-los mais adiante.


B) PARÂMETROS PARA O GDAL_TRANSLATE

Antes de gerar a imagem em 8 bits, vamos precisar inserir os números obtidos no processo anterior em outro comando GDAL (use o Bloco de Notas se necessário):

ANTES

-ot Byte -scale src_min src_max -co TFW=YES

DEPOIS

-ot Byte -scale 0 62455 -co TFW=YES

Vamos explicar todos os parâmetros que vamos copiar e colar na próxima linha de comando:

-ot Byte: Tipo de Dado de Saída. Byte é um tipo de dado que significa Unsigned Integer 8 Bit.

-scale src_min src_max: Este é o parâmetro que muda a escala dos dados. Funciona assim: 16 Bit é uma escala de cores ou um recipiente que guarda até 65536 itens, porém, 8 bits é um recipiente menor, só cabem 256 itens. Por isso, o parâmetro -scale vai dimensionar os valores do pixel de modo que valores semelhantes sejam criados e armazenados na escala de 8 bit. Para isso, é obrigatório fornecer os valores mínimo e máximo da imagem.

-co TFW=YES: Esta é uma Opção de Criação. Permite gerar um arquivo TFW que contém informações de posicionamento da imagem. É uma medida cautelosa para que nenhum processo apague a informação de posição do raster.

Agora que sabemos o que esses parâmetros fazem, vamos partir para a etapa de geração da cena Landsat-8 em 8 Bit.

C) TRANSFORMAÇÃO DE IMAGENS LANDSAT-8 DE 16 BIT PARA 8 BIT NO QGIS 2.6

RASTER – CONVERSÃO – CONVERTER FORMATO



1 - Primeiro, informe quem são as imagens de entrada e saída que serão transformadas de 16 Bit para 8 Bit:





2 - Segundo, clique no lápis para editar o comando GDAL que aparece mais abaixo (o QGIS funciona como uma interface gráfica para o GDAL, que não possui GUI):


3 - Cole o parâmetro -ot Byte -scale 0 62455 -co TFW=YES no comando após o parâmetro de saída -of GTiff. Veja a demonstração:

ANTES

gdal_translate -of GTiff C:/LANDSAT8_PE/LC82150652013152LGN00_B6.TIF C:/LANDSAT8_PE/LC82150652013152LGN00_B6_8bit.tif

DEPOIS

gdal_translate -of GTiff -ot Byte -scale 0 62455 -co TFW=YES C:/LANDSAT8_PE/LC82150652013152LGN00_B6.TIF C:/LANDSAT8_PE/LC82150652013152LGN00_B6_8bit.TIF





4 - Notar que os números variam para cada banda e o comando fica diferente. Bit. Clique em OK para executar o comando (não clique no lápis para sair da edição do comando!)





A imagem em 8 Bit será gerada com sucesso! Veja  que os valores MIN/MAX estão diferentes da imagem originale a imagem possui realce.




Acesse as Propriedades do Raster e modifique a simbologia da banda para ESTENDER PARA MINMAX. Siga a ordem numérica abaixo e tudo vai ficar bem. Repita o procedimento em todas as bandas restantes.





Jorge Santos
Técnico em Geoprocessamento
http://www.processamentodigital.com.br/

Em 2 de dezembro de 2014 18:16, Felipe Dantas <felipera...@gmail.com> escreveu:
Jorge, eu já até tinha visto está fórmula no seu site anteriormente, porém, mesmo estando de posse da fórmula, ainda sim precisaria dizer o tipo de codificação de saída do dado. Nas novas versões não tem no repositório esse plugin, então a saída seria eu instalar a versão 1.8 !

Vlw, Jorge !

Em terça-feira, 2 de dezembro de 2014 17h03min18s UTC-3, Jorge Santos escreveu:

Jorge Santos
Técnico em Geoprocessamento
http://www.processamentodigital.com.br/

Em 2 de dezembro de 2014 17:57, Felipe Dantas <felipera...@gmail.com> escreveu:
Pessoal, existe alguma fórmula base para transformação de raster codificado em 16 bits para 8 bits / Float64 para Float32, etc ?

--
Comunidade QGIS Brasil: http://qgisbrasil.wordpress.com
---
Você recebeu essa mensagem porque está inscrito no grupo "qgisbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para qgisbrasil+...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para qgisb...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/qgisbrasil.
Para mais opções, acesse https://groups.google.com/d/optout.

Felipe Dantas

unread,
Dec 2, 2014, 8:28:29 PM12/2/14
to qgisb...@googlegroups.com, Jorge Santos
Putz, que mega tutorial hein Jorge Santos

Parabéns mesmo ! Obrigado, me esclareceu e muito minha dúvida.
Obrigado tbm ao Julio Meneses, eu já até tinha dado uma olhada nessa ferramenta do gdal, mas nao sabia organizar o comando para executar. Geralmente quando eu queria transforma imagens de 16bits para 8 bits eu utilizava o FWTOOLS através do seguinte comando que aprendi em alguns dos tutorial também do Jorge em seu site: for %i in (*.tif) do gdal_translate -of GTiff -ot Byte -scale -co TFW=YES %i %~ni_8bits.tif

Porém, não sabia que era possivel pelo QGIS sem utilizar o "Sextante"

Aproveitando o poster, eu possivel transformar um imagem de 16 bits diretamente para Float64, isto é, pegando como exemplo a imagem do Jorge, então o comando seria: gdal_translate -of GTiff -ot Float64 -scale 0 62455 -co TFW=YES C:/LANDSAT8_PE/LC82150652013152LGN00_B6.TIF C:/LANDSAT8_PE/LC82150652013152LGN00_B6_8bit.TIF. 

Está Certo ?
Felipe Ramos Dantas
Graduado em Tecnologia  em Geoprocessamento
Técnico de Laboratório - Geoprocessamento no IFPI
Reply all
Reply to author
Forward
0 new messages