Escavando o terreno

A discrepância

A qualidade da rede de drenagem gerada pelo método numérico, descrito nesse post aqui, independentemente dos algoritmos usados, é diretamente associada à qualidade do MDE disponível.

No caso dos dados do SRTM, por exemplo, a resolução do MDE é no máximo de 30 metros. Portanto, se você precisa de detalhes minúsculos, menores que 30 metros, é melhor procurar outro MDE (talvez gerado a partir de curvas de níveis) ou usar um método topográfico ou cartográfico.

Mesmo se 30 metros está ok, nada garante que MDE representa o terreno na qualidade que você precisa. Como está visível abaixo, existe uma discrepância inerente em relação ao MDE e onde de fato os rios correm. Isso acontece por muito motivos, como a retificação de rios pela ação humana, pelo método de amostragem do sensor que produziu o MDE ou mesmo o processamento do MDE por nós.

Discrepância entre a drenagem de referência e a drenagem sintética gerada a partir de MDE

A questão é o quanto essa discrepância é relevante para o seu problema. Em modelagem hidrológica de grandes bacias, por exemplo, isso pode ser irrelevante. Em um projeto de urbanização, isso pode ser grave.

A discrepância do método numérico tende a ser desastrosa em regiões muito planas, como planícies de inundação com áreas úmidas, onde o rio acaba avulsionando em padrões complexos de meandros, como se pode ver abaixo.

Discrepância é maior (e pior) em áreas muito planas, como planícies de inundação de rios

Esse problema é desalentador, mas nada está perdido. Existe um jeito de melhorar o resultado do método numérico, e isso requer uma dose de criatividade.

Escavando o MDE

Uma forma de melhorar o método numérico é melhorar o próprio MDE com informações extras, que dizem onde que a drenagem realmente passa nas áreas mais planas. A ideia é “escavar” o MDE com uma rede de drenagem já existente.

Claro que isso só faz sentido em duas condições: (1) a rede de drenagem que já existe não é densa o suficiente para os seus propósitos, ou (2) você quer melhorar o MDE para derivar polígonos mais detalhados das bacias hidrográficas.

Mas chega de enrolação e vamos lá:

Passo 0: obtenha uma rede de drenagem de referência.

Formato: shapefile ou similar (vetor). Essa rede deve ter qualidade cartográfica superior que a gerada pelo método numérico, mostrando onde que a água de fato passa nas áreas planas. Se esse dado não existir em algum lugar você pode produzir ela pelo método cartográfico.

Passo 1: rasterize a rede de drenagem de referência.

Essa parte é um pouco complexa pois tem alguns sub-passos.

Criar novo campo igual a 1. Aqui você precisa criar um novo campo arquivo vetorial da rede de drenagem, com o valor de 1.

Criar raster “zerado” igual ao MDE. A seguir, faça o seguinte: com a calculadora raster, multiplique o MDE por zero, criando um raster “zerado” que é igual ao raster do MDE. Esse raster irá receber a informação da rede no próximo passo, portanto já nomeie ele apropriadamente (ex: rede_raster.tif).

Criando uma camada raster “zerada” a partir do MDE

Uma alternativa a esse procedimento é usar a ferramenta “criar um raster constante” (QGIS geoalgorithms >> Raster tools >> Create constant raster layer). Tudo que importa aqui é fazer uma cópia “zerada” do MDE.

Alternativa para criar uma camada raster “zerada”

Raster booleano. Por fim, com a ferramenta “rasterizar sobre raster existente” (GDAL/OGR >> Conversion >> Rasterize (write over existing raster)) você converte a rede de drenagem em um raster booleano, com valores de 1 onde a rede passa e 0 para onde a rede não passa. Claro, você precisa selecionar o campo que você criou anteriormente para converter em raster.

Rasterizar a rede de drenagem de referência sobre a camada raster já existente
Raster booleano da drenagem de referência

Passo 2: “escave” o MDE com a rede de drenagem de referência.

Agora que você tem um raster booleano da rede de drenagem de referência, você pode “escavar” o MDE por onde a rede de drenagem passa. Isso irá mudar o padrão de drenagem do nosso MDE, para melhor. Entre as formas de fazer essa escavação, existe o método da trincheira, que é mais simples, e o método da cunha, que é mais robusto. Ambos fazem uso de álgebra de mapas, com a valente calculadora raster do QGIS.

Método da trincheira. O método da trincheira consiste em simplesmente subtrair do MDE um valor relativamente alto da superfície exatamente por onde a rede de referência passa. Isso cria uma vala com a espessura de um píxel no MDE, uma trincheira. Vamos chamar esse valor, que é a profundidade da trincheira, de epsilon. Assim a fórmula na calculadora raster deve ser:

(MDE_Fill@1  – (Rede_Raster@1 * Epsilon)) + Epsilon

Em que MDE_Fill é o MDE sem depressões gerado pelo SAGA Fill Sinks ou similar; Rede_Raster é o raster booleano da rede de drenagem de referência, e; Epsilon é o valor de profundidade da trincheira. O último termo que soma o valor de Epsilon é para garantir que o MDE não apresente valores negativos.

Esquema do método da trincheira

O resultado é um MDE “melhorado”, com uma vala por onde passa a rede de referência:

Resultado do método da trincheira

Como a trincheira é bem estreita, temos que rezar para que os métodos numéricos de geração da rede sejam “capturados” pela vala escavada. Dessa forma, o método funciona bem para MDEs suaves, bem-comportados e quando a rede de referência é densa o suficiente para “escalar” os talvegues dos morros e capturar a drenagem nessas partes mais altas.

Método da cunha. É um método mais robusto, pois faz uma escavação mais ambiciosa no terreno. Em vez de simplesmente escavar uma vala estreita, vamos abrir uma cunha triangular no MDE, melhorando as chances dos algoritmos numéricos serem “capturados” pela drenagem de referência.

 

Esquema do método da cunha triangular

Raster de distância. Para isso, precisamos de um raster novo na jogada: o raster de proximidade da rede de drenagem de referência. Em GDAL/OGR >> Analysis existe o geoalgoritmo “Proximity (raster distance). O dado de entrada é o raster booleano de drenagem, o valor que queremos calcular a distância (no caso, valor 1) e as unidades de distância (eu prefiro usar unidades de pixel, por ser mais intuitivo).

Criando uma camada raster de proximidade (distância) a partir do raster booleano da rede de drenagem de referência

O resultado é um raster de proximidade da rede de drenagem de referência.

Camada raster de proximidade (distância) da rede de drenagem de referência

Raster da cunha. Com o raster de distância é possível criar uma cunha triangular com a seguite fórmula (na calculadora raster):

((Epsilon – ((2 * Epsilon / W) * “Dist@1”)) * (“Dist@1” < (W/2))) * (((Epsilon – ((2 * Epsilon /W)* “Dist@1”)) * (“Dist@1” < (W/2)))>=0)

Onde “Dist@1” é o raster de distância; Epsilon é o valor de profundidade da cunha triangular, e; W é a largura da cunha triangular, em píxeis ou metros. A fórmula parece complicada, mas na realidade é apenas o resultado de uma equação linear do tipo Y = AX + B e um pouco de álgebra booleana.

Raster da cunha triangular

Escavar a cunha. De novo na calculadora raster, basta subtrair a cunha do MDE sem depressões para produzir escavação em formato de cunha triangular. Para evitar valores negativos no MDE, some o valor definido para o Epsilon:

(“MDE_Fill@1” – “Cunha@1”) + Epsilon

Resultado do método da cunha triangular.

Passo 3: tudo de novo

Se você chegou até aqui, parabéns!, pois você agora possui um MDE “melhorado”, com “escavações” de definem melhor a drenagem nas áreas planas. Como a “escavação” foi produzida por uma rede de drenagem de referência, a qualidade do MDE aumentou.

Considere agora que você precisa começar do zero todos os processos de derivação dos produtos do MDE, como a delimitação de bacias hidrográficas e a extração de redes de drenagem. Sim, você vai precisar fazer de novo o Fill Sinks, pois novas depressões provavelmente foram criadas durante o processo de escavação.

Neste post eu apresento um método de derivação de bacia no QGIS, usando o SAGA.

Neste outro post, também usando o SAGA, apresento um método de derivação da rede de drenagem.

O resultado, obviamente, não será idêntico ao disponível na rede de drenagem de referência, mas o ganho será significativo, especialmente nas áreas muito planas.

Antes e depois de “escavar” o MDE. Rede de drenagem sintética se aproxima da rede de referência, reduzindo a discrepância.

Bônus: automatizando a escavação

Criar o raster de cunha triangular pode ser confuso. Mas a notícia boa é que é um processo automatizável. Dois dados de entrada preciam ser informados: o MDE sem depressões e o shapefile da drenagem de referência (ambos no mesmo SRC). O shapefile precisa conter um atributo de número real com o valor “1” em todas as feições. Além disso, dois parâmetros são necessários: o Epsilon (profudidade da cunha triangular) e o W (largura da cunha triangular).

O modelo automatizado tem a seguinte cara (para o QGIS 2):

Modelo automatizado para a extração da camada raster de cunha triangular.

De brinde, deixo aqui o modelo para download. Bom uso!

…… ::::::: >>> Baixar modelo automatizado <<<<  ::::::: …….

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: