O algoritmo para extração automática de drenagem do...

13
O algoritmo para extração automática de drenagem do TerraHidro Trabalho de Análise Espacial 2012 Alexandre Copertino Jardim

Transcript of O algoritmo para extração automática de drenagem do...

Page 1: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

O algoritmo para extraçao automatica de drenagem do

TerraHidro

Trabalho de Análise Espacial 2012

Alexandre Copertino Jardim

Page 2: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

1

1 Introdução O TerraHidro é um aplicativo geográfico em desenvolvimento para atender a demanda por ambientes computacionais que possibilitem o estudo hidrológico integrado na unidade da bacia (Rosim et al., 2003). Entre as funcionalidades do TerraHidro está a extração automática da rede de drenagem.

As redes de drenagens são sistemas naturais ou artificiais compostos de canais conectados entre si capazes de drenar água superficial. É um conceito fundamental em Hidrologia e a base de modelos hidrológicos para planos de gestão de recursos.

Com a atual disponibilidade de informação topográfica através de Modelos Numéricos de Terreno (MNT), surgiu a necessidade de automatizar o processo de extração das redes de drenagens. O primeiro algoritmo de extração de redes de drenagem foi proposto por O’Callaghan; Mark (1984). Este algoritmo é eficiente para extrair os principais canais de rede de drenagem, mas apresenta imprecisões na delimitação dos começos dos canais de drenagem (nascentes).

Esse trabalho apresenta um algoritmo que pretende diminuir as imprecisões na extração automática de redes de drenagem. Os dados utilizados para testes e desenvolvimento foram obtidos através da missão SRTM1 (Farr et al., 2007), da região da bacia amazônica e seus afluentes.

2 O algoritmo para extração de redes de drenagem Modelos Digitais de Terreno ou simplesmente MNT armazenam os valores de altimetria de um determinado terreno em grades regulares. Para extração automática de redes de drenagem no TerraHidro são necessários os seguintes passos:

1. Definir as direções de fluxo para cada célula e corrigir o MNT. 2. Calcular a área de contribuição acumulada para cada célula. 3. Com base em um limiar de área acumulada extrair a rede de drenagem.

2.1 Definir as direções de fluxo para cada célula e corrigir o MNT Primeiramente é preciso saber a direção do fluxo de água para cada célula do MNT. O algoritmo proposto por Fairfield; Leymarie (1991) define que cada célula do MNT tem oito possíveis direções de fluxo, a direção da célula para cada um de seus oito vizinhos (Figura 1).

Figura 1 - Oito possíveis direções de fluxo.

1 http://www2.jpl.nasa.gov/srtm

Page 3: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

2

Cada célula deve ter somente uma direção de fluxo (caminho único). Para isso é necessário calcular a declividade entre a célula e seus vizinhos. A direção é então definida para o vizinho que teve a menor declividade. A declividade é calculada pela Equação 1.

𝑑𝑒𝑐𝑙𝑖𝑣𝑖𝑑𝑎𝑑𝑒 =𝑎𝑙𝑖𝑚𝑒𝑡𝑟𝑖𝑎𝑣𝑖𝑧𝑖𝑛ℎ𝑜 − 𝑎𝑙𝑖𝑚𝑒𝑡𝑟𝑖𝑎𝑐é𝑙𝑢𝑙𝑎

𝑑𝑖𝑠𝑡â𝑛𝑐𝑖𝑎

Equação 1

Nesse algoritmo o valor de declividade é utilizado somente para definir a direção de fluxo. Por este motivo não é necessário calcular a distância real entre os centros da célula é cada célula vizinha. Porem é necessário diferenciar a distância entre a célula e vizinhos ortogonais e diagonais. É definido a distância é 1 para vizinhos ortogonais e √2 para vizinhos diagonais. Isto é feito para obter melhor desempenho computacional (Figura 2).

Figura 2 - Distâncias ortogonal e diagonal.

O resultado é uma matriz com as mesmas dimensões do MNT, chamada de matriz de direções de fluxos. Cada célula dessa matriz tem um código correspondente a direção de fluxo conforme a Figura 3. O código zero é atribuído às células onde não foi possível determinar a direção de fluxo.

Figura 3 - Direções de fluxo.

2.1.1 Correção de fossos e áreas planas Em um MNT podem ocorrer células em que seja impossível determinar a direção de fluxo utilizando o algoritmo descrito anteriormente. Isto acontece em áreas planas onde a altimetria das células vizinhas são todas iguais ou em mínimos locais (fossos) onde a altimetria da célula é menor do que a altimetria dos seus vizinhos.

No TerraHidro (Rosim et al. (2003)) o processo de correção consiste das seguintes etapas:

1. Cavar áreas planas 2. Corrigir fossos utilizando a média das altimetria dos vizinhos

Page 4: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

3

3. Corrigir fossos cavando uma saída

2.1.1.1 Cavar áreas planas Normalmente em MNT as áreas planas são corpos d’água como pode ser visto na Figura 4. O rio Purus é a parte mais escura da figura.

Figura 4 - SRTM da região do riu Purus.

As áreas planas são então identificadas e alteradas. As altimetrias das áreas planas são diminuídas (decrementadas) da borda para o centro, formando uma espécie de calha em “v”. Na Figura 5 no quadro superior esquerdo a área plana é identificada pela cor azul claro. Os quadros seguintes mostram o processo de cavar as áreas planas. O resultado final está no quadro inferior direito onde o azul mais escuro representa menor altimetria.

Figura 5 - Cavando as áreas planas.

Page 5: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

4

Esta técnica diminui drasticamente o número de fossos originais do MNT o que melhora o desempenho do processo de correção (Figura 6). A drenagem extraída tende a passar no meio dos rios o que é interessante do ponto de vista hidrológico, pois, por exemplo, o cálculo do comprimento de um tende a ser mais exato.

Figura 6 - Drenagem do riu Purus.

2.1.1.2 Corrigir fossos utilizando a média das altimetria dos vizinhos Existem duas abordagens para correção de fossos em MNT: preenchimento (filling) ou cavar (breaching). Na técnica de preenchimento a altimetria do fosso é elevada até que a célula não seja mais fosso e passe a ter uma direção de fluxo definida. Na técnica de cavar, mais células do MNT são alteradas “cavando” uma drenagem do fosso até uma célula que tenha altimetria menor que o fosso (célula de saída).

Em ambas as abordagens os produtos finais são a matriz de direções de fluxo sem fossos e um MNT hidrologicamente coerente. A técnica de preencher fossos parece inicialmente que alteraria uma quantidade menor de células do MNT. Porém ao corrigir um fosso outra célula vizinha pode se tornar fosso tendo que ser corrigida no próximo passo. Isto pode alterar muitas células no MNT. Por esta razão essa abordagem tente a suavizar o MNT removendo feições e características do MNT que podem ser importantes para estudos hidrológicos.

O algoritmo de correção de fossos do TerraHidro combina as duas técnicas para gerar um MNT corrido e hidrologicamente coerente com menos alterações possíveis em relação ao MNT original.

Primeiramente cada fosso passa pele técnica de preenchimento da seguinte forma. É calculada a média das altimetrias dos oito vizinhos. A altimetria do fosso passa então a ser a média das altimetrias dos vizinhos. Verifica se esse procedimento gerou algum fosso nos vizinhos. Se não gerou o processo foi bem sucedido e passa para o próximo fosso. Se gerar algum fosso nos vizinhos o procedimento é revertido e a célula marcada novamente como fosso (Figura 7) para ser corrigida pela técnica de cavar explicada a seguir.

Page 6: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

5

Figura 7 - Média das altimetria dos vizinhos.

2.1.1.3 Corrigir fossos cavando uma saída Na técnica de cavar uma saída é necessário encontrar a célula de saída. O algoritmo para encontrar essa célula de saída é o PFS (Priority First Search – Dijkstra, 1959). Esse é algoritmo é bem conhecido e utilizado para busca em grafos. O primeiro a utilizar esse algoritmo para correção de MNT foi Jones (2002) comprovando sua eficiência para esta tarefa. A ideia básica do algoritmo é tentar encontrar uma célula que tenha altimetria menor que o fosso levando em conta o menor caminho e que passa pelas células mais baixas (menor valor de altimetria) do MNT (Figura 8).

Figura 8 - PFS célula de saída.

Após encontrar a célula de saída é necessário cavar o caminho até a saída. Isto é feito de forma a criar um gradiente uniforme levando em conta a diferença de altimetria entre a célula fosso e a célula de saída e o número de células do caminho. O resultado pode ser visto na Figura 9.

Page 7: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

6

Figura 9 - PFS corrigindo o caminho.

2.2 Calcular a área de contribuição acumulada para cada célula Área de contribuição de uma célula é toda a área que drena para aquela célula. No caso de um MNT são todos as células que drenam para aquela célula. O resultado é uma matriz com as mesmas dimensões que o MNT, chamada de matriz de área de contribuição acumulada. No TerraHidro existe a opção de calcular a área de contribuição acumulada em número de células ou em km². A Figura 9 mostra o cálculo de área acumulada em número de células.

Figura 10 - Área de contribuição acumulada.

2.3 Com base em um limiar de área acumulada extrair a rede de drenagem

O último passo para extrair a rede de drenagem é definir um limiar de área de contribuição acumula. Dessa forma toda célula da matriz de área de contribuição acumulada que for maior que o limiar é considerada como parte da rede de drenagem. Na Figura 10 toda célula com área de contribuição acumulada maior que 5 foi marcada com borda azul e pertencente a rede de drenagem.

Page 8: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

7

Figura 11 - Cálculo da rede de drenagem.

3 Problemas na extração automática de redes de drenagem A pesar de que a maior parte da rede drenagem extraída por esse algoritmo é correta, alguns problemas são detectados e devem ser corrigidos manualmente. Na Figura 11 podemos observar duas áreas mais claras do SRTM em uma região perto de Santarém-PA destacadas por elipses amarelas. Essas regiões são platôs onde não deveriam existir redes de drenagem.

Figura 12 - Redes de Drenagem limiar 50.

O limiar de área de contribuição máxima utilizado foi 50 células. Se aumentar esse limiar para eliminar as drenagens nos platôs, desaparecem drenagens de outras áreas de interesse. A Figura 12 é a imagem da mesma região mas com limiar de 2300 células. Se utilizar um limiar menor que 2300 células começam a aparecer drenagens nas áreas de platô.

Page 9: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

8

Figura 13 - Redes de Drenagem limiar 2300.

4 Distância vertical até o topo Uma solução para minimizar os problemas da extração automática da rede de drenagem, principalmente em relação aos platôs, é utilizar outros atributos além da área de contribuição acumulada. Neste contexto a Distância Vertical até o Topo pode minimizar os erros principalmente em platôs. Esse atributo é calculado para todas as células do MNT. O valor desse atributo é a distância vertical (na mesma unidade de altimetria do MNT) da célula até a célula mais alta a montante (direção contrária a direção de fluxo) como exemplificado na Figura 12.

Figura 14 - Distância vertical até o topo de morro.

Page 10: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

9

A Figura 13 é um exemplo da distância vertical até o topo calculada para o mesmo recorte de SRTM próximo a Santarém-PA.

Figura 15 - Distância vertical até o topo, Santarém-PA.

A distância vertical até o topo pode ser combinada com a área de contribuição máxima para gerar redes de drenagem. Desta forma além de um limiar de área de contribuição máxima é necessário definir um limiar de distância vertical até o topo de morro. A Figura 15 mostra a rede de drenagem utilizando a distância vertical até o topo de morro, para mesma região próxima de Santarém. Para este resultado foram utilizados os limiares de 50 células de área de contribuição máxima e 60m de distância vertical até o topo.

Page 11: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

10

Figura 16 - Rede de Drenagem com limiares 50 células e 60m.

É possível notar que as drenagens nas regiões de platô foram removidas sem perder detalhes da rede de drenagem de outras regiões. Na Figura 16 a rede de drenagem sem a utilização da distância vertical até o topo (vermelho) foi sobreposta pela rede de drenagem utilizando distância vertical até o topo (em azul).

Figura 17 - Drenagens sobrepostas.

Page 12: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

11

5 Conclusões A abordagem proposta neste trabalho se mostrou eficaz para diminuir os erros na extração automática de redes de drenagem principalmente em regiões de platô. Futuramente outros atributos (variáveis morfométricas) poderão ser implementados no TerraHidro para diminuir mais ainda os erros na extração automática de redes de drenagem.

A distância vertical até o topo pode ser utilizada para outros fins além de ajudar a delimitar drenagens como, por exemplo, delimitar áreas alagáveis.

Page 13: O algoritmo para extração automática de drenagem do TerraHidrowiki.dpi.inpe.br/lib/exe/fetch.php?media=ser301-2012:trabalho_alex... · Alexandre Copertino Jardim . 1 ... Área

12

Referências

FAIRFIELD, J.; LEYMARIE, P. Drainage networks from grid digital elevation models. Water Resources Research, v. 27, n. 5, p. 709-717, 1991. Disponível em: <http://www.scopus.com/inward/record.url?eid=2-s2.0-0026359853&partnerID=40&md5=fddb4cb3381eb61254cae9815667029a>. .

FARR, T. G.; ROSEN, P. A.; CARO, E. et al. The Shuttle Radar Topography Mission. REVIEWS OF GEOPHYSICS, 2007.

JONES, R. Algorithms for using a DEM for mapping catchment areas of stream sediment samples. Computers & Geosciences, v. 28, n. 9, p. 1051-1060, 2002. Disponível em: <http://linkinghub.elsevier.com/retrieve/pii/S0098300402000225>. .

O’CALLAGHAN, J. F.; MARK, D. M. The extraction of drainage networks from digital elevation data. Computer Vision, Graphics, and Image Processing, v. 28, n. 3, p. 323-344, 1984. Disponível em: <http://linkinghub.elsevier.com/retrieve/pii/S0734189X84800110>. .

ROSIM, S.; MONTEIRO, A. M. V.; RENNÓ, C. D.; SOUZA, R. C. M. DE; SOARES, J. V. Terrahidro - uma plataforma computacional para o desenvolvimento de aplicativos para a análise integrada de recursos hídricos s. Anais XI SBSR. p.2589-2596, 2003. Belo Horizonte.