Sempre que eu tento compósitos para deslocar-sharpen de algumas imagens Landsat na grama usando i.pansharpen
, i.fusion.brovey
ou o IHS método nitidez, a saída terá alguns ou todos as seguintes características:
- a cor composta está em um tom diferente em comparação com o composto não afiado
- o nível de brilho está bagunçado
- todo o composto ficou totalmente branco / totalmente preto (ao usar imagens pré-processadas para refletir a refletância do topo da atmosfera ou as correções de refletância da superfície
i.landsat.toar
)
Eu também tentei todos os seguintes; mas as cores / brilho permaneceram as mesmas ou ficaram ainda piores:
- Aplicado
i.landsat.rgb
, antes e depois do processo de afiação de pan - Jogado com a bandeira
-f
ou-p
i.landsat.rgb
- Tentou
r.colors
editar a tabela de cores para cinza / grey255 / grey.eq - Tentei
i.pansharpen
usando todos os métodos Brovey / IHS / PCA - Jogou com a
-l
bandeirai.pansharpen
para reequilibrar o canal azul
O manual do GRASS GIS explicou como executar o ajuste de nitidez e o equilíbrio de cores, mas não consigo descobrir como combinar os dois processos em um fluxo de trabalho simultâneo. Eu suspeitava que isso se devesse ao meu fraco entendimento de tabelas de cores, histograma de cores etc. no GRASS.
Então, alguém pode me explicar - como você lida com problemas de equilíbrio de cores ao lidar com imagens do Landsat após o processamento de imagens no GRASS? Você pode compartilhar comigo seus métodos / fluxos de trabalho favoritos?
Muito obrigado por qualquer feedback!
i.pansharpen
lidar com todos os tipos de formatos. Dê uma olhada em um "ticket" relacionado: Ticket nº 2048: i.pansharpen limitado a imagens de 8 bits . Por outro lado, eu simplesmente não entendo as coisas e, portanto, não consigo usar o i.pansharpen corretamente ...?Pesquisei alto e baixo e acho que descobri a raiz dos meus problemas. Acredito que tenho a solução para eles agora - mas é um pouco confuso. Tenho certeza de que existem maneiras melhores de resolvê-los. Compartilhe se você souber uma maneira mais fácil!
RAIZES DE PROBLEMAS:
i.landsat.toar
está no ponto flutuante . Percebi que, quando uso raspadores de ponto flutuante em qualquer método de nitidez de pan, as cores ficam confusas. De algum modo, esse algoritmo preferia rasters na forma inteira original.i.pansharpen
e,i.fusion.brovey
irão bagunçar as cores . Não compreendi bem os algoritmos que eles usaram nesses módulos - mas, de alguma forma, as tabelas de cores serão afetadas e arruinarão as imagens nítidas resultantes.SOLUÇÃO:
i.landsat.toar
float para int, usandor.recode
.i.rgb.his
ei.his.rgb
). Eu evito usari.pansharpen
ei.fusion.brovey
.O FLUXO DE TRABALHO:
Use
r.info
com o-r
sinalizador para obter os valores mínimo e máximo de DN de cada banda de varredura que foram processadasi.landsat.toar
. Por exemplo:Como podemos ver, os valores estão entre 0-1, que são bem diferentes dos originais (que estão entre 0-255). Isso explica por que a saída do nitidez de pan ficou em branco, porque a faixa de valor usada é muito baixa (abaixo de 1).
Converta essa banda raster usando
r.recode
. Use os valores mínimo e máximo obtidos na etapa 1 para converter em um novo intervalo de 0 a 255. Um exemplo de trecho de código:Podemos verificar os novos valores convertidos com
r.info
:Os valores estão entre 0 e 255: agora é utilizável no processo de nitidez de pan.
Aplique a tabela de cores em escala de cinza à banda convertida com
r.colors
.Até agora, eu obtenho os melhores resultados usando a tabela de cores cinza - os compósitos com nitidez de pan combinam com os compósitos originais. As outras alternativas são equalizar a tabela de cores cinza com
color=grey.eq
ou usando a-e
bandeira comcolor=grey
. Ou podemos usar oi.landsat.rgb
módulo em vez der.colors
..Repita as etapas de 1 a 3 com outras bandas raster que pretendemos usar como compósitos, incluindo a raster pan (banda 8). O uso de scripts seria muito apreciado aqui.
Em seguida, use as rasters processadas como entradas no método de nitidez de pan IHS . Por exemplo, ao fazer o composto da banda 7,4,2:
Isso produzirá 3 camadas: uma camada de matiz
HUE
, uma camada de intensidadeINT
e também uma camada de saturaçãoSAT
. Em seguida, substituiremos a camada de intensidadeINT
pela banda pan rasterNEWBAND8
emi.his.rgb
:Os canais vermelhos resultantes de COMP742_red , COMP742_green , COMP742_blue podem ser combinados usando
d.rgb
our.composite
..AMOSTRA ANTES E DEPOIS:
Antes de afiar o pan:
Depois de afiar o pan:
Talvez seja difícil dizer as diferenças de nitidez ao visualizar imagens tão pequenas. Mas o importante é que a cor da imagem com nitidez de panorâmica corresponde ao compósito do original. Missão cumprida!
OUTRAS NOTAS:
r.recode
as bandas térmicas (banda 6) .i.landsat.toar
produz essas bandas térmicas em valores de temperatura Kelvin (nada a ver com valores DN). Mantenha ar.recode
rotina nas bandas multiespectrais e pan normais (bandas 1-5,7,8).i.landsat.toar
, mas os compostos resultantes parecem realmente errados , geralmente é devido à incompatibilidade das tabelas de cores antes e depois do processo de nitidez de pan. Apliqueir.colors RASTER color=grey
nas bandas de varredura originais antes da nitidez de pan e nos canais resultantes após nitidez de pan para garantir a correspondência aproximada de cores.color=grey255
, a saída dei.landsat.rgb
está inseridacolor=grey.eq
. Não é de admirar que ambos pareçam diferentes!Espero que isso beneficie alguém: levei dias para descobrir o que há de errado ..
fonte
r.mapcalc
junto com suaint()
função integrada . Eu acho quer.recode
não é para ser usado no contexto do seu aplicativo.i.pansharpen
é que ele espera de 8 bits raster mapeia como entrada, ou seja, os valores de entrada deve variar de 0 a 255.i.pansharpen
está apenas no grass7_trunk. Essa é a versão de desenvolvimento ... :-)