QGIS 2.8 + SAGA GIS Álgebra de Mapas para Substituição de Pixels Negativos no MDE Topodata Jorge Santos 2015 1 Conteúdo Sumário Capítulo 1 ......................................................................................................................................... 3 Download e Análise do Topodata ............................................................................................... 3 1.1. Download do Topodata por Cenas .................................................................................. 3 1.2. Presença de Valores Negativos na imagem .................................................................... 3 1.3. Tipo de Dado Numérico ................................................................................................... 4 1.4. Bits e Bytes ....................................................................................................................... 5 1.5. Tipo de Dado em Sensoriamento Remoto...................................................................... 5 1.6. Rampa de Cores (8 Bit) .................................................................................................... 6 1.7. Rampa de Cores (16 Bit) .................................................................................................. 6 1.8. Tipo de Dado e Escala do SRTM Topodata ...................................................................... 6 Capítulo 2 ......................................................................................................................................... 8 Indicador de Amostragem Min/Max .......................................................................................... 8 2.1. Realce de Contagem Cumulativa..................................................................................... 8 2.2. Leitura dos Metadados .................................................................................................... 8 2.3. Realce Mínimo/Máximo .................................................................................................. 9 Capítulo 3 ....................................................................................................................................... 11 Substituição do Pixel Valor Zero................................................................................................ 11 3.1. Transformação de Float32 para UInt16 ........................................................................ 11 3.2. O Problema do Pixel Valor Zero no MDE....................................................................... 12 3.3. SAGA GIS: A Calculadora Raster .................................................................................... 13 3.4. Resultado Final ............................................................................................................... 15 Capítulo 4 ....................................................................................................................................... 16 Contatos ..................................................................................................................................... 16 Processamento Digital – Geotecnologias e Software Livre ................................................. 16 Competências ........................................................................................................................ 16 2 Capítulo 1 Download e Análise do Topodata 1.1. Download do Topodata por Cenas Para realizar o download do SRTM Topodata com resolução espacial de 30 metros, é necessário acessar o site do SRTM Topodata através do seguinte link: http://www.webmapit.com.br/inpe/topodata/ O Topodata é distribuído por cenas ou recortes. No mapa, escolha uma área de interesse e navegue até essa localidade. Clique sobre uma folha Topodata e selecione o produto ALTITUDE. Aguarde o download da imagem e repita esse passo até recobrir a sua localidade com imagens Topodata. Figura 01. SRTM Topodata. O produto Altitude contém valores de elevação O Topodata é um MDE (Modelo Digital de Elevação) ou DEM (Digital Elevation Model). São dados raster que possuem valores de altitude armazenados nos pixels da imagem. O recorte do SRTM Topodata por folhas tem a finalidade de facilitar a distribuição dessas imagens. Após o download, descompacte as imagens no seu computador. Neste tutorial, criamos a pasta topodata32 diretamente no drive C: para evitar caminhos muito longos. 1.2. Presença de Valores Negativos na imagem A elevação é medida a partir do nível do mar. No MDE, valores menores ou iguais a zero podem ser utilizados para representar depressões ou corpos d’água na imagem. Em alguns casos, valores negativos podem representar erros nos dados. 3 Figura 02. Esboço do relevo entre as cidades de Lima (Peru) e Santos (Brasil). Em algumas situações, a presença de pixels com valor zero ou negativo no interior da imagem pode representar um obstáculo. Não seria um problema encontrar pixels de valor zero em partes relacionadas ao mar, porém, a representação visual do MDE com “buracos” pode gerar dúvidas na interpretação dos dados. Na imagem abaixo, podemos visualizar um exemplo de recorte Topodata com pixel valor zero: Figura 03. Presença de pixels com valor zero no MDE Topodata. Uma prática comum em aplicativos para Geoprocessamento consiste em associar o valor zero à área sem dados (NODATA) para ocultar partes escuras nas bordas da imagem. Este processo geralmente é executado para as bordas. O programa SIG executa o processo em toda extensão do raster. Logo, se há pixel com valor zero no interior da imagem, ele também será ocultado. Pixel com valor zero no interior do raster pode ser um problema. Para evita-los, dependendo da aplicação que será realizada no MDE, você pode utilizar uma álgebra e substituir o valor zero pelo valor mais próximo. Para executar a álgebra corretamente, é preciso definir o Tipo de Dado deste arquivo raster. 1.3. Tipo de Dado Numérico Na computação, para armazenar informação numérica, existem regras específicas. O Tipo de Dado (Data Type) é um princípio matemático que tem origem na Teoria dos Conjuntos (o Conjunto dos Números Naturais, o Conjunto dos Números Inteiros, dos Números Reais, Imaginários, etc.). 1.3. Tipo de Dado Numérico 4 Um arquivo raster é uma matriz, ou seja, trata-se de estrutura formada por linhas e colunas. A intersecção entre linhas e colunas forma pixels ou células. Na estrutura de dados raster, valores numéricos são armazenados em todas as células da imagem para representação de um determinado fenômeno do espaço geográfico. Para a computação, se existe um determinado valor numérico, este número precisa ser classificado de acordo com o Tipo de Dado. Vamos tomar como exemplo a Teoria Geral dos Conjuntos, utilizando a aplicação do conjunto Z referente ao Conjunto dos Números Inteiros: Z = {…, -3, -2, -1, 0, 1, 2, 3, …} Em relação ao Conjunto Z, podemos afirmar que: O Conjunto Z admite números inteiros, ou seja, não há parte fracionária nos algarismos. O Conjunto Z admite números sinalizados e não sinalizados, ou seja, números inteiros sinalizados são os números com sinal negativo e números inteiros não sinalizados são os números positivos. Em relação ao conjunto acima, podemos afirmar que o valor -3 é um número inteiro sinalizado e o valor 1 é um número inteiro sem sinal. Mapas topográficos, imagens de satélite, fotografias aéreas ou qualquer outra informação matricial são tratados no computador (meio digital) como arquivos raster. O Tipo de Dado classifica o formato dos números e a escala ou intervalo de valores (Range) indica a quantidade total de valores que pode ser armazenada na matriz. 1.4. Bits e Bytes Nosso sistema de numeração é o sistema decimal, pois realizamos a contagem em números em base 10. No computador, todos os números são escritos em base 2, portanto, a máquina utiliza o sistema binário Figura 04. Sistema Binário, o sistema utilizado na computação. No Computador: 01 Bit = um caractere (letra, símbolo ou número) 08 Bit = 1 Byte ou simplesmente “Byte” 16 Bit = 2 Bytes 32 Bit = 4 Bytes 64 Bit = 8 Bytes Nos processos de computador, há certa preocupação com memória e armazenamento. Quanto maior for o número de bits, maior será o espaço necessário para armazenar dados. Por isso, é preciso cautela ao realizar transformações entre dados com maior ou menor número de bits, pois você pode acidentalmente perder informações ou utilizar um intervalo desnecessário. 1.5. Tipo de Dado em Sensoriamento Remoto O princípio do Sensoriamento Remoto é extrair informação da radiação eletromagnética e armazenar essa energia no formato de Número Digital (DN = Digital Number). Durante a passagem ou observação do sensor remoto, diferentes instrumentos imageadores possuem características próprias para aquisição de informação da luz. Na tabela abaixo, temos alguns exemplos de satélites artificiais com o total de valores numéricos que podem ser armazenados em cada imagem processada: 1.4. Bits e Bytes 5 Tipo de Dado Escala Total de Cores Exemplo de Plataforma Inteiro não Sinalizado de 8 Bit 0 – 255 256 cores Landsat-5 Inteiro não Sinalizado de 11 Bit 0 – 2047 2048 cores GeoEye-1 / Ikonos / Quickbird Inteiro não Sinalizado de 12 Bit 0 – 4095 4096 cores RapidEye Inteiro não Sinalizado de 16 Bit 0 – 65535 65536 cores Landsat-8, SRTM OBSERVAÇÃO: O computador não suporta dados em 11/12 Bit. Produtos dos satélites GeoEye-1, Ikonos, Quickbird e RapidEye sempre serão entregues na escala compatível (16 Bit). 1.6. Rampa de Cores (8 Bit) Totalizam 256 níveis de cinza por banda numa escala que varia de 0 a 255 possibilidades de cinza. O tom de cinza mais escuro é o preto e o tom de cinza mais claro é o branco. Figura 05. Rampa de Cores que simboliza uma escala de 8 Bit (256 Cores). 1.7. Rampa de Cores (16 Bit) Totalizam 65536 níveis de cinza por banda numa escala que varia de 0 a 65535 possibilidades de cinza. O tom de cinza mais escuro é o preto e o tom de cinza mais claro é o branco. Figura 06. Rampa de Cores que simboliza uma escala de 16 Bit (65536 Cores). 1.8. Tipo de Dado e Escala do SRTM Topodata O SRTM (Shuttle Radar Topography Mission) é uma imagem de radar utilizada para representar o relevo global. Cada valor numérico dos pixels que formam esse DEM (Digital Elevation Model) apresenta um valor de altitude. Assim, se uma determinada região possui áreas com altitude máxima de 1500 metros, é possível encontrar valores de pixel que variam de 0 a 1500 (considerando a parte inteira dos algarismos). 1.6. Rampa de Cores (8 Bit) 6 O Intervalo dos Dados (Range) pode ser compreendido como um recipiente para armazenamento dos dados. Geralmente identificamos essa informação nos metadados como Profundidade do Pixel ou Pixel Depth. O processo de transformação de uma escala para outra é conhecido como Conversão Radiométrica ou Rescale. Escala de 8 Bit: Intervalo que varia de 0 a 255. Considerando o exemplo do SRTM, não seria possível armazenar informações de altitude numa escala de 8 Bit porque essa escala é incompatível com os dados de um relevo cujo intervalo varia entre 0 e 1500. No Brasil, por exemplo, temos muitas regiões que ultrapassam os 255 metros de altitude, portanto, para representar a elevação, precisamos armazenar os dados em outra escala. Escala de 16 Bit: Intervalo que varia de 0 a 65535. Esta é a escala é apropriada para armazenar dados do SRTM, pois em todo o planeta não temos montanhas que ultrapassem a dimensão dessa escala. Além do SRTM, todos os operadores de sensores remotos disponibilizam dados nessa escala. Escala de 32 Bit: Muito utilizada em processos do computador. Geralmente os números são escritos em Ponto Flutuante 32 Bits ou Float32. Em algumas análises espaciais, dados em Float podem apresentar resultados imprecisos. Por esta razão, recomenda-se a conversão para inteiro. O Topodata está escrito no Tipo de Dado Float32 e precisa ser transformado para UInt16 (Inteiro Não Sinalizado de 16 Bit). Após realizar a transformação para inteiro, podemos substituir os pixels de valor zero. 1.8. Tipo de Dado e Escala do SRTM Topodata 7 Capítulo 2 Indicador de Amostragem Min/Max 2.1. Realce de Contagem Cumulativa O MDE é um tipo de imagem que possui uma única banda. Por padrão, para apresentar os valores de elevação no SIG, O QGIS utiliza um indicador chamado Corte de Contagem Cumulativa. Este indicador de amostragem é útil para aplicar um realce no raster, permitindo que a imagem seja visualizada com mais brilho. Com o realce cumulativo, o analista pode visualizar mais alvos. Embora seja eficiente na aplicação de realce na imagem, o indicador de Contagem Cumulativa apresenta um intervalo de altitude que não corresponde à realidade do raster. Em seu lugar, devemos utilizar o indicador Mínimo/Máximo para exibir corretamente o intervalo da elevação. Para ter acesso ao intervalo real dos pixels no raster de altimetria, você precisa consultar os metadados da imagem. 2.2. Leitura dos Metadados Metadados exibem informações técnicas do raster. Na folha Topodata 23S465ZN.tif que representa parte da elevação no litoral de São Paulo, temos seguintes valores na tela do QGIS: Mínimo: -0.361101 / Máximo: 1101.25 Figura 07. QGIS 2.8: Recorte SRTM Topodata com intervalos Min/Max. 8 Para verificar se estes valores numéricos estão corretos, os metadados devem ser consultados. Para ter acesso, basta consultar as Propriedades do Raster. Clique na categoria Metadata. Para a camada vetorial 23S465ZN.tif, temos: STATISTICS_MAXIMUM=1638.0999755859 STATISTICS_MEAN=443.00004317336 STATISTICS_MINIMUM=-3.6445899009705 STATISTICS_STDDEV=404.11824116709 Figura 08. QGIS 2.8: Metadados exibindo os valores Mínimo/Máximo do raster. Com base nos Metadados do raster, o valor mínimo de pixel para este recorte é -3.6445899009705 e, o maior valor, 1638.0999755859. Perceba que a informação presente no metadado do raster apresenta valores diferentes da tela principal do QGIS. Uma representação de mapa raster em ambiente SIG deve considerar o intervalo real dos pixels para evitar interpretações equivocadas. Portanto, em todas as situações, mesmo que haja necessidade de realçar o raster para ampliar a visualização, o intervalo das células que realmente importa para qualquer análise raster deve ser expresso através do indicador Mínimo/Máximo. 2.3. Realce Mínimo/Máximo Nas Propriedades do Raster, clique na categoria Estilo. A opção padrão é Corte de Contagem Cumulativa, porém, deve ser trocada para Mín/Max. Em seguida, no item Precisão, selecione a opção Real (mais lento) e pressione o botão Carregar. Os reais valores do intervalo serão exibidos nos campos Min e Max. Estes são os valores numéricos que constam nos metadados. No item Melhorar Contraste, marque a opção Estender para MinMax e a operação será concluída. Pressione o botão OK para retornar à janela principal do QGIS. 2.3. Realce Mínimo/Máximo 9 Figura 09. QGIS 2.8: Ordem de aplicação do Indicador Mínimo/Máximo. No indicador Min/Max, a imagem SRTM será apresentada sem contraste e o intervalo de valores dos pixels presentes nos metadados será exibido no Painel Camadas do programa: Mínimo: -5.36291 / Máximo: 1650.33 Figura 10. QGIS 2.8: Valores reais do SRTM Topodata. O valor correto do intervalo que consta nos metadados é um valor estimado até o usuário Calcular as Estatísticas. Para o Topodata, a substituição dos valores negativos dos pixels será executada em três passos: Os valores do Topodata devem ser convertidos de Float32 para UInt16; Os valores negativos serão substituídos pelo valor zero; O valor zero será substituído pelo número inteiro mais próximo. 2.3. Realce Mínimo/Máximo 10 Capítulo 3 Substituição do Pixel Valor Zero 3.1. Transformação de Float32 para UInt16 MENU RASTER – CONVERSÃO – TRADUÇÃO (Converter Formato) 1 - Informe as imagens de entrada e saída que serão transformadas de Float32 Bit para Inteiro em 16 Bit: Figura 11. Arquivos de entrada e saída. 2 – Em seguida, mais abaixo, clique no lápis para editar o comando GDAL para inserir um parâmetro: Figura 12. Edição do comando GDAL para acrescentar parâmetros. 3 - Cole o parâmetro abaixo no comando após o parâmetro de saída -of GTiff. -ot UInt16 -co TFW=YES Veja a demonstração: ANTES DEPOIS gdal_translate -of GTiff C:/RasterCalculator/23S465ZN.tif C:/RasterCalculator/23S465ZN16.tif gdal_translate -of GTiff -ot UInt16 -co TFW=YES C:/RasterCalculator/23S465ZN.tif C:/RasterCalculator/23S465ZN16.tif 11 Figura 13. Parâmetros GDAL para conversão de Float32 para UInt16. Clique em OK para executar o comando (não clique no lápis para sair da edição do comando). A nova imagem em 16 Bit com os valores MIN/MAX apresenta a parte inteira dos valores numéricos: Figura 14. Tipo de Dado Inteiro Não Sinalizado de 16 Bit. 3.2. O Problema do Pixel Valor Zero no MDE Acesse as Propriedades do Raster. Na categoria Transparência, procure o campo chamado Sem Valores de Dados Adicionais. Digite o número 0 e clique no botão OK: Figura 15. Recurso para ocultar o pixel valor zero no MDE. 3.2. O Problema do Pixel Valor Zero no MDE 12 Ao ocultar o pixel zero no raster, esta é a visualização do problema que este tutorial pretende resolver: Figura 16. O problema do pixel valor zero no MDE. Para solucionar este problema, devemos substituir o pixel valor zero pelo valor mais próximo. 3.3. SAGA GIS: A Calculadora Raster Acesse o painel Processar e clique no provedor SAGA GIS. Certifique-se de habilitar a Interface Avançada do painel (Advanced Interface). O recurso que estamos procurando é a Calculadora Raster (Raster Calculator): Grid – Calculus – Raster Calculator Figura 17. A Calculadora Raster do SAGA GIS. 3.3. SAGA GIS: A Calculadora Raster 13 A Calculadora Raster permite realizar operações em arquivos raster através de expressões. A operação que vamos utilizar para trocar os valores dos pixels é uma operação condicional. Basicamente, iremos construir a seguinte sentença: Se O valor do pixel no raster “a” for igual a zero, Então Substituir valor zero pelo valor um; Caso Contrário Manter os valores dos pixels presentes no raster “a”. Digite a seguinte sentença no campo Formula da Calculadora Raster do SAGA GIS: ifelse(a=0, 1, a) Selecione o raster que será processado, indique o Tipo de Dado como Unsigned 2 Byte Integer (ver tópicos anteriores) e selecione um local do computador para salvar o novo arquivo: Figura 18. A Calculadora Raster do SAGA GIS. Execute o processo e modifique o realce do raster para Min/Max seguindo as recomendações da Unidade 2 deste documento. Os reais valores do intervalo serão exibidos e o problema com os pixels valor zero serão solucionados permanentemente. 3.3. SAGA GIS: A Calculadora Raster 14 3.4. Resultado Final Raster Topodata com pixel valor zero substituído pelo pixel valor 1: Figura 19. Imagem final com a substituição do pixel valor zero. A partir de agora, você pode aplicar estilos ao seu MDE e recortá-lo sem prejudicar a área sem dados (NODATA). Este recurso também pode ser aplicado em bandas separadas de uma imagem de satélite, porém, a substituição de pixel valor zero deve ser executada para cada banda. Figura 20. Representação topográfica através do MDE Topodata. 3.4. Resultado Final 15 Capítulo 4 Contatos Jorge Santos Lattes: http://lattes.cnpq.br/1910845468254276 E-mail: [email protected] Skype: jorgepsantos2002 Processamento Digital – Geotecnologias e Software Livre Endereço Web: http://www.processamentodigital.com.br/ Twitter: http://twitter.com/jpsantos2002 Facebook: http://www.facebook.com/ProcessamentoDigital LinkedIn: http://br.linkedin.com/pub/jorge-santos/10/38b/8a4/ Competências Consultor para Projetos que envolvem Demandas de SIG/PDI; Instrutor para Treinamento Avançado em Geotecnologias; Instrutor para Treinamento Avançado no Processamento Digital de Imagens. Processamento Digital – Geotecnologias e Software Livre 16